收藏 分销(赏)

学生宿舍标准管理专业系统设计C语言.doc

上传人:丰**** 文档编号:2827812 上传时间:2024-06-06 格式:DOC 页数:30 大小:135.54KB
下载 相关 举报
学生宿舍标准管理专业系统设计C语言.doc_第1页
第1页 / 共30页
学生宿舍标准管理专业系统设计C语言.doc_第2页
第2页 / 共30页
学生宿舍标准管理专业系统设计C语言.doc_第3页
第3页 / 共30页
学生宿舍标准管理专业系统设计C语言.doc_第4页
第4页 / 共30页
学生宿舍标准管理专业系统设计C语言.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

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

2、效。7.按房间号查询功效。8.按已入住人数排序功效。1.学生宿舍管理系统概述 4 1.1需求分析 4 1.2基础功效 42.学生宿舍管理系统总体设计 5 1.1管理步骤图 5 1.2管理员操作 53.模块划分6 1.1第一选择模块 6 1.2第二录入模块 7 1.3第三添加模块 8 1.4第四删除模块 8 1.5第五修改模块 9 1.6第六浏览模块 9 1.7第七查询模块 10 1.8第八排序模块 114.算法说明115.各函数模块功效11 1.1各自定义函数功效 116.程序测试127.结论14 1.1对调试中关键问题进行总结148.体会及提议14 1.1对自己设计进行评价,指出合理和不足之

3、处,提出改善方案 149.学生宿舍管理系统设计参与者14 1.1 小组组员信息14 1.学生宿舍管理系统概述1.1需求分析高校学生宿舍管理系统是经典信息管理系统(MIS),其开发关键包含后台数据库建立和维护和前端应用程序开发两个方面。对于前端应用程序开发则要求应用程序能提供强大数据操纵功效,界面友好、使用简单方便等特点。旧手工纪录宿舍管理方法已经不能适应高速发展信息化时代,新宿舍管理系统开发出来以后,学校现有宿舍信息管理将有很大改观,由过去人工方法转变为计算机方法,由效率低、数据冗余、易产生错误转变为检索快速、查找方便、可靠性高、存放量大。这些优点能够极大地提升效率,也是学校科学化、正规化管理

4、关键条件。学生宿舍管理系统对于一个学校来说是必不可少组成部分。对于学生信息量比较庞大,需要统计存档数据比较多高校来说,人工统计是相当麻烦,而且当查找某条统计时,只能靠人工去一条条地查找,这么不仅麻烦而且效率很低。当今社会是飞速进步世界,计算机化管理正是适应时代产物。二十一世纪今天,信息社会占着主流地位,计算机在各行各业中利用已经得到普及。我们针对此,设计了一套学生宿舍管理系统。学生宿舍管理系统采取是计算机化管理,系统做尽可能人性化,使用者会感到操作很方便,管理人员需要做就是将数据输入到系统数据库中去。因为数据库存放容量相当大,而且比较稳定,适合较长时间保留,也不轻易丢失。这无疑是为信息存放量比

5、较大学校提供了一个方便、快捷操作方法。本系统含有运行速度快、安全性高、稳定性好优点,还含有修改功效,能够快速查询学校所需住宿信息。1.2基础功效高校学生宿舍管理系统开发关键包含后台数据库建立和维护和前端应用程序开发两个方面,但本课题要实现是前端应用程序开发。在设计该系统时,会尽可能地贴近我们学生,便于管理者操作。系统在实现上含有以下功效:1 设计简单菜单,能够进行系统功效选择。2 实现信息录入功效。3 在已经有信息基础上添加新统计。4 删除指定房间号统计。5 修改指定房间号统计6 实现信息浏览功效7 按房间号查询功效8 按已入住人数排序功效 2.学生宿舍管理系统总体设计1.1管理步骤图 对系统

6、可划分为三层步骤图: 第一层步骤图:输入宿舍信息(房间号、楼号、容纳人数、手机号等) 学生宿舍 管理系统 第二层步骤图: 添加 宿舍管理系统统计删除选择操作修改 第三层步骤图:房间号对应宿舍信息 学生宿舍 管理系统选择查询信息标准 按已入住 人数排序 3.模块划分1.1选择功效模块图 输入 插入录入存放 删除 修改主函数数据操作 查询 统计输出信息 排序 显示1.2第二录入模块开始输入宿舍信息p-livenumberp-areap-room count2+ count3+count1+ end开始1.3第三添加模块 插入宿 舍信息用sort()函数排序 输入宿 舍信息 将其入栈结束开始1.4第

7、四删除模块输入删除房间号for循环,扫描存放学生信息p-room:roomm != 删除对应 学生信息 结束1.5第五修改模块开始 输入修改 房间号room for循环,扫描 存放学生信息 p-room; room = != 修改对应 学生信息结束1.6第六浏览模块(和下图1.7类似) 开始1.7第七查询模块 按宿舍 长查询 选择查 询方法 按宿舍号查询 输入要查找 宿舍长姓名开始循环,扫描存放宿舍信息 输入查找 宿舍号p-dormitoryleader: dormitoryleaderp-room: room!=!= = =输出宿舍信息输出宿舍信息 结束1.8第八排序模块 开始开始循环,扫描

