版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2 / 23'.计算机程序设计基础(C语言)课程设计题目:学生宿舍管理系统设计级: 计121号:20502120504 12C5C6 120505姓 名: 贾文超 杨晓红 张永康 陆秀和指导教师: 刘喜梅孙强范周瑜2013年7月1日北京信息工程学院信息技术教学与实验中心学生宿舍管理系统设计功能:实现简单的学生宿舍基本信息管理,宿舍的 基本信息包括楼号、房间号、面积、所容纳 人数、已入住人数等。基本要求:1 .设计简单的菜单,能够进行系统功能选择。2 .实现信息的录入功能。3 .在已有信息的基础上添加新的纪录。4 .删除指定房间号的记录。5 .修改指定房间号的记录。6 .实现信息的浏览功
2、能。7 .按房间号查询功能。8 .按已入住人数排序功能。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 .体会及建议 148.1 对自己设计
3、进行评价,指出合理和不足之处,提出改进的方案 149 .学生宿舍管理系统设计参与者 141.1 小组成员信息 141 .学生宿舍管理系统概述高校学生宿舍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前端应用程序的开 发则要求应用程序能提供强大的数据操纵功能, 界面友好、使用简单方便等特点。 旧的手工纪录的宿舍管理方式已经不能适应高速 发展的信息化时代,新的宿舍管 理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、 查找方便、可靠性高、存储量
4、大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。学生宿舍管理系统对于一个学校来说是必不可少的组成部分。对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的, 而且当查找某条记录时,只能靠人工去一条条地查找,这样不但麻烦而且效率非 常低。当今社会是飞速进步的世界,计算机化管理正是适应时代的产物。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及。 我们针对此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机 化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的 就是将数据输入到系统的数据库中去。
5、由于数据库存储容量相当大,而且比较稳 定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校 提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性 好的优点,还具有修改功能,能够快速的查询学校所需的住宿信息。1.2基本功能高校学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端 应用程序的开发两个方面,但本课题要实现的是前端应用程序的开发。在设计该 系统时,会尽可能地贴近我们学生,便于管理者操作。系统在实现上具有如下功 能:1 .设计简单的菜单,能够进行系统功能选择。2 .实现信息的录入功能。3 .在已有信息的基础上添加新的记录。4 .删除指定房问号的
6、记录。5 .修改指定房问号的记录6 .实现信息的浏览功能7 .按房间号查询功能8 .按已入住人数排序功能2.学生宿舍管理系统总体设计1.1管理流程图4 / 23'.对系统可划分为三层流程图:第一层流程图:输入宿舍信息(房问号、楼号、容纳 人数、手机号等)f 学生宿舍 , 管理系统)第二层流程图:第三层流程图:12 / 23'.1.2第二录入模块1.3第三添加模块开始1.6第六浏览模块(与下图1.7类似)1.7第七查询模块1.8第八排序模块4 .算法说明数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术 运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结
7、构、判断选 择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等,利用 数组对宿舍的记录进行循环输入输出, 利用冒泡法记录进行排序,利用循环查找 数组中某个数据,对其进行显示,删除,读入和写入文档等操作。5 .各函数模块功能5.1 各自定义函数功能1、void insert()(录入系统所需的数据;将录入的数据存储在文件中)2、void seek()(按要求对数据进行查询)3、void modify()(对数据进行更新操作)4、void del()(对数据进行删除操作)5、void save()(对指定数据进行统计并输出)6、void sort()(对指定数据排序并输出)7、voi
8、d reveal()(对指定数据产生报表输出)8、void menu()(功能目录)6.程序测试显示请选择菜单编号请输入待增加的宿舍数请输入第1个宿舍的房间号输入411316请输入第1个宿舍的宿舍长请输入第1个宿舍的楼号请输入第1个宿舍的宿舍面积贾文超140请输入第1个宿舍的房间容纳人数请输入第1个宿舍的宿舍成员6贾文超/陆秀和/杨晓红/张永康/李正明/伟力请输入第1个宿舍的手机号请输入第1个宿舍的居住人数录入完毕!请选择菜单编号6结果:所有宿舍信息为:房间号宿舍长楼号宿舍面积房间容纳人数1316贾文超 1406*宿舍成员手机号居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力6显示请选择菜
9、单编号输入21.按房间号查询2.按宿舍长查询3.退出本菜单请选择子菜单编号:1请输入要查询的宿舍的房间号:1316结果:房间号宿舍长楼号宿舍面积房间容纳人数1316贾文超 1406*宿舍成员手机号居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力6显示请选择菜单编号请输入要修改的宿舍的房间号输入31316 请输入新的宿舍面积1, 修改宿舍长2, 修改楼号3, 修改宿舍面积4, 修改房间容纳人数5, 修改宿舍成员6, 修改手机号号码7, 修改居住人数8, 退出本菜单请选择子菜单编号:350请选择子菜单编号:请选择菜单编号86结果:房间号宿舍长楼号宿舍面积房间容纳人数1316贾文超 1506*宿
10、舍成员手机号居住人数贾文超/陆秀和/杨晓红/张永康/李正明/伟力67,总结1.1对调试中主要问题进行总结调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现在删除模块。在运用“dormitory.txt ”打开文件并对某一数据进行删除后,往往显示会多显示一行 数据。这是由于“ dormitory.txt ”写数据时只会覆盖数据而不会清
11、除原文件数 据,因此文件最后一行数据总会保留在原文件中。后来我先用“dormitory.txt ”打开文件并读取文件中的数据,然后再用“ r”打开原文件将删除后的数据重新写入 文件,最终检测运行成功。8.体会及建议1.1对自己设计进行评价,指出合理和不足之处,提出改进的方案本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能, 包括 录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。 可以方便的进行住宿学生信息的管理。 第二,它的各个功能模块在实现时非常方 便,例如:录入和添加学生信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业等进行统计等
12、等。“万事开头难”这句话在我编写程序的过程中得到了真正的体现。在最初编写 的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实 所造成的。但是随后几天里,我对课本知识进行了回顾并不时的向老师和同学进 行请教,慢慢的对编写程序也开始得心应手起来。程序的编写总归是一件费时费 力的事情,但只要我们认真编写和调试最后总能成功。短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入 学习打下扎实的基础。9.学生宿舍管理系统设计参与者1.1 小组成员信息姓名院系班级学号贾文超信息工程学院机121120502陆秀和信息工程学院机121120506杨晓红信息工程学院机121120
13、504张永康信息工程学院机121120505参考文献:1.软件工程导论 第四版 清华大学出版2. C#FF发实战宝典王小科 编著 清华大学出版社3. C#FF发大全刘丽霞编著清华大学出版4 .百度知道5 .C# 与.net开发网附录:源程序清单#include<stdio.h>/*I/O 函数*/#include<stdlib.h>/*其它说明 */#include<string.h>/*字符串函数*/#defineBUFLEN100/*缓冲区最大字符数*/#define LEN100 /*房间号和宿舍长最大字符数,实际请更改*/#define N 1000
14、 /*最大宿舍人数,实际请更改*/ struct apartment /* 结构体 */ char room LENH; /* 房间号 */char dormitoryleader LEN+1; /* 宿舍长 */ int dormitory; /* 楼号 */ char area3; /* 宿舍面积 */ char hold LENH; /* 房间容纳人数 */ char member1000; /* 宿舍成员 */ char tel LENH; /* 手机号号码 */ char livenumber30; /* 居住人数 */ stu N int k=1,n,m; /* 定义全局变量*/
15、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() printf( "n0.欢迎使用宿舍系统帮助!n");printf( "n1.进入系统后,先刷新宿舍信息,再查询;n");printf( "n2.按
16、照菜单提示键入数字代号;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 error! Strike any key to exit!",p);sy
17、stem( "pause");exit(0);while (fscanf(fp, "%s %s%d%s %s %s %s %sStui.room,stui.dormitoryleader,&stui.dorm itory,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;/*以宿舍长和
18、房间号最长长度+1为准*/printf( "n");printf("1.按房间号查询n"printf( -2.按宿舍长查询-n"););printf( -3.退出本菜单-n"printf( "n"););while (1)printf("请选择子菜单编号:");scanf( "%d",&item);flag=0;switch (item)case 1:printf("请输入要查询的宿舍的房间号:n");scanf( "%s",s
19、1);for (i=0;i<n;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.dormitory, stui.area,stui.hold);printf( "*n");printf("宿舍成员手机号居住人数n");pri
20、ntf("-'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;i<n;i+)|if (strcmp(stui.dormitoryleader,s1)=0)flag=1;printf("房间号宿舍
21、长 楼号宿舍面积房间容纳人数n");printf("-'n");printf( "%0s %8s %3d %7s %11s n" ,stui.room,stui.dormitoryleader,stui.dormitory, stui.area,stui.hold);printf(,*手机号居住人数n");*n");printf("宿舍成员printf("-'n");printf( " %0s %20s %8sn" ,stui.member,stui.tel,
22、stui.livenumber);if (flag=0) |printf("该宿舍长不存在!n" ); break;case 3: return ;default :printf("请在 1-3 之间选择 n");void modify() /* 修改彳言息*/int i,item,num; |char area13,s1LEh+1,s2 LEN+1; /* 以宿舍长和房间号最长长度 +1为准*/printf("请输入要修改的宿舍的房间号:n");scanf( "%s",s1);for (i=0;i<n;i+
23、)if (strcmp(stui.room,s1)=0) /* 比较字符串是否相等 */num=i;pnntf( "n");printf("1.修改宿舍长n");printf("2.修改楼号n");printf("3.修改宿舍面积n");printf("4.修改房间容纳人数n");printf("5.修改宿舍成员n");printf("6.修改手机号号码n");printf("7.修改居住人数n");printf("8.退出本
24、菜单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.dormit
25、ory); break;case 3:printf("请输入新的宿舍面积:n");scanf( "%s",area1);strcpy(stunum.area,area1); break;case 4:printf("请输入新的房间容纳人数:n");scanf( "%s",s2);strcpy(stunum.hold,s2); break;case 5:printf("请输入新的宿舍成员:n");scanf( "%s",s2);strcpy(stunum.member,s2);
26、 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: return ;default :printf("请在 1-8 之间选择 n");void sort() /*按居住人数排序*/int i,j,*p,*q,s
27、;char temp100;for (i=0;i<n-1;i+)for (j=n-1;j>i;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.dormitoryleader);strcpy(stuj.dormitorylead
28、er,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-1.tel);strcpy(stuj-1.tel,stuj.te
29、l);|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
30、=1; while (flag)flag=0;printf("请输入第%d个宿舍的房间号:n" ,i+1);scanf( "%s",stui.room);for (j=0;j<i;j+)if (strcmp(stui.room,stuj.room)=0)printf("已有该房间号,请检查后重新录入!n");flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/printf("请输入第 %d个宿舍的宿舍长:n" ,i+1);scanf( "%s" ,stui.dormi
31、toryleader);printf("请输入第%d个宿舍的楼号:n" ,i+1);scanf( "%d",&stui.dormitory);printf("请输入第%d个宿舍的宿舍宿舍面积(mA2):n" ,i+1);scanf( "%s",stui.area);printf("请输入第%d个宿舍的房间容纳人数:n" ,i+1);scanf( "%s",stui.hold);printf("请输入第%d个宿舍的宿舍成员(注:人员之间加/):n"
32、,i+1); scanf( "%s",stui.member);printf("请输入第%d个宿舍的手机号:n" ,i+1);scanf( "%s",stui.tel);printf("请输入第%d个宿舍的居住人数:n" ,i+1);scanf( "%s",stui.livenumber);if (flag=0) | i=i; i+; while (i<n+m); n+=m;printf("录入完毕! n'n");sort(); void del() int i
33、,j,flag=0; char s1 LENH;printf("请输入要删除宿舍的房间号:n");scanf( "%s",s1);for (i=0;i<n;i+) |if (strcmp(stui.room,s1)=0) flag=1;for (j=i;j<n-1;j+) stuj=stuj+1;if (flag=0) |printf("该房间号不存在!n");if (flag=1) | printf("删除成功,显示结果请选择菜单6n");n-; void reveal() int i;printf(
34、"所有宿舍的信息为:n");printf("房间号 宿舍长楼号宿舍面积房间容纳人数n" ); |printf( "n");for (i=0;i<n;i+) -| printf( "%0s %7s %5d %5s %9s n" ,stui.room,stui.dormitoryleader,stui.dormitory, stui.area,stui.hold);27 / 23'.printf("*n")printf("宿舍成员手机号居住人数n");printf("-'n");for (i=0;i<n;i+) -|p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 滴丸工保密评优考核试卷含答案
- 松香浸提工安全宣贯能力考核试卷含答案
- 化学农药生产工岗前岗位环保责任制考核试卷含答案
- 耐蚀塑料工安全文明考核试卷含答案
- 制浆废液回收利用工岗前班组安全考核试卷含答案
- 山石工变革管理能力考核试卷含答案
- 2026年建筑设计院项目合同协议
- 2026八年级上《整式的乘除》解题技巧
- 【方案】2026零碳园区绿电直供技术的挑战与解决方案
- 广告设计师试题及答案
- 江苏棋牌室管理暂行办法
- 小学教育专业专升本试题带答案
- 聚合工艺作业培训课件
- 2024年中国烟草总公司江西省公司考试真题试卷及答案
- 2025年苏州市中考历史试卷真题(含标准答案)
- 单位见习人员管理制度
- 心血管疾病的三级预防
- 爱永在 二部合唱简谱
- 上海市浦东新区2024-2025学年高一下学期期中考试英语试卷(含答案)
- 电梯有限空间作业安全专项施工方案
- 承插型盘扣式钢管脚手架安全技术标准JGJT231-2021规范解读
评论
0/150
提交评论