资源描述:
《c语言实习报告_机房机位预约模拟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言课程设计院系:工程学院姓名:杨文和学号:班号:指导教师:王老师日期:2007年9月16机房机位预约模拟一.题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1)查询,根据输入的时间,输出机位信息.(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3)退出预定,根据输入的时间,撤消该时间的饿预定.(4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二.需求分析根据题目要求,需要提供机位信息和预约信息,应该用链表来存储,应提供指针的操
2、作:在程序中,需要查询是否有空机位和等待者和处理预约和取消预约问题,应提供查询,显示,预定,删除,修改等操作;另外还要提供键盘式选择菜单实现功能选择.三.总体设计现在分析整个一下整个系统,根据上面的需求分析,可以将这个系统的设计分为如下六大模块:查询我的预约状态,查询空位,预约,取消预约,排队,查询等待信息.机房机位模拟系统我的预约状态查询空位预约取消预约排队查询等带信息16四.详细设计1.宏定义#include#include#include#defineLENGTH6/*总时段数*/#defineMAX2#defineS(r)(r-
3、8)/2/*计算在哪个时段数*/structnode{intlocat;chardata[10];/*学号,假设为联系方式*/structnode*next;};structnode*head;structcell{intCNum;/*连接在该时段头结点的总机器数目*/structnode*first;/*指向整个队列的开头*/structnode*middle;/*指向等待预约队列*/structnode*last;/*指向整个队列的结尾*/}TimeQueue[LENGTH];2..主函数输入n,判断n是否是0-6显示一系列功能信息主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数
4、调用.其中个功能模块用菜单方式选择。NY根据n的值调用各功能模块函数16【程序】main()/***************主函数**************/{inti;for(i=0;i5、ce3.Book4.Cancelbooking5.Waiting6.Searchwaiting");scanf("%d",&i);/*选择功能*/switch(i){case1:Inquir();break;/*查询我的状态模块*/case2:inquir();break;/*查询空位模块*/case3:booking();break;/*预约模块*/case4:cancel();break;/*取消预约模块*/case5:waiting();break;/*排队模块*/case6:inquir_waiting();break;/*查询等待信息模块*/default:printf("err
6、or");}}}3.各功能模块设计(1)查询我的状态模块[数据结构]我的原始数据是预约者预约的信息,将它储存在用指针处理的链表中。【分析】根据输入的时间来判断应该查询的结构体,把其首地址赋给Rem,然后通过指针的移动,比较输入的学号和存储在该结构体中的Rem->data,来判断我的预约状态。16[流程图]输入要查询的时间n,判断n是否8-20YNn=s(n)根据的n值和输入的学号来查找链表中是否有该值和其的位置,从而达到查询出我的状态的目的提示:输入错误,请重新输入【程序】voidInquir(){intn;inti;charInfor[10];structnode*q;structnod
7、e*Rem;printf("Pleaseinputthetimeyouwanttosearch!(24xiaoshizhibetween8and20o’clock,include8o’clock)");scanf("%d",&n);if(n>=8&&n<20){n=S(n);printf("Pleaseinputyourschool-number!");scanf("%s",Infor);