资源描述:
《宿舍管理查询课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.宿舍管理查询软件1)任务:为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:A.采用交互工作方式B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)2)查询菜单:(用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询3)打印任一查询结果(可以连续操作)#include#defineNULL0#defineTYPEstructstudent#defineLENsizeof(structstudent)typedefstructstudent{floatnum;introom_num;char
2、name;structstudent*next;};structroom{introom_number;intcount;}room[4]={{101,0},{102,0},{201,0},{201,0}};/*创建一个含n个节点的链表*/TYPE*creatlink(intn){inti;TYPE*head,*pf,*pb;head=(TYPE*)malloc(sizeof(TYPE));head->next=NULL;pf=head;pb=head;for(i=0;inext=NU
3、LL;printf("请输入学生的相关信息:");printf("学号:");scanf("%d,",&pf->num);printf("姓名:");scanf("%s,",&pf->name);printf("房间号:");scanf("%s,",&pf->room_num);pf->room_num=(room[i/8].room_number);room[i/8].count++;pb->next=pf;pb=pf;}return(head);}TYPE*creatlink(intn);TYPE*deletelink(TYPE*head,intnum);TYP
4、E*insertlink(TYPE*head,TYPE*pi);voidprintlink(TYPE*head);voiddestroylink(TYPE*head);voidmain(void){TYPE*head=NULL,*pnum=NULL;intn=1,num;intx;intcord;printf("主菜单");printf("1学生入住");printf("2学生退房");printf("3学生插房");printf("4查询学生信息");printf("0结束程序运行");printf("-------------------
5、----------------------");printf("请输入您的选择(1,2,3,4,0)");scanf("%d",&cord);/*创建一个含n个节点的链表*/switch(cord){case1:{printf("请输入要入住的房间:");scanf("%d",&x);head=creatlink(n);returnmain();}break;/*删除链表中值为num的节点*/case2:{printf("请输入要办理退房手续学生的学号:");scanf("%f",&num);head=deletelink(head,num);printlink(
6、head);returnmain();}break;/*在链表中插入一个节点*/case3:{printf("迟到学生插房");pnum=(TYPE*)malloc(LEN);if(pnum==NULL)printf("没有学生入住");printf("请输入要插房学生的学号:");scanf("%f",&pnum->num);printf("请输入要插房学生的姓名:");scanf("%s",&pnum->name);head=insertlink(head,pnum);returnmain();}break;case4:{printlink(head);;}br
7、eak;case0:{exit(0);}break;}}/*删除链表中值为num的节点*/TYPE*deletelink(TYPE*head,intnum){TYPE*pf,*pb;if(head==NULL){printf("没有学生入住!");returnNULL;}pb=head;while(pb->num!=num&&pb->next!=NULL){pf=pb;pb=pb->next;}if(pb->num==num){if(pb==head)head=pb->next;elsepf->next=pb->next;free