学生管理系统设计-说明书_第1页
学生管理系统设计-说明书_第2页
学生管理系统设计-说明书_第3页
学生管理系统设计-说明书_第4页
学生管理系统设计-说明书_第5页
已阅读5页,还剩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录入模块主函数之后要先进行数

5、据的录入,在录入模块中套用while、if和for循环结构使系统能一次根据要求输入指定数量的学生的信息,利用printf函数输出提示,scanf函数进行信息的录入,录入完毕之后,调用保存模块进行数据的保存。图3 录入模块3.4查询模块系统要能进行信息的查询,利用switch函数进行选择根据学号还是班级进行查询,之后利用strcmp函数将输入的查询信息与系统存储文件中的信息进行比较,如果相同则输出该学生的信息,如果不同则输出“该学生不存在”。图4查询模块3.5修改模块考虑到有些信息可能会发生变动,因此设计了修改模块,如果某个学生的信息发生变动,则根据strcmp函数找到对应的学生信息,选择要修改

6、的项目,之后利用strcpy函数将输入的新信息覆盖原来的信息,然后保存在存储文件中。图5修改模块3.6删除模块有些学生信息可能要根据实际情况进行删除,那么根据输入的要删除的学生学号,用strcmp函数比较确定要删除的学生信息,然后进行删除,删除之后输出提示“”删除成功。图6 删除模块3.7增加模块通过此模块可以根据实际情况增加新的学生信息,利用strcmp函数判断要增加的信息是否已存,如果存在则输出提示“该学号已存在”,如果不存在则提示输入学生信息。3.8显示模块通过此模块可以浏览系统中的全部信息,从而很方便的对学生信息进行对比。3.9保存模块该模块的作用是保存信息,建立一个存储文件,打开该文

7、件用fwrite函数写入录入的信息然后关闭该文件。3.10退出系统当对系统操作完成以后,想退出系统只需在界面中选择退出系统模块的代号,系统就自动退出此次运行程序。图7 退出系统4 总结通过这次课程设计,巩固了C语言的知识,对C语言的内容有了进一步的了解,增加了实际动手能力。同时在课程设计过程中,也发现了自身学习态度的问题。由于这学期没有认真听讲,课后有没及时花时间去复习,造成了许多知识的漏洞,很多知识不能很好地运用,事实告诫了我:今后上课一定要认真听讲,及时复习,多动手实际编写,增强自己的实践能力。参考文献1 谭浩强,张基温C语言程序设计教程(第3版)M北京:高等教育出版社,20062 吕凤煮

8、C语言基础教程基础理论与案例M北京:清华大学出版社,20053 黄明、梁旭、万洪莉C语言课程设计M北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统M北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程M北京:电子工业出版社,2006附录程序清单:#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 41 struct record char code20; /*学号*/char name10; /*姓名*/char sex5; /*性别*/char time2

9、0; /*出生日期*/char major10; /*专业*/char grade5; /*班级*/char add20; /*地址*/char noq20; /*宿舍号码*/stuN;int k=1,m,n;void caidan();void luru();void chaxun();void xiugai();void zengjia();void shanchu();void xianshi();void baocun();void tuichu(); int main() while(k)caidan();return 0; void luru() /* 录入学生信息 */int i

10、,flag=1;while(flag)flag=0;printf("请输入录入信息的学生人数(n<=41):n");scanf("%d",&n);if(n<1|n>41)flag=1;printf("输入错误,请检查后重新输入!n"); for(i=0;i<n;i+)printf("请输入第%d个学生的信息:n",i+1);printf("请输入学号:n");scanf("%s",stui.code);printf("请输入姓名:n&

11、quot;);scanf("%s",);getchar();printf("请输入性别(男/女):n");scanf("%s",stui.sex);printf("请输入出生日期:n");scanf("%s",stui.time);printf("请输入地址:n");scanf("%s",stui.add);printf("请输入专业:n");scanf("%s",stui.major);print

