《2022年学生成绩管理系统可用 2.pdf》由会员分享,可在线阅读,更多相关《2022年学生成绩管理系统可用 2.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、天助自助者,你要你就能。#include#include#include struct students char Num10;/*字符型学生学号*/char Name20;/*字符型学生姓名*/char Sex3;/*字符型学生性别*/double English;/*双精度实型英语成绩*/double Java;/*双精度实型Java 成绩*/double Sjjg;/*双精度实数据结构*/double Szdl;/*双精度实型数字电路*/double Jsj;/*计算机组成原理*/struct students*next;/*用与构建连表指向下一结点*/;FILE*fp;/*定义全局变量
2、fp*/void Revisemenu();/*修改菜单*/void Sortmenu();/*排序菜单*/void menu();/*主菜单*/void secret();/*安全验证*/struct students*Input();/*新建学生信息*/void fprint(struct students*head);/*将信息导入文件可追加*/void fprint_(struct students*head);/*将信息导入文件并覆盖*/void Browse(struct students*head);/*浏览全部学生信息*/struct students*create(struc
3、t students*head int*n);/*从 tushu_list中读取数据构建链表*/void FindofNum(struct students*head);/*按学号查询学生信息*/void FindofNname(struct students*head);/*按姓名查询学生信息*/void SortEnglish(struct students*head);/*按英语成绩排序*/void SortJava(struct students*head);/*按 Java 成绩排序*/void SortSjjg(struct students*head);/*按数据结构成绩排序*/
4、void SortSzdl(struct students*head);/*按数字逻辑电路成绩排序*/void SortJsj(struct students*head);/*按计算机组成原理成绩排序*/struct students*Delete(struct students*head char m15);/*按学号删除学生成绩信息*/struct students*Revise();/*修改学生信息(按编号修改)*/*主菜单*/void menu()printf(nn);printf(*n);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 23 页 -printf(学生成绩
5、管理系统 n);printf(-n);printf(1-添加新同学 2-浏览学生信息 n);printf(3-按学号查询 4-按姓名查询 n);printf(5-按成绩排序 6-修改学生信息 n);printf(7-删除学生信息 0-退出系统 n);printf(-n);printf(_n);/*排序菜单*/void Sortmenu()printf(nn);printf(*n);printf(按成绩排序 n);printf(1-大学英语 2-JAVA编程 n);printf(3-数据结构 4-数字逻辑电路 n);printf(5-计算机组成原理 0-返回上级菜单 n);printf(*n);
6、/*修改菜单*/void Revisemenu()printf(nn);printf(1-修改学生姓名 2-修改学生学号 n);printf(3-修改学生性别 4-修改英语成绩 n);printf(5-修改 JAVA成绩 6-修改数据结构 n);printf(7-修改数字电路 8-修改计算计 n);printf(0-返回上级菜单 n);printf(nn);/*安全验证*/void secret()char a20;printf(*欢迎来到学生信息管理系统进入系统前请先进行密码验证-);printf();do gets(a);/*输入密码*/system(cls);/*调用库函数清屏*/名师资
7、料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 23 页 -printf(对不起!您输入的密码有误请重新输入-);while(strcmp(a 0605)!=0);/*单一密码 0605*/system(cls);/*新建学生信息*/struct students*Input()struct students*p1*p2*head;/*建立辅助结点及头结点*/char Name;int n=0 x;printf(n请按对应项输入学生信息以#结束:n);printf(姓名学号性别英语 Java 数据结构数字电路计算机组成原理n);p1=(struct students*)malloc(s
8、izeof(struct students);head=p2=p1;do /*使用 do while语句输入学生信息*/scanf(%s&p1-Name);if(strcmp(p1-Name#)=0)break;/*判断结束符*/else scanf(%s%s%lf%lf%lf%lf%lf p1-Num p1-Sex&p1-English&p1-Java&p1-Sjjg&p1-Szdl&p1-Jsj);Name=#;p1=(struct students*)malloc(sizeof(struct students);p2-next=p1;p2=p1;n+;while(1);p1-next=N
9、ULL;printf(学生信息输入结束!n);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 23 页 -getchar();printf(是否保存学生信息?(1.是/2.否):);scanf(%d&x);if(x=1)fprint(head);/*调用函数保存至文件*/else printf(n文件没有被保存!n);return head;/*返回头指针*/*将信息导入文件可追加*/void fprint(struct students*head)struct students*p1;if(fp=fopen(students_list.txt a)=NULL)printf(Fi
10、le open error!n);exit(0);for(p1=head;p1-next!=NULL;p1=p1-next)/*遍历*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn 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();/*将信息导入文件并覆盖*/void fprint_(stru
11、ct students*head)struct students*p1;if(fp=fopen(students_list.txt w)=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 23 页 -printf(File open error!n);exit(0);for(p1=head;p1!=NULL;p1=p1-next)/*遍历*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p1-Name p1-Num p1-Sex p1-English p1-Java p1-Sjjg p1-Szdl p1-Jsj);/*
12、将学生信息写入文件*/fclose(fp);/*关闭文件*/;getchar();/*浏览全部学生信息*/void Browse(struct students*head)char Num10;/*字符型学生学号*/char Name20;/*字符型学生姓名*/char Sex3;/*字符型学生性别*/double English;/*双精度实型英语成绩*/double Java;/*双精度实型Java 成绩*/double Sjjg;/*双精度实数据结构*/double Szdl;/*双精度实型数字电路*/double Jsj;/*计算机组成原理*/if(fp=fopen(students_
13、list.txt a+)=NULL)printf(File open error!n);exit(0);printf(-n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(!feof(fp)/*读取并输出*/fscanf(fp%s%s%s%lf%lf%lf%lf%lf Name Num 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 23 页 -Sex&English&Java&Sjjg&Szdl&Jsj);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn Name Num Sex English
14、Java Sjjg Szdl Jsj);if(fclose(fp)printf(Can not close the file!n);exit(0);/*从 tushu_list中读取数据构建链表*/struct students*create(struct students*head int*n)FILE*fp;struct students*p*p1*p2;if(fp=fopen(students_list.txt a+)=NULL)printf(File open error!n);exit(0);while(!feof(fp)(*n)+;p=(struct students*)mallo
15、c(sizeof(struct students);fscanf(fp%s%s%s%lf%lf%lf%lf%lf 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 23 页 -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);return head;/*按姓名查询学生信息*/void FindofName(struct students*hea
16、d)int i=0 n=0;char b20;struct students*p;head=create(head&n);p=head;printf(n请输入要查询的学生姓名:);scanf(%s b);while(p!=NULL)if(strcmp(p-Name b)=0)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 23 页 -printf(姓名学号性别英语 Java 数据结构数字电路计算机n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg
17、p-Szdl p-Jsj);i+;p=p-next;if(i=0)printf(n对不起!没有找到名为%s的学生信息!n b);/*按学号查询学生信息*/void FindofNum(struct students*head)int i=0 n;char b20;struct students*p;head=create(head&n);p=head;printf(n请输入要查询的学生学号:);scanf(%s b);while(p!=NULL)if(strcmp(p-Num b)=0)printf(姓名学号性别英语 Java 数据结构数字电路计算机n);printf(%st%st%st%.1
18、lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 23 页 -p-English p-Java p-Sjjg p-Szdl p-Jsj);i+;p=p-next;if(i=0)printf(n对不起!没有找到学号为%s学生信息!n b);/*按英语成绩排序*/void SortEnglish(struct students*head)struct students*p*tail;/*定义中间变量*/int n;double English;p=(struct students*)mallo
19、c(sizeof(struct students);head=create(head&n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(head-next!=NULL)/*利用选择法排序*/tail=NULL;p=head;English=p-English;/*将链表中第一个成绩赋给English*/while(p!=NULL)if(p-English)English)/*比较*/English=p-English;tail=p;p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-English=Engl
20、ish)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 23 页 -p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);if(p=head)head=head-next;else tail-next=p-next;tail=p;p=p-next;if(p-English=English)/*分数相同时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Nu
21、m p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);tail-next=NULL;p=head;/*将链表赋给结构体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);/*浏览排序后的信息*/printf(按英语成绩排序后输出如上(注:此过程不保存至文件):n);return;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 23 页 -/*按 JAVA成绩排序*/void So
22、rtJava(struct students*head)struct students*p*tail;/*定义中间变量*/int n;double Java;p=(struct students*)malloc(sizeof(struct students);head=create(head&n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(head-next!=NULL)/*利用选择法排序*/tail=NULL;p=head;Java=p-Java;/*将链表中第一个成绩赋给Java*/while(p!=NULL)if(p-Java)Java)/*比较
23、*/Java=p-Java;tail=p;p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-Java=Java)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);if(p=head)head=head-next;else tail-next=p-next;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 23 页 -tail=p;p=p-next;if(p-Java=Java
24、)/*成绩相同时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);tail-next=NULL;p=head;/*将链表赋给结构体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);/*浏览排序后的信息*/printf(按 Java 成绩排序后输出如上(注:此过程不
25、保存至文件):n);return;/*按数据结构排序*/void SortSjjg(struct students*head)struct students*p*tail;/*定义中间变量*/int n;double Sjjg;p=(struct students*)malloc(sizeof(struct students);head=create(head&n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(head-next!=NULL)/*利用选择法排序*/名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 23 页 -tail=NUL
26、L;p=head;Sjjg=p-Sjjg;/*将链表中第一个成绩赋给Sjjg*/while(p!=NULL)if(p-Sjjg)Sjjg)/*比较*/Sjjg=p-Sjjg;tail=p;p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-Sjjg=Sjjg)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);if(p=head)head=head-next;else tail-next=p-
27、next;tail=p;p=p-next;if(p-Sjjg=Sjjg)/*成绩相同时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 23 页 -p-Jsj);tail-next=NULL;p=head;/*将链表赋给结构体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-Engli
28、sh p-Java p-Sjjg p-Szdl p-Jsj);/*浏览排序后的信息*/printf(按数据结构成绩排序后输出如上(注:此过程不保存至文件):n);return;/*按数字电路排序*/void SortSzdl(struct students*head)struct students*p*tail;/*定义中间变量*/int n;double Szdl;p=(struct students*)malloc(sizeof(struct students);head=create(head&n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(he
29、ad-next!=NULL)/*利用选择法排序*/tail=NULL;p=head;Szdl=p-Szdl;/*将链表中第一个成绩赋给Szdl*/while(p!=NULL)if(p-Szdl)Szdl)/*比较*/Szdl=p-Szdl;tail=p;p=p-next;tail=NULL;p=head;名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 23 页 -while(p-next!=NULL)if(p-Szdl=Szdl)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English
30、 p-Java p-Sjjg p-Szdl p-Jsj);if(p=head)head=head-next;else tail-next=p-next;tail=p;p=p-next;if(p-Szdl=Szdl)/*成绩相同时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);tail-next=NULL;p=head;/*将链表赋给结构体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft
31、%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg 名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 23 页 -p-Szdl p-Jsj);/*浏览排序后的信息*/printf(按数字电路成绩排序后输出如上(注:此过程不保存至文件):n);return;/*按计算机组成原理排序*/void SortJsj(struct students*head)struct students*p*tail;/*定义中间变量*/int n;double Jsj;p=(struct students*)malloc(sizeof(struct st
32、udents);head=create(head&n);printf(姓名学号性别英语 Java 数据结构数字电路计算机 n);while(head-next!=NULL)/*利用选择法排序*/tail=NULL;p=head;Jsj=p-Jsj;/*将链表中第一个成绩赋给Jsj*/while(p!=NULL)if(p-Jsj)Jsj)/*比较*/Jsj=p-Jsj;tail=p;p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-Jsj=Jsj)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-N
33、ame p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 23 页 -if(p=head)head=head-next;else tail-next=p-next;tail=p;p=p-next;if(p-Jsj=Jsj)/*成绩相同时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);tail-next=NULL;
34、p=head;/*将链表赋给结构体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);/*浏览排序后的信息*/printf(按计算机组成原理成绩排序后输出如上(注:此过程不保存至文件):n);return;/*按学号删除学生成绩信息*/struct students*Delete(struct students*head char m15)struct students*ptr1*ptr2;int n;名师资料总结-精品资料欢迎下载
35、-名师精心整理-第 17 页,共 23 页 -printf(n所有学生信息如下:n);Browse(head);printf(n请输入想要删除的学生学号:);scanf(%s m);head=create(head&n);if(head=NULL)printf(无学生信息!n);return head;if(strcmp(head-Num m)=0)&head!=NULL)ptr2=head;head=head-next;free(ptr2);if(strcmp(head-Num m)!=0)ptr1=head;ptr2=head-next;while(ptr2!=NULL)if(strcmp
36、(ptr2-Num m)=0)ptr1-next=ptr2-next;free(ptr2);else ptr1=ptr2;ptr2=ptr1-next;fprint_(head);printf(n学号为%s 学生信息已被删除并保存至文件!n m);return head;/*修改学生信息(按编号修改)*/struct students*Revise()int n=0 名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 23 页 -t;char num10;char Num10;/*字符型学生学号*/char Name20;/*字符型学生姓名*/char Sex3;/*字符型学生性别
37、*/double English;/*双精度实型英语成绩*/double Java;/*双精度实型Java 成绩*/double Sjjg;/*双精度实数据结构*/double Szdl;/*双精度实型数字电路*/double Jsj;/*计算机组成原理*/struct students*head=NULL;struct students*p;printf(n所有学生信息如下:n);Browse(head);head=create(head&n);printf(n输入需要修改的学生的学号:);scanf(%s num);p=head;while(head!=NULL)if(strcmp(p-N
38、um num)=0)system(cls);Revisemenu();printf(编号为%s的学生信息如下:n num);printf(姓名学号性别英语 Java 数据结构数字电路计算机n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name p-Num p-Sex p-English p-Java p-Sjjg p-Szdl p-Jsj);while(1)printf(请选择需要修改的信息:);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 23 页 -scanf(%d&t);switch(t)case 1:print
39、f(请输入新姓名:);scanf(%s Name);strcpy(p-Name Name);break;case 2:printf(请输入新学号:);scanf(%s&Num);strcpy(p-Num Num);break;case 3:printf(请输入新性别:);scanf(%s Sex);strcpy(p-Sex Sex);break;case 4:printf(请输入新英语成绩:);scanf(%lf&English);p-English=English;break;case 5:printf(请输入新Java 成绩:);scanf(%lf&Java);p-Java=Java;br
40、eak;case 6:printf(请输入新数据结构成绩:);scanf(%lf&Sjjg);p-Sjjg=Sjjg;break;case 7:printf(请输入新数字电路成绩:);名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 23 页 -scanf(%lf&Szdl);p-Szdl=Szdl;break;case 8:printf(请输入新计算机组成原理成绩:);scanf(%lf&Jsj);p-Jsj=Jsj;break;case 0:system(cls);menu();goto lab;break;default:printf(对不起输入有误!);break;els
41、e p=p-next;lab:fprint_(head);printf(修改完成并储存至文件!n);return head;/*主函数*/void main()int choice ch;char m15;struct students*head=NULL;secret();menu();while(1)printf(请输入选项:);名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 23 页 -scanf(%d&choice);switch(choice)case 1:Input();break;case 2:system(cls);menu();Browse(head);bre
42、ak;case 3:system(cls);menu();FindofNum(head);break;case 4:system(cls);menu();FindofName(head);break;case 5:system(cls);Sortmenu();do printf(请输入您的选择:);scanf(%d&ch);switch(ch)case 1:system(cls);Sortmenu();SortEnglish(head);break;case 2:system(cls);Sortmenu();SortJava(head);break;case 3:system(cls);Sor
43、tmenu();SortSjjg(head);名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 23 页 -break;case 4:system(cls);Sortmenu();SortSzdl(head);break;case 5:system(cls);Sortmenu();SortJsj(head);break;while(ch!=0);system(cls);menu();break;case 6:system(cls);menu();Revise();break;case 7:system(cls);menu();head=Delete(head m);break;case 0:system(cls);printf(tt欢迎下次再来!);exit(0);default:printf(对不起输入有误!);break;return;名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 23 页 -