最新c语言学生宿舍管理系统难度系数3级资料.docx
- 文档编号:23748037
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:18
- 大小:19.24KB
最新c语言学生宿舍管理系统难度系数3级资料.docx
《最新c语言学生宿舍管理系统难度系数3级资料.docx》由会员分享,可在线阅读,更多相关《最新c语言学生宿舍管理系统难度系数3级资料.docx(18页珍藏版)》请在冰豆网上搜索。
最新c语言学生宿舍管理系统难度系数3级资料
C语言:
学生宿舍管理系统
(难度系数:
3级)
(附加清屏操作)
设计一个学生宿舍管理程序。
该程序应该具有以下功能:
(1)录入学生宿舍信息;
(2)修改、删除学生宿舍信息;
(3)统计当前未住学生宿舍的个数并显示宿舍编号;
(4)统计当前空闲的男生、女生床位数;
(5)按宿舍编号由小到大显示已住学生的宿舍信息;
(6)分别显示男生、女生有空床位的宿舍信息;
(7)按宿舍编号、可住人数、空床数、宿舍性质(男生还是女生)等信息进行查询,若查询信息不存在,输出没找到的信息。
题目要求:
(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序,即在程序中加入异常处理,检查用户输入数据的有效性,以保证程序的健壮性;
(2)宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;
(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单选项选则所需进行的操作项目,菜单要界面友好、清晰;
(4)将所有宿舍信息存储在一个文件中,并实现文件的读写操作,即将输入的数据以文件的形式存盘,将原来已经存盘的文件读入内存,进行管理;
(5)应保证测试用例测试程序的各种边缘情况。
输入要求:
应用程序运行后,在屏幕上显示一个菜单。
用户可以根据需要,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
输出要求:
(1)应用程序运行后,在屏幕上显示一个菜单。
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
代码:
#include"stdio.h"
#include"stdlib.h"
#include"conio.h"
#include"process.h"
#definemax2//最大容量
//#definek6//每个宿舍最多可住人数
typedefstructnode{
intnum;
intke;
intempty;
intyi;
intsex;//1-女0-男
//structnode*next;
}doc;//宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;
//intq=0;//已入住的房间数-1
docdcm[max];
voida()//1.录入学生宿舍信息
{
intq;
printf("\n\n\t现在执行录入学生宿舍信息\n");
for(q=0;q //printf("请输入要录入的宿舍个数: \n"); //scanf("%d",&j); //while(j<=0) //{ //printf("输入错误! 请重新输入: "); //scanf("%d",&j); //} //else //while(j>0) { printf("请输入该宿舍的宿舍号: \n"); scanf("%d",&dcm[q].num); printf("请输入该宿舍的最大住人数: \n"); scanf("%d",&dcm[q].ke); printf("请输入该宿舍的已住人数: \n"); scanf("%d",&dcm[q].yi); while(dcm[q].yi>dcm[q].ke) { printf("输入错误! 已住人数大于最大入住人数! \n请重新输入: "); scanf("%d",&dcm[q].yi); } dcm[q].empty=dcm[q].ke-dcm[q].yi; printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍): \n"); scanf("%d",&dcm[q].sex); while(dcm[q].sex! =1&&dcm[q].sex! =0) { printf("非法输入宿舍性质! 请重新输入! \n"); scanf("%d",&dcm[q].sex); } //q++; //j--; } } voidxianshi()//显示所有宿舍信息 { for(intj=0;j { printf("宿舍号为: %d可住人数为: %d空床数为%d",dcm[j].num,dcm[j].ke,dcm[j].empty); if(dcm[j].sex==0) printf("宿舍性质: 男宿舍\n"); else printf("宿舍性质: 女宿舍\n"); } } voidxs(intj) { printf("宿舍号为: %d可住人数: %d空床数%d\n",dcm[j].num,dcm[j].ke,dcm[j].empty); if(dcm[j].sex==0) printf("宿舍性质: 男宿舍\n"); else printf("宿舍性质: 女宿舍\n"); } voidb()//2.修改、删除学生宿舍信息 { intj,m,h; dock; while (1) { printf("****************************************\n"); printf("*************1、修改宿舍信息************\n"); printf("*************2、删除宿舍信息************\n"); printf("*************3、退出返回顶层菜单********\n"); printf("****************************************\n"); printf("请输入对应命令: "); scanf("%d",&j); printf("****************************************\n"); printf("以下为目前的宿舍信息: \n"); xianshi(); if(j==1) { //case1: printf("请输入要修改的宿舍的宿舍号: "); scanf("%d",&m); for(inti=0,k=0;i { if(m==dcm[i].num) k=i+1; } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } printf("请输入该宿舍的最大住人数: \n"); scanf("%d",&dcm[k-1].ke); printf("请输入该宿舍的已住人数: \n"); scanf("%d",&dcm[k-1].yi); dcm[m].empty=dcm[k-1].ke-dcm[k-1].yi; printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍): \n"); scanf("%d",&dcm[k-1].sex); while(dcm[k-1].sex! =1&&dcm[k-1].sex! =0) { printf("非法输入宿舍性质! 请重新输入! \n"); scanf("%d",&dcm[k-1].sex); } printf("\t操作成功! 已经修改完毕\n"); break; } //break; //case2: elseif(j==2) { printf("请输入要删除的宿舍号: "); scanf("%d",&h); for(inti=0,k=0;i { if(h==dcm[i].num) k=i+1; } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } for(i=k-1;i { dcm[i]=dcm[i+1]; } dcm[max-1].empty=NULL; dcm[max-1].ke=NULL; dcm[max-1].num=NULL; dcm[max-1].sex=NULL; dcm[max-1].yi=NULL; printf("\t操作成功! 已经删除完毕\n"); } //break; //default: elseif(j==3) break; else { printf("输入错误! 请重新输入。 \n"); continue; } } printf("****************************************\n"); } voidc()//3.统计当前未住学生宿舍的个数并显示宿舍编号 { inti=0; printf("****************************************\n"); printf("未住学生空宿舍宿舍号如下: \n"); for(intj=0;j if(dcm[j].ke==dcm[j].empty) { printf("\t%d",dcm[j].num); i++; if(j%3==0) printf("\n"); } printf("\n"); printf("****************************************\n"); printf("当前未入住的学生宿舍个数共有: %d个\n",i); } voidd()//4.统计当前空闲的男生、女生床位数 { intm=0,n=0; printf("****************************************\n"); printf("统计当前空闲的男生、女生床位数\n"); for(intj=0;j { if(dcm[j].empty! =0) { printf("宿舍号为: %d\t空床数为%d\t",dcm[j].num,dcm[j].empty); if(dcm[j].sex==0) { printf("男生寝室\n"); m+=dcm[j].empty; } else { printf("女生寝室\n"); n+=dcm[j].empty; } } } printf("男生共有空床位%d个\n女生共有空床位%d个\n\t男女生合计共有空床位%d个\n",m,n,m+n); printf("****************************************\n"); } voide()//5.按宿舍编号由小到大显示已住学生的宿舍信息 { printf("****************************************\n"); printf("按宿舍编号由小到大显示已住学生的宿舍信息\n"); inti; dock; for(intj=0;j for(i=j;i { if(dcm[j].num>dcm[i].num) { k=dcm[j]; dcm[j]=dcm[i]; dcm[i]=k; } } xianshi(); printf("****************************************\n"); } voidf()//6.分别显示男生、女生有空床位的宿舍信息 { intm=0,n=0; printf("****************************************\n"); printf("统计当前空闲的男生、女生床位数\n\n"); printf("统计当前空闲的男生床位数: \n"); for(intj=0;j { if(dcm[j].empty! =0) { if(dcm[j].sex==0) { printf("宿舍号为: %d\t空床数为%d\n",dcm[j].num,dcm[j].empty); m+=dcm[j].empty; } } } printf("男生空床数共有%d个\n\n",m); printf("统计当前空闲的女生床位数: \n"); for(j=0;j { if(dcm[j].empty! =0) { if(dcm[j].sex==1) { printf("宿舍号为: %d\t空床数为%d\n",dcm[j].num,dcm[j].empty); n+=dcm[j].empty; } } } printf("女生空床数共有%d个\n",n); printf("****************************************\n"); } voidg()//7.宿舍查询 { intm,i,p,k=0; while (1) { printf("****************************************\n"); printf("查询可按宿舍编号(0)、可住人数 (1)、空床数 (2)、宿舍性质(男生还是女生)(3)等信息进行"); scanf("%d",&p); switch(p) { case0: {printf("****************************************\n"); printf("按宿舍编号查询\t请输入要查询的宿舍号: "); scanf("%d",&m); for(i=0;i { if(m==dcm[i].num) { xs(i); k++; } } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } break;} case1: {printf("****************************************\n"); printf("按可住人数查询\t请输入要查询宿舍的可住人数: "); scanf("%d",&m); for(i=0;i { if(m==dcm[i].ke) { xs(i); k++; } } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } break;} case2: {printf("****************************************\n"); printf("按空床数查询\t请输入要查询宿舍的空床数: "); scanf("%d",&m); for(i=0;i { if(m==dcm[i].empty) { xs(i); k++; } } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } break;} case3: {printf("****************************************\n"); printf("按宿舍性质查询\t请输入要查询宿舍的性质(0-男,1-女,其他视为错误输入): "); scanf("%d",&m); for(i=0;i { if(m==dcm[i].sex) { xs(i); k++; } } if(k==0) { printf("在记录中没有找到这个宿舍! \n"); continue; } break;} default: printf("非法输入查询条件! 请重新输入! \n");continue; } printf("****************************************\n"); break; } } voidcaidan() { printf("\n"); printf("\n"); printf("****************************************\n"); printf("**********学生宿舍管理系统菜单**********\n"); printf("1.录入学生宿舍信息\n"); printf("2.修改、删除学生宿舍信息\n"); printf("3.统计当前未住学生宿舍的个数并显示宿舍编号\n"); printf("4.统计当前空闲的男生、女生床位数\n"); printf("5.按宿舍编号由小到大显示已住学生的宿舍信息\n"); printf("6.分别显示男生、女生有空床位的宿舍信息\n"); printf("7.宿舍查询\n");//按宿舍编号、可住人数、空床数、宿舍性质(男生还是女生)等信息进行 printf("8.存盘\n"); printf("9.退出\n"); printf("0.清屏\n"); printf("****************************************\n"); printf("请输入对应操作的命令: \n"); } voidmain() { inti,j; FILE*fp; if((fp=fopen("document","wt+"))==NULL) { printf("\nerror! \ncan'topenthefile! /n"); exit(0); } while (1) {caidan(); scanf("%d",&i); switch(i) { case1: a();break; case2: b();break; 营销调研课题case3: c();break; 但这些困难并非能够否定我们创业项目的可行性。 盖茨是由一个普通退学学生变成了世界首富,李嘉诚是由一个穷人变成了华人富豪第一人,他们的成功表述一个简单的道理: 如果你有能力,你可以从身无分文变成超级富豪;如果你无能,你也可以从超级富豪变成穷光蛋。 case4: d();break; 1.www。 cer。 net/artide/2004021313098897。 shtml。 case5: e();break; 年轻有活力是我们最大的本钱。 我们这个自己动手做的小店,就应该与时尚打交道,要有独特的新颖性,这正是我们年轻女孩的优势。 case6: f();break; 附件 (二): 调查问卷设计case7: g();break; 秘诀: 好市口+个性经营case8: 1、现代文化对大学生饰品消费的影响for(j=0;j { 据调查统计在对大学生进行店铺经营风格所考虑的因素问题调查中,发现有50%人选择了价格便宜些,有28%人选择服务热情些,有30%人选择店面装潢有个性,只有14%人选择新颖多样。 如图(1-5)所示fprintf(fp,"宿舍号: %d可住人数为: %d已住人数%d空床数为%d",dcm[j].num,dcm[j].ke,dcm[j].yi,dcm[j].empty); if(dcm[j].sex==0) fprintf(fp,"宿舍性质: 男宿舍\n"); 据上述部分的分析可见,我校学生就达4000多人。 附近还有两所学校,和一些居民楼。 随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。 他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。 但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。 这给我们小组的创业项目提供了一个很好的市场机会。 else fprintf(fp,"宿舍性质: 女宿舍\n"); }break; case9: fclose(fp);exit(0);break; 2、Google网站www。 people。 com。 cncase0: system("cls");break; default: printf("输入错误! 请重新输入! \n\n");break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 学生宿舍 管理 系统 难度 系数 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)