12、f("请输入班级:n");scanf("%s",stui.grade);printf("请输入宿舍号码:n");scanf("%s",stui.noq);system("cls");printf("录入完毕!n");baocun();void chaxun()/* 查询学生信息 */int i,t,flag;char s130;printf(" =n");printf(" | 1.按学号查询 |n");printf(" | 2

13、.按班级查询 |n");printf(" | 3.退出 |n");printf(" =n");while(1)flag=0;printf(" 请输入菜单编号: ");scanf("%d",&t);switch(t)case 1:printf(" 请输入要查询的学生的学号: n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0)flag=1;printf("学号 姓名 性别 出生

14、日期 专业 班级 地址 宿舍号码 n");printf("=n");printf("%6s %7s %5s %9s %8s %5s %14s %5sn", stui.code,,stui.sex,stui.time,stui.major,stui.grade,stui.add,stui.noq);printf("n"); if(flag=0)printf("该学号不存在! n");break;case 2:printf(" 请输入要查询的学生的班级: n");scan

15、f("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.grade,s1)=0)flag=1;printf("学号 姓名 性别 出生日期 专业 班级 地址 宿舍号码 n");printf("=n");printf("%6s %7s %5s %9s %8s %5s %14s %5sn", stui.code,,stui.sex,stui.time,stui.major,stui.grade,stui.add,stui.noq);printf("n"

16、);if(flag=0)printf("该班级不存在!n");break;case 3:system("cls");return;default:printf("请在1-3之间选择n");void xiugai()/* 修改学生信息 */int i,t,num;char sex13,s130,s230;printf(" 请输入要修改的学生的学号:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0)num=i;printf(

17、" =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(" =n&

18、quot;);while(1)printf("请输入菜单的编号:");scanf("%d",&t);switch(t)case 1: printf("请输入新的姓名:n");scanf("%s",s2);strcpy(,s2);break;case 2:printf("请输入新的性别:n");scanf("%s",sex1);strcpy(stunum.sex,sex1);break;case 3: printf("请输入新的出生日期:

19、 n");scanf("%s",s2);strcpy(stunum.time,s2);break;case 4: printf("请输入新的专业: n");scanf("%s",s2);strcpy(stunum.major,s2);break;case 5: printf("请输入新的班级: n");scanf("%s",s2);strcpy(stunum.grade,s2);break;case 6: printf("请输入新的地址: n");scanf(&qu

20、ot;%s",s2);strcpy(stunum.add,s2);break;case 7: printf("请输入新的宿舍号码: n");scanf("%s",s2);strcpy(stunum.noq,s2);break;case 8:return;default:printf("请在1-8之间选择n");void paixu()/* 对学生信息进行排序 */int i,j;char *p,*q,s;char temp10;for(i=0;i<n-1;i+)for(j=n-1;j>i;j-)if(strcmp

21、(stuj-1.code,stuj.code)>0) strcpy(temp,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,);strcpy(,);strcpy(,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stuj.time);strcpy(stuj.time,temp);strcpy(temp,stuj-1.major);strcpy(stu

22、j-1.major,stuj.major);strcpy(stuj.major,temp);strcpy(temp,stuj-1.grade);strcpy(stuj-1.grade,stuj.grade);strcpy(stuj.grade,temp);strcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stuj-1.noq);strcpy(stuj-1.noq,stuj.noq);strcpy(stuj.noq,temp);p=&stuj-1.code2;q=&a

23、mp;stuj.code2;s=*p;*p=*q;*q=s;void zengjia()/* 增加学生信息 */int i=n,j,flag;printf("请输入将要增加的学生数目:n");scanf("%d",&m);doflag=1;while(flag)flag=0;printf("请输入第%d个学生的学号:n", i+1);scanf("%s",stui.code);for(j=0;j<i;j+)if(strcmp(stui.code,stuj.code)=0)printf("该学

24、号已经存在,请仔细核查后重新输入!n");flag=1;break;printf("请输入第%d个学生的姓名:n",i+1);scanf("%s",);printf("请输入第%d个学生的性别:n",i+1);scanf("%s",);printf("请输入第%d个学生的出生日期: n",i+1);scanf("%s",stui.time);printf("请输入第%d个学生的专业: n",i+1);scanf

25、("%s",stui.major);printf("请输入第%d个学生的班级: n",i+1);scanf("%s",stui.grade);printf("请输入第%d个学生的家庭地址:n",i+1);scanf("%s",stui.add);printf("请输入第%d个学生的宿舍号码:n",i+1);scanf("%s",stui.noq);if(flag=0)i+;while(i<n+m);n=n+m;printf("输入完毕!nn

26、");paixu();void shanchu()/* 删除学生信息 */int i,j,flag=0;char s115;printf("请输入将要删除的学生的学号:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0)flag=1;for(j=i;j<n-1;j+)stuj=stuj+1;if(flag=0)printf("该学号不存在!n");if(flag=1)printf("删除成功!显示结果请按6!n");n-;vo

27、id xianshi()/* 显示所有学生信息 */int i;FILE *fp;if(fp=fopen("student.txt","rb")=NULL)printf("错误!请按任意键退出!");system("pause");exit(0);printf(" 所有学生的信息为:n n");printf("学号 姓名 性别 出生日期 专业 班级 地址 宿舍号码 n");printf("=n");for(i=0;i<n;i+) fread(&

28、;stui,sizeof(struct record),1,fp);printf("%6s %7s %5s %9s %8s %5s %14s %5sn", stui.code,,stui.sex,stui.time,stui.major,stui.grade,stui.add,stui.noq);printf("n");void baocun() /*保存学生信息*/int i;FILE *fp;if(fp=fopen("student.txt","wb")=NULL) printf("文件不能打开!n");exit(0); for(i=0;i<n;i+) if(fwrite(&stui,sizeof(struct record),1,fp)!=1)printf("文件输入错误!n");fclose(fp); void tuichu()/* 退出系统 */ printf("n");printf("n");printf("=n");

温馨提示

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

评论

0/150

提交评论