收藏 分销(赏)

学生成绩记录簿标准管理系统专业课程设计.doc

上传人:快乐****生活 文档编号:2533684 上传时间:2024-05-31 格式:DOC 页数:36 大小:356.54KB
下载 相关 举报
学生成绩记录簿标准管理系统专业课程设计.doc_第1页
第1页 / 共36页
学生成绩记录簿标准管理系统专业课程设计.doc_第2页
第2页 / 共36页
学生成绩记录簿标准管理系统专业课程设计.doc_第3页
第3页 / 共36页
学生成绩记录簿标准管理系统专业课程设计.doc_第4页
第4页 / 共36页
学生成绩记录簿标准管理系统专业课程设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、1需求分析1.1研究背景教诲信息化必将涉及许多详细技术和机器在教诲中应用,它使得某些人往往以技术论,机器论观点来结识教诲信息化目,以为教诲信息化就是以机器代替教师授课,代替教诲写板书 ,就是以电子教材代替印刷教材,就是实现网上学习,并以代替性、省力性、顺利性、效率性作为评价教诲信息化尺度。而成绩管理系统将大大提高教师管理效率,使得教师可以针对学生详细状况进行进一步教诲,培养跨世纪创新人才,是实现教诲当代化。教诲信息化应以新教诲思想、教诲观念指引信息技术在教诲各个部门、各个领域广泛应用,应依照创新人才培养规定,运用信息技术,摸索新教诲模式,增进教诲当代化。只有在这样基本上指引信息技术教诲应用,才

2、是咱们所需要教诲信息化。也就相应产生了对学生成绩高效管理。1.2课题研究目及意义 当前国内各院高校学生成绩管理水平普遍不高,有还停留在纸质基本上,这种管理手段已不能适应时代发展,由于它挥霍了许多人力和物力。在当今信息时代这种老式管理办法必然会被计算机为基本信息管理系统所代替。成绩管理系统提供了强大管理功能,以便管理员对考试成绩等信息添加、修改、删除、查询、分类等操作。本系统将提高管理人员工作效率和工作质量。如今,计算机网络带动了全球信息化得进程。在高校中,信息化带来老式教学、科研模式变化,需要新管理机制:以信息技术为手段校务管理,也需要新机制,即需要一种数字化校园(Digital Campus

3、)。数字校园建设也是高校信息化重要构成某些。成绩管理是学校管理中异常重要一种环节,作为学校,除了育人,就是与育知,学生成绩管理计算机化是整个学校教务管理中重要一某些,能否实现这一步关系到学校办学整体效率高低,在于它重要性,学生成绩管理系统开发与应用就逐渐提入议程,并占着重要分量。运用成绩管理系统可以减轻学院教学人员工作量,加快查询速度,加强管理,以及国家各部门关于信息化步伐,是各项管理更加规范化。同步也可以是学生可以尽快懂得自己考试成绩,投入新课程学习或复习。并且也可为高校教诲在将来市场竞争力提高打下坚实基本。1.3课题规定1.以线性链表存储涉及学号、姓名、c语言成绩学生信息。2.在程序执行过

4、程中,依照输出提示信息,通过键盘输入程序中运算命令;相应输入数据和运算成果显示在其后。3.程序执行命令涉及:.输入学生信息.显示所有信息.查询学生信息.删除学生信息.插入学生信息.修改学生信息.显示分类信息.退出系统2概要设计2.1 抽象数据类型定义为实现上述程序功能,以线性链表为存储构造,为此,进行抽象数据类型定义:ADT Student 数据对象:D=e1,e2,e3|e1,e2,e3student(储存学生信息构造体)数据关系:R=基本操作P:creatList(&L)操作成果:构造一种空线性链表。 getelem(L,e ,&p);初始条件:线性链表L已存在。操作成果:在L中查找具有e

5、元素p节点与否存在,若存在则返回OK,否则返回ERROR。input(&L);初始条件:线性链表L已存在。操作成果:向链表尾插入新节点信息。 all(&L);初始条件:线性链表L已存在。操作成果:显示线性链表L所有节点信息。 list(&L);初始条件:线性链表L已存在。操作成果:查询与否存在给定信息节点,若存在则返回OK,否则返回ERROR。 dele(&L);初始条件:线性链表L已存在。操作成果:删除给定信息节点,若成功则返回OK,否则返回ERROR。 append(&L);初始条件:线性链表L已存在。操作成果:在给定信息节点后插入所输入信息节点,若成功则返回OK,否则返回ERROR。 m

