宿舍管理系统报告(共28页).doc
《宿舍管理系统报告(共28页).doc》由会员分享,可在线阅读,更多相关《宿舍管理系统报告(共28页).doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 目 录学生宿舍管理系统一、实验目的1 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;2 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4 通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。二、实验内容我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针
2、、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。 三、实验环境台式计算机每人一台;软件:Visual C+6.0;四、需求分析该程序是由C语言编写的一个宿舍管理查询软件,本程序在Microsoft Visual C+ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。五、概要设计1、方案设计主函
3、数密码模块录入模块添加模块修改模块删除模块查询模块统计模块退出系统学 号姓名宿舍性 别年龄专 业返 回班 级按姓名按学号按宿舍返 回按性别按学号按宿舍返 回按班级按专业2、数据结构说明程序中数据主要是学生信息和宿舍信息,具体属于类型如下: struct stu char name20; int num; char sex; int age; int grade; int nclass; char zhuanye30;struct dom int bui_num; int floor_num; int room_num; int bed_num; struct stu st;sMAX,p;3、模
4、块功能说明第一密码模块:调用cipher(),进行管理者的注册与登录操作。第二录入模块:调用input_message(),对住宿学生信息进行录入。第三添加模块:调用append_message(),对新来学生信息进行添加录入。第四修改模块:调用revise_message(),对需修改学生的信息进行修改。第五删除模块:调用delete_message(),对某一学生信息进行删除操作。第六查询模块:调用find_message(),分别以姓名、学号、宿舍号对学生信息进行查询。第七统计模块:调用census_message(),分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号
5、由小到大输出。六、详细设计及运行结果1、登陆界面2、主界面3、录入模块输入学号输入姓名输入性别输入年龄输入年级输入班级输入专业是否继续录入结 束NY宿舍楼号宿舍楼层号宿舍房间号宿舍床号4、录入界面5、打印学生信息界面6、更新学生信息界面7、查询宿舍信息界面8、统计宿舍信息界面9、学生宿舍排序七、源程序#include #include string.h#define MAX 10#define PRINT1 printf(-n)#define PRINT2 printf(学号-学生姓名-性别-年龄-年级-班级-专业-楼号-楼层号-房间号-床号nn)int sum;struct stu char
6、 name20; int num; char sex; int age; int grade; int nclass; char zhuanye30;struct dom int bui_num; int floor_num; int room_num; int bed_num; struct stu st;sMAX,p; /*保存信息*/ save_message() FILE *fp; int i; if(fp=fopen(dom.txt,wt)=NULL) printf(读文件错误!n); return 0; for(i=0;isum;i+) if(fwrite(&si,sizeof(s
7、truct dom),1,fp)!=1) printf(写文件错误!n); fclose(fp); /*输入模块*/ input_message() int i=0; /clrscr(); printf(nn 录入学生信息(最多%d个)n,MAX); printf( -n); do printf(n 第%d个学生nn,i+1); printf(n 学号: ); scanf(%d,&si.st.num); if(si.st.num=0) break; printf(n 学生姓名: ); scanf(%s,si.st.name); printf(n 学生性别(男生用M表示,女生用F表示):); g
8、etchar(); scanf(%c,&si.st.sex); printf(n 学生年龄: ); scanf(%d,&si.st.age); printf(n 学生年级: ); scanf(%d,&si.st.grade); printf(n 学生班级: ); scanf(%d,&si.st.nclass); printf(n 学生专业: ); scanf(%s,&si.st.zhuanye); printf(n 宿舍楼号: ); scanf(%d,&si.bui_num); printf(n 宿舍楼层号: ); scanf(%d,&si.floor_num); printf(n 宿舍房间号
9、: ); scanf(%d,&si.room_num); printf(n 宿舍床号: ); scanf(%d,&si.bed_num); i+; while(iMAX); printf(n -%d个学生的信息输入完毕!-n,i); sum=i; printf(n 按任意键返回主菜单!); getchar(); / bioskey(0); return 0; /*读取信息*/ int read_message() FILE *fp; int i=0; if(fp=fopen(dom.txt,rt)=NULL) printf(nn*暂时还没有任何信息,按任意键进入主菜单选择基本信息的录入!*n)
10、; return 0; while(!feof(fp) fread(&si,sizeof(struct dom),1,fp); i+; fclose(fp); return(i); /*输出模块*/ output_message() int i=0;/ clrscr();printf(nn -学生信息表- nn);PRINT2;PRINT1;for(i=0;isum;i+)if(si.st.num!=0) printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn,si.st.num,si.st.name,si.st.sex,si.st.age, si.st.gra
11、de,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num); printf(n);/ bioskey(0);return 0; / /*添加学生信息*/ insert_message() int i=sum,flag=0; char choice; printf(nn 添加一个新同学n); printf( -n); do printf(n 新学号: ); scanf(%d,&si.st.num); printf(n 学生姓名: ); scanf(%s,si.st.name); printf(n 学生
12、性别(男生用M表示,女生用F表示):); getchar(); scanf(%c,&si.st.sex); printf(n 学生年龄: ); scanf(%d,&si.st.age); printf(n 学生年级: ); scanf(%d,&si.st.grade); printf(n 学生班级: ); scanf(%d,&si.st.nclass); printf(n 学生专业: ); scanf(%s,si.st.zhuanye); printf(n 宿舍楼号: ); scanf(%d,&si.bui_num); printf(n 宿舍楼层号: ); scanf(%d,&si.floor
13、_num); printf(n 宿舍房间号: ); scanf(%d,&si.room_num); printf(n 宿舍床号: ); scanf(%d,&si.bed_num); sum+; printf(n 要继续吗?(Y/N); getchar(); scanf(%c,&choice); if(choice=y | choice=Y) flag=1; i+; printf(n 继续!n); else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); return 0; /*删除模块*/ del_message() int flag,del_num,
14、i,k; char choice; do printf(n 输入要删除的学生学号: ); scanf(%d,&del_num); for(i=0;isum;i+) if(del_num=si.st.num) for(k=i;ksum-1;k+) sk=sk+1; sum-; printf(nn 继续吗?(Y/N); getchar(); scanf(%c,&choice); if(choice=y | choice=Y) flag=1; printf(n 继续!n); else flag=0; while(flag=1); printf(nn 按任意键返回主菜单!); getchar(); r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宿舍 管理 系统 报告 28
限制150内