学生证管理程序.doc
《学生证管理程序.doc》由会员分享,可在线阅读,更多相关《学生证管理程序.doc(29页珍藏版)》请在沃文网上搜索。
1、高级语言程序设计课程设计题 目: 学生证管理程序班 级: 学生学号: 学生姓名: 指导老师: 提交时间:华南农业大学 信息(软件)学院学生证管理程序1系统分析 1.1问题描述:设计一个学生证的管理程序。实现录入、修改、删除学生的学生证信息,并能根据输入的学生的学号,显示该学生的学生证信息或根据输入的班级的名称,显示该班所有学生的学生证信息,以及实现一些统计各类信息的功能。1.2系统功能分析: 学生证管理程序是用来进行学生证管理的应用软件,不属于学生可使用的系统,个人认为进入该系统不需要进行相应的身份登录。所以进入系统者应当可以使用所有功能; 使用者可行使基本功能有:录入某位学生的学生证信息;根
2、据给定学生的学号,修改、删除或显示该学生的学生证信息;根据输入的班级的编号,显示该班所有学生的学生证信息和一些统计功能。 另外,为了方便管理员操作,减少管理员重复工作的可能,另外加入额外功能:批量录入学生的学生证信息和班级删除。除此以外,亦另外添加操作台指令,方便管理员进行功能切换。1.3 开发平台及工具介绍:根据所学知识及所要用到的相关操作,采用C语言进行开发。开发平台:CodeBlocks+ MinGW + wxWidgets 2系统设计2.1 系统总体结构设计在对学生证管理程序进行系统功能分析之后,我对整个系统进行总体设计。首先,确定大致的开发和设计的思路,并在此基础上,用图表将系统总体
3、的设计架构勾画出来,制定模块结构图,通过模块功能分析对每一个模块进行总体设计。值得一提,总体的设计架构中,shell和kernel的设计应注意彼此的联系,这一方面设计的好坏对后面的设计有很大的影响。然后,根据总体设计的需求,确定要首先那些函数。 学生证管理程序可视作一个简易身份证管理系统,开发设计的方向是方便管理员的操作,节省管理员的操作时间。对于这个问题,可采用批量操作和指令操作的思路。可以将所有的学生证信息存储在一个文件(txt格式)中,在对大量学生证数据的处理用到链表和文件处理等基本技术,并用两个函数实现文件读取和写入。2.2 系统各个功能模块详细设计及功能模块之间关系设计(包括功能结构
4、图等)(1)添加模块(录入模块):可以逐个录入学生信息,也可以设定录入人数,批量录入学生信息。在输入学生信息时,可输入return返回,可随意输入指令进行功能切换。其功能图如下图.(2)搜索模块:根据给出信息,可以是学号,名字或班级,搜索符合条件的某位学生或某些学生,并返回地址。修改信息修改模块(3)修改模块:通过地址找到该学生信息,然后进行修改。 (4) 统计模块,统计学生总男女生人数;某班男生人数,女生人数;统计指定日子出生的学生;统计与指定名字相同的学生;(5) 显示模块,显示学生证信息。分为针对单人的详细显示和针对集体的行显示两种模式。(6)删除模块,本模块有2种删除方式,分别是按学号
5、删除和按班级名删除。 (7)指令模块,本模块负责辨认输入的为指令还是操作序号,并根据输入选择操作。 2.3 数据结构的设计(文件等)(1)学生证信息结构描述学生证信息,并作为一整条记录存放在文件中。typedef struct stud char name20; char sex8; char snumber14; char time12; char id20; char college24; char major20; char classes40; struct stud *next;LNode,*LinkList;LinkList p,q,m,n,c;(2) 链表存储学生证信息,并作为一
6、整条记录在程序中进行操作。 p=(LinkList)malloc(sizeof(LNode);/头指针 q=p;(3) 文件在程序开始前和结束后存储学生证信息void rewirte()/程序结束后将一切写进文件void load()/文件内容装载至链表2.4 界面设计遵循简洁美观、方便使用的原则。(1) 首页:用printf语句构造简单的界面,注重界面的简洁性。(2) 、录入界面(3) 、修改界面:(4) 删除界面(5)学号查询(6) 班级查询(7)其他(8) 指令(9) 统计班级男女人数(10) 统计同名(11) 统计同年同日出生流程图如下:3系统实现基于系统需求分析与系统总体设计的结果,
7、本系统采用开发平台:CodeBlocks+ MinGW + wxWidgets 实现各模块的功能,下面将展现某些模块的录入操作的详细设计和实现过程。录入模块:(1)(2) 代码段片段相关函数char console()/控制台录入:void entry()/录入 system(cls); char ,op,i=1; LinkList std; std=(LinkList)malloc(sizeof(LNode); std-next=NULL; printf(请分别输入学生的信息n); while(iname,cl);break; case 2:strcpy(std-sex,cl);break;
8、 case 3:strcpy(std-snumber,cl);break; case 4:strcpy(std-time,cl);break; case 5:strcpy(std-id,cl);break; case 6:strcpy(std-college,cl);break; case 7:strcpy(std-major,cl);break; case 8:strcpy(std-classes,cl);break; i+; q-next=std; q=q-next; q-next=NULL; printf(录入成功n); printf(输入任意键以退出n); a=getchar();4系
9、统测试模块测试:测试各模块的测试显示模块:(1)输出单个学生学生证信息。 1、输入学号 2、预期结果: 3、输出结果:4、结论:运行正常。(2) 显示班级学生证信息 1、输入2013软件工程1班 2、预期结果:3、4、结论:运行正常。系统测试:系统功能的完整测试(1)系统测试1:1、输入流程: 批量录入信息batchentry 输入3后输入信息 信息如下:根据学号输出信息,根据班级输出信息,2、预测结果:3、实际结果:4、结论:运行正常。5系统运行界面1、 运行界面1:统计同年同日生的学生2、 运行界面2:指令实现6总结 怎么说呢,这次设计的并不难,要是只完成基本功能的话其实不用什么力气。但在
10、这次设计中呢,却陆陆续续地遇到小问题。这些问题都得归因于自己整体设计时不够用心,未曾仔细地思考,又盲目地想做点新意,结果有一阵子一直停滞不前。结果,最后还是静下心来梳理了一遍思路,做好前期准备,情况才好起来。然后,感觉做这种课题真的非常好,题目分析、整体设计、模块分析.一整套做下来实在令人兴奋。Debug过程既是无聊的也是有趣的。能在程序设计中找到快乐实在不错。这次设计已经完结了,但是我的路还有很长,离成为一个合格的程序员实在还有很远,不过,还有几年时间可以抢救一下,我觉得我还有救的7参考文献C语言程序设计(第二版) 附录:全代码:#include#include#include#includ
11、e#include#define TRUE 1#define OK 1#define ERROR 0#define INFEASIBLE -1#define STACK_INIT_SIZE 100char need= ,ne=n;int k=0,sw=0;char cl80;typedef struct stud char name20; char sex8; char snumber14; char time12; char id20; char college24; char major20; char classes40; struct stud *next;LNode,*LinkLis
12、t;LinkList p,q,m,n,c;char console() int i=0; k=0; gets(cl); if(cl0=1&!cl1) return cl0; else while(cli) k=k+cli; i+; return 0;void shell() printf( 学生证管理系统 n); printf(=n); printf(1、学生证信息录入n); printf(2、学生证信息修改n); printf(3、学生证信息删除n); printf(4、显示学生的学生证信息n); printf(5、显示班级所有学生学生证信息n); printf(6、其他n); printf
13、(7、说明书n); printf(8、结束n); printf(=n); printf(请输入操作序号或正确指令n);void shell_II() /*system(cls);*/ printf(请选择你想修改的信息n); printf(1、姓名n); printf(2、性别n); printf(3、学号n); printf(4、入学时间n); printf(5、身份证号码n); printf(6、学院n); printf(7、专业n); printf(8、班级n); printf(9、返回n);void shell_III() printf( 请选择你想实现的统计功能n); printf(
14、1、统计某个班的男女人数n); printf(2、统计已录入学生之间的男女人数n); printf(3、统计并显示已录入学生中同名的学生n); printf(4、统计同年同日出生同学n); printf(5、批量录入n); printf(6、班级删除n);void rewirte()/罚抄 /程序结束后将一切写进文件 FILE *fp; fp=fopen(date.txt,w+); q=p; p=p-next; while(p) fputs(p-name,fp); fputc(need,fp); fputs(p-sex,fp); fputc(need,fp); fputs(p-snumber,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生证 管理程序
