版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计课程设计说明书设计题目: 学生宿舍管理系统 目 录一、总体设计 3 1程序的总体设计 32. 函数原型声明 3二、用户说明 4 1、菜单界面 52、入住登记界面 53、删除界面 54、浏览界面 65、查询修改 66、排序界面 67、退出 6三、小结 7四、参考文献 7 五、源程序代码 7 一、总体设计1程序的总体设计 确定界面,使用户可选择操作项目(录入,删除,浏览,修改,查询,排序)。 录入:使用结构体,要求用户输入 楼栋、房号、面积、可住人数、已住人数 删除:按房号删除以上信息 查询:按房号查询以上信息修改:按房号修改以上信息排序:按已住人数排序信息2. 函数原型声明str
2、uct room *add(struct room *head);/添加函数struct room *del(struct room *h);/删除函数void show(struct room *h);/信息浏览函数void serh(struct room *h);/查询与修改函数struct room *sort(struct room *head);/排序函数void can();/结束函数 开 始入住删除浏览break结束查询修改二、用户使用说明运行程序后即可按提示模仿以上操作进行。 1、菜单界面 2、入住登记界面 3、删除界面 4、浏览界面 5、查询修改 6、排序界面 7、退出 三
3、、小结通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法。通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性。通过对程序的注释和画流程图,形成了一套自己编程的风格,和清晰地思路,使思维更加条理化,清晰化。四、参考文献1谭浩强.C程序设计(第二版).北京:清华大学出版社,19992邓文新.张宏烈.哈尔滨工业大学出版社3百度.五、附件源程序代码#include#include#include#include struct roomint Lnum;int Fnum;i
4、nt squa;int maxnum; int innum;struct room *next;struct room *add(struct room *head);/添加函数struct room *del(struct room *h);/删除函数void show(struct room *h);/信息浏览函数void serh(struct room *h);/查询与修改函数struct room *sort(struct room *head);/排序函数/修改点void can();/结束函数void main()struct room *head;int x,y;head=(s
5、truct room *)malloc(sizeof(struct room);head-next=NULL;printf(欢迎使用学生宿舍管理系统!n);printf(按回车键进入菜单界面n);getchar();while(1)A: printf(-n);printf(|-|n);printf(| 1.入住登记 |n);printf(| 2.删除信息 |n); printf(| 3.信息浏览 |n);printf(| 4.查询修改 |n); printf(| 5.按入住人数排序 |n);printf(| 6.退出系统 |n); printf(|-|n);printf(-n);printf(
6、请选择服务项目!n);flushall();scanf(%d,&x);/菜单选择if(head-next=NULL&x!=1&x!=6)printf(系统中无入住信息,请先进行入房登记!n);goto A;switch(x)case 1:head=add(head);system(cls);printf(登记完毕!n);continue;case 2:head=del(head);T:scanf(%d,&y);while(y!=1&y!=0)printf(输入错误!请重新输入!n);goto T;if(y=1)system(cls); continue;elsecan();goto N;cas
7、e 3:show(head);printf(是否返回菜单界面进行其他操作?(1/0)n);J: scanf(%d,&y);while(y!=1&y!=0)printf(输入错误!请重新输入!n);goto J;if(y=1)system(cls);continue;elsecan();goto N;case 4:serh(head);system(cls);continue;case 5:head=sort(head);/修改点printf(是否返回菜单界面进行其他操作?(1/0)n); scanf(%d,&y); while(y!=1&y!=0)printf(输入错误!请重新输入!n);go
8、to J;if(y=1)system(cls);continue;elsecan();goto N; continue; case 6:can();goto Q;default:printf(输入错误!请重新输入!n);N: if(y=0)break;Q: if(x=6)break;struct room *add(struct room *head)/入住登记 struct room *h,*p;int i=0,n;h=head;printf(请输入要登记的入房数:n);scanf(%d,&n);printf(请输入入住信息:n楼号 房号 面积 最大入住人数 已入住人数n);printf(数
9、据须按规定顺序输入,不同数据用空格分开。n);for(i=0;iLnum,&p-Fnum,&p-squa,&p-maxnum,&p-innum);p-next=h-next;h-next=p;return h;struct room *del(struct room *h)/退房登记int x;struct room *p,*q;p=h-next;q=h;printf(请输入退房房号:n);scanf(%d,&x); if(p=NULL)printf(不存在此入房登记!n是否返回菜单界面进行其他操作?(1/0));elsewhile(p)if(p-Fnum=x)q-next=p-next;fr
10、ee(p);printf(删除成功!是否返回菜单界面进行其他操作?(1/0)n);goto K;elseq=p;p=p-next;if(p=NULL)printf(不存在此入房登记!n是否返回菜单界面进行其他操作?(1/0)n);K: return h;return h; void show(struct room *h)struct room *p;p=h-next;if(p=NULL)printf(无信息可显示!n);elseprintf(n楼号 房号 面积 所容纳人数 已入住人数nn);while(p)printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum
11、,p-squa,p-maxnum,p-innum);p=p-next;void serh(struct room *h)/入住信息查询与修改struct room *p;int x,y,z;p=h-next;H: printf(请输入要查找的房号:n);scanf(%d,&z); while(p-Fnum!=z)p=p-next;if(p=NULL)break;if(p=NULL)printf(您所查询的房间号无人入住!是否继续查找?(1/0)n);Z: scanf(%d,&x);while(x!=1&x!=0)printf(输入错误!请重新输入!n);goto Z;if(x=1)goto H
12、;elseprintf(查询结果如下:n);printf(n楼号 房号 面积 所容纳人数 已入住人数nn);printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum,p-squa,p-maxnum,p-innum);printf(如需修改请选择1,按其他任意键返回菜单界面n);scanf(%d,&y);if(y=1)printf(请对入住信息进行修改(按顺序输入)n); scanf(%d%d%d%d%d,&p-Lnum,&p-Fnum,&p-squa,&p-maxnum,&p-innum);printf(修改成功!修改结果如下:n);printf(n楼号 房号 面
13、积 所容纳人数 已入住人数nn);printf(%-7d%-7d%-8d%-13d%-8dn,p-Lnum,p-Fnum,p-squa,p-maxnum,p-innum);struct room *sort(struct room *h)/修改点struct room *p1,*p2,*t,*temp,*q; /*定义临时指针*/ temp=h-next; /*将原表的头指针所指的下一个结点作头指针*/ h-next=NULL; /*第一个结点为新表的头结点*/ while(temp!=NULL) /*当原表不为空时,进行排序*/ t=temp; /*取原表的头结点*/ temp=temp-n
14、ext; /*原表头结点指针后移*/ p1=h; /*设定移动指针p1,从头指针开始*/ p2=h; /*设定移动指针p2做为p1的前驱,初值为头指针*/ while(t-innuminnum&p1!=NULL) /*作成绩平均分比较*/ p2=p1; /*待排序点值小,则新表指针后移*/ p1=p1-next; if(p1=p2) /*p1=p2,说明待排序点值大,应排在首位*/ t-next=p1; /*待排序点的后继为p*/ h=t; /*新头结点为待排序点*/ else /*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/ t-next=p1; /*t的后继是p1*/ p2-next=t; /*p2的后继
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年甘肃省临夏市高二生物下册期末考试模拟卷含完整答案【夺冠】
- 2026年吉林省图们市高二生物下册期末考试测试卷及完整答案【各地真题】
- 2026年山东省莱西市高二生物下册期末考试模拟卷及参考答案【预热题】
- 2025年辽宁省瓦房店市高二生物下册期末考试检测卷AB卷附答案
- 2026年幼儿园家长学校教案和比赛
- 2026年河南省辉县市高二生物下册期末考试模拟卷及完整答案(名师系列)
- 2026年幼儿园七巧板课件房子
- 2025年吉林省临江市高二生物下册期末考试考试卷及参考答案【培优A卷】
- 2025年辽宁省大石桥市高二生物下册期末考试考试卷附参考答案【A卷】
- 2025年广东省信宜市高二生物下册期末考试模拟卷标准卷附答案
- 生态农业科普教育基地农业科普教育项目科普资源开发可行性研究报告
- AI在审计中的应用【课件文档】
- 2026年带式输送机操作工技能认定理论考试题库(答案解析)
- DB41∕T 2923-2025 多要素城市地质调查数据库建设规范
- 2025年AS9100D-2016航天航空行业质量管理体系全套质量手册及程序文件
- 企业应急预案小组
- 理论宣讲方法培训
- 口腔医院服务制度
- 公差分析搭配培训课件
- 企业财务审核审批权限等级模板表
- 2025年湖北省工程专业技术职务水平能力测试(化工)历年参考题库含答案详解(5卷)
评论
0/150
提交评论