学生成绩管理系统源代码

上传人:新**** 文档编号:40517590 上传时间:2021-11-16 格式:DOCX 页数:13 大小:45.67KB
收藏 版权申诉 举报 下载
学生成绩管理系统源代码_第1页
第1页 / 共13页
学生成绩管理系统源代码_第2页
第2页 / 共13页
学生成绩管理系统源代码_第3页
第3页 / 共13页
资源描述:

《学生成绩管理系统源代码》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码(13页珍藏版)》请在装配图网上搜索。

1、void print2()cprintf("nr 1.输入学生成绩信息及各科成绩.n");cprintf("nr 2. 注销学生成绩信息本系统中删除.n");cprintf("nr 3. 查询学生成绩信息 息.n");cprintf("nr 4.修改学生成绩信息及各科成绩.");cprintf("nr 5. 学生成绩信息排序cprintf("nr 6. 学生成绩信息统计分所得学生.n");cprintf("nr 7. 显示学生成绩信息cprintf("nr 8. 保

2、存学生成绩信息cprintf("nr 9. 帮助学生成绩信息#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include<ctype.h>#include<conio.h>#include<stddef.h>#include<time.h>#define PRINT1 textcolor(12); cprintf("r 请按任意键返回主菜单nr");textcolor(1

3、0);getch();clrscr(); break;int shoudsave=0;structstudent/* 学生信息结构体定义*/char num10,name20,cla4;int score1,score2,score3,total,ave;typedef struct nodestruct student data;struct node *next;Node,*L;void print1() cprintf("r= =");在这里你可以按照提示输入学生的班级,学号,姓名在这里你可以按照学号或姓名将某名学生的信息从在这里你可以按照学号或姓名查询某一名学生的信

4、在这里你可以按照提示修改某一名学生的学号,姓名在这里你可以看到所有学生的各科成绩.n");在这里本系统将为你显示所有科目的最高分及最低在这里你可以看到系统中所有学生的信息.n");在这里你可以将学生你信息保存到内存中.n");在这里你可以获得帮助信息 .n");cprintf("nr 0.退出系统在这里选择是否保存后,你可以安全的退出本系统 .nnr ");void menu()cprintf("nrxc9xcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcxcdx

5、cdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxc dxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxbb");cprintf("rxba 学生信息导入 xba学生信息处理xba");cprintf("rxba_xba");_xbacprintf("rxba统计xba");1-输入学生成绩信息xba6-学生成绩信息cprintf("rxba信息xba");2-注销学生成绩信息xba7-显示学

6、生成绩cprintf("rxba信息xba");3-查询学生成绩信息xba8-保存学生成绩cprintf("rxba信息xba");4-修改学生成绩信息xba9-帮助学生成绩cprintf("rxba xba");5- 学生成绩信息排序xba0-退出系统xcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcaxcdxcdxcdxcdxcxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxbc");void wrong()cprintf(&q

7、uot;nr 输入错误 !请验证后重新输入 .n");void notfind()cprintf("nr 该学生信息不存在 !请验证后重新输入 .n");void printc()/*此函数用于输出中文格式*/cprintf("r学号姓名班级英语数学C语言总分平均分n ");voidprinte(Node*p)/* 此函数用于输出英文格式*/ cprintf("r%-4s%-4s%4s%5d%5d%8d%5d%7dnr",p->data.num,p->data.name,p->data.cla,p->

8、data.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave); Node* Locate(L l,char findinfo,char nameornum)/* 该函数用于定位连表中符合要求的接点,并返回该指针 */ Node *r; if(strcmp(nameornum,"num")=0) /* 按学号查询 */ r=l->next; while(r!=NULL) if(strcmp(r->data.num,findinfo)=0) return r; r=r

9、->next; else if(strcmp(nameornum,"name")=0) /* 按姓名查询 */ r=l->next; while(r!=NULL) if(strcmp(r->data.name,findinfo)=0) return r; r=r->next; return 0; void input(L l)/* 增加学生 */Node *p,*r,*s;char num10; r=l;s=l->next;while(r->next!=NULL) r=r->next;/* 将指针置于最末尾*/while(1) cp

