宿舍管理系统报告_第1页
宿舍管理系统报告_第2页
宿舍管理系统报告_第3页
免费预览已结束,剩余36页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、实验目的 2二、实验内容 3三、实验环境 3四、需求分析 3五、概要设计 41、方案设计 42、数据结构说明 43、模块功能说明 5六、详细设计及运行结果 61、登陆界面 62、主界面 63、录入模块 74、录入界面 85、打印学生信息界面 86、更新学生信息界面 97、查询宿舍信息界面 98、统计宿舍信息界面 1.09、学生宿舍排序 1.0.七、源程序 1.1.八、心得体会 3.6.学生宿舍管理系统、实验目的1 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。2 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3 掌握线性表的动态分配顺序存储结构的定义和基本操作的实

2、现;4 通过实验帮助学生加深对 C 语言的使用(特别是函数的参数调用、指针 类型的应用和链表的建立等各种基本操作) 。二、实验内容我组设计的是“学生宿舍管理系统” ,主要是针对住宿学生个人信息的管理,适用对象主 要是学校, 以方便学校对住宿学生的管理。 包括学生的姓名、 学号、性别、专业、 班级等等。 在编写过程中主要运用 C 语言的基本知识有:数据类型(整形、实型、字符型、指针、数 组、结构等);运算类型 (算术运算、 逻辑运算、 自增自减运算、 赋值运算等) ;程序结构 (顺 序结构、判断选择结构、循环结构) ;大程序的功能分解方法(即函数的调用与使用)等。三、实验环境台式计算机每人一台;

3、软件: Visual C+6.0 ;四、需求分析该程序是由 C 语言编写的一个宿舍管理查询软件,本程序在 Microsoft Visual C+ 6.0 下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询 可以分别以姓名、学号、宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性 别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。五、概要设计1、方案设计1学号r姓名班级1宿 舍性别年龄专业返回按按按返姓学宿回名1 J号舍按按按按按返学宿性班专回号舍别级业录r1添F1修r冷删查r统r1退入加改除询计出模模模模模模系块块块块块块统L_jJuJL

4、LJ|>J2、数据结构说明程序中数据主要是学生信息和宿舍信息,具体属于类型如下:struct stuchar n ame20;int num;char sex;int age;int grade;int n class;char zhuanye30;struct domint bui_num;int floor_num;int room_num; int bed_num; struct stu st;sMAX,p;3、模块功能说明第一密码模块:调用 cipher() ,进行管理者的注册与登录操作。第二录入模块:调用input_message()第三添加模块:调用append_messag

5、e()第四修改模块:调用revise_message()第五删除模块:调用delete_message()第六查询模块:调用find_message() ,第七统计模块:调用census_message(),对住宿学生信息进行录入。,对新来学生信息进行添加录入。,对需修改学生的信息进行修改。,对某一学生信息进行删除操作。分别以姓名、学号、宿舍号对学生信息进行查询。,分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号由小到大输出。六、详细设计及运行结果1、登陆界面C: *Docuscnt s and Set.t£ri£ sAdMjLnist ratoE吒鼻匕

6、>r2、主界面3、录入模块4、录入界面5、打印学生信息界面6、更新学生信息界面7、查询宿舍信息界面8、统计宿舍信息界面 C:LJ serslDociJment5Tencent F iles979 392756FileecvT,|5tCebug字生S言莒2-打印学生佞啟 算更新学生仁息4-査谊宿害佢馬、 "统计宿舍信削 緘学生活舍排序 嘔渥出系统充L.L息啃单-1 信辜5 思王择 任生口谥 计学返*输人要统计的学主专业年级助级9、学生宿舍排序C :se rilCo cu m EntmTe num nt File9795927 5®Fil皆etV哉JS结构匚 eh u g

7、# 主吿言苣皂至.询宿舍信息6-学生宿舍排序艮出秦统请选扌灸0-3=(; W IM If WM ' T '千 | I rj rw 丄肩裔辭排序 0-危同工栄单' 宵尢择W: 1宿舍排序号rHr号E-4S卄序1 薈王<0 -f 二缜请七、源程序#include <stdio.h>#include "string.h"#define MAX 10#define PRINT1printf("n")#define PRINT2 printf(" 学号 - 学生姓名 - 性别 - 年龄 - 年级 - 班级 - 专

8、业 - 楼号 - 楼 层号-房间号-床号nn")int sum;struct stuchar name20;int num;char sex;int age;int grade;int nclass;char zhuanye30;struct domint 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)pr

