精华内容
下载资源
问答
  • 学生成绩管理系统

    2018-01-05 20:10:25
    学生成绩管理系统,登录学生界面,包含数据库,可上传学生信息图片,对学生信息进行增删改。
  • 基于JavaWeb的学生成绩管理系统 角色分为 学生 的权限有 请假管理 成绩管理 奖惩管理 老师 的权限有 课程管理 成绩管理 学生管理 奖惩管理 请假管理 管理员 的权限有 课程管理 成绩管理 学生管理 奖惩管理 请假管理 ...

    基于JavaWeb的学生考勤系统管理系统

    基于JavaWeb的学生考勤系统管理系统

    基于JavaWeb的学生成绩管理系统

    角色分为
    学生 的权限有 请假管理 成绩管理 奖惩管理
    老师 的权限有 课程管理 成绩管理 学生管理 奖惩管理 请假管理
    管理员 的权限有 课程管理 成绩管理 学生管理 奖惩管理 请假管理 --老师管理 查询所有账户

    –有什么问题可以咨询我

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210325191835661.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE1NjMxODEz,size_16,color_FFFFFF,t_70)
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 学生成绩管理系统的工程: 包括测试图片 , 代码功能说明 , 学生成绩管理系统的报告文档
  • 在压缩包下有完整的基于Java Web的学生成绩管理系统,设计的数据表、数据库后台代码实现(包括存储过程、触发器、用户自定义函数)、管理系统功能展示页面图片以及系统设计报告。在该系统中有三个权限:管理员、教师...
  • 学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩...
  • 学生成绩系统、学生选课管理系统系统,包含图片和数据库,代码完整,可以作为毕设或者作业项目
  • 愿望岛网络成绩管理系统Version2.0试用版 管理员默认后台地址:admin/index.asp默认用户名和密码均为admin 教师默认后台地址:index.asp默认用户名和密码均为wishcn 家长默认后台地址:index.asp默认用户名和密码均为...
  • 基于python与mysql的学生成绩管理系统 代码简单 已达包 界面简洁 有文档 图片 设计步骤等 主要基于tkinter库与pymysql库设计的GUI 界面程序
  • WF 学生成绩管理系统

    2010-10-20 19:44:18
    一学期的学习,最后是以这个学生成绩管理系统来展现所学,使用vs平台,wf语言,内含有数据库和图片,经老师考核,是一个比较成功的小系统
  • 2/26/2020 java 项目学生成绩管理系统 - 百度文库 标准文档 标准文档 网页 资讯 视频 图片 知道 文库 贴吧 采购 地图 | 百度首页 登录 VIP新客立减2元 意见反馈 下载客户端 Java程序设计实训 Java程序设计实训 首页 ...
  • c语言学生成绩管理系统

    千次阅读 2018-12-07 16:34:55
    c语言学生成绩管理系统欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左...

    功能摘要

    (1)按学期、按班级完成对学生成绩的录入。
    (2)按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行 排序
    (3)能查询学生成绩,不及格科目及学生名单
    (4)能按班级输出学生的成绩单
    (5)能按学号删除学生纪录,成绩等。
    (6)将学生的学号、姓名及各门课程的成绩等信息保存于外部存储器的文件中(txt文 件)。
    (7)添加了一个界面可显示以保存的数据里面已有的学年、班级,方便查询
    (8)添加可自定义界面背景、字体颜色的功能

    程序界面浏览

    主界面

    结构体的定义

    typedef struct person                               //定义结构体  
    {  
        char num[15];   //学号  
        char name[20]; //姓名  
        float chinese;    //语文成绩  
        float en;      //英语成绩  
        float  math;      //数学成绩
        float  history;      //历史成绩  
        float  physics;  //物理成绩 
    	int  term;     //学期
    	int  classnum; //班级 
    	float sum;   //总分 
    	float average; //平均分 
    }person;  
    

    界面的函数封装

    减少代码的行数,方便调用,避免不停地转移光标

    void no_sql()      //数据库无信息ui界面
    {
    	system("cls");
    	toxy(45,8);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃     数据库无信息!      ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃      正在返回...        ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃                         ┃");
        toxy(45,15);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛"); 
    	Sleep(1000);
    }
    
    void printf_ui(char str[],int line,char str1[],int line1,int flag)    //自定义界面输出内容
    {
    	if(flag==1)
    	{
    		system("cls");
    	}
    	toxy(45,8);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃                         ┃");	
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃                         ┃");	
    	toxy(71,12);
    	printf("┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃                         ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
        toxy(45,16);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(45,line);
    	printf("┃  %s",str);
    	toxy(45,line1);
    	printf("┃  %s",str1);
    	toxy(56,14);
    }
    
    void printf_change(char str[],int line,char str1[],int line1,int flag)       //只改变界面某行内容
    {
    	if(flag==1)
    	{
    		system("cls");
    	}
    	toxy(45,line);
    	printf("   %s",str);
    	toxy(45,line1);
    	printf("   %s",str1);
    	toxy(56,14);
    }
    
    
    void printf_title()                             //学生界面
    {	
    	system("cls");
    	printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
        printf("    学年     班级     姓名      学号            语文     英语     数学    历史    物理    总分    平均分\n");  
        printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
    }
    
    void printf_data(struct person per[],int flag)       //成绩输出界面
    {
    	for(int i=0;i<flag;i++)  
        {
            printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",per[i].term,per[i].classnum,per[i].name,per[i].num,per[i].chinese,per[i].en,per[i].math,per[i].history,per[i].physics,per[i].sum,per[i].average);  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
        }
    }
    
    

    系统已有数据显示界面

    void read_sql(struct person per[],int n)
    {
    	int flag=12,i,j,k;	
    	toxy(75,6);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(75,7);
    	printf("┃                         ┃");
    	toxy(75,8);
    	printf("┃   数据库中可查询数据:   ┃");
    	toxy(75,9);
    	printf("┃                         ┃");
    	toxy(75,10);
    	printf("┃     已有学年,班级:      ┃");
    	toxy(75,11);
    	printf("┃                         ┃");
    	toxy(75,12);
    	printf("┃                         ┃");
    	toxy(75,13);
    	printf("┃                         ┃");
    	toxy(75,14);
    	printf("┃                         ┃");
    	toxy(75,15);
    	printf("┃                         ┃");
    	toxy(75,16);
    	printf("┃                         ┃");
    	toxy(75,17);
    	printf("┃                         ┃");
    	toxy(75,18);
    	printf("┃                         ┃");
    	toxy(75,19);
    	//printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(75,12);
    	for(i=0;i<n;i++)
    	{
    		printf("┃       %d    %d        ┃",per[i].term,per[i].classnum);
    		for(i=1;per[i].term!=0;i++)
    		{
    			k = 0;
    			for(j=0;j!=i;j++)
    			{
    				if(per[i].term==per[j].term && per[i].classnum==per[j].classnum)
    				{
    					
    					k = 1;
    					break;
    				}
    			}
    			if(k==0) 
    			{
    				toxy(75,++flag);
    				printf("┃       %d    %d        ┃",per[i].term,per[i].classnum);
    			}
    		}	
    	}
    	toxy(75,++flag);
    	printf("┃                         ┃");
    	toxy(75,++flag);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");	
    }
    

    系统菜单自定义

    void system_menu()
    {	
    	
    	short back_Color;
    	short text_Color;	
    	printf_ui("系统背景字体颜色修改:",10,"  请输入字体颜色代码:",12,1);
    	printf_change("0 = 黑色 ,1 = 蓝色 ,2 = 绿色 ,3 = 湖蓝色 ",18, "4 = 红色 ,5 = 紫色 ,6 = 黄色 ,7 = 白色 ",19,0);
    	printf_change("8 = 灰色 ,9 = 淡蓝色 ,10 = 淡绿色 ,11 = 淡浅绿色 ",20,"12 = 淡红色 ,13 = 淡紫色 ,14 = 淡黄色 ,15 = 亮白色 ",21,0);
    	scanf("%d",&text_Color);
    	printf_ui("系统背景字体颜色修改:",10,"  请输入背景颜色代码:",12,0);
    	scanf("%d",&back_Color); 
    	char command[9]="color 3A";
    	if(text_Color>9&&text_Color<16) 
    	{
    		command[7]=text_Color-10+'A';
    	}
    	else
    	{
    		command[7]='0'+text_Color; 		//将textColor变量改为字符型	 
    	}
    	if(back_Color>9&&back_Color<16)
    	{
    		command[6]=back_Color-10+'A';
    	}
    	else
    	{
    		command[6]='0'+back_Color;		//将backColor变量改为字符型	
    	}	
    	system(command);
    	toxy(56,14);
    	Sleep(1000);
    	return;
    }
    

    成绩录入功能

    void add()                                      //成绩的录入与添加函数  
      {  
        FILE *fp;  
        int i=0,n=0;  
        char sign='y';                              //首先定义sign='y'  
        system("cls"); 								//清屏函数  系统中调用  
        person p[200]  ;                             
        while(sign!='n'&&sign!='N')                    //其实只有当输入N或n时才跳出循环  
          {  
    		printf_ui("     学生信息添加",10,"请输入学年(格式20xx):",12,1);
    		toxy(56,14);
    		scanf("%d",&p[i].term);
    		printf_ui("     学生信息添加",10,"      请输入班级:",12,1);
    		toxy(56,14);
    		scanf("%d",&p[i].classnum);
    		printf_ui("     学生信息添加",10,"      请输入姓名:",12,1);
    		toxy(56,14);
    		scanf("%s",&p[i].name);
    		printf_ui("     学生信息添加",10,"      请输入学号:",12,1);
    		toxy(56,14);
    		scanf("%s",&p[i].num);
    		printf_ui("     学生信息添加",10,"      请输入语文:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].chinese);
    		printf_ui("     学生信息添加",10,"      请输入英语:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].en);
    		printf_ui("     学生信息添加",10,"      请输入数学:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].math);
    		printf_ui("     学生信息添加",10,"      请输入历史:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].history);
    		printf_ui("     学生信息添加",10,"      请输入物理:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].physics);
    		printf_ui("      是否继续添加? ",10," 输n退出,否则继续:",12,1);
    		toxy(56,14);
    		scanf("\t%c",&sign);       
    		p[i].sum = p[i].chinese + p[i].en + p[i].history + p[i].math + p[i].physics;
    		p[i].average = p[i].sum / 5; 
            i++;  
            n=n+1;
    		printf_ui(" ",10,"      正在保存... ",11,1); 
    		Sleep(1000); 
            system( "cls ");  
       }
      
      
       if((fp=fopen("studata.txt","a"))==NULL)                    //以2进制形式进行文件尾追加//  
          {  
             no_sql();  
             system("pause");  
             return;                                         //如果文件出现错误 就返回  
           }  
            for(i=0;i<n;i++)  
            {
                fprintf(fp,"%d %d %s %s %.1f %.1f %.1f %.1f %.1f %.1f %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);    //以2进制形式写入文件中//一次写入一个数组//  
            
            } 
            fclose(fp);                                       //关闭文件  
            system("pasue");  
      }  
    

    学生成绩总览

    void scan()                        //显示记录  进行全面信息浏览  
    {  
    	person per[200];
        FILE *fp;  
        struct person temp;                               //定义临时数组用于交换时存放数组信息用于后面的交换//  
        float sum;                                         //总分  
        float s[200];  
        int i=0,n=0;  
        int j=0,k,t;  
        int m,term,flag,classnum;  
        system("cls");   
        if((fp=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
        {  
        	no_sql();
            system("pause");  
            return;  
        }
    	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&per[i].term,&per[i].classnum,per[i].name,per[i].num,&per[i].chinese,&per[i].en,&per[i].math,&per[i].history,&per[i].physics,&per[i].sum,&per[i].average)!=EOF)
        {    
            i++;
            n=n+1;
        }
        fclose(fp);
        read_sql(per,n);
    	toxy(45,8);
    	printf_ui("     班级成绩查询",10,"请输入学年(格式20xx):",12,0);	
    	toxy(56,14);
    	scanf("%d",&term);
    	printf_ui("     班级成绩查询",10,"      请输入班级:",12,0);
    	toxy(56,14);
    	scanf("%d",&classnum);
    	system("cls");	
    	for(i=0;i<n;i++)
    	{
    	 	if(per[i].term==term&&per[i].classnum==classnum)
    	 	{
    	 		per[flag]=per[i];
    	 		flag++;	 		
    		 }
    	 }     	 
        printf_title();
        printf_data(per,flag);                            
        system("pause");  
        system("cls"); 
      }  
    

    学生信息查询

    void query()                     //学生信息的不同方式查询  
    {      
        system("cls");
        person p[200];
        FILE *fp1;  
        int i=0;
        int n=0;  
        char m;   
        toxy(45,2);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,3);
    	printf("┃                         ┃");
    	toxy(45,4);
    	printf("┃      学生成绩查询       ┃");
    	toxy(45,5);
    	printf("┃                         ┃");
    	toxy(45,6);
    	printf("┃      请输入选择:        ┃");
    	toxy(45,7);
    	printf("┃                         ┃");
    	toxy(45,8);
    	printf("┃   [ 1 ].模糊查询        ┃");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃   [ 2 ].姓名查询        ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃   [ 3 ].学号查询        ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃   [ 4 ].返回            ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
        toxy(45,16);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛"); 
    	toxy(64,6); 
    	scanf("%c",&m);  
        while(m!='1'&&m!='2'&&m!='3'&&m!='4'&&m!='0')  
        {  	
        	toxy(45,4);
    		printf("┃      学生成绩查询       ┃");
    		toxy(45,6);
    		printf("┃      请输入选择:        ┃");
    		toxy(64,6);
    	    scanf("%c",&m);  
        }  
        if((fp1=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
        {  
        	no_sql();
    		return;  
        }    
        while(fscanf(fp1,"%d%d%s%s%f%f%f%f%f%f%f",&p[i].term,&p[i].classnum,p[i].name,p[i].num,&p[i].chinese,&p[i].en,&p[i].math,&p[i].history,&p[i].physics,&p[i].sum,&p[i].average)!=EOF)
        {    
             i++;
             n=n+1;
        }         
        if(m=='1')                                                 //模糊查询  
        {  
            char s[3];                                             //定义输入的文字所占的字节 /一个汉字占2个字节 外加一结尾符此处小心溢出  
            int i=0;  
            system("cls");  
    		printf_ui("     学生成绩查询",10,"    请输入学生的姓:",12,1); 
            scanf("%s",s);	 
    		printf_title(); 
            for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
            {  
      
              if(p[i].name[0]==s[0]&&p[i].name[1]==s[1])              //比较per[i].name与所输入的前俩个字符是否相同//  
                {  
                      
                    printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
                }
            }  
        }  
           
        if(m=='2')                                               //姓名查询  
        {  
            system("cls");
            char s[20];  
            int i=0;  
            printf_ui("     学生成绩查询",10,"    请输入学生的姓名:",12,1);
            scanf("\t%s",s);
    		printf_title();
    		for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
        	{  
    
          		if((strcmp(p[i].name,s))==0)              //比较per[i].name与所输入的前俩个字符是否相同//  
            		{  
                  
                		printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                		printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            		}		
        	}
    		i=0;    
            while(strcmp(p[i].name,s)!=0&&i<n)  i++;                              //比较per[i].name与所输入学号是否相同//                        
            if(i==n)  
            {  
                no_sql();  
                return;  
            }  
    	}   
        if(m=='3')                                                            //学号查询  
        {  
          	char s[15];  
        	int i=0;  
            toxy(45,8);
    		printf_ui("     学生成绩查询",10,"    请输入学生的学号:",12,1);   
            scanf("\t%s",s);
    		printf_title();
            for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
        	{  
          		if((strcmp(p[i].num,s))==0)              //比较per[i].name与所输入的前俩个字符是否相同//  
            		{                   
                		printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                		printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            		}		
        	}
    		i=0;    
            while(strcmp(p[i].num,s)!=0&&i<n)  i++;                              //比较per[i].name与所输入学号是否相同//                        
            if(i==n)  
            {  
                no_sql();  
                return;  
            }   
        }  
                fclose(fp1);
    			toxy(50,18); 
                system("pause"); 
    }  
    

    学生成绩排名

    void date()       //查询排名 
    {  	 
    	person per[200];
    	FILE *fp;  
    	struct person temp;                               //定义临时数组用于交换时存放数组信息用于后面的交换//  
    	float sum,pass=60;                                         //总分  
    	float s[200];  
    	int i=0,n=0;  
    	int j=0,k,t;  
    	int term,flag,classnum,flagg; 
    	char m; 
    	system("cls"); 
    	if((fp=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
      	{  
         	no_sql();
         	return;  
        }
        
     	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&per[i].term,&per[i].classnum,per[i].name,per[i].num,&per[i].chinese,&per[i].en,&per[i].math,&per[i].history,&per[i].physics,&per[i].sum,&per[i].average)!=EOF)
        {    
         	i++;
         	n=n+1;
        }
        fclose(fp);
        toxy(45,2);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,3);
    	printf("┃                         ┃");
    	toxy(45,4);
    	printf("┃      学生成绩排名       ┃");
    	toxy(45,5);
    	printf("┃                         ┃");
    	toxy(45,6);
    	printf("┃      请输入选择:        ┃");
    	toxy(45,7);
    	printf("┃                         ┃");
    	toxy(45,8);
    	printf("┃   [ 1 ].语文            ┃");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃   [ 2 ].英语            ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃   [ 3 ].数学            ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃   [ 4 ].历史            ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
    	toxy(45,16);
    	printf("┃   [ 5 ].物理            ┃");
    	toxy(45,17);
    	printf("┃                         ┃");
    	toxy(45,18);
    	printf("┃   [ 6 ].总分            ┃");
    	toxy(45,19);
    	printf("┃                         ┃");
    	toxy(45,20);	
    	printf("┃   [ 7 ].各科班级平均分  ┃");
    	toxy(45,21);
    	printf("┃                         ┃");
    	toxy(45,22);	   
        printf("┃   [ 8 ].不及格同学      ┃"); 
        toxy(45,23);
    	printf("┃                         ┃");
    	toxy(45,24);	   
        printf("┃   [ 0 ].返回上级        ┃"); 
        toxy(45,25);
    	printf("┃                         ┃");
        toxy(45,26);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(64,6); 
    	scanf("%c",&m);    
        while(m!='0'&&m!='1'&&m!='2'&&m!='3'&&m!='4'&&m!='5'&&m!='6'&&m!='7'&&m!='8')  
        {  
    		toxy(45,6);
    		printf("┃      请输入选择:        ┃");
    		toxy(64,6); 
    		scanf("%c",&m);   
        }	 
    	if(m=='0') 
    	{
    		return; 
    	}
     	read_sql(per,n);
     	printf_ui("     学生成绩排名",10,"请输入学年(格式20xx):",12,0); 
    	scanf("%d",&term);
    	printf_ui("     学生成绩排名",10,"      请输入班级:",12,0); 
    	scanf("%d",&classnum);
     	system("cls");
     	for(i=0;i<n;i++)        //选择符合条件的班级 
     	{
     		if(per[i].term==term&&per[i].classnum==classnum)
     	{
     		per[flag]=per[i];
     		flag++; 		
    	}
     	} 			  
    	if(m=='2')  
      	{  
          	for(int i=0;i<flag-1;i++)                           //采用冒泡法进行排序//  
          	{  
             	k=i;  
            	for(j=i+1;j<flag;j++)
            	{
            		if(per[j].en>per[k].en)                              //排序//比较大小//  
            		{
    					k=j;
            		}
            	}
            	temp=per[k];per[k]=per[i];per[i]=temp;                  //当符合条件时进行数据交换//  
          	}
    		printf_title();  
            printf_data(per,flag);
    		system("pause"); 
        }  	  
    	if(m=='3')  
      	{  
      	  	for(int i=0;i<flag-1;i++)  
         	{  
              	k=i;  
           		for(j=i+1;j<flag;j++)  
            	if(per[j].math>per[k].math)  
              		k=j;  
            	temp=per[k];per[k]=per[i];per[i]=temp;  
          	}  
            printf_title();
            printf_data(per,flag);            
    		system("pause"); 
        }
        if(m=='1')  
        {  
            for(int i=0;i<flag-1;i++)  
            {  
            	k=i;  
                for(j=i+1;j<flag;j++)  
                if(per[j].chinese>per[k].chinese)  
                k=j;  
                temp=per[k];per[k]=per[i];per[i]=temp;  
            }  
                printf_title();
            	printf_data(per,flag); 
    			system("pause"); 
        } 
        if(m=='4')  
      	{  
        	for(int i=0;i<flag-1;i++)  
         	{  
              	k=i;  
           		for(j=i+1;j<flag;j++)  
            	if(per[j].history>per[k].history)  
              	k=j;  
            	temp=per[k];per[k]=per[i];per[i]=temp;  
          	}  
            printf_title();
            printf_data(per,flag);
    		system("pause"); 
        }  
        if(m=='5')  
        {  
            for(int i=0;i<flag-1;i++)  
            {  
                k=i;  
               	for(j=i+1;j<flag;j++)  
                if(per[j].physics>per[k].physics)  
                k=j;  
                temp=per[k];per[k]=per[i];per[i]=temp;  
            }  
            printf_title();
            printf_data(per,flag);
    		system("pause");  
        } 
        if(m=='6')  
        {  
    		for(int i=0;i<flag-1;i++)                           //采用冒泡法进行排序//  
            {  
                k=i;  
                for(j=i+1;j<flag;j++)
                {
                	if(per[j].sum>per[k].sum)                              //排序//比较大小//  
                	{
    					k=j;
                	}
                }
                temp=per[k];per[k]=per[i];per[i]=temp;                  //当符合条件时进行数据交换//  
            } 
            printf_title();
            printf_data(per,flag);
    		system("pause");
        }  
    	if(m=='7')                 //各科班级平均分  
        {  
           	for(i=0;i<flag;i++)
           	{
    			s[0]=per[i].chinese+s[0]; 
    			s[1]=per[i].en+s[1];
    			s[2]=per[i].math+s[2];   
    			s[3]=per[i].history+s[3];   
    			s[4]=per[i].physics+s[4];  
    		}		
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            printf("     语文     英语     数学     历史     物理     \n");  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            printf("     %.1f     %.1f     %.1f     %.1f     %.1f    \n",s[0]/flag,s[1]/flag,s[2]/flag,s[3]/flag,s[4]/flag);  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
    		system("pause");
    
        }
    	      
    	if(m=='8')
    	{
    		printf_title();
            for(int i=0;i<flag;i++)  
            {
            	if(per[i].chinese<pass||per[i].en<pass||per[i].math<pass||per[i].history<pass||per[i].physics<pass)
    			{
                printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",per[i].term,per[i].classnum,per[i].name,per[i].num,per[i].chinese,per[i].en,per[i].math,per[i].history,per[i].physics,per[i].sum,per[i].average);  
                printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");        	
    			}
    		}
            system("pause");		
    	}    
    	    
    		
    }
    

    学生数据删除

    void delet()     //数据删除 
    {  
    	person p[200];
    	FILE *fp;  
    	char s[10];  
    	int i=0,n=0;  
      	if((fp=fopen("studata.txt","r"))==NULL)                  //以2进制方式读取文件信息//  
      	{  
         	no_sql(); 
         	return;  
       	} 
    	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&p[i].term,&p[i].classnum,p[i].name,p[i].num,&p[i].chinese,&p[i].en,&p[i].math,&p[i].history,&p[i].physics,&p[i].sum,&p[i].average)!=EOF)
        {    
             i++;
             n=n+1;
        } 
    	fclose(fp);
    	system("cls");
    	printf_ui("     学生数据删除",10,"      请输入学号:",12,1); 
    	scanf("%s",s);  
    	i=0;
        while(strcmp(p[i].num,s)!=0&&i<n)
        {
             i++;
        }                           //进行比较 找到所需要的信息  
            if(i==n)  
             {  
                no_sql();
                return;  
             }  
        else
    	{
    	system("cls");  
        FILE *fin,*ftp;
        fin=fopen("studata.txt","r");//读打开原文件123.txt
        ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
        if(fin==NULL || ftp==NULL){
            printf("Open the file failure...\n");
            exit(0);
        }
        int kk=0;
        while(kk<n) //从原文件读取一行
        {
            if(strcmp(p[kk].num,s)!=0)//检验是要删除的行吗?
            {
                fprintf(ftp,"%d %d %s %s %.1f %.1f %.1f %.1f %.1f %.1f %.1f\n",p[kk].term,p[kk].classnum,p[kk].name,p[kk].num,p[kk].chinese,p[kk].en,p[kk].math,p[kk].history,p[kk].physics,p[kk].sum,p[kk].average);    //以2进制形式写入文件中//一次写入一个数组//  
            }
     
           kk++;    
        } 
        fclose(fin);
        fclose(ftp);
        remove("studata.txt");//删除原文件
        rename("tmp.txt","studata.txt");//将临时文件名改为原文件名
        printf_ui("      删除成功!",10,"      正在返回...",12,1); 
    	Sleep(1500); 
    	} 
     
    }
    

    菜单

    int menu_select()                              //菜单选择系统函数  
    {  
         char c;  
          do{  
            system("cls");
    		char t;
    		toxy(45,2);
    		printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    		toxy(45,3);
    		printf("┃                         ┃");
    		toxy(45,4);
    		printf("┃     成绩查询管理系统    ┃");
    		toxy(45,5);
    		printf("┃                         ┃");
    		toxy(45,6);
    		printf("┃           HM            ┃");
    		toxy(45,7);
    		printf("┃                         ┃");
    		toxy(45,8);
    		printf("┃   [ 1 ].添加学生信息    ┃");
    		toxy(45,9);
    		printf("┃                         ┃");
    		toxy(45,10);
    		printf("┃   [ 2 ].班级成绩查询    ┃");
    		toxy(45,11);
    		printf("┃                         ┃");
    		toxy(45,12);
    		printf("┃   [ 3 ].学生信息搜索    ┃");
    		toxy(45,13);
    		printf("┃                         ┃");
    		toxy(45,14);
    		printf("┃   [ 4 ].学生成绩排名    ┃");
    		toxy(45,15);
    		printf("┃                         ┃");
    		toxy(45,16);
    		printf("┃   [ 5 ].删除学生信息    ┃");
    		toxy(45,17);
    		printf("┃                         ┃");
    		toxy(45,18);
    		printf("┃   [ 6 ].系统界面设置    ┃");
    		toxy(45,19);
    		printf("┃                         ┃");
    		toxy(45,20);	
    		printf("┃   [ 0 ].退出管理系统    ┃");
    		toxy(45,21);
    		printf("┃                         ┃");
    		toxy(45,22);	   
            printf("┃   请您选择(0-6):        ┃"); 
            toxy(45,23);
    		printf("┃                         ┃");
            toxy(45,24);
    		printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    		toxy(64,22); 
            c=getchar();  
         }while(c<'0'||c>'6');  
            return (c-'0');                                      //字符减去'0'得到的是数字整型//  
    }  
    

    主函数

    int main()  
    {  	
    	system("color 0F");
      	for(;;)                                                 //循环使用主界面直到遇到结束命令  
      	{   
        	switch(menu_select())                               // 函数的调用//  
          	{  
    	  		case 1:              
              		add();  //学生记录添加 
              		break;  
          		case 2: 
              		scan();  //学生信息浏览
              		break;  
          		case 3:  
              		query();  //学生信息查询
              		break;  
          		case 4:  
              		date();  //数据计算  
             		break;  
          		case 5:  
               		delet();   //数据删除 
               		break;
    			case 6:
    				system_menu(); //系统菜单修改
    				break;  
          		case 0:  
          			system("cls"); 
                	printf_ui("    感谢使用!",10,"    正在退出...",12,1); 
    				Sleep(1000);
    		        exit(0);  
          	}	  
      	}  
        system("cls");      
        return 0;
    } 
    
    
    

    代码全览

    #include<stdio.h>
    #include<string.h>
    #include<windows.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<windows.h>
    #define N sizeof(struct BOOK)
     
    typedef struct person                               //定义结构体  
    {  
        char num[15];   //学号  
        char name[20]; //姓名  
        float chinese;    //语文成绩  
        float en;      //英语成绩  
        float  math;      //数学成绩
        float  history;      //历史成绩  
        float  physics;  //物理成绩 
    	int  term;     //学期
    	int  classnum; //班级 
    	float sum;   //总分 
    	float average; //平均分 
    }person;  
    person per[200];  //定义100                                        
    void HideCursor()     //隐藏光标
    {
     CONSOLE_CURSOR_INFO cursor_info = {1, 0}; 
     SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
    }
     
    void color(short x)
    {
    	if(x>=0&&x<=15)
    	{
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
    	}
    	else
    	{
    		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
    	}
    } 
     
    void toxy(int x, int y)      //将光标移动到X,Y坐标处
    {
    COORD pos = { x , y };
    HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(Out, pos); 
    }
    
    void no_sql()
    {
    	system("cls");
    	toxy(45,8);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃     数据库无信息!      ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃      正在返回...        ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃                         ┃");
        toxy(45,15);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛"); 
    	Sleep(1000);
    }
        
    void read_sql(struct person per[],int n)
    {
    	int flag=12,i,j,k;	
    	toxy(75,6);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(75,7);
    	printf("┃                         ┃");
    	toxy(75,8);
    	printf("┃   数据库中可查询数据:   ┃");
    	toxy(75,9);
    	printf("┃                         ┃");
    	toxy(75,10);
    	printf("┃     已有学年,班级:      ┃");
    	toxy(75,11);
    	printf("┃                         ┃");
    	toxy(75,12);
    	printf("┃                         ┃");
    	toxy(75,13);
    	printf("┃                         ┃");
    	toxy(75,14);
    	printf("┃                         ┃");
    	toxy(75,15);
    	printf("┃                         ┃");
    	toxy(75,16);
    	printf("┃                         ┃");
    	toxy(75,17);
    	printf("┃                         ┃");
    	toxy(75,18);
    	printf("┃                         ┃");
    	toxy(75,19);
    	//printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(75,12);
    	for(i=0;i<n;i++)
    	{
    		printf("┃       %d    %d        ┃",per[i].term,per[i].classnum);
    		for(i=1;per[i].term!=0;i++)
    		{
    			k = 0;
    			for(j=0;j!=i;j++)
    			{
    				if(per[i].term==per[j].term && per[i].classnum==per[j].classnum)
    				{
    					
    					k = 1;
    					break;
    				}
    			}
    			if(k==0) 
    			{
    				toxy(75,++flag);
    				printf("┃       %d    %d        ┃",per[i].term,per[i].classnum);
    			}
    		}	
    	}
    	toxy(75,++flag);
    	printf("┃                         ┃");
    	toxy(75,++flag);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");	
    }
    
    void printf_ui(char str[],int line,char str1[],int line1,int flag)
    {
    	if(flag==1)
    	{
    		system("cls");
    	}
    	toxy(45,8);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃                         ┃");	
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃                         ┃");	
    	toxy(71,12);
    	printf("┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃                         ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
        toxy(45,16);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(45,line);
    	printf("┃  %s",str);
    	toxy(45,line1);
    	printf("┃  %s",str1);
    	toxy(56,14);
    }
    
    void printf_change(char str[],int line,char str1[],int line1,int flag)
    {
    	if(flag==1)
    	{
    		system("cls");
    	}
    	toxy(45,line);
    	printf("   %s",str);
    	toxy(45,line1);
    	printf("   %s",str1);
    	toxy(56,14);
    }
    
    
    void printf_title()
    {	
    	system("cls");
    	printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
        printf("    学年     班级     姓名      学号            语文     英语     数学    历史    物理    总分    平均分\n");  
        printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
    }
    
    void printf_data(struct person per[],int flag)
    {
    	for(int i=0;i<flag;i++)  
        {
            printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",per[i].term,per[i].classnum,per[i].name,per[i].num,per[i].chinese,per[i].en,per[i].math,per[i].history,per[i].physics,per[i].sum,per[i].average);  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
        }
    }
    
    void system_menu()
    {	
    	
    	short back_Color;
    	short text_Color;	
    	printf_ui("系统背景字体颜色修改:",10,"  请输入字体颜色代码:",12,1);
    	printf_change("0 = 黑色 ,1 = 蓝色 ,2 = 绿色 ,3 = 湖蓝色 ",18, "4 = 红色 ,5 = 紫色 ,6 = 黄色 ,7 = 白色 ",19,0);
    	printf_change("8 = 灰色 ,9 = 淡蓝色 ,10 = 淡绿色 ,11 = 淡浅绿色 ",20,"12 = 淡红色 ,13 = 淡紫色 ,14 = 淡黄色 ,15 = 亮白色 ",21,0);
    	scanf("%d",&text_Color);
    	printf_ui("系统背景字体颜色修改:",10,"  请输入背景颜色代码:",12,0);
    	scanf("%d",&back_Color); 
    	char command[9]="color 3A";
    	if(text_Color>9&&text_Color<16) 
    	{
    		command[7]=text_Color-10+'A';
    	}
    	else
    	{
    		command[7]='0'+text_Color; 		//将textColor变量改为字符型	 
    	}
    	if(back_Color>9&&back_Color<16)
    	{
    		command[6]=back_Color-10+'A';
    	}
    	else
    	{
    		command[6]='0'+back_Color;		//将backColor变量改为字符型	
    	}	
    	system(command);
    	toxy(56,14);
    	Sleep(1000);
    	return;
    }
    int menu_select()                              //菜单选择系统函数  
    {  
         char c;  
          do{  
            system("cls");
    		char t;
    		toxy(45,2);
    		printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    		toxy(45,3);
    		printf("┃                         ┃");
    		toxy(45,4);
    		printf("┃     成绩查询管理系统    ┃");
    		toxy(45,5);
    		printf("┃                         ┃");
    		toxy(45,6);
    		printf("┃           HM            ┃");
    		toxy(45,7);
    		printf("┃                         ┃");
    		toxy(45,8);
    		printf("┃   [ 1 ].添加学生信息    ┃");
    		toxy(45,9);
    		printf("┃                         ┃");
    		toxy(45,10);
    		printf("┃   [ 2 ].班级成绩查询    ┃");
    		toxy(45,11);
    		printf("┃                         ┃");
    		toxy(45,12);
    		printf("┃   [ 3 ].学生信息搜索    ┃");
    		toxy(45,13);
    		printf("┃                         ┃");
    		toxy(45,14);
    		printf("┃   [ 4 ].学生成绩排名    ┃");
    		toxy(45,15);
    		printf("┃                         ┃");
    		toxy(45,16);
    		printf("┃   [ 5 ].删除学生信息    ┃");
    		toxy(45,17);
    		printf("┃                         ┃");
    		toxy(45,18);
    		printf("┃   [ 6 ].系统界面设置    ┃");
    		toxy(45,19);
    		printf("┃                         ┃");
    		toxy(45,20);	
    		printf("┃   [ 0 ].退出管理系统    ┃");
    		toxy(45,21);
    		printf("┃                         ┃");
    		toxy(45,22);	   
            printf("┃   请您选择(0-6):        ┃"); 
            toxy(45,23);
    		printf("┃                         ┃");
            toxy(45,24);
    		printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    		toxy(64,22); 
            c=getchar();  
         }while(c<'0'||c>'6');  
            return (c-'0');                                      //字符减去'0'得到的是数字整型//  
    }  
      
    void add()                                      //成绩的录入与添加函数  
      {  
        FILE *fp;  
        int i=0,n=0;  
        char sign='y';                              //首先定义sign='y'  
        system("cls"); 								//清屏函数  系统中调用  
        person p[200]  ;                             
        while(sign!='n'&&sign!='N')                    //其实只有当输入N或n时才跳出循环  
          {  
    		printf_ui("     学生信息添加",10,"请输入学年(格式20xx):",12,1);
    		toxy(56,14);
    		scanf("%d",&p[i].term);
    		printf_ui("     学生信息添加",10,"      请输入班级:",12,1);
    		toxy(56,14);
    		scanf("%d",&p[i].classnum);
    		printf_ui("     学生信息添加",10,"      请输入姓名:",12,1);
    		toxy(56,14);
    		scanf("%s",&p[i].name);
    		printf_ui("     学生信息添加",10,"      请输入学号:",12,1);
    		toxy(56,14);
    		scanf("%s",&p[i].num);
    		printf_ui("     学生信息添加",10,"      请输入语文:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].chinese);
    		printf_ui("     学生信息添加",10,"      请输入英语:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].en);
    		printf_ui("     学生信息添加",10,"      请输入数学:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].math);
    		printf_ui("     学生信息添加",10,"      请输入历史:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].history);
    		printf_ui("     学生信息添加",10,"      请输入物理:",12,1);
    		toxy(56,14);
    		scanf("%f",&p[i].physics);
    		printf_ui("      是否继续添加? ",10," 输n退出,否则继续:",12,1);
    		toxy(56,14);
    		scanf("\t%c",&sign);       
    		p[i].sum = p[i].chinese + p[i].en + p[i].history + p[i].math + p[i].physics;
    		p[i].average = p[i].sum / 5; 
            i++;  
            n=n+1;
    		printf_ui(" ",10,"      正在保存... ",11,1); 
    		Sleep(1000); 
            system( "cls ");  
       }
      
      
       if((fp=fopen("studata.txt","a"))==NULL)                    //以2进制形式进行文件尾追加//  
          {  
             no_sql();  
             system("pause");  
             return;                                         //如果文件出现错误 就返回  
           }  
            for(i=0;i<n;i++)  
            {
                fprintf(fp,"%d %d %s %s %.1f %.1f %.1f %.1f %.1f %.1f %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);    //以2进制形式写入文件中//一次写入一个数组//  
            
            } 
            fclose(fp);                                       //关闭文件  
            system("pasue");  
      }  
      
    void scan()                        //显示记录  进行全面信息浏览  
    {  
    	person per[200];
        FILE *fp;  
        struct person temp;                               //定义临时数组用于交换时存放数组信息用于后面的交换//  
        float sum;                                         //总分  
        float s[200];  
        int i=0,n=0;  
        int j=0,k,t;  
        int m,term,flag,classnum;  
        system("cls");   
        if((fp=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
        {  
        	no_sql();
            system("pause");  
            return;  
        }
    	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&per[i].term,&per[i].classnum,per[i].name,per[i].num,&per[i].chinese,&per[i].en,&per[i].math,&per[i].history,&per[i].physics,&per[i].sum,&per[i].average)!=EOF)
        {    
            i++;
            n=n+1;
        }
        fclose(fp);
        read_sql(per,n);
    	toxy(45,8);
    	printf_ui("     班级成绩查询",10,"请输入学年(格式20xx):",12,0);	
    	toxy(56,14);
    	scanf("%d",&term);
    	printf_ui("     班级成绩查询",10,"      请输入班级:",12,0);
    	toxy(56,14);
    	scanf("%d",&classnum);
    	system("cls");	
    	for(i=0;i<n;i++)
    	{
    	 	if(per[i].term==term&&per[i].classnum==classnum)
    	 	{
    	 		per[flag]=per[i];
    	 		flag++;	 		
    		 }
    	 }     	 
        printf_title();
        printf_data(per,flag);                            
        system("pause");  
        system("cls"); 
      }  
      
    void query()                     //学生信息的不同方式查询  
    {      
        system("cls");
        person p[200];
        FILE *fp1;  
        int i=0;
        int n=0;  
        char m;   
        toxy(45,2);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,3);
    	printf("┃                         ┃");
    	toxy(45,4);
    	printf("┃      学生成绩查询       ┃");
    	toxy(45,5);
    	printf("┃                         ┃");
    	toxy(45,6);
    	printf("┃      请输入选择:        ┃");
    	toxy(45,7);
    	printf("┃                         ┃");
    	toxy(45,8);
    	printf("┃   [ 1 ].模糊查询        ┃");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃   [ 2 ].姓名查询        ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃   [ 3 ].学号查询        ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃   [ 4 ].返回            ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
        toxy(45,16);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛"); 
    	toxy(64,6); 
    	scanf("%c",&m);  
        while(m!='1'&&m!='2'&&m!='3'&&m!='4'&&m!='0')  
        {  	
        	toxy(45,4);
    		printf("┃      学生成绩查询       ┃");
    		toxy(45,6);
    		printf("┃      请输入选择:        ┃");
    		toxy(64,6);
    	    scanf("%c",&m);  
        }  
        if((fp1=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
        {  
        	no_sql();
    		return;  
        }    
        while(fscanf(fp1,"%d%d%s%s%f%f%f%f%f%f%f",&p[i].term,&p[i].classnum,p[i].name,p[i].num,&p[i].chinese,&p[i].en,&p[i].math,&p[i].history,&p[i].physics,&p[i].sum,&p[i].average)!=EOF)
        {    
             i++;
             n=n+1;
        }         
        if(m=='1')                                                 //模糊查询  
        {  
            char s[3];                                             //定义输入的文字所占的字节 /一个汉字占2个字节 外加一结尾符此处小心溢出  
            int i=0;  
            system("cls");  
    		printf_ui("     学生成绩查询",10,"    请输入学生的姓:",12,1); 
            scanf("%s",s);	 
    		printf_title(); 
            for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
            {  
      
              if(p[i].name[0]==s[0]&&p[i].name[1]==s[1])              //比较per[i].name与所输入的前俩个字符是否相同//  
                {  
                      
                    printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
                }
            }  
        }  
           
        if(m=='2')                                               //姓名查询  
        {  
            system("cls");
            char s[20];  
            int i=0;  
            printf_ui("     学生成绩查询",10,"    请输入学生的姓名:",12,1);
            scanf("\t%s",s);
    		printf_title();
    		for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
        	{  
    
          		if((strcmp(p[i].name,s))==0)              //比较per[i].name与所输入的前俩个字符是否相同//  
            		{  
                  
                		printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                		printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            		}		
        	}
    		i=0;    
            while(strcmp(p[i].name,s)!=0&&i<n)  i++;                              //比较per[i].name与所输入学号是否相同//                        
            if(i==n)  
            {  
                no_sql();  
                return;  
            }  
    	}   
        if(m=='3')                                                            //学号查询  
        {  
          	char s[15];  
        	int i=0;  
            toxy(45,8);
    		printf_ui("     学生成绩查询",10,"    请输入学生的学号:",12,1);   
            scanf("\t%s",s);
    		printf_title();
            for(i=0;i<n;i++)                                               //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  
        	{  
          		if((strcmp(p[i].num,s))==0)              //比较per[i].name与所输入的前俩个字符是否相同//  
            		{                   
                		printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",p[i].term,p[i].classnum,p[i].name,p[i].num,p[i].chinese,p[i].en,p[i].math,p[i].history,p[i].physics,p[i].sum,p[i].average);  
                		printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            		}		
        	}
    		i=0;    
            while(strcmp(p[i].num,s)!=0&&i<n)  i++;                              //比较per[i].name与所输入学号是否相同//                        
            if(i==n)  
            {  
                no_sql();  
                return;  
            }   
        }  
                fclose(fp1);
    			toxy(50,18); 
                system("pause"); 
    }  
                                                                               
    void date()       //查询排名 
    {  	 
    	person per[200];
    	FILE *fp;  
    	struct person temp;                               //定义临时数组用于交换时存放数组信息用于后面的交换//  
    	float sum,pass=60;                                         //总分  
    	float s[200];  
    	int i=0,n=0;  
    	int j=0,k,t;  
    	int term,flag,classnum,flagg; 
    	char m; 
    	system("cls"); 
    	if((fp=fopen("studata.txt","r"))==NULL)                 //以2进制方式读取文件信息//  
      	{  
         	no_sql();
         	return;  
        }
        
     	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&per[i].term,&per[i].classnum,per[i].name,per[i].num,&per[i].chinese,&per[i].en,&per[i].math,&per[i].history,&per[i].physics,&per[i].sum,&per[i].average)!=EOF)
        {    
         	i++;
         	n=n+1;
        }
        fclose(fp);
        toxy(45,2);
    	printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓");
    	toxy(45,3);
    	printf("┃                         ┃");
    	toxy(45,4);
    	printf("┃      学生成绩排名       ┃");
    	toxy(45,5);
    	printf("┃                         ┃");
    	toxy(45,6);
    	printf("┃      请输入选择:        ┃");
    	toxy(45,7);
    	printf("┃                         ┃");
    	toxy(45,8);
    	printf("┃   [ 1 ].语文            ┃");
    	toxy(45,9);
    	printf("┃                         ┃");
    	toxy(45,10);
    	printf("┃   [ 2 ].英语            ┃");
    	toxy(45,11);
    	printf("┃                         ┃");
    	toxy(45,12);
    	printf("┃   [ 3 ].数学            ┃");
    	toxy(45,13);
    	printf("┃                         ┃");
    	toxy(45,14);
    	printf("┃   [ 4 ].历史            ┃");
    	toxy(45,15);
    	printf("┃                         ┃");
    	toxy(45,16);
    	printf("┃   [ 5 ].物理            ┃");
    	toxy(45,17);
    	printf("┃                         ┃");
    	toxy(45,18);
    	printf("┃   [ 6 ].总分            ┃");
    	toxy(45,19);
    	printf("┃                         ┃");
    	toxy(45,20);	
    	printf("┃   [ 7 ].各科班级平均分  ┃");
    	toxy(45,21);
    	printf("┃                         ┃");
    	toxy(45,22);	   
        printf("┃   [ 8 ].不及格同学      ┃"); 
        toxy(45,23);
    	printf("┃                         ┃");
    	toxy(45,24);	   
        printf("┃   [ 0 ].返回上级        ┃"); 
        toxy(45,25);
    	printf("┃                         ┃");
        toxy(45,26);
    	printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    	toxy(64,6); 
    	scanf("%c",&m);    
        while(m!='0'&&m!='1'&&m!='2'&&m!='3'&&m!='4'&&m!='5'&&m!='6'&&m!='7'&&m!='8')  
        {  
    		toxy(45,6);
    		printf("┃      请输入选择:        ┃");
    		toxy(64,6); 
    		scanf("%c",&m);   
        }	 
    	if(m=='0') 
    	{
    		return; 
    	}
     	read_sql(per,n);
     	printf_ui("     学生成绩排名",10,"请输入学年(格式20xx):",12,0); 
    	scanf("%d",&term);
    	printf_ui("     学生成绩排名",10,"      请输入班级:",12,0); 
    	scanf("%d",&classnum);
     	system("cls");
     	for(i=0;i<n;i++)        //选择符合条件的班级 
     	{
     		if(per[i].term==term&&per[i].classnum==classnum)
     	{
     		per[flag]=per[i];
     		flag++; 		
    	}
     	} 			  
    	if(m=='2')  
      	{  
          	for(int i=0;i<flag-1;i++)                           //采用冒泡法进行排序//  
          	{  
             	k=i;  
            	for(j=i+1;j<flag;j++)
            	{
            		if(per[j].en>per[k].en)                              //排序//比较大小//  
            		{
    					k=j;
            		}
            	}
            	temp=per[k];per[k]=per[i];per[i]=temp;                  //当符合条件时进行数据交换//  
          	}
    		printf_title();  
            printf_data(per,flag);
    		system("pause"); 
        }  	  
    	if(m=='3')  
      	{  
      	  	for(int i=0;i<flag-1;i++)  
         	{  
              	k=i;  
           		for(j=i+1;j<flag;j++)  
            	if(per[j].math>per[k].math)  
              		k=j;  
            	temp=per[k];per[k]=per[i];per[i]=temp;  
          	}  
            printf_title();
            printf_data(per,flag);            
    		system("pause"); 
        }
        if(m=='1')  
        {  
            for(int i=0;i<flag-1;i++)  
            {  
            	k=i;  
                for(j=i+1;j<flag;j++)  
                if(per[j].chinese>per[k].chinese)  
                k=j;  
                temp=per[k];per[k]=per[i];per[i]=temp;  
            }  
                printf_title();
            	printf_data(per,flag); 
    			system("pause"); 
        } 
        if(m=='4')  
      	{  
        	for(int i=0;i<flag-1;i++)  
         	{  
              	k=i;  
           		for(j=i+1;j<flag;j++)  
            	if(per[j].history>per[k].history)  
              	k=j;  
            	temp=per[k];per[k]=per[i];per[i]=temp;  
          	}  
            printf_title();
            printf_data(per,flag);
    		system("pause"); 
        }  
        if(m=='5')  
        {  
            for(int i=0;i<flag-1;i++)  
            {  
                k=i;  
               	for(j=i+1;j<flag;j++)  
                if(per[j].physics>per[k].physics)  
                k=j;  
                temp=per[k];per[k]=per[i];per[i]=temp;  
            }  
            printf_title();
            printf_data(per,flag);
    		system("pause");  
        } 
        if(m=='6')  
        {  
    		for(int i=0;i<flag-1;i++)                           //采用冒泡法进行排序//  
            {  
                k=i;  
                for(j=i+1;j<flag;j++)
                {
                	if(per[j].sum>per[k].sum)                              //排序//比较大小//  
                	{
    					k=j;
                	}
                }
                temp=per[k];per[k]=per[i];per[i]=temp;                  //当符合条件时进行数据交换//  
            } 
            printf_title();
            printf_data(per,flag);
    		system("pause");
        }  
    	if(m=='7')                 //各科班级平均分  
        {  
           	for(i=0;i<flag;i++)
           	{
    			s[0]=per[i].chinese+s[0]; 
    			s[1]=per[i].en+s[1];
    			s[2]=per[i].math+s[2];   
    			s[3]=per[i].history+s[3];   
    			s[4]=per[i].physics+s[4];  
    		}		
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            printf("     语文     英语     数学     历史     物理     \n");  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
            printf("     %.1f     %.1f     %.1f     %.1f     %.1f    \n",s[0]/flag,s[1]/flag,s[2]/flag,s[3]/flag,s[4]/flag);  
            printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");  
    		system("pause");
    
        }
    	      
    	if(m=='8')
    	{
    		printf_title();
            for(int i=0;i<flag;i++)  
            {
            	if(per[i].chinese<pass||per[i].en<pass||per[i].math<pass||per[i].history<pass||per[i].physics<pass)
    			{
                printf("    %d      %d     %s   %s      %.1f     %.1f     %.1f    %.1f    %.1f    %.1f    %.1f\n",per[i].term,per[i].classnum,per[i].name,per[i].num,per[i].chinese,per[i].en,per[i].math,per[i].history,per[i].physics,per[i].sum,per[i].average);  
                printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");        	
    			}
    		}
            system("pause");		
    	}    
    	    
    		
    }
         
    void delet()     //数据删除 
    {  
    	person p[200];
    	FILE *fp;  
    	char s[10];  
    	int i=0,n=0;  
      	if((fp=fopen("studata.txt","r"))==NULL)                  //以2进制方式读取文件信息//  
      	{  
         	no_sql(); 
         	return;  
       	} 
    	while(fscanf(fp,"%d%d%s%s%f%f%f%f%f%f%f",&p[i].term,&p[i].classnum,p[i].name,p[i].num,&p[i].chinese,&p[i].en,&p[i].math,&p[i].history,&p[i].physics,&p[i].sum,&p[i].average)!=EOF)
        {    
             i++;
             n=n+1;
        } 
    	fclose(fp);
    	system("cls");
    	printf_ui("     学生数据删除",10,"      请输入学号:",12,1); 
    	scanf("%s",s);  
    	i=0;
        while(strcmp(p[i].num,s)!=0&&i<n)
        {
             i++;
        }                           //进行比较 找到所需要的信息  
            if(i==n)  
             {  
                no_sql();
                return;  
             }  
        else
    	{
    	system("cls");  
        FILE *fin,*ftp;
        fin=fopen("studata.txt","r");//读打开原文件123.txt
        ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
        if(fin==NULL || ftp==NULL){
            printf("Open the file failure...\n");
            exit(0);
        }
        int kk=0;
        while(kk<n) //从原文件读取一行
        {
            if(strcmp(p[kk].num,s)!=0)//检验是要删除的行吗?
            {
                fprintf(ftp,"%d %d %s %s %.1f %.1f %.1f %.1f %.1f %.1f %.1f\n",p[kk].term,p[kk].classnum,p[kk].name,p[kk].num,p[kk].chinese,p[kk].en,p[kk].math,p[kk].history,p[kk].physics,p[kk].sum,p[kk].average);    //以2进制形式写入文件中//一次写入一个数组//  
            }
     
           kk++;    
        } 
        fclose(fin);
        fclose(ftp);
        remove("studata.txt");//删除原文件
        rename("tmp.txt","studata.txt");//将临时文件名改为原文件名
        printf_ui("      删除成功!",10,"      正在返回...",12,1); 
    	Sleep(1500); 
    	} 
         //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  
         //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  
                                 //运用switch语句进行菜单选择//  
    }
      
    int main()  
    {  	
    	system("color 0F");
      	for(;;)                                                 //循环使用主界面直到遇到结束命令  
      	{   
        	switch(menu_select())                               // 函数的调用//  
          	{  
    	  		case 1:              
              		add();  //学生记录添加 
              		break;  
          		case 2: 
              		scan();  //学生信息浏览
              		break;  
          		case 3:  
              		query();  //学生信息查询
              		break;  
          		case 4:  
              		date();  //数据计算  
             		break;  
          		case 5:  
               		delet();   //数据删除 
               		break;
    			case 6:
    				system_menu(); //系统菜单修改
    				break;  
          		case 0:  
          			system("cls"); 
                	printf_ui("    感谢使用!",10,"    正在退出...",12,1); 
    				Sleep(1000);
    		        exit(0);  
          	}	  
      	}  
        system("cls");      
        return 0;
    } 
    
    
    
    展开全文
  • 学生成绩管理系统java、mysql

    千次阅读 2020-06-25 18:51:12
    学生成绩管理系统 该系统实现了对学生成绩、学生信息、教师信息、考试信息的修改,删除,添加等。 数据库使用mysql,包含整套源码(java) 部分功能截图: 在这里插入图片描述 在这里插入代码片 百度网盘 提取码:tl9j...

    学生成绩管理系统
    该系统实现了对学生成绩、学生信息、教师信息、考试信息的修改,删除,添加等。
    数据库使用mysql,包含整套源码(java)
    部分功能截图:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入代码片
    百度网盘
    提取码:tl9j

    展开全文
  • 包含完整的学生成绩管理系统实验报告,调试图片以及详细的源码。成绩系统包含录入模块,浏览模块,删除模块,修改模块,排名模块和插入模块
  • 学生成绩管理系统.rar

    2020-03-26 19:56:51
     页面包括展示信息和管理信息两部分,并且实现了图片验证登录  通过连接数据库并执行SQL语句实现对数据库的增、删、查、改  使用DBUtils数据库工具(QueryRunner)  页面基本美观且合理  设置了过滤器...
  • 利用VS2013平台下的MFC编程方式,基于SQL数据库的学生成绩管理系统的源码。运行的时候需要在运行目录中添加一张名为 帮助.bmp的图片,要不然运行是有错误的
  • 代码实现 一 登录界面 此界面是由 Photoshop 制作而成在做这个登录面的时候想了很多最后选择了这种 感觉它看起来干净整齐又不失其庄雅加上本单位最有特色的建筑会让人一目了然 1.1 登录图片显示 图 4.1 登录界面 ...
  • 编写一个学生成绩管理系统 ,可查询,修改,删除,插入,![图片](https://img-ask.csdn.net/upload/201607/05/1467715262_118604.png)
  • 求助![图片](https://img-ask.csdn.net/upload/201701/05/1483577379_328484.jpg)
  • 想问问哪位大神能设计这个平时成绩管理系统,主要记录老师点名情况,记录学生平时表现,不是记录期末成绩 谢谢!![图片](https://img-ask.csdn.net/upload/201702/20/1487575827_146896.png)
  • java毕设、大作业-学生成绩管理系统 在这里插入图片描述

    java毕设、大作业-学生成绩管理系统

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 今天给大家演示一下由jsp servlet mysql实现的一款学生成绩信息管理系统, 含有需求说明文档 该系统实现的主要功能有:管理员管理学生、教师、系统信息,老师管理课程成绩信息、学生查看成绩、修改个人信息等功能,...
  • 创建“学生成绩管理系统”应用程序,通过串行化和反串行化管理学生成绩。为一个学生成绩管理系统添加打印功能。设计学生成绩管理系统中的制表符表格显示功能。格式化文本输出并显示学生成绩表。设计学生成绩管理系统...
  • 学生成绩管理系统永久免费版 v6.0.5更新日志 1、修改登录背景图片 2、修正在学籍信息中把一个人转学后,在学生评价管理里面,还有他的名字 3、站内信栏目修正更美观 4、老师用户,可以查看各年级的任课表 5、...
  • mfc vc++6.0 sql2000 ado学生成绩管理系统

    热门讨论 2011-04-08 16:53:11
    mfc vc++6.0 sql2000 ado 开发的西安文理学院学生成绩管理系统。三种角色登陆,老师,学生,管理员。各种增删改查,还能读特定位置的图片,基本实现了系统的功能,适合初学者学习交流
  • 简单的学生成绩管理系统(数组实现) 用java 数组写了一个简单的学生管理系统,没有连数据库,数据存放在内存,实现简单的增、删、改、查功能。 一、运行图片 二、部分代码 package com.sky.demo; import javax....

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 327
精华内容 130
关键字:

学生成绩管理系统图片