机房机位预约模拟系统—C语言课程设计

更新时间:2023-05-31 05:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

机房机位预约模拟

一.题目要求

20台机器,从早八点到晚八点,每两个小时一个时间段. 需要实现的功能:

(1) 查询,根据输入的时间,输出机位信息.

(2) 机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则

提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.

(3) 退出预定,根据输入的时间,撤消该时间的预定.

(4) 查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.

二.需求分析

根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查询等待信息等功能。还应提供键盘式选择菜单实现功能选择。而等待信息放在文件里,所以在相关的模块应提供文件的输入、输出操作。

三.总体设计

根据上面的需求分析,将这个系统的设计分为下面4个模块:

4.详细设计

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

1.预处理命令及函数声明

#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 20

#define T (time-8)/2 int sum[6]={0};

int computer[6][20]={{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1}, {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0},

{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}};/*该数组表示假设某天某人查询时机房各个时间段机位数情况*/ void Menu(); void Situation(); void Book(); void Cancel();

void SearchWaiting(); void Exit();

void detail(int time);

void printf_one(int i); struct waitlist {

char number[3];

char telephonenumber[12]; } wait[N];

2.主函数

主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如图所示:

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

2./*主函数*/ void main() {

Menu(); /*当前状态函数*/ }

void Menu() /*主界面*/ {

int n,w; do {

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

puts("\t\t****************COMPUTER BOOK SYSTERM*******************\n");

puts("\t\t*************************MENU***************************\n"); puts("\t\t\t 1.Search the current situation"); /*查询某时间段机位状态*/ puts("\t\t\t 2.Book the vacant computer"); /*预定空机位*/ puts("\t\t\t 3.Cancel booking"); /*取消预订*/

puts("\t\t\t 4.Search waiting"); /*查询等待信息*/ puts("\t\t\t 5.Exit"); /*退出*/

puts("\t\t********************************************************\n"); printf("Choose your number(1-5): [ ]\b\b"); scanf("%d",&n); if(n<1||n>5)

{w=1;getchar();} else w=0;

}while(w==1); switch(n) {

case 1:Situation();break; case 2:Book();break; case 3:Cancel();break;

case 4:SearchWaiting();break; case 5:Exit(0);break; } }

3.状态查询函数

流程图

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

/*查询模块*/

/*查询当前状态*/ void Situation()

{

int time;

printf("Input time between (8-20):"); scanf("%d",&time); if(time<8||time>20)

{printf("\tWrong time!\n");

printf("Please input time between (8-20):"); scanf("%d",&time); }

detail(time); /*函数调用*/ getchar(); Menu(); }

4.预定模块函数

流程图

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

程序:

/*预定模块*/ void Book()

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

{int time,i=0,x,y;

FILE *fp; char c;

printf("Input time you want to book between(8-20):"); scanf("%d",&time); if(time<8||time>20) {

printf("\tWrong time!\n");

printf("\tInput time you want to book between(8-20):"); scanf("%d",&time); }

detail(time); /*函数调用*/ if(sum[T]>0)

{ if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\nCannot open file!\n"); exit(0); }

printf("\n\tPlease Input the number you want to book and leave your telephonenumber!:\n");

scanf("%s %s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++)

fwrite(&wait[i],sizeof(struct waitlist),1,fp);

fclose(fp);/*向文本文档添加一个结构体单元*/ printf("\tInput the number you want to book again!\n"); scanf("%d",&x);

sum[T]--; / *预定后该时间段空机位数减1*/ computer[T][x]=1; / *预定后该机状态变为1*/ printf("\tBook succeed!\n"); getchar(); Menu(); } else {

printf("There is no vacant computer at that time!\n"); for(i=T+1;i<6;i++) { time=9+2*i; detail(time); /*函数调用*/ if(sum[T]>0) printf("\tThe latest free time is %d,%d\n",2*i+8,2*i+10);break; }

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

printf("\tDo you want to wait?:y/n?"); scanf("%s",&c); getchar(); if(c=='Y'||c=='y') { if((fp=fopen("waitlist.txt","r"))==NULL) {

printf("\nCannot open file!\n"); exit(0); } else { printf("waitlist: number telephonenumber\n"); for(i=0;!feof(fp);i++) { fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber); }

fclose(fp); } for(i=0;i<10;i++) { printf_one(i);}

printf("\n\tPlease Input the number you want to book and leave your telephonenumber!:\n");

if((fp=fopen("waitlist.txt","a"))==NULL) { printf("\nCannot open file!\n"); exit(0); }

scanf("%s %s",wait[i].number,wait[i].telephonenumber); for(i=0;i<1;i++)

fwrite(&wait[i],sizeof(struct waitlist),1,fp);

fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/ printf("Input the number of the computer again!\n"); scanf("%d",&y); sum[T]--; computer[T][y]=1;

printf("\tOk,please wait our phone!\n"); Menu(); }

else Menu();

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

} }

5,取消预订模块函数

流程图

/*取消预订模块*/

void Cancel() {

int time,number;

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

printf("Input time you have booked between(8-20):"); scanf("%d",&time); if(time<8||time>20) {

printf("\tWrong time!\n");

printf("\tInput time you have booked between(8-20):"); scanf("%d",&time); } else

{printf("\tInput number you have booked :"); scanf("%d",&number);} detail(time);

sum[T]++; / *预定后该时间段空机位数加1*/

computer[T][number]=0; / *预定后该机状态变为0*/

printf("\tCancel succeed!\n"); getchar(); Menu(); }

6查询等待信息模块

流程图

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

/*查询等待信息模块*/ void SearchWaiting() {

int time,i; FILE *fp;

printf("\tInput time you want to search between(8-20):"); scanf("%d",&time); if(time<8||time>20) {

printf("\tWrong time!\n");

printf("\tInput time you want to search between(8-20):"); scanf("%d",&time); } else ;

if((fp=fopen("waitlist.txt","r"))==NULL) {

printf("\nCannot open file!\n"); exit(0); } else

{ printf("waitlist: number telephonenumber\n"); for(i=0;!feof(fp);i++) { fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber); }

fclose(fp); }

for(i=0;i<10;i++) { printf_one(i);} Menu(); }

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

7.公共函数

程序

void detail(int time) /*此函数功能是实现查找每个时间段空机位总数和空机位号*/ {

int i,j=0,k,s=0; int v[30];

for(i=0;i<20;i++)

{if(computer[T][i]==0) { s++; v[j++]=i; } }

sum[T]=s;

printf("\tCurrent vacant computers:%d\n",sum[T]); for(k=0;k<j;k++)

printf("\tThe vacant computers are:%d\n",v[k]); }

void printf_one(int i) /*此函数功能是实现输出等待列表到屏幕*/ {

printf("\t\t%s %s \n",wait[i].number,wait[i].telephonenumber); }

8运行界面

1,选1.,进入查询当前状态

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

2 选2,进入预定函数

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

3.选4.进入查询当前状态函数

4.选3.取消预订

本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。

5.选2.当某时间段没有空机位时,进入下一个时间段的查询和预定

6.选5.退出界面

本文来源:https://www.bwwdw.com/article/e834.html

Top