c语言实习报告-机房机位预约模拟

上传人:shaoy****1971 文档编号:108896248 上传时间:2019-10-25 格式:DOC 页数:17 大小:273.50KB
返回 下载 相关 举报
c语言实习报告-机房机位预约模拟_第1页
第1页 / 共17页
c语言实习报告-机房机位预约模拟_第2页
第2页 / 共17页
c语言实习报告-机房机位预约模拟_第3页
第3页 / 共17页
c语言实习报告-机房机位预约模拟_第4页
第4页 / 共17页
c语言实习报告-机房机位预约模拟_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《c语言实习报告-机房机位预约模拟》由会员分享,可在线阅读,更多相关《c语言实习报告-机房机位预约模拟(17页珍藏版)》请在金锄头文库上搜索。

1、C语言课程设计院系:工程学院姓名:杨文和学号:20051003679班号:05205222指导教师:王老师日期:2007年9月 机房机位预约模拟 一.题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1) 查询,根据输入的时间,输出机位信息.(2) 机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3) 退出预定,根据输入的时间,撤消该时间的饿预定.(4) 查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二.需求分析根据题目要求,需要提供机位信

2、息和预约信息,应该用链表来存储,应提供指针的操作:在程序中,需要查询是否有空机位和等待者和处理预约和取消预约问题,应提供查询,显示,预定,删除,修改等操作;另外还要提供键盘式选择菜单实现功能选择.三.总体设计现在分析整个一下整个系统,根据上面的需求分析,可以将这个系统的设计分为如下六大模块:查询我的预约状态,查询空位,预约,取消预约,排队,查询等待信息.机房机位模拟系统我的预约状态查询空位预约取消预约排队查询等带信息四.详细设计1宏定义#include#include#include#define LENGTH 6/*总时段数*/#define MAX 2 #define S(r) (r-8)

3、/2/*计算在哪个时段数*/ struct node int locat; char data10;/*学号,假设为联系方式*/ struct node *next;struct node *head;struct cell int CNum;/*连接在该时段头结点的总机器数目*/ struct node *first;/*指向整个队列的开头*/ struct node *middle;/*指向等待预约队列*/ struct node *last;/*指向整个队列的结尾*/TimeQueueLENGTH;2.主函数输入n,判断n是否是0-6显示一系列功能信息主函数一般设计的比较简洁,只提供输入

4、,处理和输出部分的函数调用.其中个功能模块用菜单方式选择。NY根据n的值调用各功能模块函数【程序】 main() /*主函数*/ int i; for(i=0;idata,来判断我的预约状态。 流程图输入要查询的时间n,判断n是否820YNn=s(n)根据的n值和输入的学号来查找链表中是否有该值和其的位置,从而达到查询出我的状态的目的提示:输入错误,请重新输入【程序】void Inquir() int n; int i; char Infor10; struct node *q; struct node *Rem; printf(Please input the time you want t

5、o search!(24 xiao shi zhi between8 and 20 oclock,include 8oclock)n); scanf(%d,&n); if(n=8&nnext,i+) if(strcmp(Rem-data,Infor)=0)break; if(Rem-locat!=0) printf(The computer number you have during this period period is %dn,Rem-locat); else printf(Sorry,you are still in the waiting queue!);else printf(

6、Error.Please input again.n)(2)查询空机位模块分析根据输入的时间确定n值,然后根据结构体中TimeQueue中的TimeQueuen-Cnum的值,求出最大值与该值的差即为空机位数。流程图输入要查询的时间n判断n是否820Yns(n)N根据n的值判断TimeQueuen-Cnum的值是否小于最大值MAXYN空机位数=MAXTimeQueuen-CNum输出:没有空机位提示:输入错误,请重新输入【程序】 void inquir() int n; printf(Please input the time you want to search.(24 hours 824

7、oclock,include 8 clock)n); scanf(%d,&n); if(n=8&n20) n=S(n); if(TimeQueuen.CNumCnum的值是否小于最大值MAX提示:已经没有空机位输入预约者的学号TimeQueuen.first是否为空YN把预约者的信息插入到链表的表尾把预约者信息储存在链表的第一个结点【程序】void booking()/*/ int n; char Infor10; struct node *Rem; struct node *p; printf(Please input the time you want to book!n); scanf(%d,&n); if(n=8&n20) n=S(n); if(TimeQueuen.CNumlocat=1; strcpy(Rem-data,Infor); Rem-next=NULL; TimeQueuen.first=Rem; TimeQueuen.last=Rem; TimeQueuen.CNum+; printf(Succeed to book!n); else Rem=(struct node *)malloc(sizeof(struct node); strcpy(Rem-data,Infor); Rem-next=NULL; p=Tim

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号