您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 学生成绩管理系统(数据结构C语言版源代码)
#includestdio.h#includestring.h#includestdlib.hstructstudents{charNum[10];/*字符型学生学号*/charName[20];/*字符型学生姓名*/charSex[3];/*字符型学生性别*/doubleEnglish;/*双精度实型英语成绩*/doubleJava;/*双精度实型Java成绩*/doubleSjjg;/*双精度实数据结构*/doubleSzdl;/*双精度实型数字电路*/doubleJsj;/*计算机组成原理*/structstudents*next;/*用与构建连表指向下一结点*/};FILE*fp;/*定义全局变量fp*/voidRevisemenu();/*修改菜单*/voidSortmenu();/*排序菜单*/voidmenu();/*主菜单*/voidsecret();/*安全验证*/structstudents*Input();/*新建学生信息*/voidfprint(structstudents*head);/*将信息导入文件可追加*/voidfprint_(structstudents*head);/*将信息导入文件并覆盖*/voidBrowse(structstudents*head);/*浏览全部学生信息*/structstudents*create(structstudents*head,int*n);/*从tushu_list中读取数据构建链表*/voidFindofNum(structstudents*head);/*按学号查询学生信息*/voidFindofNname(structstudents*head);/*按姓名查询学生信息*/voidSortEnglish(structstudents*head);/*按英语成绩排序*/voidSortJava(structstudents*head);/*按Java成绩排序*/voidSortSjjg(structstudents*head);/*按数据结构成绩排序*/voidSortSzdl(structstudents*head);/*按数字逻辑电路成绩排序*/voidSortJsj(structstudents*head);/*按计算机组成原理成绩排序*/structstudents*Delete(structstudents*head,charm[15]);/*按学号删除学生成绩信息*/structstudents*Revise();/*修改学生信息(按编号修改)*//*主菜单*/voidmenu(){printf(\n\n);printf(***************************************************\n);printf(学生成绩管理系统\n);printf(---------------------------------------------------\n);printf(1-添加新同学2-浏览学生信息\n);printf(3-按学号查询4-按姓名查询\n);printf(5-按成绩排序6-修改学生信息\n);printf(7-删除学生信息0-退出系统\n);printf(---------------------------------------------------\n);printf(___________________________________________________\n);}/*排序菜单*/voidSortmenu(){printf(\n\n);printf(***************************************************\n);printf(按成绩排序\n);printf(1-大学英语2-JAVA编程\n);printf(3-数据结构4-数字逻辑电路\n);printf(5-计算机组成原理0-返回上级菜单\n);printf(***************************************************\n);}/*修改菜单*/voidRevisemenu(){printf(\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);printf(1--修改学生姓名2--修改学生学号\n);printf(3--修改学生性别4--修改英语成绩\n);printf(5--修改JAVA成绩6--修改数据结构\n);printf(7--修改数字电路8--修改计算计\n);printf(0--返回上级菜单\n);printf(\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n);}/*安全验证*/voidsecret(){chara[20];printf(**欢迎来到学生信息管理系统,进入系统前请先进行密码验证---);printf();do{gets(a);/*输入密码*/system(cls);/*调用库函数清屏*/printf(对不起!您输入的密码有误,请重新输入---);}while(strcmp(a,0605)!=0);/*单一密码0605*/system(cls);}/*新建学生信息*/structstudents*Input(){structstudents*p1,*p2,*head;/*建立辅助结点及头结点*/charName;intn=0,x;printf(\n请按对应项输入学生信息以#结束:\n);printf(姓名学号性别英语Java数据结构数字电路计算机组成原理\n);p1=(structstudents*)malloc(sizeof(structstudents));head=p2=p1;do{/*使用dowhile语句输入学生信息*/scanf(%s,&p1-Name);if(strcmp(p1-Name,#)==0)break;/*判断结束符*/elsescanf(%s%s%lf%lf%lf%lf%lf,p1-Num,p1-Sex,&p1-English,&p1-Java,&p1-Sjjg,&p1-Szdl,&p1-Jsj);Name='#';p1=(structstudents*)malloc(sizeof(structstudents));p2-next=p1;p2=p1;n++;}while(1);p1-next=NULL;printf(学生信息输入结束!\n);getchar();printf(是否保存学生信息?(1.是/2.否):);scanf(%d,&x);if(x==1)fprint(head);/*调用函数保存至文件*/elseprintf(\n文件没有被保存!\n);returnhead;/*返回头指针*/}/*将信息导入文件可追加*/voidfprint(structstudents*head){structstudents*p1;if((fp=fopen(students_list.txt,a))==NULL){printf(Fileopenerror!\n);exit(0);}for(p1=head;p1-next!=NULL;p1=p1-next)/*遍历*/fprintf(fp,%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n,p1-Name,p1-Num,p1-Sex,p1-English,p1-Java,p1-Sjjg,p1-Szdl,p1-Jsj);/*将学生信息写入文件*/fclose(fp);/*关闭文件*/printf(\n学生信息已成功保存到文件students_list.txt中!\n);getchar();}/*将信息导入文件并覆盖*/voidfprint_(structstudents*head){structstudents*p1;if((fp=fopen(students_list.txt,w))==NULL){printf(Fileopenerror!\n);exit(0);}for(p1=head;p1!=NULL;p1=p1-next)/*遍历*/fprintf(fp,%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n,p1-Name,p1-Num,p1-Sex,p1-English,p1-Java,p1-Sjjg,p1-Szdl,p1-Jsj);/*将学生信息写入文件*/fclose(fp);/*关闭文件*/;getchar();}/*浏览全部学生信息*/voidBrowse(structstudents*head){charNum[10];/*字符型学生学号*/charName[20];/*字符型学生姓名*/charSex[3];/*字符型学生性别*/doubleEnglish;/*双精度实型英语成绩*/doubleJava;/*双精度实型Java成绩*/doubleSjjg;/*双精度实数据结构*/doubleSzdl;/*双精度实型数字电路*/doubleJsj;/*计算机组成原理*/if((fp=fopen(students_list.txt,a+))==NULL){printf(Fileopenerror!\n);exit(0);}printf(-------------------------------------------------------------\n);printf(姓名学号性别英语Java数据结构数字电路计算机\n);while(!feof(fp))/*读取并输出*/{fscanf(fp,%s%s%s%lf%lf%lf%lf%lf,Name,Num,Sex,&English,&Java,&Sjjg,&Szdl,&Jsj);printf(%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n,Name,Num,Sex,English,Java,Sjjg,Szdl,Jsj);};if(fclose(fp)){printf(Cannotclosethefile!\n);exit(0);}}/*从tushu_list中读取数据构建链表*/structstudents*create(structstudents*head,int*n){FILE*fp;structstudents*p,*p1,*p2;if((fp=fopen(students_list.txt,a+))==NULL){printf(Fileopenerror!\n);exit(0);}while(!feof(fp)){(*n)++;p=(structstudents*)malloc(sizeof(structstudents));fscanf(fp,%s%s%s%lf%lf%lf%lf%lf,p-Name,p-Num,p-Sex,&p-English,&p-Java,&p-Sjjg,&p-Szdl,&p-Jsj);if(head==NULL){head=p;p1=p;}else{p1-next=p;p2=p1;p1=p;}}p2-next=NULL;free(p);(*n)--;fclose(fp);returnhead;}/*按姓名查询学生信息*/voidFindofName(structstudents*head){inti=0,n=0;charb[20];structstudents*p;head=create(head,&n);p=head;printf(\n请输入要查询的学生姓名:);scanf(%s,b);while(p!=NULL){if(strcmp(p-Name,b)==0){printf(
本文标题:学生成绩管理系统(数据结构C语言版源代码)
链接地址:https://www.777doc.com/doc-6219809 .html