学生成绩管理系统源代码(12页).doc

上传人:1595****071 文档编号:36134574 上传时间:2022-08-25 格式:DOC 页数:12 大小:161KB
返回 下载 相关 举报
学生成绩管理系统源代码(12页).doc_第1页
第1页 / 共12页
学生成绩管理系统源代码(12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《学生成绩管理系统源代码(12页).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-学生成绩管理系统源代码-第 12 页#include #include #include #include struct student /结构体定义int num; char name10;char birthday10;int Cyuyan; int shujujiegou;struct student *next;struct student *creat_by_input();struct student *get_last_student(struct student *head);struct student *Print_menu_main() /主菜单printf( *n);

2、printf( | 1.输入学生信息 | n); printf( | 2.输出学生信息 | n); printf( | 3.查找学生信息 | n); printf( | 4.修改学生信息 | n); printf( | 5.插入学生信息 | n); printf( | 6.删除学生信息 | n); printf( | 7.排序学生信息 | n); printf( | 0.退出系统 | n); printf( |_ _ _ _ _ _ _ _ _ _ _ _ _ | n);struct student *print_table_head()printf(+-+-+-+-+-+n); printf

3、(| 学号 | 姓名 | 出生日期 | c成绩 |数据结构成绩 |n); printf(+-+-+-+-+-+n);struct student *print_table_row(struct student *p)printf(|%10d|%10s|%10s|%10d|%10d|n,p-num,p-name,p-birthday,p-Cyuyan,p-shujujiegou);void print_table_bottom()printf(+-+-+-+-+-+n);struct student * Creat_stu_record() /建立链表struct student *plasts

4、tu=NULL,*pnewstu;char continue_input=N; struct student *head=NULL;while(1)if(head=NULL)head=creat_by_input();print_table_head();print_table_row(head);print_table_bottom();else pnewstu=creat_by_input();print_table_head();print_table_row(pnewstu);print_table_bottom();plaststu=get_last_student(head);pl

5、aststu-next=pnewstu;printf(是否继续输入学生信息?(Y 继续,N 返回菜单)n);getchar();continue_input=getchar();if(continue_input=n|continue_input=N) system(cls);Print_menu_main();break;return head;struct student *creat_by_input()struct student *pnewstu=(struct student *)malloc(sizeof(struct student);printf(请输入学生信息n); pri

6、ntf(学号:);scanf(%d,&pnewstu-num); printf(姓名:);scanf(%s,pnewstu-name); printf(出生年月:);scanf(%s,pnewstu-birthday);printf(请输入学生成绩n);printf(C语言:);scanf(%d,&(pnewstu-Cyuyan);printf(数据结构:);scanf(%d,&(pnewstu-shujujiegou); pnewstu-next=NULL; return pnewstu;struct student *get_last_student(struct student *p )

7、 if(p-next=NULL)return p;else return get_last_student(p-next);void Print_Stu_Doc(struct student *head)struct student *p;char r;print_table_head();if(head=NULL)printf(n No Recordsn);for(p=head;p;p=p-next)printf(|%10d|%10s|%10s|%10d|%10d|n,p-num,p-name,p-birthday,p-Cyuyan,p-shujujiegou);printf(+-+-+-+

8、-+-+n);printf(按Enter键返回主菜单)n);getchar();r=getchar();if(r!=1)system(cls);Print_menu_main();elsesystem(cls);Print_menu_main();struct student *search_by_name(struct student *head)/按姓名查找char name10;struct student *p=head;char continue_input;/*int isfound=0;*/printf(请输入要查找的姓名:);scanf(%s,name);printf(查找%s

9、n,name);print_table_head();while(p!=NULL)if(strcmp(p-name,name)=0) print_table_row(p);p=p-next;/*isfound=1; */break;p=p-next;print_table_bottom();printf(是否继续查找?(Y 继续;N 返回主菜单)n);getchar();continue_input=getchar();if(continue_input=n|continue_input=N)system(cls);Print_menu_main();else search_by_name(h

10、ead);struct student * search_by_id(struct student *head)/按学号查找int id;struct student *p=head;char continue_input;/*int isfound=0;*/printf(请输入要查找的学号:);scanf(%d,&id);printf(查找%dn,id);print_table_head();while(p!=NULL)if(p-num=id) print_table_row(p);p=p-next;/*isfound=1;*/break;p=p-next;print_table_botto

11、m();printf(是否继续查找?(Y 继续;N 返回主菜单)n);getchar();continue_input=getchar();if(continue_input=n|continue_input=N)system(cls);Print_menu_main();else search_by_id(head);return head;struct student*modify_record_by_id(struct student*head)/按学号修改struct student *p=head;int id;char continue_input;printf(请输入要修改的学生

12、的学号:n);scanf(%d,&id);while(p!=NULL)if(p-num=id)break;p=p-next;if(p=NULL) printf(抱歉,没有学号为%d的学生n,id);else printf(请输入学生信息:n); printf(学号:);scanf(%d,&(p-num); printf(姓名:);scanf(%s,&(p-name); printf(出生年月:);scanf(%s,&(p-birthday);printf(请输入学生成绩:n);printf(C语言:);scanf(%d,&(p-Cyuyan);printf(数据结构:);scanf(%d,&(

13、p-shujujiegou);print_table_head();print_table_row(p);print_table_bottom();printf(继续修改学生信息吗?Y 继续;N 返回主菜单n);getchar();continue_input=getchar();if(continue_input=y|continue_input=Y)creat_by_input();else system(cls);Print_menu_main();return head;struct student*modify_record_by_name(struct student*head)/

14、按姓名修改struct student*p=head;char name10;char continue_input;printf(请输入要修改的学生的姓名:n);scanf(%s,name);while(p!=NULL)if(strcmp(p-name,name)=0) break;p=p-next;if(p=NULL) printf(抱歉,没有姓名为%s的学生n,name);else printf(请输入学生信息:n); printf(学号:);scanf(%d,&(p-num); printf(姓名:);scanf(%s,&(p-name); printf(出生年月:);scanf(%s

15、,&(p-birthday);printf(请输入学生成绩:n);printf(C语言:);scanf(%d,&(p-Cyuyan);printf(数据结构:);scanf(%d,&(p-shujujiegou); print_table_head();print_table_row(p);print_table_bottom();printf(继续修改学生信息吗?Y 继续;N 返回主菜单n);getchar();continue_input=getchar();if(continue_input=y|continue_input=Y)creat_by_input();elsesystem(c

16、ls);Print_menu_main();return head;struct student *insert_record(struct student *head)/插入struct student *ptr1;struct student *ptr,*stud;struct student *ptr2=head; char continue_input=N;int id;printf(请输入一个学号,在此之前插入学生信息:);scanf(%d,&id); stud=creat_by_input();ptr=stud;if(head=NULL)head=ptr;head-next=NUL

17、L;else if(head-num=id)ptr-next=head;head=ptr;elsewhile(ptr2!=NULL)ptr1=ptr2;ptr2=ptr1-next;if(ptr2-num=id)ptr1-next=ptr;ptr-next=ptr2;break;print_table_head();print_table_row(ptr);print_table_bottom();printf(是否继续插入学生信息?(Y 继续 N 返回主菜单)n);getchar();continue_input=getchar();if(continue_input=y|continue_

18、input=Y) return insert_record(head);else system(cls);Print_menu_main(); return head;struct student *Delete_record_by_id( struct student *head)/按学号删除struct student *p=head,*ppre=NULL;int id;char continue_input;printf(请输入要删除的学号:);scanf(%d,&id);while(p!=NULL)if(p-num=id) break;p=p-next;if(p=NULL) print

19、f(抱歉,没有该学号的学生信息!n); else printf(确定要删除学号为%d的学生的信息吗?(Y 确定;N 返回主菜单)n,p-num);getchar(); continue_input=getchar(); if(continue_input=y|continue_input=Y) ppre=head;if(ppre=p)head=p-next;printf( n); free(p);elsewhile(ppre!=NULL)if(ppre-next=p)ppre-next=p-next;free(p);break;ppre=ppre-next; printf(删除成功!); /

20、Print_menu_main();printf(继续删除学生信息吗?(Y 继续;N 返回主菜单);getchar();continue_input=getchar(); if(continue_input=y|continue_input=Y) Delete_record_by_id(head); else system(cls);Print_menu_main();return head; return 0;struct student *Delete_record_by_name( struct student *head)/ 按姓名删除struct student *p=head,*p

21、pre=NULL;char name10;char continue_input;printf(请输入要删除的姓名:);scanf(%s,name);while(p!=NULL)if(strcmp(p-name,name)=0) break;p=p-next; if(p=NULL) printf(抱歉,没有该姓名的学生信息!n);goto end;elseprintf(确定要删除姓名为%s的学生的信息吗?(Y 确定;N 返回主菜单),p-name);printf(n);getchar();continue_input=getchar();if(continue_input=y|continue

22、_input=Y) ppre=head; if(ppre=p) head=p-next; free(p); else while(ppre!=NULL) if(ppre-next=p) ppre-next=p-next; free(p); break; ppre=ppre-next; printf(删除成功!); /else Print_menu_main();end: printf(继续删除学生信息吗?(Y 继续;N 返回主菜单); printf(n); getchar(); continue_input=getchar(); if(continue_input=Y|continue_inp

23、ut=y) Delete_record_by_name(head); else system(cls); Print_menu_main();return head; return 0;struct student * Sorting_record_by_id(struct student *head)/按学号排序int i=0,j,k,r;struct student *pt1,*pt2,*pt,m;if(head=NULL)printf(现在无同学记录n);printf(按Enter键返回主菜单)n);getchar();r=getchar();if(r!=1)system(cls);Pr

24、int_menu_main();elsesystem(cls);Print_menu_main();elsept1=head;pt2=head-next;for(pt=head;pt;pt=pt-next)i+;for(j=1;jnext;for(k=1;knumpt2-num)m=*pt1; *pt1=*pt2;*pt2=m;pt2-next=pt1-next;pt1-next=pt2;pt1=pt2;pt2=pt1-next;print_table_head();for(pt=head;pt;pt=pt-next)printf(|%10d|%10s|%10s|%10d|%10d|n,pt-

25、num,pt-name,pt-birthday,pt-Cyuyan,pt-shujujiegou);printf(+-+-+-+-+-+n);return head;int main()struct student *head=NULL;struct student *p;int choice;int select;char m;char r;system(color e);printf( n);printf( n);printf( 欢迎使用学生成绩管理系统! n);printf( n);printf(n);printf( n);printf(.n); printf(请按照提示信息完成操作n)

26、;Print_menu_main();printf( n);printf(:n);printf( n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);while(choice!=0)printf(请选择所要执行的操作:n);start:if(scanf(%d,&choice)if(choice7|choice0)printf(请输入0到7的数字,选择所要执行的操作:n);goto start;elsegoto next;if(scanf(%c,&m)printf(

27、请输入0到7的数字,选择所要执行的操作:n);goto start;next:switch(choice)case 1:system(cls);head=Creat_stu_record();break;case 2:system(cls);Print_Stu_Doc(head);break;case 3:system(cls);printf(请选择查找方式:1 按姓名查找; 2 按学号查找;3 返回主菜单);printf(n);scanf(%d,&select);switch(select)case 1:search_by_name(head);break;case 2:search_by_

28、id(head);break;case 3:system(cls);Print_menu_main();break;break;case 4:system(cls);printf(请输入修改方式:1 按学号修改;2 按姓名修改; 3 返回主菜单);printf(n);scanf(%d,&select);switch(select)case 1:system(cls);modify_record_by_id(head);break;case 2:system(cls);modify_record_by_name(head);break;case 3:system(cls);Print_menu_

29、main();break;break;case 5:system(cls);head=insert_record(head);break;case 6:system(cls);printf(请输入删除方式:1 按学号删除;2 按姓名删除; 3 返回主菜单n);scanf(%d,&select); switch(select)case 1:head=Delete_record_by_id(head);break;case 2:head=Delete_record_by_name(head);break;case 3:Print_menu_main();break;break;case 7:system(cls);Sorting_record_by_id(head);printf(按Enter键返回主菜单)n);getchar();r=getchar();if(r!=1)system(cls);Print_menu_main();elsesystem(cls);Print_menu_main();break;break;case 0:system(cls);printf( n);printf(-n);printf( - - - - - 谢谢使用 - - - - -!n); printf( n); break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