版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、唐山学院课程设计学生管理系统设计-说明书1简介1.1 设计要求学生管理系统应包含学生的全部信息。每个学生是一条记录,包括姓名、学号、 性别、出生年月、专业、班级、家庭地址、宿舍号码等。本系统能够按专业班级或学 号查找学生,并显示相关学生情况。要求程序结构合理、算法准确、语法正确,并生 成可执行文件。1.2 系统概述学生信息管理系统作为一个应用软件为学校师生提供一个对学生信息进行管理 和查询的平台。用户可根据系统界面的提示信息对学生的信息进行输入、修改、增加、 删除、查询、排序等操作。1.3 开发与设计的总体思想本系统主要应用模块化的设计思想实现学生信息的输入、修改、增加、删除、查 询、排序等典
2、型管理功能。各主要模块的数据均存储在文件中,因此包含对文件的读、 写等基本操作。在软件开发过程中应用了 c语言程序设计中的基本控制结构,如选 择、循环、顺序结构。62总体设计1.1 功能需求该系统提供了一个对学生信息进行管理和查看的平台,给用户一个交互式的应用 接口,具体功能如下:1.1.1 创建学生信息用户根据提示信息输入学生的姓名、学号、性别、出生年月、专业、班级、家庭 地址、宿舍号码等信息,系统会以文件形式存储,以便进行管理。1.1.2 查询学生信息用户根据提示信息输入学生的学号或专业班级的方式进行查询,在学生文件中查 找到该信息并显示出来。1.1.3 修改学生信息用户可以根据系统提示修
3、改自己的一些信息。1.1.4 删除学生信息用户根据提示信息输入学生的学号,在学生文件中查找到该信息并删除。1.1.5 显示学生信息用户根据提示信息输入学生的学号或班级,在学生文件中查找到该信息并显示。1.1.6 保存学生信息系统将学生信息记录存储在系统磁盘的文件中,以便进行管理、检索和备份。2. 2系统功能结构图学生管理系统3详细设计2.1 系统化分析将程序进行模块化处理,使程序编写思路清晰,降低了编写程序的难度。首 先输入一些学生信息,学生信息中包含学号、姓名、年龄、性别、出生年月、地址、 电话等基本信息,输入完之后建立一个文件,把数据存储在里面;然后要能查询输入 的学生信息,建立一个查询模
4、块,在模块中打开文件,根据学号、班级查询出学生信 息。输入信息之后应该可以进行修改和删除,建立修改、删除的模块;还有增加学生 信息,应该能根据实际情况增加学生的信息,建立增加的模块,之后就是保存和退出。3. 2主函数及主界面首先定义数据的类型,根据实际要输入的数据定义合适的数据类型,然后建立一 个菜单模块,设计出系统的主菜单的界面,利用switch选择函数进行菜单选项的选 择,之后设计主函数,利用while循环结构在主函数中一直调用菜单模块。H学生信息管理系统.eze*= =Menu = = :=rjAiiH=r*ii<i=:55.良字号删房最 6.显示事前着息::7.禄存W前面最 8.
5、退由系统;请选择菜单编号:.3. 3录入模块主函数之后要先进行数据的录入,在录入模块中套用while、if和for循环结 构使系统能一次根据要求输入指定数量的学生的信息,利用printf函数输出提示, scanf函数进行信息的录入,录入完毕之后,调用保存模块进行数据的保存。唐山学院课程设计,n<=41>:日 :市: : 生01址山1k汲出5地唐专班IA_lxk4- 士阳请12请张营(请19任用河请11土也请”团C欣*83. 4查询模块系统要能进行信息的查询,利用switch函数进行选择根据学号还是班级进行查 询,之后利用Strcmp函数将输入的查询信息与系统存储文件中的信息进行比较
6、,如 果相同则输出该学生的信息,如果不同则输出“该学生不存在”。*F 八Dobug'l 11. eze*-Ini x123456学号 姓名 性别 出生日期 专业 班级 地址宿舍号码12 3洎询 杳香_ 号敬.出 按置123456 张三 男iyy2-W5-Ml11电子 工班 河北省唐山市 31M请输入菜单编号:3. 5修改模块考虑到有些信息可能会发生变动,因此设计了修改模块,如果某个学生的信息发 生变动,则根据strcinp函数找到对应的学生信息,选择要修改的项目,之后利用strcpy 函数将输入的新信息覆盖原来的信息,然后保存在存储文件中。es aF:Deba6klll. ezc*请输
7、入要修改为学生的字号:123456名别兰业级址舍 姓性出专班地宿 改改改改改改改出 修修修修修修修退 12345678请输入菜华的编号:唐山学院课程设计3. 6删除模块有些学生信息可能要根据实际情况进行删除,那么根据输入的要删除的学生学 号,用strcmp函数比较确定要删除的学生信息,然后进行删除,删除之后输出提示 删除成功。3.7增加模块通过此模块可以根据实际情况增加新的学生信息,利用strcmp函数判断要增加 的信息是否已存,如果存在则输出提示“该学号已存在”,如果不存在则提示输入学 生信息3. 8显示模块通过此模块可以浏览系统中的全部信息,从而很方便的对学生信息进行对比。3. 9保存模块
8、该模块的作用是保存信息,建立一个存储文件,打开该文件用fwrite函数写入录入的信息然后关闭该文件。3.10退出系统当对系统操作完成以后,想退出系统只需在界面中选择退出系统模块的代号,系 统就自动退出此次运行程序。-Inl xcT .C:Dobag123. exe再见,谢谢使用?Press any key to continue10唐山学院课程设计4总结通过这次课程设计,巩固了 c语言的知识,对c语言的内容有了进一步的了解,增 加了实际动手能力。同时在课程设计过程中,也发现了自身学习态度的问题。由于这学 期没有认真听讲,课后有没及时花时间去复习,造成了许多知识的漏洞,很多知识不能 很好地运用,
9、事实告诫了我:今后上课一定要认真听讲,及时复习,多动手实际编写, 增强自己的实践能力。11唐山学院课程设计参考文献1谭浩强,张基温.C语言程序设计教程(第3版)M.北京:高等教育出版社,20062吕凤煮.C语言基础教程一基础理论与案例Ml.北京:清华大学出版社,20053黄明、梁旭、万洪莉.C语言课程设计M.北京:电子工业出版社,20064郭宁,郑小玲.管理信息系统保.北京:人民邮电出版社,20065赵池龙,杨林,陈伟.实用软件工程国.北京:电子工业出版社,200622附录程序清单:#include<stdio. h>#include<stdlib. h>#includ
10、e<string. h> ttdefine N 41 struct record (/*学号*/*姓名*/*性别*/char code20;char name10;char sex 5;/*出生日期*/*专业*/*班级*/*地址*/*宿舍号码*/*录入学生信息*/char time20;char major10;char grade5;char add20;char noq20;stuN;int k=l, m, n;void caidan();void luru();void chaxun ();void xiugai ();void zengjia();void shanchu(
11、);void xianshi ();void baocun ();void tuichuO ;int main ()(while(k)(caidan();return 0;void luru()int i, flag=l;while(flag)flag=O;printf ("请输入录入信息的学生人数(n<=41):n"); scanf ("%d", &n);if(n<l|n>41)(flag=l;printfC输入错误,请检查后重新输入! n");)for(i=0;i<n;i+)printf ("请输入
12、第%(1个学生的信息:n”, i+1);printfC请输入学号:n"); scanfstui. code); printf (”请输入姓名:n"); scanfstui. name); getchar ();printf (“请输入性别(男/女):); scanfstui. sex);printf ("请输入出生日期:rT); scanfstui. time);printf ("请输入地址:n"); scanf stui. add); printf ("请输入专业:n");scanfstui. major);printf
13、(”请输入班级:n"); scanfstui. grade);printf ("请输入宿舍号码:n");scanf (*%s*, stui. noq); system(*cls*);)printf ("录入完毕!n*);baocun ();void chaxun ()/*查询学生信息*/int i, t, flag; char si 30; printf (*=一= =n");printf CI1.按学号查询ln");printf (*I2.按班级查询I n");printf (*I3.退出ln");printf
14、C=、);while (1) ( flag=0; printf C请输入菜单编号:”);scanf ("%d", &t); switch (t) case 1: printf (*请输入要查询的学生的学号:n");scanf si); for(i=0;i<n;i+)if (strcmp(stui. code, sl)=0)(flag=l;printf ("学号 姓名 性别出生日期专业 班级地址宿舍号码n");printf (>>,=:=n*);printfC%6s %7s%5s %9s %8s %5s %14s %5s
15、n”,stui. code, stui. name, stui. sex, stui. time, stui. major, stui. grade, st ui. add, stui. noq);printf("n");)if(flag=0)printf ("该学号不存在! n*); break;case 2:printfC请输入要查询的学生的班级:);scanf si); for(i=0;i<n;i+)if (strcmp(stui. grade, sl)=0) (flag=l;printf ("学号 姓名 性别出生日期专业 班级地址宿舍号码n
16、");printf (= =n*);printf(*%6s%7s%5s%9s%8s%5s%14s%5sn”,stui. code, stui. name, stui. sex, stui. time, stui. major, stui. grade, st ui. add, stui. noq);if(flag=0) printf ("该班级不存在!n");break;case 3:return;default:printf (“请在1-3之间选择rT);void xiugai ()/*修改学生信息*/(int i, t, num;char sexl3,sl30
17、,s230;printf C请输入要修改的学生的学号:n");scanf si);for(i=0;i<n;i+)if (strcmp(stuij. code, sl)=0)num=i;printf(一n ),printf("|1.修改姓名ln");printf("|2.修改性别ln");printf("|3.修改出生日期ln");printf("|4.修改专业1n");printf("printf("printf("printf("printf("1
18、5.修改班级lnO;16.修改地址ln");17.修改宿舍号码18.退出n);n ) while (1)printf ("请输入菜单的编号广);switch (t)case 1: printf (”请输入新的姓名:n");scanf s2);strcpy (stunum, name, s2) ;break;case 2: printf 请输入新的性别:n);scanf sexi);strcpy(stunum. sex, sexi);break;case 3: printf (”请输入新的出生日期:n");scanf s2);strcpy (stunum,
19、 time, s2);break;case 4: printf ("请输入新的专业:n");scanf s2);strcpy(stunum.major, s2);break;case 5: printf ("请输入新的班级:n");scanf ('%s”, s2);strcpy(stunum> grade, s2);break;case 6:printf ("请输入新的地址:n");scanf ("%s”, s2);strcpy(stunum, add, s2);break;case 7:printf 请输入新
20、的宿舍号码:n");scanf s2);strcpy (stunum, noq, s2);break;case 8:return;default:printf ("请在18之间选择n");)void paixuO/*对学生信息进行排序*/(int i, j;char *p, *q, s;char temp10;for(i=0;i<n-l;i+)(for(j=n-l; j>i; j")if (strcmp(stuj-1. code, stuj. code)>0)唐山学院课程设计strcpy(temp, stuj-l. code);strc
21、py(stuj-l< code, stuj> code);strcpy (stuj< code, temp);strcpy(temp, stuj-l. name);strcpy (stuj-l< name, stuj> name);strcpy (stu j name, temp);strcpy(temp, stuj-l. time);strcpy(stuj-le time, stuj. time);strcpy(stuj. time, temp);strcpy(temp, stuj-l. major);strcpy(stuj-1 major, stuj.majo
22、r);strcpy (stu j. major, temp);strcpy(temp, stuj-l. grade);strcpy (stuj-1. grade, stuj. grade);strcpy(stuj. grade, temp);strcpy(temp, stuj-l. add);strcpy (stuj-1. add, stuj. add);strcpy (stuj. add, temp);strcpy(temp, stuj-l. noq);strcpy (stuj-1. noq, stuj. noq);strcpy (stu j. noq, temp);p=&stuj-
23、l. code 2;q=&stuj. code 2;s=*p;*p=*q;*q=s;)23唐山学院课程设计void zengjiaQ/*增加学生信息*/30int i=n, j, flag;printf (请输入将要增加的学生数目八n");scanf&m);do(flag=l;while(flag)(flag=0;printf ("请输入第%(1个学生的学号:n”, i+1);scanfstui. code);for(j=0;j<i;j+)if (strcmp(stui. code, stuj. code) =0)(printf ("该学号已
24、经存在,请仔细核查后重新输入! rT); flag=l;break;)printf ("请输入第%d个学生的姓名:n”, i+1);scanf ("%s”, stui. name);printf ("请输入第%<1个学生的性别:n”, i+1);scanf ("%s”, stui. name);printf ("请输入第%d个学生的出生日期:n”, i+1);scanf stui. time);printf ("请输入第d个学生的专业:n”, i+1);scanf ("%s”, stui. major);printf
25、("请输入第%(1个学生的班级:n”,i+l);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");paixu();)void shanchu()/*删除学生信息*/(int i, j,
26、flag=0;char si 15;printf ("请输入将要删除的学生的学号:n");scanfsi);for(i=0;i<n;i+)if (strcmp(stui. code, sl)=0)(flag=l;for(j=i;j<n-l;j+)stuj=stuj+l;if(flag=0)printf ("该学号不存在! n");if(flag=l)printf ("删除成功!显示结果请按6! n");void xianshi ()/*显示所有学生信息*/ int i; FILE *fp;if (fp=fopen (*st
27、udent, txt", "rb") =NULL) (printf ("错误!请按任意键退出!”); system ("pause");exit (0); ) printf C所有学生的信息为:n n");printf ("学号 姓名 性别出生日期专业 班级 地址宿舍号码n,);printf (,=n"); for(i=0;i<n;i+) (fread(&stui, sizeof(struct record), 1, fp);printf T%6s %7s%5s%9s%8s%5s%14s%5
28、sn”,stuEi. code, stui. name, stui. sex, stui. time, stuEi. major, stuEi. grade, st ui. 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(f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年度山东省泰安市第一中学新校高一上学期1月诊断性测试历史试题(含答案)
- 环保资料培训
- 2026及未来5年中国金属气雾罐行业市场发展态势及前景战略研判报告
- 环保税业务培训课件
- 《GAT 2000.246-2018公安信息代码 第246部分:科技奖励等级代码》专题研究报告
- 法律法规解读解析
- 装配式钢结构生产线项目投资计划书
- 城区雨污水管网升级改造项目建议书
- 幕墙钢结构施工现场突发事件处理方案
- 钢结构幕墙立面美学设计方案
- TGDGX 0003-2024 高校物业服务费用测算及基本人员配置规范
- JJF(机械) 1064-2021 运动场地材料冲击吸收和垂直变形试验机校准规范
- T CEC站用低压交流电源系统剩余电流监测装置技术规范
- 个人工伤申请书
- 工程竣工移交单
- 起重机焊接结构件制造工艺规程
- “振兴杯”职业技能竞赛(维修电工)备赛试题库 (单选、多选题汇总)
- GB/T 25689-2010土方机械自卸车车厢容量标定
- 摄像机外观检验标准
- 航标和航标配布专题培训课件
- 学习课件所有内容归类到此-etops运行手册
评论
0/150
提交评论