10、rintf("r 如果输入完毕,请按任意键返回主菜单n");cprintf("r如果你还想输入,请按y(yes)继续nr");scanf("%s",num);if(strcmp(num,"y")=0) cprintf(" 请你输入学号:");scanf("%s",num); else break;while(s)if(strcmp(s->data.num,num)=0)printf("t学号为%s'的学生已经存在,若要修改请你选择4修改'!n&

11、quot;,num);print1();printc();printe(s);print1();printf("n");getch(); return; s=s->next;p=(Node *)malloc(sizeof(Node);strcpy(p->data.num,num);cprintf("r 请你输入姓名 :");scanf("%s",p->data.name);getchar();cprintf("r 请你输入班级:");scanf("%s",p->data.

12、cla);getchar();cprintf("r 请你输入 c 语言成绩 (0-100):");scanf("%d",&p->data.score1);getchar();cprintf("r 请你输入数学成绩(0-100):");scanf("%d",&p->data.score2);getchar();cprintf("r 请你输入英语成绩(0-100):");scanf("%d",&p->data.score3);getcha

13、r();p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total / 3;/*信息输入已经完成*/p->next=NULL;r->next=p;r=p;shoudsave=1;l) voidquery(L/* 查询学生信息 */ int select;char findinfo20;Node *p;if(!l->next)cprintf("n没有信息可以查询 !n");return;cprintf("

14、n1=> 按学号查找nr2=> 按姓名查找nr");scanf("%d",&select);if(select=1) /* 学号 */ cprintf("r 请你输入要查找的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p)cprintf("查找结果 nr");print1();printc();printe(p);print1(); elsenotfind();else if(select=2)

15、/* 姓名 */cprintf("r 请你输入要查找的姓名 :");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p)cprintf("查找结果 nr");print1();printc();printe(p);print1();elsenotfind();elsewrong();/*void Delete(L l)删除学生信息 */int select;Node *p,*r;char findinfo20;if(!l->next)cprintf(&q

16、uot;n 没有信息可以删除!n");return;cprintf("n1=> 按学号删除nr2=> 按姓名删除nr");scanf("%d",&select);if(select=1)cprintf("r 请你输入要删除的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p)r=l;while(r->next!=p)r=r->next;r->next=p->next;free(

17、p);cprintf("nr 该学生已经成功删除!n");shoudsave=1;elsenotfind();else if(select=2)cprintf("r 请你输入要删除的姓名 :");scanf("%s",findinfo);p=Locate(l,findinfo,"name"); if(p) r=l;while(r->next!=p) r=r->next;r->next=p->next;free(p);cprintf("nr 该学生已经成功删除!n");sh

18、oudsave=1; else notfind(); else wrong();void modify(L l)/* 修改学生信息 */Node *p;char findinfo20; if(!l->next) cprintf("nr 没有信息可以修改 !n");return;cprintf("r 请你输入要修改的学生学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num"); if(p) cprintf("r 请你输入新学号(原来是%s):"

19、;,p->data.num);scanf("%s",p->data.num);cprintf("r 请你输入新姓名(原来是%s):",p->data.name);scanf("%s",p->data.name);getchar();cprintf("r 请你输入新班级(原来是%s):",p->data.cla);scanf("%s",p->data.cla);cprintf("r请你输入新的 c语言成绩(原来是d分):",p->dat

20、a.score1);scanf("%d",&p->data.score1);getchar();cprintf("r请你输入新的数学成绩(原来是d分):",p->data.score2);scanf("%d",&p->data.score2);getchar();cprintf("r请你输入新的英语成绩(原来是d分):",p->data.score3);scanf("%d",&p->data.score3);p->data.total=

21、p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total/ 3;cprintf("nr 信息修改成功 !n");shoudsave=1; else notfind(); void display(L l) /* 显示全部学生信息*/int count=0;Node *p;p=l->next;if(!p)cprintf("nr 没有信息可以显示!n");return;cprintf("显 示 结 果");print1(

22、);printc();while(p) if(count%5=0) getch();printe(p);p=p->next;count+;print1();cprintf("n");void Statistic(L l)/*统计学生信息 */Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点 */ Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min; Node *r=l->next; if(!r) cprintf("nr没有信息可以统计!n&qu

23、ot;);return ;)pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r;while(r!=NULL)(if(r->data.score1>=pc_max->data.score1)pc_max=r;if(r->data.score1<=pc_min->data.score1)pc_min=r;if(r->data.score2>=pm_max->data.score2)pm_max=r;if(r->data.score2<=pm_

24、min->data.score2)pm_min=r;if(r->data.score3>=pe_max->data.score3)pe_max=r;if(r->data.score3<=pe_min->data.score3)pe_min=r;if(r->data.total>=pt_max->data.total)pt_max=r;if(r->data.total<=pt_min->data.total)pt_min=r;if(r->data.ave>=pa_max->data.ave)pa_ma

25、x=r;if(r->data.ave<=pa_min->data.ave)pa_min=r;r=r->next;)cprintf("= 统 计 结 果An");cprintf("r总分最高者:%-16s%d 分n",pt_max->data.name,pt_max->data.total);cprintf("r平均分最高者:%-16s%d 分n",pa_max->data.name,pa_max->data.ave);cprintf("r英语最高者:%-16s%d 分n&quo

26、t;,pe_max->data.name,pe_max->data.score3);cprintf("r数学最高者:%-16s%d 分n",pm_max->data.name,pm_max->data.score2);cprintf("rct 口口取同值 :%-16s%d 分nr",pc_max->data.name,pc_max->data.score1);cprintf("r总分最低者:%-16s%d 分n",pt_min->data.name,pt_min->data.total)

