收藏 分销(赏)

学生成绩管理系统数据结构C语言版源代码.doc

上传人:快乐****生活 文档编号:3243356 上传时间:2024-06-26 格式:DOC 页数:47 大小:62.04KB
下载 相关 举报
学生成绩管理系统数据结构C语言版源代码.doc_第1页
第1页 / 共47页
学生成绩管理系统数据结构C语言版源代码.doc_第2页
第2页 / 共47页
学生成绩管理系统数据结构C语言版源代码.doc_第3页
第3页 / 共47页
学生成绩管理系统数据结构C语言版源代码.doc_第4页
第4页 / 共47页
学生成绩管理系统数据结构C语言版源代码.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、让结局不留遗憾,让过程愈加完美。#include#include#includestruct studentschar Num10; /*字符型学生学号*/char Name20; /*字符型学生姓名*/char Sex3; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据构造*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机构成原理*/struct students *next; /*用与构建连表指向下一结点*/;FILE

2、*fp; /*定义全局变量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 stu

3、dents * create(struct students *headint *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 stud

4、ents * head);/*按数据构造成绩排序*/void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/void SortJsj(struct students * head);/*按计算机构成原理成绩排序*/struct students * Delete(struct students * headchar m15);/*按学号删除学生成绩信息*/struct students * Revise();/*修改学生信息(按编号修改)*/*主菜单*/void menu()printf(nn);printf(*n);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);prin

6、tf(*n);/*修改菜单*/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( );dogets(a); /*输入密码*/system(cl

7、s); /*调用库函数清屏*/printf(对不起!您输入旳密码有误请重新输入-);while(strcmp(a0605)!=0); /*单一密码0605*/system(cls);/*新建学生信息*/struct students * Input()struct students *p1*p2*head; /*建立辅助结点及头结点*/char Name;int n=0x;printf(n请按对应项输入学生信息以#结束:n);printf(姓名 学号 性别 英语 Java 数据构造 数字电路 计算机构成原理n);p1=(struct students *)malloc(sizeof(struc

8、t students);head=p2=p1;do /*使用do while语句输入学生信息*/scanf(%s&p1-Name);if(strcmp(p1-Name#)=0)break; /*判断结束符*/elsescanf(%s%s%lf%lf%lf%lf%lfp1-Nump1-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=NULL;printf(学生

9、信息输入结束!n);getchar(); printf(与否保留学生信息?(1.是/2.否):);scanf(%d&x);if(x=1)fprint(head); /*调用函数保留至文献*/elseprintf(n文献没有被保留!n);return head; /*返回头指针*/*将信息导入文献可追加*/void fprint(struct students *head)struct students *p1;if(fp=fopen(students_list.txta)=NULL)printf(File open error!n);exit(0);for(p1=head;p1-next!=N

10、ULL;p1=p1-next) /*遍历*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp1-Namep1-Nump1-Sexp1-Englishp1-Javap1-Sjjgp1-Szdlp1-Jsj);/*将学生信息写入文献*/fclose(fp); /*关闭文献*/printf(n学生信息已成功保留到文献 students_list.txt 中!n);getchar();/*将信息导入文献并覆盖*/void fprint_(struct students *head)struct students *p1;if(fp=fopen(stu

11、dents_list.txtw)=NULL)printf(File open error!n);exit(0);for(p1=head;p1!=NULL;p1=p1-next) /*遍历*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp1-Namep1-Nump1-Sexp1-Englishp1-Javap1-Sjjgp1-Szdlp1-Jsj);/*将学生信息写入文献*/fclose(fp); /*关闭文献*/;getchar();/*浏览所有学生信息*/void Browse(struct students *head) char Nu

12、m10; /*字符型学生学号*/char Name20; /*字符型学生姓名*/char Sex3; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据构造*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机构成原理*/if(fp=fopen(students_list.txta+)=NULL)printf(File open error!n);exit(0);printf(-n);printf(姓名 学号 性别 英语 Java

13、数据构造 数字电路 计算机n);while(!feof(fp)/*读取并输出*/fscanf(fp%s%s%s%lf%lf%lf%lf%lfNameNumSex&English&Java&Sjjg&Szdl&Jsj);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnNameNumSexEnglishJavaSjjgSzdlJsj);if(fclose(fp)printf(Can not close the file!n);exit(0);/*从tushu_list中读取数据构建链表*/struct students * create(struct s

14、tudents * headint *n)FILE *fp;struct students*p*p1*p2;if(fp=fopen(students_list.txta+)=NULL)printf(File open error!n);exit(0);while(!feof(fp)(*n)+; p=(struct students *)malloc(sizeof(struct students);fscanf(fp%s%s%s%lf%lf%lf%lf%lfp-Namep-Nump-Sex&p-English&p-Java&p-Sjjg&p-Szdl&p-Jsj);if(head=NULL)he

15、ad=p;p1=p;elsep1-next=p;p2=p1;p1=p; p2-next=NULL;free(p);(*n)-;fclose(fp);return head;/*按姓名查询学生信息*/void FindofName(struct students *head)int i=0n=0; char b20; struct students *p;head=create(head&n);p=head;printf(n请输入要查询旳学生姓名:);scanf(%sb);while(p!=NULL)if(strcmp(p-Nameb)=0) printf(姓名 学号 性别 英语 Java 数据

16、构造 数字电路 计算机n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);i+;p=p-next;if(i=0)printf(n对不起!没有找到名为%s旳学生信息!nb);/*按学号查询学生信息*/void FindofNum(struct students *head)int i=0n;char b20;struct students *p;head=create(head&n);p=head;printf(n请输入要查询旳学生学号:);scanf

17、(%sb);while(p!=NULL)if(strcmp(p-Numb)=0)printf(姓名 学号 性别 英语 Java 数据构造 数字电路 计算机n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);i+;p=p-next;if(i=0)printf(n对不起!没有找到学号为%s学生信息!nb);/*按英语成绩排序*/void SortEnglish(struct students * head)struct students *p*tail;

18、 /*定义中间变量*/int n;double English;p=(struct students *)malloc(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;ta

19、il=p; p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-English=English)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-English=English) /*分数相似时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%

20、.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*将链表赋给构造体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后旳信息*/printf(按英语成绩排序后输出如上(注:此过程不保留至文献):n);return;/*按JAVA成绩排序*/void SortJava(struct students * head)s

21、truct 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)/*比较*/Java=p-Java;tai

22、l=p; p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-Java=Java)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Java=Java) /*成绩相似时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-

23、Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*将链表赋给构造体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后旳信息*/printf(按Java成绩排序后输出如上(注:此过程不保留至文献):n);return;/*按数据构造排序*/void SortSjjg(struct students * head)struct student