8、存放信息选出居住人数最小宿舍和第一个宿舍交换在余下居住人数中选出最少和第二个宿舍交换以这类推,直至排序完成 结束 4.算法说明数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(次序结构、判定选择结构、循环结构);大程序功效分解方法(即函数调用和使用)等,利用数组对宿舍统计进行循环输入输出,利用冒泡法统计进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。 5.各函数模块功效1.1各自定义函数功效1、void insert()(录入系统所需数据;将录入数据存放在文件中)2、void seek()(按

9、要求对数据进行查询)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个宿舍宿舍面积 贾文超 1 40请输入第1个宿舍房间容纳人数 请输入第1个宿舍宿舍组员 6 贾文超/陆秀和/杨晓红/张永康/李

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

11、改宿舍房间号输入 3 1316 - 请输入新宿舍面积 1.修改宿舍长 2.修改楼号 3.修改宿舍面积 4.修改房间容纳人数 5.修改宿舍组员 6.修改手机号号码 7.修改居住人数 8.退出本菜单 - 请选择子菜单编号: 3 50请选择子菜单编号: 请选择菜单编号 8 6结果:房间号 宿舍长 楼号 宿舍面积 房间容纳人数1316 贾文超 1 50 6*宿舍组员 手机号 居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力 6 7.总结1.1对调试中关键问题进行总结 调试过程中,常常会出现输入或显示为乱码情况,这往往是上下定义数据类型不一样或定义数组长度不够所造成。有时候程序中还会出现录入五个数据

12、而只显示四个情况,这也往往是因为定义结构体数组长度过低所造成。像这类问题只要把数据类型全部定义成字符型,而且定义一个合理数组长度往往全部能处理。在调试过程中我碰到最大问题出现在删除模块。在利用“dormitory.txt”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是因为“dormitory.txt”写数据时只会覆盖数据而不会清除原文件数据,所以文件最终一行数据总会保留在原文件中。以后我先用“dormitory.txt”打开文件并读取文件中数据,然后再用“r”打开原文件将删除后数据重新写入文件,最终检测运行成功。 8.体会及提议 1.1对自己设计进行评价,指出合理和不足之处,提

13、出改善方案 本程序拥有很多优点:第一,它含有作为一个宿舍管理系统各个功效,包含录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大关键功效。能够方便进行住宿学生信息管理。第二,它各个功效模块在实现时很方便,比如:录入和添加学生信息能够自己控制录入和添加人数;统计学生信息能够分学号、班级、专业等进行统计等等。 “万事开头难”这句话在我编写程序过程中得到了真正表现。在最初编写几天里出现了这么那样错误一大堆,这关键是因为我对基础知识掌握不扎实所造成。不过随即几天里,我对书本知识进行了回顾并不时向老师和同学进行请教,慢慢对编写程序也开始得心应手起来。程序编写总归是一件费时费力事情,但只要我们

14、认真编写和调试最终总能成功。 短短两周实习时间我收获颇多,我相信经过这次实习必将为我以后深入学习打下扎实基础。 9.学生宿舍管理系统设计参与者1.1小组组员信息 姓名 院系 班级 学号 贾文超 信息工程学院 机121 120502 陆秀和 信息工程学院 机121 120506 杨晓红 信息工程学院 机121 120504 张永康 信息工程学院 机121 120505参考文件:1.软件工程导论 第四版 清华大学出版 2.C#开发实战宝典 王小科 编著 清华大学出版社 3.C#开发大全 刘丽霞 编著 清华大学出版 4.baidu知道 5.C#和.net开发网 附录:源程序清单#include /*

15、I/O函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 100 /* 房间号和宿舍长最大字符数,实际请更改 */#define N 1000 /* 最大宿舍人数,实际请更改*/struct apartment /*结构体*/char roomLEN+1; /* 房间号 */char dormitoryleaderLEN+1; /* 宿舍长 */int dormitory; /* 楼号 */char area3; /* 宿舍面积 */char holdLEN+1; /* 房间容纳

16、人数 */char member1000; /* 宿舍组员 */char telLEN+1; /* 手机号号码 */char livenumber30; /* 居住人数 */stuN;int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数申明 */void seek();void modify();void insert();void del();void reveal();void save();void menu(); int main() while(k)menu();system(pause);return 0; void help() prin

17、tf(n0.欢迎使用宿舍系统帮助!n);printf(n1.进入系统后,先刷新宿舍信息,再查询;n);printf(n2.根据菜单提醒键入数字代号;n);printf(n3.增加宿舍信息后,切记保留按7;n);printf(n4.谢谢您使用!n); void readfile()/* 建立信息 */char *p=dormitory.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)