6、odify(&L);初始条件:线性链表L已存在。操作成果:查询所输入信息结点,并修改其信息。classify(&L);初始条件:线性链表L已存在。操作成果:按照给定条件将所有结点信息分类,并输出各类别信息。 ADT Student2.2 程序流程图开始 NO输入口令 主菜单 NO 选取序号与否符合规定 Yes修改学生信息退出系统显示分类信息插入学生信息删除学生信息查询学生信息显示所有信息输入学生信息3详细设计3.1 存储构造及方式本系统得学生信息采用构造体student定义,并用单链表存储: typedef struct studentchar num13;/学号char name15;/姓名

7、int score;/c语言成绩student;typedef struct node student data;/数据域 struct node *next;/指针域stunode,*pstunode;3.2 重要功能函数1,输入学生信息:调用函数Status input(pstunode &head),一方面判断输入合法性,后将该条信息添加到链表尾部,用于选取与否继续输入,否则返回主菜单。其代码如: Status input(pstunode &head)/输入学生信息 system(cls); char m;while(m=y|m=Y);return OK; 2,显示所有学生信息:调用函

8、数Status all(pstunode &head),其代码如: Status all(pstunode &head)/显示所有信息 system(cls); pstunode p; system(pause); return OK; 3,查询学生信息:调用函数Status list(pstunode &head),提示输入要查询学生学号,并判断其合法性,后将信息输出,并退出返回主菜单。代码如: Status list(pstunode &head)/查询学生信息 system(cls); char num313; system(pause); return OK;4,删除学生信息:调用函数

9、Status dele(pstunode &head),提示输入要删除学生学号,判断其与否存在,若存在则将其从链表中删除,提示删除成功后退出并返回主菜单。代码如: Status dele(pstunode &head)/删除学生信息system(cls);char num113;system(pause);return OK;5,插入学生信息:调用函数Status append(pstunode &head),提示输入学生学号,判断其合法性,然后输入要插入学生信息,并将其插入该节点之后,退出并返回主菜单。代码如: Status append(pstunode &head)/插入学生信息syst

10、em(cls);system(pause);return OK;6,修改学生信息:调用函数Status modify(pstunode &head),提示输入要修改学生学号,验证合法性后进行修改,修改成功退出并返回主菜单。其代码如: Status modify(pstunode &head)/修改学生信息system(cls); system(pause);return OK;7,显示分类信息:调用函数Status classify(pstunode &head),按照60分如下、6079分、8089分、90分以上进行学生信息分类,并显示。其代码如: Status classify(pstun

11、ode &head)/显示分类信息 system(cls); system(pause); return OK;8,查找学生信息:调用函数Status getelem(pstunode head,char number11,pstunode &p)。其代码如: Status getelem(pstunode head,char number11,pstunode &p)/查找学生信息p=head-next;return OK;9,保存学生信息:调用函数Status save(pstunode &head),将输入所有信息保存在c盘下sort文献中。其代码如: Status save(pstun

12、ode &head)/保存学生信息ofstream out; out.open(c:sort.txt); for(pstunode p=head-next;p;p=p-next) outdata.numtdata.nametdata.scoreendl; out.close(); return OK;10,读文献:调用函数Status start(pstunode &head),在c盘下查找sort文献,并将数据读入。其代码如: Status start(pstunode &head)/读文献 pstunode p,q; system(pause); return OK;4 调试分析通过一周代

13、码编写与调试,我终于将各个模块整合了起来,在这个过程中,我遇到了诸多问题,如数据未定义,括号不匹配,漏掉分号等简朴语法错误,同步也有如循环条件判断错误导致死循环,指针使用前未赋值导致系统报错,逻辑错误而无法产生对的成果等较复杂状况。但通过自己不断查阅资料,不断重新编写终于解决了这些问题。同步考虑到程序健壮性规定,我增长了该系统对不合法数据辨认功能,并可以及时反馈给顾客。每一件事,过程才是最美好,我写完一种功能模块,进行不断调试,当看到期待成果呈当前面前时,由衷喜悦溢于言表;特别当所有功能模块整合到一块后,通过调试能被主函数成功调用时,那感觉太妙了。总来说,本次课程设计,令人受益匪浅。对数据构造

14、这门课程学习了诸多理论知识,但是理论与实践距离很大,开始时对构造体,对链表体会只是在乎识层面,而通过这次课程设计,真真正正运用它们来储存学生信息时,我才结识到它们都是较好工具,好像也有了可触感觉。同步,我也深深体会到自己C语言知识还是那么浅薄,而这次也让自己动手能力和独立思考能力有了很大提高。5 顾客手册1. 本程序运营环境为WINDOWS操作系统,运营软件为Microsoft Visual C+;2. 开始运营程序,输入登录密码“ting”,开始进入主菜单。3. 若顾客初次登陆,则应一方面进行学生信息录入,否则即可按照主菜单选项选取所要执行功能,须进行合法数据输入。4. 当输入1,则进行学生

