还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《高级语言程序设计》课程设计说明书设计题目学生宿舍管理系统目录
一、总体设计……………………………………………………………………31.程序的总体设计…………………………………………………………
32.函数原型声明……………………………………………………………3
二、用户说明……………………………………………………………………
41、菜单界面………………………………………………………………
52、入住登记界面……………………………………………………………
53、删除界面…………………………………………………………………
54、浏览界面…………………………………………………………………
65、查询修改…………………………………………………………………
66、排序界面…………………………………………………………………
67、退出………………………………………………………………………6
三、小结…………………………………………………………………………7
四、____……………………………………………………………………7
五、源程序代码…………………………………………………………………7
一、总体设计1.程序的总体设计◎确定界面,使用户可选择操作项目(录入,删除,浏览,修改,查询,排序)◎录入使用结构体,要求用户输入楼栋、房号、__、可住人数、已住人数◎删除按房号删除以上信息◎查询按房号查询以上信息◎修改按房号修改以上信息◎排序按已住人数排序信息
2.函数原型声明structroom*addstructroom*head;//添加函数structroom*delstructroom*h;//删除函数voidshowstructroom*h;//信息浏览函数voidserhstructroom*h;//查询与修改函数structroom*sortstructroom*head;//排序函数voidcan;//结束函数
二、用户使用说明运行程序后即可按提示模仿以上操作进行
1、菜单界面
2、入住登记界面
3、删除界面
4、浏览界面
5、查询修改
6、排序界面
7、退出
三、小结通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性通过对程序的注释和画流程图,形成了一套自己编程的风格,和清晰地思路,使思维更加条理化,清晰化
四、____
[1]谭浩强.C程序设计第二版.北京:清华大学出版社1999
[2]邓文新.张宏烈.哈尔滨工业大学出版社
[3]百度.
五、附件源程序代码#includestdio.h#include__lloc.h#includestring.h#includestdlib.hstructroom{intLnum;intFnum;intsqua;int__xnum;intinnum;structroom*next;};structroom*addstructroom*head;//添加函数structroom*delstructroom*h;//删除函数voidshowstructroom*h;//信息浏览函数voidserhstructroom*h;//查询与修改函数structroom*sortstructroom*head;//排序函数//修改点voidcan;//结束函数void__in{structroom*head;intxy;head=structroom*__llocsizeofstructroom;head-next=NULL;printf欢迎使用学生宿舍管理系统!\n;printf按回车键进入菜单界面\n;getchar;while1{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请选择服务项目!\n;flushall;scanf%dx;//菜单选择ifhead-next==NULLx!=1x!=6{printf系统中无入住信息,请先进行入房登记!\n;gotoA;}switchx{case1:head=addhead;systemcls;printf登记完毕!\n;continue;case2:head=delhead;T:scanf%dy;whiley!=1y!=0{printf输入错误!请重新输入!\n;gotoT;}ify==1{systemcls;continue;}elsecan;gotoN;case3:showhead;printf是否返回菜单界面进行其他操作?(1/0)\n;J:scanf%dy;whiley!=1y!=0{printf输入错误!请重新输入!\n;gotoJ;}ify==1{systemcls;continue;}else{can;gotoN;}case4:serhhead;systemcls;continue;case5:head=sorthead;//修改点printf是否返回菜单界面进行其他操作?(1/0)\n;scanf%dy;whiley!=1y!=0{printf输入错误!请重新输入!\n;gotoJ;}ify==1{systemcls;continue;}else{can;gotoN;}continue;case6:can;gotoQ;default:printf输入错误!请重新输入!\n;}N:ify==0break;Q:ifx==6break;}}structroom*addstructroom*head//入住登记{structroom*h*p;inti=0n;h=head;printf请输入要登记的入房数\n;scanf%dn;printf请输入入住信息\n楼号房号__最大入住人数已入住人数\n;printf数据须按规定顺序输入,不同数据用空格分开\n;fori=0;in;i++{p=structroom*__llocsizeofstructroom;flushall;scanf%d%d%d%d%dp-Lnump-Fnump-squap-__xnump-innum;p-next=h-next;h-next=p;}returnh;}structroom*delstructroom*h//退房登记{intx;structroom*p*q;p=h-next;q=h;printf请输入退房房号\n;scanf%dx;ifp==NULL{printf不存在此入房登记!\n是否返回菜单界面进行其他操作?(1/0);}else{whilep{ifp-Fnum==x{q-next=p-next;freep;printf删除成功!是否返回菜单界面进行其他操作?(1/0)\n;gotoK;}else{q=p;p=p-next;}}ifp==NULL{printf不存在此入房登记!\n是否返回菜单界面进行其他操作?(1/0)\n;}K:returnh;}returnh;}voidshowstructroom*h{structroom*p;p=h-next;ifp==NULL{printf无信息可显示!\n;}else{printf\n楼号房号__所容纳人数已入住人数\n\n;whilep{printf%-7d%-7d%-8d%-13d%-8d\np-Lnump-Fnump-squap-__xnump-innum;p=p-next;}}}voidserhstructroom*h//入住信息查询与修改{structroom*p;intxyz;p=h-next;H:printf请输入要查找的房号\n;scanf%dz;whilep-Fnum!=z{p=p-next;ifp==NULLbreak;}ifp==NULL{printf您所查询的__号无人入住!是否继续查找?(1/0)\n;Z:scanf%dx;whilex!=1x!=0{printf输入错误!请重新输入!\n;gotoZ;}ifx==1gotoH;}else{printf查询结果如下\n;printf\n楼号房号__所容纳人数已入住人数\n\n;printf%-7d%-7d%-8d%-13d%-8d\np-Lnump-Fnump-squap-__xnump-innum;printf如需修改请选择1,按其他任意键返回菜单界面\n;scanf%dy;ify==1{printf请对入住信息进行修改(按顺序输入)\n;scanf%d%d%d%d%dp-Lnump-Fnump-squap-__xnump-innum;printf修改成功!修改结果如下\n;printf\n楼号房号__所容纳人数已入住人数\n\n;printf%-7d%-7d%-8d%-13d%-8d\np-Lnump-Fnump-squap-__xnump-innum;}}}structroom*sortstructroom*h//修改点{structroom*p1*p2*t*temp*q;/*定义临时指针*/temp=h-next;/*将原表的头指针所指的下一个结点作头指针*/h-next=NULL;/*第一个结点为新表的头结点*/whiletemp!=NULL/*当原表不为空时,进行排序*/{t=temp;/*取原表的头结点*/temp=temp-next;/*原表头结点指针后移*/p1=h;/*设定__指针p1,从头指针开始*/p2=h;/*设定__指针p2做为p1的前驱,初值为头指针*/whilet-innump1-innump1!=NULL/*作成绩平均分比较*/{p2=p1;/*待排序点值小,则新表指针后移*/p1=p1-next;}ifp1==p2/*p1==p2,说明待排序点值大,应排在首位*/{t-next=p1;/*待排序点的后继为p*/h=t;/*新头结点为待排序点*/}else/*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/{t-next=p1;/*t的后继是p1*/p2-next=t;/*p2的后继是t*/}}q=structroom*__llocsizeofstructroom;//修改点q-next=h;//修改点whileh-next!=NULL{printf%-7d%-7d%-8d%-13d%-8d\nh-Lnumh-Fnumh-squah-__xnumh-innum;h=h-next;}h=q;returnh;//修改点}voidcan{printf欢迎再次使用学生宿舍管理系统!再见~\n;}开始入住删除浏览break结束查询修改。