《学生管理系统设计-说明书.doc》由会员分享,可在线阅读,更多相关《学生管理系统设计-说明书.doc(20页珍藏版)》请在课桌文档上搜索。
1、1简介1.1 设计要求学生管理系统应包含学生的全部信息.每个学生是一条记录,包括#、学号、性别、出生年月、专业、班级、家庭地址、宿舍等.本系统能够按专业班级或学号查找学生,并显示相关学生情况.要求程序结构合理、算法准确、语法正确,并生成可执行文件.1.2 系统概述学生信息管理系统作为一个应用软件为学校师生提供一个对学生信息进行管理和查询的平台.用户可根据系统界面的提示信息对学生的信息进行输入、修改、增加、删除、查询、排序等操作.1.3开发与设计的总体思想本系统主要应用模块化的设计思想实现学生信息的输入、修改、增加、删除、查询、排序等典型管理功能.各主要模块的数据均存储在文件中,因此包含对文件的
2、读、写等基本操作.在软件开发过程中应用了C语言程序设计中的基本控制结构,如选择、循环、顺序结构.2 总体设计2.1 功能需求该系统提供了一个对学生信息进行管理和查看的平台,给用户一个交互式的应用接口,具体功能如下:2.1.1创建学生信息用户根据提示信息输入学生的#、学号、性别、出生年月、专业、班级、家庭地址、宿舍等信息,系统会以文件形式存储,以便进行管理.2.1.2查询学生信息用户根据提示信息输入学生的学号或专业班级的方式进行查询,在学生文件中查找到该信息并显示出来.2.1.3修改学生信息用户可以根据系统提示修改自己的一些信息.2.1.4删除学生信息用户根据提示信息输入学生的学号,在学生文件中
3、查找到该信息并删除.2.1.5显示学生信息用户根据提示信息输入学生的学号或班级,在学生文件中查找到该信息并显示.2.1.6保存学生信息系统将学生信息记录存储在系统磁盘的文件中,以便进行管理、检索和备份.2.2 系统功能结构图学生管理系统图1 学生管理系统录入学生信息查询学生信息修改学生信息删除学生信息显示全部信息保存学生信息选择录入人数录入信息学号查询班级查询输入学生学号输入修改信息输入学生学号删除该生信息3 详细设计3.1系统化分析将程序进行模块化处理,使程序编写思路清晰,降低了编写程序的难度.首先输入一些学生信息,学生信息中包含学号、#、年龄、性别、出生年月、地址、 等基本信息,输入完之后
4、建立一个文件,把数据存储在里面;然后要能查询输入的学生信息,建立一个查询模块,在模块中打开文件,根据学号、班级查询出学生信息.输入信息之后应该可以进行修改和删除,建立修改、删除的模块;还有增加学生信息,应该能根据实际情况增加学生的信息,建立增加的模块,之后就是保存和退出.3.2主函数与主界面首先定义数据的类型,根据实际要输入的数据定义合适的数据类型,然后建立一个菜单模块,设计出系统的主菜单的界面,利用switch选择函数进行菜单选项的选择,之后设计主函数,利用while循环结构在主函数中一直调用菜单模块.图2 主界面 3.3录入模块主函数之后要先进行数据的录入,在录入模块中套用while、if
5、和for循环结构使系统能一次根据要求输入指定数量的学生的信息,利用printf函数输出提示,scanf函数进行信息的录入,录入完毕之后,调用保存模块进行数据的保存.图3 录入模块3.4查询模块系统要能进行信息的查询,利用switch函数进行选择根据学号还是班级进行查询,之后利用strcmp函数将输入的查询信息与系统存储文件中的信息进行比较,如果相同则输出该学生的信息,如果不同则输出该学生不存在.图4查询模块3.5修改模块考虑到有些信息可能会发生变动,因此设计了修改模块,如果某个学生的信息发生变动,则根据strcmp函数找到对应的学生信息,选择要修改的项目,之后利用strcpy函数将输入的新信息
6、覆盖原来的信息,然后保存在存储文件中.图5修改模块3.6删除模块有些学生信息可能要根据实际情况进行删除,那么根据输入的要删除的学生学号,用strcmp函数比较确定要删除的学生信息,然后进行删除,删除之后输出提示删除成功.图6 删除模块3.7增加模块通过此模块可以根据实际情况增加新的学生信息,利用strcmp函数判断要增加的信息是否已存,如果存在则输出提示该学号已存在,如果不存在则提示输入学生信息.3.8显示模块通过此模块可以浏览系统中的全部信息,从而很方便的对学生信息进行对比.3.9保存模块该模块的作用是保存信息,建立一个存储文件,打开该文件用fwrite函数写入录入的信息然后关闭该文件.3.
7、10退出系统当对系统操作完成以后,想退出系统只需在界面中选择退出系统模块的代号,系统就自动退出此次运行程序.图7 退出系统4 总结通过这次课程设计,巩固了C语言的知识,对C语言的内容有了进一步的了解,增加了实际动手能力.同时在课程设计过程中,也发现了自身学习态度的问题.由于这学期没有认真听讲,课后有没与时花时间去复习,造成了许多知识的漏洞,很多知识不能很好地运用,事实告诫了我:今后上课一定要认真听讲,与时复习,多动手实际编写,增强自己的实践能力.参考文献1 谭浩强,张基温C语言程序设计教程M:高等教育,20062 吕凤煮C语言基础教程基础理论与案例M:清华大学,20053 黄明、梁旭、万洪莉C
8、语言课程设计M:电子工业,20064 郭宁,郑小玲管理信息系统M:人民邮电,20065 赵池龙,杨林,陈伟实用软件工程M:电子工业,2006附录程序清单:#include #include #include #define N 41 struct record char code20; /*学号*/char name10; /*#*/char sex5; /*性别*/char time20; /*出生日期*/char major10; /*专业*/char grade5; /*班级*/char add20; /*地址*/char noq20; /*宿舍*/stuN;int k=1,m,n;vo
9、id caidan;void luru;void chaxun;void xiugai;void zengjia;void shanchu;void xianshi;void baocun;void tuichu; int main whilecaidan;return 0; void luru /* 录入学生信息 */int i,flag=1;whileflag=0;printf请输入录入信息的学生人数n:n;scanf;ifn41flag=1;printf; fori=0;iprintf;printf;scanf;printf;scanf;getchar;printf请输入性别;scanf
10、;printf;scanf;printf;scanf;printf;scanf;printf;scanf;printf;scanf;system;printf;baocun;void chaxun/* 查询学生信息 */int i,t,flag;char s130;printf;printf;printf;printf;printf;whileflag=0;printf;scanf;switchcase 1:printf;scanf;fori=0;iifstrcmp=0flag=1;printf;printf;printf;printf; ifprintf;break;case 2:print
11、f;scanf;fori=0;iifstrcmp=0flag=1;printf;printf;printf;printf;ifprintf;break;case 3:system;return;default:printf;void xiugai/* 修改学生信息 */int i,t,num;char sex13,s130,s230;printf;scanf;fori=0;iifstrcmp=0num=i;printf;printf;printf;printf;printf;printf;printf;printf;printf;printf;whileprintf;scanf;switchc
12、ase 1: printf;scanf;strcpy;break;case 2:printf;scanf;strcpy;break;case 3: printf;scanf;strcpy;break;case 4: printf;scanf;strcpy;break;case 5: printf;scanf;strcpy;break;case 6: printf;scanf;strcpy;break;case 7: printf;scanf;strcpy;break;case 8:return;default:printf;void paixu/* 对学生信息进行排序 */int i,j;ch
13、ar *p,*q,s;char temp10;fori=0;ifori;j-ifstrcmp0 strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;strcpy;p=&stuj-1.code2;q=&stuj.code2;s=*p;*p=*q;*q=s;void zengjia/* 增加学生信息 */int i=n,j,flag;printf;scanf;doflag=
14、1;whileflag=0;printf;scanf;forj=0;jifstrcmp=0printf;flag=1;break;printf;scanf;printf;scanf;printf;scanf;printf;scanf;printf;scanf;printf;scanf;printf;scanf;ifi+;whilei;n=n+m;printf;paixu;void shanchu/* 删除学生信息 */int i,j,flag=0;char s115;printf;scanf;fori=0;iifstrcmp=0flag=1;forj=i;jstuj=stuj+1;ifprin
15、tf;ifprintf;n-;void xianshi/* 显示所有学生信息 */int i;FILE *fp;iffp=fopen=NULLprintf;system;exit;printf;printf;printf;fori=0;i fread&stui,sizeof,1,fp;printf;printf;void baocun /*保存学生信息*/int i;FILE *fp;iffp=fopen=NULL printf;exit; fori=0;i iffwrite&stui,sizeof,1,fp!=1printf;fclose; void tuichu/* 退出系统 */ pri
16、ntf;printf;printf;printf;void caidan/* 主菜单 */ int num;printf;printf;printf;printf;printf;printf;printf;printf;printf; printf;printf;printf;printf;printf;scanf; switchcase 1:system;luru;break;case 2:system;chaxun;break;case 3:system;xiugai;break;case 4:system;zengjia;break;case 5:system;shanchu;break;case 6:system;xianshi;break;case 7:system;baocun;break;case 8:system;k=0;tuichu;break;default:printf;20 / 20