24、s *p*tail; /*定义中间变量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 学号 性别 英语 Java 数据构造 数字电路 计算机n);while(head-next!=NULL) /*运用选择法排序*/tail=NULL; p=head; Sjjg=p-Sjjg; /*将链表中第一种成绩赋给Sjjg*/ while(p!=NULL)if(p-Sjjg)Sjjg)/*比较*/Sjjg=p-Sjjg;tail=p; p=p-next

25、;tail=NULL;p=head;while(p-next!=NULL)if(p-Sjjg=Sjjg)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Sjjg=Sjjg) /*成绩相似时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Se

26、xp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*将链表赋给构造体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后旳信息*/printf(按数据构造成绩排序后输出如上(注:此过程不保留至文献):n);return;/*按数字电路排序*/void SortSzdl(struct students * head)struct students *p*tail; /*

27、定义中间变量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 学号 性别 英语 Java 数据构造 数字电路 计算机n);while(head-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=

28、head;while(p-next!=NULL)if(p-Szdl=Szdl)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Szdl=Szdl) /*成绩相似时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-J

29、avap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*将链表赋给构造体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后旳信息*/printf(按数字电路成绩排序后输出如上(注:此过程不保留至文献):n);return;/*按计算机构成原理排序*/void SortJsj(struct students * head)struct students *p*tail; /*定义中间变量*/int

30、 n;double Jsj;p=(struct students *)malloc(sizeof(struct students);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!=

31、NULL)if(p-Jsj=Jsj)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Jsj=Jsj) /*成绩相似时无需比较*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);t

32、ail-next=NULL;p=head; /*将链表赋给构造体指针*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后旳信息*/printf(按计算机构成原理成绩排序后输出如上(注:此过程不保留至文献):n);return;/*按学号删除学生成绩信息*/struct students * Delete(struct students * headchar m15)struct students *ptr1*ptr2;int n; pri

33、ntf(n所有学生信息如下:n);Browse(head);printf(n请输入想要删除旳学生学号:);scanf(%sm);head=create(head&n);if(head=NULL)printf(无学生信息!n);return head;if(strcmp(head-Numm)=0)&head!=NULL)ptr2=head;head=head-next;free(ptr2);if(strcmp(head-Numm)!=0)ptr1=head;ptr2=head-next;while(ptr2!=NULL)if(strcmp(ptr2-Numm)=0)ptr1-next=ptr2-next;free(ptr2);elseptr1=ptr2;ptr2=ptr1-next;fprint_(head);printf(n学号为 %s 学生信息已被删除并保留至文献!nm);return head;/*修改学生信息(按编号修改)*/struct stud

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服