收藏 分享(赏)

学生宿舍管理系统设计(C语言).doc

上传人:HR专家 文档编号:6216624 上传时间:2019-04-02 格式:DOC 页数:23 大小:164.50KB
下载 相关 举报
学生宿舍管理系统设计(C语言).doc_第1页
第1页 / 共23页
学生宿舍管理系统设计(C语言).doc_第2页
第2页 / 共23页
学生宿舍管理系统设计(C语言).doc_第3页
第3页 / 共23页
学生宿舍管理系统设计(C语言).doc_第4页
第4页 / 共23页
学生宿舍管理系统设计(C语言).doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、1计算机程序设计基础(C 语言) 课程设计题目:学生宿舍管理系统设计班 级: 计 121 学 号 : 120502 120504 120506 120505 姓 名: 贾 文 超 杨 晓 红 张 永 康 陆 秀 和 指导教师 :刘 喜 梅 孙 强 范 周 瑜 2013 年 7 月 1 日北京信息工程学院2信息技术教学与实验中心学生宿舍管理系统设计功能:实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等。基本要求:1.设计简单的菜单,能够进行系统功能选择。2.实现信息的录入功能。3.在已有信息的基础上添加新的纪录。4.删除指定房间号的记录。5.修改指定

2、房间号的记录。6.实现信息的浏览功能。7.按房间号查询功能。38.按已入住人数排序功能。1.学生宿舍管理系统概述 41.1 需求分析 41.2 基本功能 42.学生宿舍管理系统总体设计 51.1 管理流程图 51.2 管理员操作 53.模块划分61.1 第一选择模块 61.2 第二录入模块 71.3 第三添加模块 81.4 第四删除模块 81.5 第五修改模块 91.6 第六浏览模块 91.7 第七查询模块 101.8 第八排序模块 114.算法说明115.各函数模块功能111.1 各自定义函数功能 116.程序测试127.结论141.1 对调试中主要问题进行总结148.体会及建议141.1

3、对自己设计进行评价,指出合理和不足之处,提出改进的方案 1449.学生宿舍管理系统设计参与者141.1 小组成员信息141.学生宿舍管理系统概述1.1 需求分析高校学生宿舍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高

4、、存储量大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。学生宿舍管理系统对于一个学校来说是必不可少的组成部分。对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,只能靠人工去一条条地查找,这样不但麻烦而且效率非常低。当今社会是飞速进步的世界,计算机化管理正是适应时代的产物。21 世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及。我们针对此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。

5、由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,还具有修改功能,能够快速的查询学校所需的住宿信息。1.2 基本功能高校学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,但本课题要实现的是前端应用程序的开发。在设计该系统时,会尽可能地贴近我们学生,便于管理者操作。系统在实现上具有如下功能:1设计简单的菜单,能够进行系统功能选择。2实现信息的录入功能。3在已有信息的基础上添加新的记录。4删除指定房间号的记录。55修改指定房间号的

6、记录6实现信息的浏览功能7按房间号查询功能8按已入住人数排序功能2.学生宿舍管理系统总体设计1.1 管理流程图对系统可划分为三层流程图:第一层流程图:第二层流程图:第三层流程图:输入宿舍信息(房间号、楼号、容纳人数、手机号等)学生宿舍管理系统选择操作添加删除修改宿舍管理系统记录房间号对应的宿舍信息63.模块划分1.1 选择功能模块图选择查询信息原则按已入住人数排序学生宿舍管理系统主函数录入存储数据操作输出信息插入修改删除查询统计排序显示输入71.2 第二录入模块开始输入宿舍信息p-room p-livenumbercount1+ count3+endp-areacount2+81.3 第三添加

7、模块1.4 第四删除模块开始插入宿舍信息将其入栈输入宿舍信息结束开始输入删除房间号for 循环,扫描存储学生信息p-room:roomm用 sort()函数排序9!= =1.5 第五修改模块= !=删除对应学生信息结束开始输入修改房间号 room修改对应学生信息p-room;roomfor 循环,扫描存储学生信息结束101.6 第六浏览模块(与下图 1.7 类似)1.7 第七查询模块!= != =开始选择查询方式按宿舍号查询 按宿舍 长查询开始循环,扫描存储的宿舍信息输入要查找宿舍长姓名输入查找的宿舍号p-dormitoryleader:dormitoryleaderp-room:room输出

8、宿舍信息输出宿舍信息111.8 第八排序模块4.算法说明数据类型(整形、实型、字符型、指针、数组、结构等) ;运算类型(算术结束开始开始循环,扫描存储信息选出居住人数最小的宿舍与第一个宿舍交换在余下居住人数中选出最少的与第二个宿舍交换以此类推,直至排序完成结束12运算、逻辑运算、自增自减运算、赋值运算等) ;程序结构(顺序结构、判断选择结构、循环结构) ;大程序的功能分解方法(即函数的调用与使用)等,利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。5.各函数模块功能1.1 各自定义函数功能1、void inse