9、intf(" 读文件错误 !n");return 0;for(i=0;i<sum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1) printf(" 写文件错误 !n");fclose(fp);/* 输入模块 */input_message() int i=0;/clrscr();printf("nn 录入学生信息 (最多 %d 个 )n",MAX);printf(" n");doprintf("n第 %d 个学生 nn",i+1);pr

10、intf("n学号 : ");scanf("%d",&si.st.num);if(si.st.num=0) break;printf("n学生姓名 : ");scanf("%s",);printf("n学生性别 (男生用 M 表示,女生用 F 表示):");getchar();scanf("%c",&si.st.sex);printf("n学生年龄 : ");scanf("%d",&si.st

11、.age);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"

12、;,&si.floor_num);printf("n宿舍房间号 : ");scanf("%d",&si.room_num);printf("n宿舍床号 : ");scanf("%d",&si.bed_num);i+;while(i<MAX);!-n",i);printf("n-%d 个学生的信息输入完毕sum=i;printf("n按任意键返回主菜单 !");getchar();/ bioskey(0);return 0;/* 读取信息 */in

13、t read_message()FILE *fp;int i=0;if(fp=fopen("dom.txt","rt")=NULL)printf("nn* 暂时还没有任何信息,按任意键进入主菜单选择基本信息的录入!*n“);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

14、");PRINT2;PRINT1;for(i=0;i<sum;i+)if(si.st.num!=0)printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);printf("n");/ bioskey(0);return 0; /* 添加学生信息 */

15、insert_message() int i=sum,flag=0;char choice;printf("nn添加一个新同学 n");printf("n");doprintf("n 新学号 : ");scanf("%d",&si.st.num);printf("n 学生姓名 : ");scanf("%s",);printf("n 学生性别 (男生用 M 表示,女生用 F 表示):");getchar();scanf("

16、;%c",&si.st.sex);printf("n 学生年龄 : ");scanf("%d",&si.st.age);printf("n学生年级 : ");printf("n学生班级 : ");scanf("%d",&si.st.nclass);printf("n学生专业 : ");scanf("%s",si.st.zhuanye);printf("n宿舍楼号 : ");scanf("%d&

17、quot;,&si.bui_num);printf("n宿舍楼层号 : ");scanf("%d",&si.floor_num);printf("n宿舍房间号 : ");scanf("%d",&si.room_num);printf("n宿舍床号 : ");scanf("%d",&si.bed_num);sum+;printf("n 要继续吗 ?(Y/N)");getchar();scanf("%c",&

18、amp;choice);if(choice='y' | choice='Y')flag=1;printf("n继续 !n");else flag=0;while(flag=1);printf("n 按任意键返回主菜单 !"); return 0;/* 删除模块 */del_message()int flag,del_num,i,k;char choice;do输入要删除的学生学号 : ")printf("nscanf("%d",&del_num);for(i=0;i<s

19、um;i+)if(del_num=si.st.num)for(k=i;k<sum-1;k+)sk=sk+1;sum-;getchar();if(choice='y' | choice='Y')flag=1;printf("n 继续 !n");else flag=0;while(flag=1);printf("nn 按任意键返回主菜单 !"); getchar();return 0;/* 修改模块 */revise_message()int i=0,choices,revise_num,flag=0;char choi

20、ce;dofor(i=0;i<sum;i+)if(si.st.num=revise_num)printf("n - 学生信息 -n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,si.st.nam e,si.st.sex,si.st.age,si.st.grade,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_n um,si.room_num,si.bed_num);printf("n您要修改哪

21、一项 ?n");printf("n1. 学号 n");printf("n2. 性别 n");printf("n3. 姓名 n");printf("n4. 年龄 n");printf("n5. 年级 n");printf("n6. 班级 n");printf("n7. 专业 n");printf("n8. 楼号 n");printf("n9. 楼层号 n");printf("n10.房间号 n&qu

22、ot;);printf("n请选择 (1-11): ");scanf("%d",&choices);switch(choices)case 1:printf("n输入修改后的学号 ");scanf("%d",&si.st.num);break;case 2:printf("n输入修改后的姓名 ");scanf("%s",);break;case 3:printf("n输入修改后的性别 ");scanf("%s&

23、quot;,si.st.sex);break;case 4:printf("n输入修改后的年龄 ");scanf("%d",&si.st.age);break;case 5:printf("n输入修改后的年级 ");scanf("%d",&si.st.grade);break;case 6:printf("n输入修改后的班级 ");scanf("%d",&si.st.nclass);break;case 7:printf("n输入修改后的专业

24、 ");scanf("%s",&si.st.zhuanye);break;case 8:printf("n输入修改后的楼号 ");scanf("%d",&si.bui_num);break;case 10:printf("n输入修改后的房间号 ");scanf("%d",&si.room_num);break;case 11:printf("n输入修改后的床号 ");scanf("%d",&si.bed_num);

25、break;PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_n um,si.room_num,si.bed_num);break;if(i=sum)该学生不存在 !");printf("n/ bioskey(0);return 0;/* printf("nn 继续修改吗? (Y

26、/N)");getchar();if(choice='y'| choice='Y')flag=1;printf("n 继续 !n");else flag=0; */while(flag=1);getchar();printf("n 按任意键返回主菜单 ! ");return 0;/* 更新模块 */renew_message()int choice;doprintf("nnn* 更新学生信息 *printf("1. 添加学生信息 nn");printf("2. 删除学生信息

27、 nn");printf("3. 修改学生信息 nn");printf("0. 返回主菜单 nn");printf("请选择 (0-3): ");scanf("%d",&choice);switch(choice)*nn");case 1:insert_message();break;case 2:del_message();break;case 3:revise_message();break;case 0:break;while(choice!=0);return 0;inquire

28、_name() /* 按姓名查询 */int i,j=0;char inquire_name10;printf("n 输入要查询的学生姓名 : ");scanf("%s",inquire_name);for(i=0;i<sum;i+)if(strcmp(,inquire_name)=0&&si.st.num!=0)printf("n - 学生信息 - n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn"

29、;,si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);else j+;if(j=sum)printf("n 该学生不存在 !");/* 按学号查询 */输入要查询的学生学号 : ");return 0;int inquire_num()int i,j=0,inquire_num;printf("nscanf("%d",&in

30、quire_num);for(i=0;i<sum;i+)if(inquire_num=si.st.num)printf("n- 学生信息 -n")PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,si.st.nam e,si.st.sex,si.st.age,si.st.grade,si.st.nclass,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si .bed_num);else j+;该学生不存在