18、;while(fscanf(fp,%s %s%d%s %s %s %s %s,stui.room,stui.dormitoryleader,&stui.dormitory,stui.area,stui.hold,stui.member,stui.tel,stui.livenumber)=8)i+;i=i;fclose(fp);n=i;printf(录入完成!n); void seek() /*查找*/int i,item,flag;char s121; /* 以宿舍长和房间号最长长度+1为准 */printf(-n);printf(-1.按房间号查询-n);printf(-2.按宿舍长查询-n

19、);printf(-3.退出本菜单-n);printf(-n);while(1)printf(请选择子菜单编号:);scanf(%d,&item);flag=0;switch(item)case 1:printf(请输入要查询宿舍房间号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.room,s1)=0)flag=1;printf(房间号 宿舍长 楼号 宿舍面积 房间容纳人数 n);printf(-n);printf(%0s %8s %3d %7s %11s n,stui.room,stui.dormitoryleader,stui.dormitor

20、y,stui.area,stui.hold);printf(*n);printf( 宿舍组员 手机号 居住人数n);printf(-n);printf( %0s %20s %8sn,stui.member,stui.tel,stui.livenumber);if(flag=0)printf(该房间号不存在!n); break;case 2:printf(请输入要查询宿舍宿舍长:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.dormitoryleader,s1)=0)flag=1;printf(房间号 宿舍长 楼号 宿舍面积 房间容纳人数 n);pri

21、ntf(-n);printf(%0s %8s %3d %7s %11s n,stui.room,stui.dormitoryleader,stui.dormitory,stui.area,stui.hold);printf(*n);printf( 宿舍组员 手机号 居住人数n);printf(-n);printf( %0s %20s %8sn,stui.member,stui.tel,stui.livenumber);if(flag=0)printf(该宿舍长不存在!n); break;case 3:return;default:printf(请在1-3之间选择n); void modify(

22、) /*修改信息*/int i,item,num;char area13,s1LEN+1,s2LEN+1; /* 以宿舍长和房间号最长长度+1为准 */printf(请输入要修改宿舍房间号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.room,s1)=0) /*比较字符串是否相等*/num=i;printf(-n);printf(1.修改宿舍长n);printf(2.修改楼号n);printf(3.修改宿舍面积n);printf(4.修改房间容纳人数n);printf(5.修改宿舍组员n);printf(6.修改手机号号码n);printf(7.修

23、改居住人数n);printf(8.退出本菜单n);printf(-n);while(1)printf(请选择子菜单编号:);scanf(%d,&item);switch(item)case 1:printf(请输入新宿舍长:n);scanf(%s,s2);strcpy(stunum.dormitoryleader,s2); break;case 2:printf(请输入新楼号:n);scanf(%d,&stunum.dormitory);break;case 3:printf(请输入新宿舍面积:n);scanf(%s,area1);strcpy(stunum.area,area1); brea

24、k;case 4:printf(请输入新房间容纳人数:n);scanf(%s,s2);strcpy(stunum.hold,s2); break;case 5:printf(请输入新宿舍组员:n);scanf(%s,s2);strcpy(stunum.member,s2); break;case 6:printf(请输入新手机号号码:n);scanf(%s,s2);strcpy(stunum.tel,s2); break;case 7:printf(请输入新房住人数:n);scanf(%s,s2);strcpy(stunum.livenumber,s2); break;case 8:retur

25、n;default:printf(请在1-8之间选择n); void sort()/*按居住人数排序*/int i,j,*p,*q,s; char temp100;for(i=0;ii;j-)if(strcmp(stuj-1.livenumber,stuj.livenumber)0)strcpy(temp,stuj-1.room);strcpy(stuj-1.room,stuj.room);strcpy(stuj.room,temp);strcpy(temp,stuj-1.dormitoryleader);strcpy(stuj-1.dormitoryleader,stuj.dormitory

26、leader);strcpy(stuj.dormitoryleader,temp);strcpy(temp,stuj-1.area);strcpy(stuj-1.area,stuj.area);strcpy(stuj.area,temp);strcpy(temp,stuj-1.hold);strcpy(stuj-1.hold,stuj.hold);strcpy(stuj.hold,temp);strcpy(temp,stuj-1.member);strcpy(stuj-1.member,stuj.member);strcpy(stuj.member,temp);strcpy(temp,stuj

27、-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=&stuj-1.dormitory; q=&stuj.dormitory; s=*q; *q=*p; *p=s; void insert() /*插入函数*/ int i=n,j,flag;printf(请输入待增加宿舍数:n);scanf(%d,&m);do flag=1

28、;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; /*如有反复立即退出该层循环,提升判定速度*/printf(请输入第 %d 个宿舍宿舍长:n,i+1);scanf(%s,stui.dormitoryleader);printf(请输入第 %d 个宿舍楼号:n,i+1);scanf(%d,&stui.dormitory);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,i+1);scanf(%s,stui.tel);printf(请输入第 %d 个宿舍居住人数:n,i+1);scan

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服