15、信息输入操作,按规定输入学号(不大于12位整数),姓名(不大于15字符串),每次均用回车键结束输入。5. 当输入2,则显示已录入所有学生信息。6. 当输入3,则进行学生信息查询操作,顾客需要输入所要查询学生学号或姓名,若该学生信息存在,则系统会显示该学生所有信息。7. 当输入4,则进行删除学生信息操作,顾客需要输入所要删除学生学号,若该学号存在,系统会将其删除。8. 当输入5,则进行插入学生信息操作,该操作是在已经录入一位学生后插入新学生信息。顾客需要一方面输入该已录入学生学号,后输入新学生信息。9. 当输入6,则进行修改学生信息操作,顾客需要输入需要修改学生学号或姓名,若该学生信息存在,则会

16、提示继续输入修改信息,否则退出返回主菜单。10. 当输入7,则按照c语言成绩将学生信息以60分如下、6079分、8089分、90分以上级别别进行分类并显示。11. 当输入0,则退出系统,并保存最后所有学生信息,程序运营完毕。6 测试数据及成果1,使用密码,初次进入学生记录簿信息管理系统:2,进入系统界面,对不合法输入做出判断:3,选取1,输入学生信息,并对不合法输入作出判断:4,显示所有信息:5,查询学生信息:6,删除学生信息,并对不合法输入作出判断,后显示成果:7,插入学生信息,后显示成果:8,修改学生信息,对不合法输入做出判断,后显示成果:9,显示分类信息:10,退出系统并保存信息,所输入

17、信息将保存在C盘下sort文献下。 参照文献1 严蔚敏,吴伟民编著. 数据构造(C语言版). 北京:清华大学出版社,1997.042 孟爱国,左利芳,谢中科等编著.C语言程序设计.上海:复旦大学出版社,.23 马春江,李慧勇,孟繁军编著. 新编数据构造教程.北京:中华人民共和国电力出版社,4 孙淑霞,肖阳春,魏琴等.C/C+程序设计教程(第2版)。北京:电子工业出版社,.035 谭浩强。C+程序设计。北京:清华大学出版社,,066 朱战立编著.数据构造使用C+语言.西安:西安电子科技大学出版社,.27 缪淮扣,顾训穰,沈俊编著.数据构造:C+实现.北京:科学出版社,附录 源代码程序#inclu

18、de #include iostream.h#include string.h#include #include iomanip.h#include stdlib.h#define ERROR 0#define OK 1#define N 2typedef int Status;typedef struct studentchar num13;/学号char name15;/姓名int score;/c语言成绩student;typedef struct node student data;/数据域 struct node *next;/指针域stunode,*pstunode;Status

19、getelem(pstunode head,char number11,pstunode &p);/查找学生信息Status input(pstunode &head);/输入学生信息Status all(pstunode &head);/显示所有信息Status list(pstunode &head);/查询学生信息Status dele(pstunode &head);/删除学生信息Status append(pstunode &head);/插入学生信息Status modify(pstunode &head);/修改学生信息Status classify(pstunode &head

20、);/显示分类信息void password()/使用密码进入 char str17; system(cls); coutendlendlendl; coutsetw(30)str1; coutendlendlendl; if (strcmp(str1,ting)!=0) coutsetw(40)口令不对的!请重新输入!n; system(pause); password(); return;char menu()/主菜单 system(cls);int n=1;char select;coutendlendlendl;coutsetw(19)*主菜单*endlendl;coutsetw(26

21、)n+.输入学生信息endlendl;coutsetw(26)n+.显示所有信息endlendl;coutsetw(26)n+.查询学生信息endlendl; coutsetw(26)n+.删除学生信息endlendl; coutsetw(26)n+.插入学生信息endlendl; coutsetw(26)n+.修改学生信息endlendl;coutsetw(26)n+.显示分类信息endlendl;coutsetw(26)0.退出系统endlendlendl;coutsetw(22)select;if(select=0&select=7); elsecoutendlsetw(26)非法数据!