9、rt()(录入系统所需的数据;将录入的数据存储在文件中)2、void seek() (按要求对数据进行查询)3、void modify()(对数据进行更新操作)4、void del()(对数据进行删除操作)5、void save() (对指定数据进行统计并输出)6、void sort() (对指定数据排序并输出)7、void reveal() (对指定数据产生报表输出)8、void menu()(功能目录)6.程序测试显示 请选择菜单编号 请输入待增加的宿舍数 请输入第 1 个宿舍的房间号 输入 4 1 1316请输入第 1 个宿舍的宿舍长 请输入第 1 个宿舍的楼号 请输入第 1 个宿舍的宿

10、舍面积贾文超 1 40请输入第 1 个宿舍的房间容纳人数 请输入第 1 个宿舍的宿舍成员6 贾文超/陆秀和/杨晓红/张永康/李正明/伟力请输入第 1 个宿舍的手机号 请输入第 1 个宿舍的居住人数13476731421 6录入完毕! 请选择菜单编号 6结果:所有宿舍信息为:房间号 宿舍长 楼号 宿舍面积 房间容纳人数1316 贾文超 1 40 6*宿舍成员 手机号 居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力 13476731421 613显示 请选择菜单编号输入 2-1.按房间号查询-2.按宿舍长查询-3.退出本菜单-请选择子菜单编号:1请输入要查询的宿舍的房间号:1316结果:房间

11、号 宿舍长 楼号 宿舍面积 房间容纳人数1316 贾文超 1 40 6*宿舍成员 手机号 居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力 13476731421 6显示 请选择菜单编号 请输入要修改的宿舍的房间号输入 3 1316- 请输入新的宿舍面积1.修改宿舍长2.修改楼号3.修改宿舍面积4.修改房间容纳人数5.修改宿舍成员6.修改手机号号码7.修改居住人数8.退出本菜单-请选择子菜单编号:3 50请选择子菜单编号: 请选择菜单编号8 6结果:房间号 宿舍长 楼号 宿舍面积 房间容纳人数141316 贾文超 1 50 6*宿舍成员 手机号 居住人数贾文超/陆秀和/杨晓红/张永康/李正

12、明/伟力 13476731421 67.总结1.1 对调试中主要问题进行总结调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现在删除模块。在运用“dormitory.txt”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是由于“dormitory.txt”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总

13、会保留在原文件中。后来我先用“dormitory.txt”打开文件并读取文件中的数据,然后再用“r”打开原文件将删除后的数据重新写入文件,最终检测运行成功。8.体会及建议 1.1 对自己设计进行评价,指出合理和不足之处,提出改进的方案 本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。可以方便的进行住宿学生信息的管理。第二,它的各个功能模块在实现时非常方便,例如:录入和添加学生信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业等进行统计等等。 。“万事开头难”这句话在我编写程序的过程中

14、得到了真正的体现。在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。但是随后几天里,我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对编写程序也开始得心应手起来。程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后总能成功。短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的基础。9.学生宿舍管理系统设计参与者1.1 小组成员信息姓名 院系 班级 学号15贾文超 信息工程学院 机 121 120502陆秀和 信息工程学院 机 121 120506杨晓红 信息工程学院 机 121 120504张永康 信息工

15、程学院 机 121 120505参考文献:1.软件工程导论 第四版 清华大学出版2.C#开发实战宝典 王小科 编著 清华大学出版社3.C#开发大全 刘丽霞 编著 清华大学出版4.百度知道5.C#与.net 开发网 http:/ /*I/O函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 100 /* 房间号和宿舍长最大字符数,实际请更改 */#define N 1000 /* 最大宿舍人数,实际请更改*/struct apartment /*结构体*/char roomLEN+

16、1; /* 房间号 */char dormitoryleaderLEN+1; /* 宿舍长 */int dormitory; /* 楼号 */char area3; /* 宿舍面积 */char holdLEN+1; /* 房间容纳人数 */char member1000; /* 宿舍成员 */char telLEN+1; /* 手机号号码 */char livenumber30; /* 居住人数 */stuN;int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数声明 */void seek();void modify();void insert();

17、void del();16void reveal();void save();void menu(); int main() while(k)menu();system(“pause“);return 0; void help() printf(“n0.欢迎使用宿舍系统帮助!n“);printf(“n1.进入系统后,先刷新宿舍信息,再查询;n“);printf(“n2.按照菜单提示键入数字代号;n“);printf(“n3.增加宿舍信息后,切记保存按7;n“);printf(“n4.谢谢您的使用!n“); void readfile()/* 建立信息 */char *p=“dormitory.