27、;cprintf("r平均分最低者:%-16s%d 分n",pa_min->data.name,pa_min->data.ave);cprintf("r英语最低者:%-16s%d 分n",pe_min->data.name,pe_min->data.score3);cprintf("r数学最低者:%-16s%d 分n",pm_min->data.name,pm_min->data.score2);cprintf("rc语言最低者:%-16s%d 分nr",pc_min->d

28、ata.name,pc_min->data.score1);print1();) void Sort(L l) L ll; Node *p,*rr,*s;ll=(L)malloc(sizeof(Node); /* 用于做新的连表*/ll->next=NULL; if(l->next=NULL) cprintf("nr 没有信息可以排序!n");return ; p=l->next; while(p) s=(Node*)malloc(sizeof(Node); /* 新建接点用于保存信息 */ s->data=p->data; s->

29、next=NULL; rr=ll; while(rr->next!=NULL && rr->next->data.total>=p->data.total) rr=rr->next; if(rr->next=NULL) rr->next=s; else s->next=rr->next; rr->next=s; p=p->next; free(l); l->next=ll->next; cprintf("nr排序已经完成!n");voidSave(Ll)/*/ FILE* f

30、p;Node *p;int flag=1,count=0;fp=fopen("c:student","wb"); if(fp=NULL) cprintf("nr重新打开文件时发生错误!n");exit(1);p=l->next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p->next;count+;elseflag=0;break;if(flag)cprintf("nr存.)nr",count);shoudsave=0;fclose(fp);void/*/L/

31、* 链表 */FILE/* 文件指针*/intcount=0/* 菜单选择*/char ch ,creat;Node *p,*r;time_t it;clrscr();textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);printf("r文 件保 存成功 .(有 %d 条信 息 已 经 保main()l;*fp;,i,menu_select;学生成绩管理系统");printf("r") ;printf("rl=(Node*)malloc(sizeof

32、(Node);l->next=NULL;r=l;fp=fopen("c:student","rb");if(fp=NULL)cprintf("nrscanf("%c",&creat);if(creat='y'|creat='Y')fp=fopen("c:student","wb");elseexit(0);gotoxy(9,11); textcolor(12);cprintf("nrfor(i=0;i<6;i+) cprin

33、tf(".");sleep(1);textcolor(10);gotoxy(9,11);");while(!feof(fp)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeof(Node),1,fp) 将文件的内容放入接点中 */p->next=NULL;r->next=p;r=p; /* 将该接点挂入连中 */ count+;fclose(fp);/* 关闭文件 */gotoxy(1,3);cprintf("nr 信 息 导",count);sleep(1);while(1) 扬州大学信息工

34、程学院软件0902 班设计人员 :李天鹏");该文件还未存在,是否需要创建?(y/n , Y/N)nr");文件已经打开,系统正在导入信息入 完毕,系统共");cprintf("n/*导 入 %d 条 信 息 menu();textcolor(12);cprintf("r 现在时间 : "); it=time(NULL);cprintf(ctime(&it);cprintf("r 左边数字对应功能选择,请按0-9 选择操作 :nr");textcolor(10) ;scanf("%d",

35、&menu_select);if(menu_select=0)if(shoudsave=1) getchar(); textcolor(128+12);cprintf("nr信息已经改动,是否将改动保存到文件中 (y/n Y/N)?nr");scanf("%c",&ch);if(ch='y'|ch='Y')Save(l);你已经成功退出学生成绩信息系统clrscr();Delete(l);query(l);modify(l);PRINT1PRINT1PRINT1PRINT1PRINT1 break;cpri

36、ntf("nrbreak;switch(menu_select)case 1: clrscr(); input(l);/*输入学生*/case 2: clrscr();/*删除学生*/case 3: clrscr();/*查询学生*/case 4: clrscr();/*修改学生*/case 5: clrscr();Sort(l);case 6: clrscr(); Statistic(l);case 7: clrscr();display(l);case 8: clrscr();Save(l);case 9: clrscr();cprintf("print2();default: wrong(); getchar();, 欢迎下次继续使用 !n");break;PRINT1PRINT1PRINT1/* 保存学生 */=帮助信息=n");

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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