宿舍管理系统报告_第1页
宿舍管理系统报告_第2页
宿舍管理系统报告_第3页
宿舍管理系统报告_第4页
宿舍管理系统报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

-.z.目录一、实验目的3二、实验内容3三、实验环境3四、需求分析3五、概要设计41、方案设计42、数据构造说明43、模块功能说明5六、详细设计及运行结果61、登陆界面62、主界面63、录入模块74、录入界面85、打印学生信息界面86、更新学生信息界面97、查询宿舍信息界面98、统计宿舍信息界面109、学生宿舍排序10七、源程序11八、心得体会29学生宿舍管理系统一、实验目的熟练掌握线性表的根本操作在顺序存储和链式存储上的实现。、;以线性表的各种操作〔建立、插入、删除、遍历等〕的实现为重点;掌握线性表的动态分配顺序存储构造的定义和根本操作的实现;通过实验帮助学生加深对C语言的使用〔特别是函数的参数调用、指针类型的应用和链表的建立等各种根本操作〕。二、实验内容我组设计的是"学生宿舍管理系统〞,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的**、**、性别、专业、班级等等。在编写过程中主要运用C语言的根本知识有:数据类型〔整形、实型、字符型、指针、数组、构造等〕;运算类型〔算术运算、逻辑运算、自增自减运算、赋值运算等〕;程序构造〔顺序构造、判断选择构造、循环构造〕;大程序的功能分解方法〔即函数的调用与使用〕等。三、实验环境台式计算机每人一台;软件:VisualC++6.0;四、需求分析该程序是由C语言编写的一个宿舍管理查询软件,本程序在MicrosoftVisualC++6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以**、**、宿舍号为关键字查询学生信息。统计可以分别以**、宿舍号、性别、班级、专业为关键字进展统计,并且输出信息按**大小从小到大输出。五、概要设计1、方案设计主函数主函数密码模块录入模块添加模块修改模块删除模块查询模块统计模块退出系统学号**宿舍性别年龄专业返回班级按**按**按宿舍返回按性别按**按宿舍返回按班级按专业2、数据构造说明程序中数据主要是学生信息和宿舍信息,具体属于类型如下:structstu{charname[20];intnum;charse*;intage;intgrade;intnclass;charzhuanye[30];};structdom{intbui_num;intfloor_num;introom_num;intbed_num;structstust;}s[MA*],p;3、模块功能说明第一密码模块:调用cipher(),进展管理者的注册与登录操作。第二录入模块:调用input_message(),对住宿学生信息进展录入。第三添加模块:调用append_message(),对新来学生信息进展添加录入。第四修改模块:调用revise_message(),对需修改学生的信息进展修改。第五删除模块:调用delete_message(),对*一学生信息进展删除操作。第六查询模块:调用find_message(),分别以**、**、宿舍号对学生信息进展查询。第七统计模块:调用census_message(),分别以**、宿舍号、性别、班级、专业方式对学生信息进展统计,并按**由小到大输出。六、详细设计及运行结果1、登陆界面2、主界面3、录入模块输入**输入**输入**输入性别输入年龄输入年级输入班级输入专业是否继续录入结束NY宿舍楼号宿舍楼层号宿舍房间号宿舍床号4、录入界面5、打印学生信息界面6、更新学生信息界面7、查询宿舍信息界面8、统计宿舍信息界面9、学生宿舍排序七、源程序#include<stdio.h>#include"string.h"#defineMA*10#definePRINT1printf("\n")#definePRINT2printf("**--学生**--性别--年龄--年级--班级--专业--楼号--楼层号--房间号--床号\n\n")intsum;structstu{charname[20];intnum;charse*;intage;intgrade;intnclass;charzhuanye[30];};structdom{intbui_num;intfloor_num;introom_num;intbed_num;structstust;}s[MA*],p;/*保存信息*/save_message(){FILE*fp;inti;if((fp=fopen("dom.t*t","wt"))==NULL){printf("读文件错误!\n");return0;}for(i=0;i<sum;i++)if(fwrite(&s[i],sizeof(structdom),1,fp)!=1)printf("写文件错误!\n");fclose(fp);}/*输入模块*/input_message(){inti=0;//clrscr();printf("\n\n录入学生信息(最多%d个)\n",MA*);printf("\n");do{printf("\n第%d个学生\n\n",i+1);printf("\n**:");scanf("%d",&s[i].st.num);if(s[i].st.num==0)break;printf("\n学生**:");scanf("%s",s[i].);printf("\n学生性别(男生用M表示,女生用F表示):");getchar();scanf("%c",&s[i].st.se*);printf("\n学生年龄:");scanf("%d",&s[i].st.age);printf("\n学生年级:");scanf("%d",&s[i].st.grade);printf("\n学生班级:");scanf("%d",&s[i].st.nclass);printf("\n学生专业:");scanf("%s",&s[i].st.zhuanye);printf("\n宿舍楼号:");scanf("%d",&s[i].bui_num);printf("\n宿舍楼层号:");scanf("%d",&s[i].floor_num);printf("\n宿舍房间号:");scanf("%d",&s[i].room_num);printf("\n宿舍床号:");scanf("%d",&s[i].bed_num);i++;}while(i<MA*);printf("\n--%d个学生的信息输入完毕!--\n",i);sum=i;printf("\n按任意键返回主菜单!");getchar();//bioskey(0);return0;}/*读取信息*/intread_message(){FILE*fp;inti=0;if((fp=fopen("dom.t*t","rt"))==NULL){printf("\n\n*****暂时还没有任何信息,按任意键进入主菜单项选择择根本信息的录入!*****\n");return0;}while(!feof(fp)){fread(&s[i],sizeof(structdom),1,fp);i++;}fclose(fp);return(i);}/*输出模块*/output_message(){inti=0;//clrscr();printf("\n\n--学生信息表--\n\n");PRINT2;PRINT1;for(i=0;i<sum;i++)if(s[i].st.num!=0){printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].,s[i].st.se*,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);printf("\n");//bioskey(0);}return0;///}/*添加学生信息*/insert_message(){inti=sum,flag=0;charchoice;printf("\n\n添加一个新同学\n");printf("\n");do{printf("\n新**:");scanf("%d",&s[i].st.num);printf("\n学生**:");scanf("%s",s[i].);printf("\n学生性别(男生用M表示,女生用F表示):");getchar();scanf("%c",&s[i].st.se*);printf("\n学生年龄:");scanf("%d",&s[i].st.age);printf("\n学生年级:");scanf("%d",&s[i].st.grade);printf("\n学生班级:");scanf("%d",&s[i].st.nclass);printf("\n学生专业:");scanf("%s",s[i].st.zhuanye);printf("\n宿舍楼号:");scanf("%d",&s[i].bui_num);printf("\n宿舍楼层号:");scanf("%d",&s[i].floor_num);printf("\n宿舍房间号:");scanf("%d",&s[i].room_num);printf("\n宿舍床号:");scanf("%d",&s[i].bed_num);sum++;printf("\n要继续吗"(Y/N)");getchar();scanf("%c",&choice);if(choice=='y'||choice=='Y'){flag=1;i++;printf("\n继续!\n");}elseflag=0;}while(flag==1);printf("\n按任意键返回主菜单!");return0;}/*删除模块*/del_message(){intflag,del_num,i,k;charchoice;do{printf("\n输入要删除的学生**:");scanf("%d",&del_num);for(i=0;i<sum;i++)if(del_num==s[i].st.num)for(k=i;k<sum-1;k++)s[k]=s[k+1];sum--;printf("\n\n继续吗"(Y/N)");getchar();scanf("%c",&choice);if(choice=='y'||choice=='Y'){flag=1;printf("\n继续!\n");}elseflag=0;}while(flag==1);printf("\n\n按任意键返回主菜单!");getchar();return0;}/*修改模块*/revise_message(){inti=0,choices,revise_num,flag=0;charchoice;do{printf("\n输入要修改的学生号:");scanf("%d",&revise_num);for(i=0;i<sum;i++)if(s[i].st.num==revise_num){printf("\n--学生信息--\n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].,s[i].st.se*,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);printf("\n您要修改哪一项"\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");printf("\n11.床号\n");printf("\n请选择(1-11):");scanf("%d",&choices);switch(choices){case1:printf("\n输入修改后的**");scanf("%d",&s[i].st.num);break;case2:printf("\n输入修改后的**");scanf("%s",s[i].);break;case3:printf("\n输入修改后的性别");scanf("%s",s[i].st.se*);break;case4:printf("\n输入修改后的年龄");scanf("%d",&s[i].st.age);break;case5:printf("\n输入修改后的年级");scanf("%d",&s[i].st.grade);break;case6:printf("\n输入修改后的班级");scanf("%d",&s[i].st.nclass);break;case7:printf("\n输入修改后的专业");scanf("%s",&s[i].st.zhuanye);break;case8:printf("\n输入修改后的楼号");scanf("%d",&s[i].bui_num);break;case9:printf("\n输入修改后的楼层号");scanf("%d",&s[i].floor_num);break;case10:printf("\n输入修改后的房间号");scanf("%d",&s[i].room_num);break;case11:printf("\n输入修改后的床号");scanf("%d",&s[i].bed_num);break;}PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].,s[i].st.se*,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);break;}if(i==sum)printf("\n该学生不存在!");//bioskey(0);return0;/*printf("\n\n继续修改吗?(Y/N)");getchar();scanf("%c",&choice);if(choice=='y'||choice=='Y'){flag=1;printf("\n继续!\n");}elseflag=0;*/}while(flag==1);getchar();printf("\n按任意键返回主菜单!");return0;}/*更新模块*/renew_message(){intchoice;do{printf("\n\n\n*****更新学生信息*****\n\n");printf("1.添加学生信息\n\n");printf("2.删除学生信息\n\n");printf("3.修改学生信息\n\n");printf("0.返回主菜单\n\n");printf("请选择(0-3):");scanf("%d",&choice);switch(choice){case1:insert_message();break;case2:del_message();break;case3:revise_message();break;case0:break;}}while(choice!=0);return0;}inquire_name()/*按**查询*/{inti,j=0;charinquire_name[10];printf("\n输入要查询的学生**:");scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(s[i].,inquire_name)==0&&s[i].st.num!=0){printf("\n--学生信息--\n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].,s[i].st.se*,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);}elsej++;if(j==sum)printf("\n该学生不存在!");return0;}intinquire_num()/*按**查询*/{inti,j=0,inquire_num;printf("\n输入要查询的学生**:");scanf("%d",&inquire_num);for(i=0;i<sum;i++)if(inquire_num==s[i].st.num){printf("\n--学生信息--\n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].,s[i].st.se*,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);}elsej++;if(j==sum)printf("\n该学生不存在!");return0;}/*查询模块*/inquire_message(){intchoice;do{printf("\n\n*****查询学生信息*****\n\n");printf("1.按学生**查询\n");printf("2.按学生**查询\n");printf("0.回主菜单\n");printf("请选择(0-2):");scanf("%d",&choice);switch(choice){case1:inquire_name();break;case2:inquire_num();break;case0:break;}}while(choice!=0);return0;}count_person()/*学生住宿情况统计*/{inti,j=0,count_grade,count_nclass;charcount_zhuanye[20];printf("\n输入要统计的学生专业,年级,班级:");scanf("%10s%8d%8d",&count_zhuanye,&count_grade,&count_nclass);printf("\n住宿情况");printf("\n\n");printf("\n**楼号楼层号房间号床号\n");for(i=0;i<sum;i++)if(s[i].st.grade==count_grade&&s[i].st.nclass==count_nclass&&strcmp(s[i].st.zhuanye,count_zhuanye)==0)printf("\n%10s%8d%8d%8d%8d%8d\n",s[i].,s[i].st.num,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);elsej++;if(j==sum)printf("\n该学生不存在!");return0;}/*统计模块*/count_message(){intchoice;do{printf("\n\n*****统计住宿信息*****\n");printf("1.学生住宿情况统计\n");printf("0.返回主菜单\n");printf("请选择(0-1):");scanf("%d",&choice);switch(choice){case1:count_person();break;case0:break;}}while(choice!=0);return0;}sort_domitry()/*学生宿舍情况排序*/{inti,j;printf("\n宿舍排序\n");printf("\n");printf("\n排序**性别楼号楼层号房间号床号\n");for(i=0;i<sum-1;i++){for(j=i+1;j<sum;j++)if(s[i].bui_num<s[j].bui_num){p=s[i];s[i]=s[j];s[j]=p;}elseif(s[i].bui_num==s[j].bui_num)if(s[i].floor_num<s[j].floor_num){p=s[i];s[i]=s[j];s[j]=p;}elseif(s[i].floor_num==s[j].floor_num)if(s[i].room_num<s[j].room_num){p=s[i];s[i]=s[j];s[i]=p;}elseif(s[i].room_num==s[j].room_num)if(s[i].bed_num<s[j].bed_num){p=s[i];s[i]=s[j];s[j]=p;}}for(i=0;i<sum;i++)if(s[i].st.num!=0)printf("\n%12d%8s%8d%8c%8d%8d%8d%6d\n\n",i+1,s[i].,s[i].st.num,s[i].st.se*,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);return0;}/*排序模块*/sort_message(){in

温馨提示

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

评论

0/150

提交评论