开始循环,扫描存储信息 选出居住人数最小的宿舍与第一个宿舍交换 在余下居住人数中选出最少的与第二个宿舍交换 以此类推,直至排序完成 结束
4.算法说明
数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等,利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。
5.各函数模块功能 1.1各自定义函数功能
1、void insert()(录入系统所需的数据;将录入的数据存储在文件中) 2、void seek()(按要求对数据进行查询) 3、void modify()(对数据进行更新操作) 4、void del()(对数据进行删除操作)
5、void save()(对指定数据进行统计并输出)
11
6、void sort()(对指定数据排序并输出) 7、void reveal()(对指定数据产生报表输出) 8、void menu()(功能目录)
6.程序测试
显示 请选择菜单编号 请输入待增加的宿舍数 请输入第1个宿舍的房间号 输入 4 1 1316
??????????????????????????????????????? 请输入第1个宿舍的宿舍长 请输入第1个宿舍的楼号 请输入第1个宿舍的宿舍面积
贾文超 1 40
??????????????????????????????????
请输入第1个宿舍的房间容纳人数 请输入第1个宿舍的宿舍成员
6 贾文超/陆秀和/杨晓红/张永康/李正明/伟力
??????????????????????????????????
请输入第1个宿舍的手机号 请输入第1个宿舍的居住人数
??????????????????????????????????????? 13476731421 6
??????????????????????????????????????? 录入完毕! 请选择菜单编号 6
??????????????????????????????????
结果:所有宿舍信息为:
房间号 宿舍长 楼号 宿舍面积 房间容纳人数
??????????????????????????????????
1316 贾文超 1 40 6
********************************************************************
宿舍成员 手机号 居住人数
?????????????????????????????????? 贾文超/陆秀和/杨晓红/张永康/李正明/伟力 13476731421 6
显示 请选择菜单编号 输入 2
?????????????????????????????????? --------------1.按房间号查询--------------
--------------2.按宿舍长查询-------------- --------------3.退出本菜单---------------- 请选择子菜单编号:
1
??????????????????????????????????
请输入要查询的宿舍的房间号: 1316
??????????????????????????????????
12
结果:
房间号 宿舍长 楼号 宿舍面积 房间容纳人数
??????????????????????????????????
1316 贾文超 1 40 6
********************************************************************
宿舍成员 手机号 居住人数
?????????????????????????????????? 贾文超/陆秀和/杨晓红/张永康/李正明/伟力 13476731421 6
显示 请选择菜单编号 请输入要修改的宿舍的房间号 输入 3 1316
??????????????????????????????????????? ------------------------------ 请输入新的宿舍面积 1.修改宿舍长 2.修改楼号 3.修改宿舍面积 4.修改房间容纳人数 5.修改宿舍成员 6.修改手机号号码 7.修改居住人数 8.退出本菜单
------------------------------- 请选择子菜单编号:
3 50
?????????????????????????????????? 请选择子菜单编号: 请选择菜单编号 8 6
??????????????????????????????????
结果:
房间号 宿舍长 楼号 宿舍面积 房间容纳人数
??????????????????????????????????
1316 贾文超 1 50 6
********************************************************************
宿舍成员 手机号 居住人数
?????????????????????????????????? 贾文超/陆秀和/杨晓红/张永康/李正明/伟力 13476731421 6
7.总结
1.1对调试中主要问题进行总结
调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数
13
据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现在删除模块。在运用“dormitory.txt”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是由于“dormitory.txt”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。后来我先用“dormitory.txt”打开文件并读取文件中的数据,然后再用“r”打开原文件将删除后的数据重新写入
文件,最终检测运行成功。
8.体会及建议
1.1对自己设计进行评价,指出合理和不足之处,提出改进的方案
本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。可以方便的进行住宿学生信息的管理。第二,它的各个功能模块在实现时非常方便,例如:录入和添加学生信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业等进行统计等等。。 “万事开头难”这句话在我编写程序的过程中得到了真正的体现。在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。但是随后几天里,我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对编写程序也开始得心应手起来。程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后总能成功。 短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的基础。 9.学生宿舍管理系统设计参与者 1.1小组成员信息 姓名 贾文超 陆秀和 杨晓红 张永康
参考文献:1.《软件工程导论》 第四版 清华大学出版
14
院系 信息工程学院 信息工程学院 信息工程学院 信息工程学院 班级 机121 机121 机121 机121 学号 120502 120506 120504 120505 2.《C#开发实战宝典》 王小科 编著 清华大学出版社 3.《C#开发大全》 刘丽霞 编著 清华大学出版
4.百度知道
5.C#与.net开发网 http://developer.51cto.com/net/
附录:源程序清单
#include
#define BUFLEN 100 /* 缓冲区最大字符数 */
#define LEN 100 /* 房间号和宿舍长最大字符数,实际请更改 */ #define N 1000 /* 最大宿舍人数,实际请更改*/ struct apartment /*结构体*/ {
char room[LEN+1]; /* 房间号 */
char dormitoryleader[LEN+1]; /* 宿舍长 */ int dormitory; /* 楼号 */ char area[3]; /* 宿舍面积 */
char hold[LEN+1]; /* 房间容纳人数 */ char member[1000]; /* 宿舍成员 */ char tel[LEN+1]; /* 手机号号码 */ char livenumber[30]; /* 居住人数 */ }stu[N];
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(\); return 0; }
void help() {
printf(\欢迎使用宿舍系统帮助!\\n\);
15