2022年最新学生宿舍管理系统---C语言编程 .pdf
《2022年最新学生宿舍管理系统---C语言编程 .pdf》由会员分享,可在线阅读,更多相关《2022年最新学生宿舍管理系统---C语言编程 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档精品文档“学生宿舍管理系统”C语言课程设计报告一、 程序功能简介我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校, 以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、 专业、 班级等等。在编写过程中主要运用C语言的基本知识有:数据类型 (整形、 实型、 字符型、 指针、 数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。二、 课程设计要求该程序是由C 语言编写的一个学生宿舍管理查询软件,程序在Microsoft Visual C+
2、 6.0 下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以姓名、学号、 宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。三、 源程序分析1)结构分析1.方案设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 精品文档精品文档2.数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct st_mes
3、sage char name20; /* 学生姓名 */ char dorm7; /* 宿舍号 */ char num10; /* 学号 */ char sex5; /* 性别 */ char age4; /* 年龄 */ char major20; /* 专业 */ char classs8; /* 班级 */ 3.模块功能说明第一录入模块:调用input_message(),对住宿学生信息进行录入。第二添加模块:调用append_message() ,对新来学生信息进行添加录入。第三修改模块:调用revise_message(),对需修改学生的信息进行修改。第四删除模块:调用delete_
4、message() ,对某一学生信息进行删除操作。第五查询模块:调用find_message(),分别以姓名、学号、宿舍号对学生信息进行查询。第六统计模块:调用census_message() ,分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号由小到大输出。四、 编程中遇到的问题及解决方法在调试过程中, 时常会出现输入或显示为乱码的情况,这可能是上下定义的数据类型不同或定义数组长度不够所导致的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也经常是因为定义的结构体数组长度过低所造成的。像这些问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度一般都能解决。在
5、调试过程中我遇到最大的问题出现在删除模块。在运用“rt+ ”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是由于“rt+ ”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。后来我先用“rt ”打开文件并读取文件中的数据,然后再用“wt ”打开原文件将删除后的数据重新写入文件,最终成功运行。主函数录入模块添加模块修改模块删除模块查询模块统计模块退出系统学号姓名班级宿舍性别年龄专业返回按姓名按学号按宿舍返回按学号按宿舍按性别按班级按专业返回名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
6、 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 精品文档精品文档五、 程序运行截屏与结果分析1.测试数据对功能 1(录入学生信息)的测试:按照先后顺序分别输入学生信息:学号姓名班级宿舍号性别年龄专业05111101 张三 051111 429 女 18 土木工程04111102 李四 041111 218 男 18 信息工程对功能 2(添加学生信息)的测试:按照先后顺序分别输入学生信息:学号姓名班级宿舍号性别年龄专业02111101 陈红 021111 429 女 18 机械系03111203 赵娜 031112 101 女 18 能源
7、与环境对功能 3(修改学生信息)的测试:输入要修改学生的姓名:林丹,系统显示“该学生信息不存在” 。 输入修改学生姓名: 张三,系统显示出该学生信息。选择修改学号为: 05111118,系统显示出修改后的学生信息。对功能 4(删除学生信息)的测试:输入要删除学生的学号:03111210,系统显示“该学生信息不存在” 。输入要删除的学生的学号:03111203,系统显示出该学生信息。选择删除该学生信息。对功能 5(查询学生信息)的测试:查询宿舍号为429 的信息,系统显示为:学号姓名班级宿舍号性别年龄专业02111101 陈红 021111 429 女 18 机械系05111101 张三 051
8、111 429 女 18 土木工程对功能 6(统计学生信息)的测试:选择按学号统计,系统显示为:学号姓名班级宿舍号性别年龄专业02111101 陈红 021111 429 女 18 机械系04111102 李四 041111 218 男 18 信息工程05111101 张三 051111 429 女 18 土木工程学生总人数3 人,其中男生1 人,女生2 人。对功能 7(退出系统)的测试:选择退出系统,程序关闭。2.详细设计及运行结果1)函数调用关系图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
9、- - - 第 3 页,共 20 页 - - - - - - - - - 精品文档精品文档2)部分模块流程图及运行结果截屏主页界面主页流程图开始功能选择选 1 选 4 选 3 选 2 录入模块添加模块修改模块删除模块是是是是是否否否否名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 精品文档精品文档录入界面选 0 选 6 选 5 退出系统查询模块统计模块结束是否否名师资料总结 - - -精品资料欢迎下载 - - - - - -
10、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 精品文档精品文档录入界面修改模块输入姓名输入班级输入宿舍输入学号输入性别输入年龄输入专业是 否 继续录入结束N Y 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 精品文档精品文档输入要修改学生的姓名功能选择选 1 选 7 选 4 选 8 选 2 选 3 选 5 选 6 修改学
11、号修改姓名修改班级修改宿舍修改性别修改年龄修改专业是否继续结束返回主页是是是是是是是是否否否否否否否名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 精品文档精品文档修改界面统计模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 精品文档精品文档统计界面输入统计
12、方式功能选择选 1 选 4 选 6 选 2 选 3 选 5 按学号按宿舍按性别按班级按专业结束返回主页是是是是是是否否否否否名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 精品文档精品文档六、 心得体会“万事开头难” 这句话在我编写程序的过程中得到了真正的体现。在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。但是随后几天里, 我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对
13、编写程序也开始得心应手起来。 程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后总能成功。短短以周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的基础。七、 源程序#include #include #include #include #define N 900 struct st_message /*学生信息 */ char name20; /*学生姓名 */ char dorm7; /*宿舍号 */ char num10; /* 学号*/ char sex5; /* 性别*/ char age4; /* 年龄*/ char major20; /*专业*/
14、 char classs8; /* 班级*/ stN,t; sort_message() /*排序模块 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 精品文档精品文档int i,j,fno,fsize,fnum; FILE *fp; fp=fopen(student.txt,rt+); if(fp=NULL) printf(nn*文件打开错误。按任意键退出!); getchar(); exit(1); fno=fil
15、eno(fp); fsize=filelength(fno); fnum=fsize/sizeof(struct st_message); for(i=0;ifnum;i+) fread(&sti,sizeof(struct st_message),1,fp); for(i=0;ifnum-1;i+) for(j=i+1;j0) t=sti; sti=stj; stj=t; rewind(fp); for(i=0;ifnum;i+) fwrite(&sti,sizeof(struct st_message),1,fp); fclose(fp); input_message() /*录用信息模块
16、 */ int i; char choice; FILE *fp; fp=fopen(student.txt,at+); if(fp=NULL) printf(nn*库存文件不存在!请建立。按任意键退出!); getchar(); exit(1); for (i=0;i+) system (cls); getchar(); printf( 请输入学生姓名: ); gets(sti.name); printf(n 请输入学生班级: ); gets(sti.classs); printf(n 请输入学生宿舍号: ); gets(sti.dorm); printf(n 请输入学生学号: ); get
17、s(sti.num); printf(n 请输入学生性别: ); gets(sti.sex); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - 精品文档精品文档printf(n 请输入学生年龄: ); gets(sti.age); printf(n 请输入学生专业: ); gets(sti.major); fwrite(&sti,sizeof(struct st_message),1,fp); printf( 输入成功! n
18、 是否继续录入 (Y/N)?); choice=getchar(); if(choice=y|choice=Y) continue; else fclose(fp); break; append_message() /*添加模块 */ int i; char choice; FILE *fp; fp=fopen(student.txt,at+); if(fp=NULL) printf(nn*库存文件不存在!请建立。按任意键退出!); getchar(); exit(1); for (i=0;i+) struct st_message stN; system (cls); getchar();
19、printf( 请输入所添加学生姓名:); gets(sti.name); printf(n 请输入所添加学生班级:); gets(sti.classs); printf(n 请输入所添加学生宿舍号:); gets(sti.dorm); printf(n 请输入所添加学生学号: ); gets(sti.num); printf(n 请输入所添加学生性别: ); gets(sti.sex); printf(n 请输入所添加学生年龄: ); gets(sti.age); printf(n 请输入所添加学生专业: ); gets(sti.major); fwrite(&sti,sizeof(stru
20、ct st_message),1,fp); printf( 输入成功! n 是否继续添加 (Y/N)?); choice=getchar(); if(choice=y|choice=Y) continue; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 精品文档精品文档fclose(fp); break; revise_message() /*修改模块 */ int i,choice,flag,fno,fsize
21、,fnum; char re_name20,s20; FILE *fp; do fp=fopen(student.txt,rt+); fno=fileno(fp); fsize=filelength(fno); fnum=fsize/sizeof(struct st_message); system(cls); gets(s); printf( 请输入需要修改的学生姓名:); gets(re_name); for (i=0;ifnum;i+) fread(&sti,sizeof(struct st_message),1,fp); if(!strcmp(re_name,sti.name) pri
22、ntf(n -该学生信息 -nn); printf( 学号 -姓名-班级-宿舍号 -性别-年龄-专业-n); printf(-n); printf(%-8s %-6s %-4s %-6s %-4s %-4s %-20sn,sti.num,sti.name, sti.classs,sti.dorm,sti.sex,sti.age,sti.major); printf( 您要修改哪一项? n); printf(1. 学号n); printf(2. 姓名n); printf(3. 班级n); printf(4. 宿舍号 n); printf(5. 性别n); printf(6. 年龄n); prin
23、tf(7. 专业n); printf(8. 返回主页 n); scanf(%d,&choice); switch(choice) case 1:printf(n 请输入修改后的学号: ); scanf(%s,sti.num);break; case 2:printf(n 请输入修改后的姓名: ); scanf(%s,sti.name);break; case 3:printf(n 请输入修改后的班级: ); scanf(%s,sti.classs);break; case 4:printf(n 请输入修改后的宿舍号:); scanf(%s,sti.dorm);break; 名师资料总结 - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年最新学生宿舍管理系统-C语言编程 2022 最新 学生宿舍 管理 系统 语言 编程
限制150内