22、请重新输入!;system(pause);select=menu();return select; char Exit()/退出系统 system(cls);char s;coutsetw(36)拟定退出系统请输入Y或y s;return s; void creatList(pstunode &head)/建立带表头空链表 head=(pstunode)malloc(sizeof(stunode); if(!head) exit(0); head-next=NULL; Status input(pstunode &head)/输入学生信息 system(cls); char m; char s

23、50; int i,k; pstunode p,q,frist,last; for(q=head;q-next;q=q-next);last=q;dofrist=( pstunode)malloc(sizeof(stunode);if(!frist) return ERROR;coutsetw(25)s; if(strlen(s)data.num,s); else k=0;cout=0&si=9) continue; else k=0;coutnext;p;p=p-next) if(strcmp(frist-data.num,p-data.num)=0)/如果学号输入重复则退出 free(fr

24、ist); cout该学号已存在!endl; system(pause); return ERROR; coutsetw(25)s; if(strlen(s)data.name,s); else k=0;cout您输入姓名过长(不大于15位),请重新输入:; while(k=0); coutsetw(25)frist-data.score; frist-next=NULL; last-next=frist; last=frist; coutendlendl; cout继续输入请按y或Y,否则按任意键结束输入:endl; m=getch(); coutmnext; if(!head-next)

25、cout该系统学生信息为空!endl;system(pause);return ERROR; else while(p) cout学号:setiosflags(ios:left)setw(13)data.num姓名:setw(15)data.name该学生c语言成绩为:data.scorenext; coutendlnext; if(!head-next) cout该类学生信息为空!endlendlendl;return ERROR; else while(p)cout学号:setiosflags(ios:left)setw(13)data.num姓名:setw(15)data.name该学生

26、c语言成绩为:data.scorenext; coutendl;coutendlnext) cout该系统学生信息为空!endl;system(pause);return ERROR; cout请输入您想查询学生学号或者姓名:num3; if(!getelem(head,num3,p) return ERROR;/查找,若不成功则退出 cout该学生学号是:data.numendl; cout该学生姓名是:data.nameendl; cout该学生c语言成绩为:data.scoreendl; coutnext) cout该系统学生信息为空!endl;system(pause);return

27、ERROR;cout请输入要删除学生学号num1;p1=head-next;while(strcmp(p1-data.num,num1)!=0&p1-next!=NULL)p2=p1;p1=p1-next ;if(strcmp(p1-data.num,num1)=0)if(p1=head-next)head-next=p1-next;else p2-next=p1-next;free(p1);cout学号为num1学生信息已删除!endl;else cout学号num1不存在!next) cout该系统学生信息为空!endl;system(pause);return ERROR;pstunod

28、e p1,p2,p3;/p1为指向要插入前驱节点,p2指向要插入新节点,p3用于循环cout请输入你要在该学生后插入新学生信息,则其学号为:num;coutendl; if(!getelem(head,num,p1) return ERROR;/查找,若不成功则退出p2=(pstunode)malloc(sizeof(stunode);cout请输入您想插入学生学号,姓名,c+成绩:s; if(strlen(s)data.num,s); else k=0;cout=0&si=9) continue; else k=0;coutnext;p3;p3=p3-next)/如果学号输入重复则退出 if

29、(strcmp(p2-data.num,p3-data.num)=0) cout该学号已存在!endl; system(pause); return ERROR; coutsetw(25)s; if(strlen(s)data.name); else k=0;cout您输入姓名过长(不大于15位),请重新输入:;while(k=0); coutsetw(25)p2-data.score;p2-next=p1-next;p1-next=p2;system(pause);return OK; Status modify(pstunode &head)/修改学生信息system(cls);pstun

30、ode p;char num13;char s50;int i,k; if(!head-next) cout该系统学生信息为空!endl;system(pause);return ERROR;coutnum;if(!getelem(head,num,p) return ERROR;/查找,若不成功则退出 couts; if(strlen(s)data.num); else k=0;cout=0&si=9) continue; else k=0;cout您输入学号为非整数,请重新输入: ;break; while(k=0); couts; if(strlen(s)data.name,s); el

31、se k=0;cout您输入姓名过长(不大于15位),请重新输入:;while(k=0);coutp-data.score; system(pause);return OK; Status classify(pstunode &head)/显示分类信息 system(cls); pstunode p,q1,q2,q3,q4,s; pstunode L1,L2,L3,L4; creatList(L1); creatList(L2); creatList(L3); creatList(L4); q1=L1; q2=L2; q3=L3; q4=L4; if(!head-next) cout该系统学生

32、信息为空!next;s;s=s-next) p=( pstunode)malloc(sizeof(stunode); if(!p) return ERROR; if(s-data.scoredata.name,s-data.name);strcpy(p-data.num,s-data.num);p-data.score=s-data.score;/复制数据 p-next=NULL;q1-next=p;q1=p; else if(s-data.score=60&s-data.scoredata.name,s-data.name);strcpy(p-data.num,s-data.num);p-data.score=s-data.score;/复制数据 p-next=NULL;q2-next=p;q2=p; else if(s-data.score=80&s-data.scoredata.name,s-data.name);strcpy(p-data.num,s-data.num);p-data.score=s-data.score;/复制数据p-next=NULL;q3-next=p;

展开阅读全文
部分上传会员的收益排行 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 

客服