18、txt“;FILE *fp;int i=0;if (fp=fopen(“dormitory.txt“,“r“)=NULL) printf(“Open file %s error! Strike any key to exit!“,p);system(“pause“);exit(0);while(fscanf(fp,“%s %s%d%s %s %s %s %s“,stui.room,stui.dormitoryleader,i=i;fclose(fp);n=i;printf(“录入完毕!n“); void seek() /*查找*/int i,item,flag;17char s121; /*

19、以宿舍长和房间号最长长度+1为准 */printf(“-n“);printf(“-1.按房间号查询-n“);printf(“-2.按宿舍长查询-n“);printf(“-3.退出本菜单-n“);printf(“-n“);while(1)printf(“请选择子菜单编号:“);scanf(“%d“,flag=0;switch(item)case 1:printf(“请输入要查询的宿舍的房间号:n“);scanf(“%s“,s1);for(i=0;ii;j-)if(strcmp(stuj-1.livenumber,stuj.livenumber)0)strcpy(temp,stuj-1.room)

20、;strcpy(stuj-1.room,stuj.room);strcpy(stuj.room,temp);strcpy(temp,stuj-1.dormitoryleader);strcpy(stuj-1.dormitoryleader,stuj.dormitoryleader);strcpy(stuj.dormitoryleader,temp);20strcpy(temp,stuj-1.area);strcpy(stuj-1.area,stuj.area);strcpy(stuj.area,temp);strcpy(temp,stuj-1.hold);strcpy(stuj-1.hold,

21、stuj.hold);strcpy(stuj.hold,temp);strcpy(temp,stuj-1.member);strcpy(stuj-1.member,stuj.member);strcpy(stuj.member,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.tel);strcpy(stuj.tel,temp);strcpy(temp,stuj-1.livenumber);strcpy(stuj-1.livenumber,stuj.livenumber);strcpy(stuj.livenumber,temp);p=q=

22、s=*q;*q=*p;*p=s; void insert() /*插入函数*/int i=n,j,flag;printf(“请输入待增加的宿舍数:n“);scanf(“%d“,doflag=1;while(flag)flag=0;printf(“请输入第 %d 个宿舍的房间号:n“,i+1);scanf(“%s“,stui.room);for(j=0;ji;j+)if(strcmp(stui.room,stuj.room)=0)printf(“已有该房间号,请检查后重新录入!n“);flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/21printf(“请输入第 %d 个

23、宿舍的宿舍长:n“,i+1);scanf(“%s“,stui.dormitoryleader);printf(“请输入第 %d 个宿舍的楼号:n“,i+1);scanf(“%d“,printf(“请输入第 %d 个宿舍的宿舍宿舍面积(m2):n“,i+1);scanf(“%s“,stui.area);printf(“请输入第 %d 个宿舍的房间容纳人数:n“,i+1);scanf(“%s“,stui.hold);printf(“请输入第 %d 个宿舍的宿舍成员(注:人员之间加/):n“,i+1);scanf(“%s“,stui.member);printf(“请输入第 %d 个宿舍的手机号:n

24、“,i+1);scanf(“%s“,stui.tel);printf(“请输入第 %d 个宿舍的居住人数:n“,i+1);scanf(“%s“,stui.livenumber);if(flag=0)i=i;i+;while(in+m);n+=m;printf(“录入完毕!nn“);sort(); void del()int i,j,flag=0;char s1LEN+1;printf(“请输入要删除宿舍的房间号:n“);scanf(“%s“,s1);for(i=0;in;i+)if(strcmp(stui.room,s1)=0)flag=1;for(j=i;jn-1;j+)stuj=stuj+

25、1;if(flag=0)printf(“该房间号不存在!n“);if(flag=1)printf(“删除成功,显示结果请选择菜单6n“);n-;22 void reveal()int i;printf(“所有宿舍的信息为:n“);printf(“房间号 宿舍长 楼号 宿舍面积 房间容纳人数 n“);printf(“-n“);for(i=0;in;i+) printf(“%0s %7s %5d %5s %9s n“,stui.room,stui.dormitoryleader,stui.dormitory,stui.area,stui.hold);printf(“*n“);printf(“宿舍成

26、员 手机号 居住人数n“);printf(“-n“);for(i=0;in;i+) printf(“%0s %10s %10sn“,stui.member,stui.tel,stui.livenumber); void save()int i;FILE *fp;fp=fopen(“dormitory.txt“,“w“); /*写入*/for(i=0;in;i+)fprintf(fp,“%s %s %d %s %s %s %s %sn“,stui.room,stui.dormitoryleader,stui.dormitory,stui.area,stui.hold,stui.member,st

27、ui.tel,stui.livenumber);fclose(fp); void menu()/* 界面 */int num;printf(“*宿舍系统功能菜单* n“);printf(“友情提醒:查询前请先刷新系统! n“);printf(“ - - n“);printf(“ * n“);printf(“ * 0.系统帮助及说明 * * 1.刷新宿舍信息 * n“);23printf(“ * n“); printf(“ * 2.查询宿舍信息 * * 3.修改宿舍信息 * n“);printf(“ * n“);printf(“ * 4.增加宿舍信息 * * 5.按房间号删除信息* n“);pr

28、intf(“ * n“);printf(“ * 6.显示当前信息 * * 7.保存当前宿舍信息* n“);printf(“ * * n“);printf(“ * 8.退出系统 * n“);printf(“ * n“);printf(“ - - n“);printf(“请选择菜单编号:“);scanf(“%d“,switch(num) case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:reveal();break;case 7:save();break;case 8:k=0;break;default:printf(“请在0-8之间选择n“);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报