




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习好资料常熟理工学院2016年春季学期C语言案例实践报告题目:学生成绩管理系统设计学号:092715217姓名:梁伟指导教师:赵秀兰日期:2016.05.10目录主要包含下列内容:(1)系统分析:包括设计题目、设计内容以及系统功能需求分析;(2)系统设计:包括总体设计(主要功能模块的划分)及详细设计(各功能模块的算法设计以及对应的流程图);(3)系统实现:包括使用的所有变量、自定义函数、结构体的说明, 以及完整源程序清单,关键代码应加注释。(4)系统运行:包括系统操作使用的简单说明,使用测试数据运行 的结果。(5)总结:包括课程设计过程中的学习体会与收获,出现的问题和 解决的方法,没有完成的
2、部分及原因,对C项目实践课程的认识以及 自己的建议等内容。更多精品文档目录正文 31. 系统需求分析 32. 系统总体设计 43详细设计 64. 系统测试 95. 软件使用说明书 13总结 14附录:部分原程序代码 15正文随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技 术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生 存要发展要高效率的把内部活动有机的组织起来, 就必须建立自身特点相适应的 管理信息系统。本组设计的是一个关于学生信息管理的数据库系统, 通过这个系统,管理员 可以简捷方便的对学生信息进行增加、 删除、修改等功能,而用户也可以通过这 个系
3、统对学生信息进行查询等功能。1. 系统需求分析1.1需求概述:(1)学生信息录入功能;(2)学生信息浏览功能;(3)学生信息查询(或排序)功能;(4)学生信息删除功能;(5)学生信息修改功能;1.2需求说明:(1)学生信息包括姓名学号和成绩,并且要求学生号不重复。(2)学生信息的显示要求有一定的规范格式。(3)对学生信息应能够分别按学号及按姓名两种方式进行查询,要求能返回所 有符合条件的学生的信息。(4)对学生信息的修改应逐个地进行,在一个学生的信息的更改不影响其他的 学生记录。(5)所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用 户的选择来进行各种处理,并要求在此过程中能尽
4、可能地兼容用户使用过程中的 异常情况。更多精品文档学习-好资料2. 系统总体设计一、编写目的根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和 数据结构的设计方案,并写出书面文档总体设计说明书,为下一步进行详细设计 做准备。二、总体设计1. 功能划分该系统可以按功能进行模块划分,如图 1所示。图1系统模块图其中:(1)菜单选择模块完成用户命令的接受,此模块也是学生信息管理的入口,用 户所要进行的各种操作均需在此模块中进行选择, 并进而调用其他模块实 现相应的功能。(2)信息输入模块完成学生信息的输入功能,输入信息包括姓名学号和成绩。(3)信息浏览模块完成已录入学生信息的显示。(
5、4)信息查询模块完成学生信息的查询,查询时对应有按编号查询和按姓名查 询两种方式。(5)信息修改模块完成学生信息的修改功能。(6)信息删除功能模块完成学生信息的删除功能。2. 数据结构本系统中主要的数据结构就是学生的信息,包含姓名学号和成绩,在处理过 程中各项可以作为一个学生的不同属性来进行处理。3. 程序流程系统的执行应从功能菜单选择开始, 依据用户的选择来进行后续的处理,直 到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流 程图如图2所示:图2程序流程图学习-好资料3详细设计1. 数据结构(1) 性别:emum Sexmale,female;(2) 学历: enum
6、Educationhighjunior,college,master,doctor;(3) 日期:Struct Dateint year;int mon th;int day;(4)学生信息:Struct Info学生号*/姓名*/性别*/出生年月*/学历*/职务*/工资*/地址*/电话*/char nu m5 ;/*char n ame8;/*enum Sex sex;/*struct Date birthday;/*enum Educatio n educati on;/*char duty8;/*double wage;/*char addr12;/*char phon e8;/*;2.
7、 各个功能模块的处理流程对应于总体设计时的系统模块图,各个功能模块的处理流程如下:(1) 信息输入模块输入三个学生信息以初始化系统;读入学生信息;(2) 信息浏览模块依次输出学生信息;(3) 信息查询模块while (继续查询)if(按编号查询)读入查询的学生编号;顺序读出一个学生的信息;if(该学生信息的编号符合条件)学习好资料输出该学生的信息;else if(按姓名查询)读入查询的学生姓名;顺序读出一个学生的信息;if(该学生信息的姓名符合条件)输出该学生的信息;else提示输入不合适; 提示是否继续查询;(4)信息修改模版while ( 继续修改)提示并读入待修改的学生的编号;顺序读出一
8、个学生的信息;if (该学生信息的编号符合条件)将学生的信息进行修改;显示修改后所有学生的信息;(5)信息删除模块while (继续删除)提示并读入待删除的学生号; 查找是否有符合条件的学生记录; if (有符合条件的记录)while (所有学生信息未读完)读出下一条记录;if (此条记录不是待删除记录)删除该学生信息记录;else提示没有符合条件的记录存在;(7)信息排序模块if (按姓名排序)将第i个学生姓名和他的下一个学生姓名作对比通过对比大小将学生信息交换依次排序;else if(按学号排序)将第i个学生学号和他的下一个学生学号作对比通过对比大小将学生信息交换依次排序;else if
9、(按成绩排序)将第i个学生学号和他的下一个学生学号作对比通过对比大小将学生信息交换依次排序;打印排序后的学生信息;更多精品文档4. 系统测试一、设置测试数据根据以下几个列子分析测试:1.录入:姓名tom学号0001成绩982.录入:姓名lili学号0002成绩563.录入:姓名alin学号0003成绩742.显示所有学生的信息。3.增加一个学生的信息姓名joh n学号0004成绩884. 删除学生号为0002的学生信息。5. 将alin 学号的信息由0003改为00056. 查找学号为0001的学生信息。7. 将所有学生的信息按成绩排序。8. 退出。、测试结果及分析(1) 学生信息录入分析图如
10、图1所示:学习-好资料(2) 学生信息系统菜单界面如图2所示:L 1E;;网迳152梁R作业?海序文件生百理系范exE X*章林学生菅土里系纟充*处*字*1;斷学生倩息 匚增加孝生特息. 3;删除学生信息 4:修改学生信息 5:查找学生信息 乎学生彳瓷恳 7: exit更多精品文档(3)显示学生信息如图3所示E;网洛152彌咋坐程序文禅D亡bug学生管理手选尼心村*枠丰生管理* d|o|c*!>: *各各各-In ml i_ o al 1x t 1 a壬号号輦学11- O O02OOO换il:学习好资料学习-好资料(4)学生信息录入图如图4所示:(5)学生信息删除如图5所示更多精品文档(
11、6) 学生信息修改图如图6所示:KJ E;网紳翠梁伟昨业握序文伸iDebu或学生管理毒统,exe枠* 学牛壬里条壬充*片本*按姓名查找需要修改的学生信息输人1,撞学号查找需要修改的学生信息输入21j.n请输入需要修改学生的姓名| alin姓名* alin 学号;0003 分数;74 请重新输入该学生的名字、学号、分数 alin 0005 74姓名:邊lin 学号:0005 分数:?4專勰蠶生信息请如退出请按任意键:(7) 学生信息查找图如图7所示:E3电:丽窜152彌在业程睜文酢D昔bug学主管理系統学生管理系銃 * jfcsfc zfc * * * * * 9C * # *3(C按硅名查找输
12、入1.按学号査找输入22请输入需要查找学生的学号00D1姓召:tom 学号I 0001分敌1 98还需查询请按X退出请按任意键:学习-好资料(8) 学生信息排序图如图8所示:荀52站咋业闵序立常Dubug学生管理系統小e未*那*学牛2条统*:t:*木衬*辱*按姓名排序龜入1,按学号排序输入N按成绩排序输入3Me衣地丈史*去乂虫半1管甲 系 纟充伞朵床*申覃伞就*水车+ * 名名名号号 学学1±O-004 87 8 8gI *数数咯分分翎夕5. 软件使用说明书(1) 根据正确的提示安装软件。(2) Intel486以上系列、AMD K6以上系列等PC台式机和便携式电脑都可 运行。(3)
13、 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。 操作如下:输入三名学生信息以初始化程序根据菜单提示输入需要的信息即可完成指令。当信息输入正确,进入你所需要的菜单程序中: 学生信息:显示姓名、学号、成绩。设计总结在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存 在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会 存在一些缺陷和不足。因为对学生信息管理的整个流程不够熟悉, 在需求分析时 未能做到完全满足用户的需求。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据 库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所
14、必 需的。通过开发这个系统,我组掌握了的项目基本开发过程, 用到的知识巩固了 我组对C语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的 应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。学习好资料附录:部分源程序代码#i nclude <stdio.h>/#in elude <win dows.h>#in elude vconi o.h>#i nclude <process.h>#in clude <math.h>#in clude <stri ng.h>写入头文件typedef struct S
15、TU/char n ame10;char num10;int grade;st;建立链表typedef struct node st data;struct node *n ext;no de;no de* jia nli();/int se();void xia nshi (node *head);void zen gjia( node *head); no de* sha nchu (node *head);void xiugai (node *head); void chazhao (node *head);void paixu (node *head);函数定义no de* jia n
16、li()/int i;node *he,*tail,*p;he二tail二NULL;建立函数printf(nt学生管理系统初始化n*nnn请先输入3位学生的有效信息:n");for(i=0;i<3;i+)p=(node *)malloc(sizeof( no de);p-> next二NULL;printf(”请输入第d位学生的信息n",i+1);sea nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade); while(atoi(p->data .
17、num)=0|p->data.grade<0)printf("printf("您输入的信息有误,请重新输入!"); 请输入第d位学生的信息n",i+1);sea nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade); if(he=NULL)he=p;elsetail->n ext=p; tail=p;p=he;system("els");学生管理printf( "*、nt系统初始化 n*nnnn&qu
18、ot;);while(p!=NULL)prin tf("姓名:%s学号:%s分数:%dn",p->,p->data.num,p->data.grade);p=p->n ext;prin tf("已录入三个基础学生信息,按任意键进入学生管理系统菜单n");geteh(); retur n he;mai n()void/主函数入口int a;node *head; system("eolor 2e"); head=jia nli (); dosystem("els");a=se
19、(); switeh(a)/输入选择case 1:xia nshi(head);break;case 2:ze ngjia(head);break;case 3:head=sha nchu(head);break;case 4:xiugai(head);break;case 5:chazhao(head);break;case 6:paixu(head);break;case 7:exit(0);break; while(1);int/菜单界面se()int i,t;char s10;char*me n叩二*学 生 管*、nn""n","3:删除学生信息
20、n","6:排显示学生信息n","2:n","4:修改学生信息n","5:序学生理系统 增加学生信息 查找学生信息信息n","7:exitnn""*、n"for(i=0;i<9;i+)prin tf("%s",me nui); doprin tf("请输入数字命令:");scan f("%s",s);t=atoi(s);while(t<0|t>7);return t;void/显示学生信息
21、函数xia nshi (node*head)更多精品文档node *p; system("cls");p=head;printf(学生管理系统*nn");while(p!二NULL)prin tf("姓名:%s学号:%s分学习-好资料 数:dn”,p->,p->data.num,p->data.grade);p=p->n ext;getch();zen gjia( node*head)void/增加学生信息函数 node *p,*tail,*t;system("cls"); p=head;pr
22、intf(学生管理系统*nn");更多精品文档while(p!二NULL)tail=p;p=p->n ext;p=(node *)malloc(sizeof( no de);p-> next二NULL;printf(”请输入新增学生的学号:");sca nf("%s",p->data .nu m);while(atoi(p->data .num)=0)system("cls");printf(学 生 管 理 系*、nn")printf(”您输入的学号有误,请重新输入!");prin tf(&
23、quot;请输入新增学生的学号:");sca nf("%s",p->data .nu m);t=head;while(t!=NULL)if(atoi(p->data .num )=atoi(t->data .num)t=head;*nn);system("cls");printf( "*学生的学号已被使用,请重新输入学号! n");prin tf("请输入新增学生的学号:sca nf("%s",p->data. nu m);con ti nue;学习-好资料t=t- &g
24、t;n ext;printf("请输入该学生的名字、分数n");sea nf("%s %d",p->data .n ame,&p->data.grade);tail->n ext=p; tail=p;p=head;system("cls");p=head;printf(学生管理系统*nn");while(p!二NULL)printf(" 姓名:%s学号:%s数:%dn",p->,p->data.num,p->data.grade);p=p-&g
25、t;n ext; printf("n按任意键返回n");getch();*head)no de*sha nchu (node/删除学生信息函数char d10;node *p,*t,*flag=NULL;system("cls");printf(学生管理系统*nn");printf(”请输入需要删除学生的学号:");sca nf("%s",d); t=head;while(strcmp(d,t->data. num)!=0&&t-> next!二NULL) flag=t;t=t- >
26、;n ext;if(strcmp(d,t->data .nu m)=0) if(strcmp(d,head->data. nu m)=0) p=head;学习好资料更多精品文档head二head->n ext; free(p);elseflag->n ext=t- >n ext;free(t);elseprintf(”没有搜索到需要删除的学生信息,请核对后再输入 getch();p=head; system("cls");printf( "*while(p!二NULL)prin tf(" 姓名:%s学号:%s数:%dn&qu
27、ot;,p->,p->data.num,p->data.grade); p=p->n ext;printf("n按任意键返回n");getch();retur n(head);void/修改学生信息函数int d,m,flag;char c10, n10,ex;node *p;p=head;do system("cls");printf( "*printf(牛管壬理 系幺统 *、nn");xiugai (node*");*head)牛管壬理 系幺统*门门");"按
28、姓名查找需要修改的学生信息输入1,按学号查找需要修改的学生信息输入2t");sca nf("%s",c);while(atoi(c)!=1 &&atoi(c)!=2) printf(”输入的指令有误,请重新输入n");printf(”按姓名查找需要修改的学生信息输入1,按学号查找需要修改的学生信息输入2t");sea nf("%s",c);if(atoi(c)=1)printf("请输入需要修改学生的姓名:");sea nf("%s", n);m=strcmp( n,p
29、->data. name);while(m!=O&&p-> next!二NULL)p=p->n ext;m=strcmp( n,p->data .n ame);if(m=0)prin tf("n 姓名:%s学号:%s分数: %dn",p->,p->data.num,p->data.grade);flag=1;elseprintf("没有搜索到需要修改的学生信息,请核对后再输入n");flag=0; if(atoi(c)=2)printf("请输入需要修改学生的学号:&q
30、uot;);sca nf("%d",&d);while(d!=atoi(p->data. num)&&p->n ext!=NULL)p=p->n ext;if(d=atoi(p->data .num)prin tf("n 姓名:%s学号:%s分数: %dn",p->,p->data.num,p->data.grade);flag=1;elseprintf(”没有搜索到需要修改的学生信息,请核对后再输入n");flag=O; if(flag=1)printf(&q
31、uot;请重新输入该学生的名字、学号、分数n ”);sca nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade);prin tf(" 姓名:%s学号:%s分数:%dn",p->,p->data.num,p->data.grade);printf("n修改成功! n还需修改学生信息请按1,退出请按任意键:n ”);ex=getchar();ex=getchar();elseprintf("还需删除学生信息输入1,退
32、出请按任意键:n");ex=getchar();ex=getchar();while(ex='1');chazhao (node*head)void/查找学生信息函数int c,d,m;char ex ,n 10; node *p;p=head;dosystem("cls");printf(学生管理系统*nn");printf("按姓名查找输入1,按学号查找输入2t");sca nf("%d", &c);while(c!=1 &&c!=2)printf(" prin
33、tf("输入的指令有误,请重新输入");按姓名查找输入1,按学号查找输入2t");学习-好资料sea nf("%d",&c);if(c=1)printf(”请输入需要查找学生的姓名:");sea nf("%s", n);m=strcmp( n,p->data. name);while(m!=O&&p-> next!二NULL)p=p->n ext;m=strcmp( n,p->data .n ame);if(m=0)prin tf("nnn");p
34、rin tf(" 姓名:%s学号:%s分数: %dn",p->,p->data.num,p->data.grade);elseprin tf("没有搜索到需要查找的学生信息,请核对后再输入");if(c=2)printf("请输入需要查找学生的学号:");sca nf("%d",&d);while(d!=atoi(p->data. num)&&p->n ext!=NULL)p=p->n ext;if(d=atoi(p->data .
35、num)prin tf("nnn");prin tf(" 姓名:%s学号:%s分数: %dn",p->,p->data.num,p->data.grade);elseprin tf("没有搜索到需要查找的学生信息,请核对后再输入");p=head;printf("还需查询请按1,退出请按任意键:n");更多精品文档学习好资料ex二getchar(); ex二getchar(); while(ex='1');/排序学生void paixu(node *head)信息函数int c,d;char min 10;node *p,*q,*x;st t;p=head;system("cls");printf("*生管壬理系幺统 *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内墙乳胶漆粉刷合同
- 2024年标准离婚协议
- 采购订单状态更新表
- 环境监测与控制表格
- 《初中物理电学实验指导教案》
- 安全办公用品表格化记录
- 商铺返租合同返租商铺协议
- PROTAC-BTK-Degrader-12-生命科学试剂-MCE
- JNK-1-IN-5-生命科学试剂-MCE
- DMANI-生命科学试剂-MCE
- 四川大学华西医院进修申请表
- 硬笔书法:幼小衔接识字写字教学课件
- 林木育种学:第二讲 林木选育技术基础课件
- 《海底两万里》课件(完美版)
- 承插型盘扣式钢管进场验收记录表
- 新粤教版科学六年级下册全册教案(含反思)
- 地基注浆加固记录表
- 三防漆外观检验重点标准
- 2023对口高考电子类基础课试题卷含答案
- 初中生物实验目录(苏教版)
- 初中 初一 语文《谁是最可爱的人》 课件
评论
0/150
提交评论