31、 !");if(j=sum) printf("n return 0;/* 查询模块 */ inquire_message() int choice;doprintf("nn* 查询学生信息 *nn");printf("1. 按学生姓名查询 n");printf("2. 按学生学号查询 n");printf("0. 回主菜单 n");printf("请选择 (0-2): ");scanf("%d",&choice);switch(choice)cas

32、e 1:inquire_name();break;case 2:inquire_num();break;case 0:break;while(choice!=0);return 0;count_person() /* 学生住宿情况统计 */ int i,j=0,count_grade,count_nclass;char count_zhuanye20;printf("n 输入要统计的学生专业 ,年级 ,班级 : ");scanf("%10s %8d %8d",&count_zhuanye,&count_grade,&count_n

33、class);printf("n 住宿情况 ");printf("n n");printf("n 姓名 学号 楼号 楼层号 房间号 床号 n");for(i=0;i<sum;i+)if(si.st.grade=count_grade&&si.st.nclass=count_nclass&&strcmp(si.st.zhua nye,count_zhuanye)=0)printf("n%10s%8d%8d%8d%8d%8dn",,si.st.num,si.bu

34、i_num,si.floo r_num,si.room_num,si.bed_num);else j+;if(j=sum)printf("n 该学生不存在 !");return 0;/* 统计模块 */count_message()int choice;doprintf("nn* 统计住宿信息 *n");printf("1. 学生住宿情况统计 n");printf("0. 返回主菜单 n");printf("请选择 (0-1): ");scanf("%d",&choi

35、ce);switch(choice)case 1:count_person();break;case 0:break;while(choice!=0);return 0;sort_domitry() /* 学生宿舍情况排序 */int i,j ;printf("n 宿舍排序 n");printf(" n");床号printf("n 排序 姓名 学号 性别 楼号 楼层号 房间号 n");for(i=0;i<sum-1;i+)for(j=i+1;j<sum;j+)if(si.bui_num<sj.bui_num)p=si

36、;si=sj;sj=p;else if(si.bui_num=sj.bui_num) if(si.floor_num<sj.floor_num) p=si;si=sj;sj=p;else if(si.floor_num=sj.floor_num)if(si.room_num<sj.room_num)p=si;si=sj;si=p;else if(si.room_num=sj.room_num)if(si.bed_num<sj.bed_num)p=si;si=sj;sj=p;for(i=0;i<sum;i+)if(si.st.num!=0)printf("n%1

37、2d%8s%8d%8c%8d%8d%8d%6dnn",i+1,,si.st.num,si.st.sex,si.bui_num,si.floor_num,si.room_num,si.bed_num);return 0;/* 排序模块 */ sort_message() int choice;doprintf("n* 宿舍排序 *n");printf("1. 宿舍情况排序 n");printf("0. 返回主菜单 !n");printf("请选择 (0-1): ");scanf("%d",&choice);switch(choice)cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论