ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:19.96KB ,
资源ID:11383747      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11383747.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统数据结构C语言版源代码.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、学生成绩管理系统数据结构C语言版源代码勇者,必以决斗之勇气与五张试卷一决雌雄;懦夫,概以鼠目之寸光量人生此战必输无疑!#include#include#includestruct students char Num10; /*字符型学生学号*/ char Name20; /*字符型学生姓名*/ char Sex3; /*字符型学生性别*/ double English; /*双精度实型英语成绩*/ double Java; /*双精度实型Java成绩*/ double Sjjg; /*双精度实数据结构*/ double Szdl; /*双精度实型数字电路*/ double Jsj; /*计算机

2、组成原理*/ struct students *next; /*用与构建连表指向下一结点*/; FILE *fp; /*定义全局变量fp*/void Revisemenu();/*修改菜单*/void Sortmenu();/*排序菜单*/void menu();/*主菜单*/void secret();/*安全验证*/struct students * Input();/*新建学生信息*/void fprint(struct students *head);/*将信息导入文件可追加*/void fprint_(struct students *head);/*将信息导入文件并覆盖*/void

3、 Browse(struct students *head);/*浏览全部学生信息*/struct students * 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 st

4、udents * head);/*按Java成绩排序*/void SortSjjg(struct students * head);/*按数据结构成绩排序*/void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/struct students * Delete(struct students * headchar m15);/*按学号删除学生成绩信息*/struct students * Revise();/*修改学生信息(按编号修改)*

5、/*主菜单*/void menu() printf(nn); 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);/*排序菜单*/void Sortmenu() printf(nn); printf(*n); printf( 按成绩排序 n); printf( 1-大学英语 2-JAVA

6、编程 n); printf( 3-数据结构 4-数字逻辑电路 n); printf( 5-计算机组成原理 0-返回上级菜单 n); printf(*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;

7、printf(*欢迎来到学生信息管理系统进入系统前请先进行密码验证-); printf( ); do gets(a); /*输入密码*/ system(cls); /*调用库函数清屏*/ printf(对不起!您输入的密码有误请重新输入-); while(strcmp(a0605)!=0); /*单一密码0605*/ system(cls);/*新建学生信息*/struct students * Input() struct students *p1*p2*head; /*建立辅助结点及头结点*/ char Name; int n=0x; printf(n请按对应项输入学生信息以#结束:n);

8、 printf(姓名 学号 性别 英语 Java 数据结构 数字电路 计算机组成原理n); p1=(struct students *)malloc(sizeof(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-Nump1-Sex&p1-English&p1-Java&p1-Sjjg&p1-Szdl&p1-Jsj); Name=#; p1=(stru

9、ct students *)malloc(sizeof(struct students); 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); /*调用函数保存至文件*/ else printf(n文件没有被保存!n); return head; /*返回头指针*/*将信息导入文件可追加*/void fprint(struct students *head) str

10、uct students *p1; if(fp=fopen(students_list.txta)=NULL) printf(File 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-Namep1-Nump1-Sexp1-Englishp1-Javap1-Sjjgp1-Szdlp1-Jsj);/*将学生信息写入文件*/ fclose(fp); /*关闭文件*/ printf(n学生信息已成功保存到文件

11、 students_list.txt 中!n); getchar();/*将信息导入文件并覆盖*/void fprint_(struct students *head) struct students *p1; if(fp=fopen(students_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%.1lfn p1-Namep1-Nump1-Sexp1-Englishp

12、1-Javap1-Sjjgp1-Szdlp1-Jsj);/*将学生信息写入文件*/ fclose(fp); /*关闭文件*/; getchar();/*浏览全部学生信息*/void Browse(struct students *head) char Num10; /*字符型学生学号*/ char Name20; /*字符型学生姓名*/ char Sex3; /*字符型学生性别*/ double English; /*双精度实型英语成绩*/ double Java; /*双精度实型Java成绩*/ double Sjjg; /*双精度实数据结构*/ double Szdl; /*双精度实型数字

13、电路*/ double Jsj; /*计算机组成原理*/ if(fp=fopen(students_list.txta+)=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%lfNameNumSex&English&Java&Sjjg&Szdl&Jsj); printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn N

14、ameNumSexEnglishJavaSjjgSzdlJsj); ; if(fclose(fp) printf(Can not close the file!n); exit(0); /*从tushu_list中读取数据构建链表*/struct students * create(struct students * 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) (*

15、n)+; p=(struct students *)malloc(sizeof(struct students); fscanf(fp%s%s%s%lf%lf%lf%lf%lf p-Namep-Nump-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

16、 *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 数据结构 数字电路 计算机n); printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj); i+; p=p-ne

17、xt; 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(%sb); while(p!=NULL) if(strcmp(p-Numb)=0) printf(姓名 学号 性别 英语 Java 数据结构 数字电路 计算机n); printf(%st%st%st%.1lft%.1l

18、ft%.1lft%.1lft%.1lfn p-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; /*定义中间变量*/ int n; double English; p=(struct students *)malloc(sizeof(struct students); head=create(

19、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=English) printf(%st%st

20、%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-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-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj); tail-next=NUL

21、L; p=head; /*将链表赋给结构体指针*/ printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后的信息*/ printf(按英语成绩排序后输出如上(注:此过程不保存至文件):n); return;/*按JAVA成绩排序*/void SortJava(struct students * head) struct students *p*tail; /*定义中间变量*/ int n; double Java; p=(struct stu

22、dents *)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; tail=p; p=p-next; tail=NULL; p=head; while(p-next!=NULL) if(p

23、-Java=Java) printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj); if(p=head) head=head-next; else tail-next=p-next; tail=p; p=p-next; if(p-Java=Java) /*成绩相同时无需比较*/ printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-

24、Jsj); tail-next=NULL; p=head; /*将链表赋给结构体指针*/ printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*浏览排序后的信息*/ printf(按Java成绩排序后输出如上(注:此过程不保存至文件):n); return;/*按数据结构排序*/void SortSjjg(struct students * head) struct students *p*tail; /*定义中间变量*/ int n; double

25、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; tail=NULL; p=head; while(p-next!=NULL) if(p-Sjjg=Sjjg) printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn p-Name

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1