C语言机房机位预约系统课设(附源码)
C语言机房机位预约系统课设(附源码)

C语言机房机位预约系统课设项目说明本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。
(书生)项目运行截图代码界面截图完整源码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>int timeone();/*机位、顾客信息结构体*/typedef struct PCInfo{int State[6]; //机位状态,2小时为一个时间段,8时到20时共6个时间段,0表示有空位,1表示无空位char name[20]; //各时间段运行顾客char sex[30];char tel[20];int year;int month;int day;int start_Time;int end_Time;}PCInfo;PCInfo info[100][100]; //存放100天,20台机位信息int Month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组定义每月天数*/int date[12][31]; /*定义日期和机位信息数组*//******************************空白函数模块*****************************/void s_line(int n) /*空行*/{int i;for (i = 1; i <= n; i++)printf("\n");}void space(int n) /*空白*/{int i;for (i = 1; i <= n; i++){printf(" ");}}/******************************清空机位信息模块*****************************/void Empty(){int i,j,k,a;for (i = 0; i <=20 ; i++) /*此循环作用是将0赋给机位状态*/{for (a = 0; a <= 20; a++){for (j = 0; j <= 6; j++){info[i][a].State[j] = 0;}}}for (j = 0; j <= 12; j++) /*此循环作用是将0赋给日期*/{for (k = 0; k <= 31; k++){date[j][k] = 0;}}}/******************************查询机位信息模块*****************************/void Query(){int year, month, day, start_Time, end_Time, time,a=1;int n = 0;int i;while (1){printf("\t\t ********************此处你可以输入时间来查看20个计算机的机位信息********************\n\n");printf("\t\t\t\t 请输入您想要查询的日期时间:(例如:2016/7/22/8-10表示)\n\n");scanf("%d/%d/%d/%d-%d", &year, &month, &day, &start_Time, &end_Time); /*输入查询时间*/if ((start_Time - 8) / 2 >= 0 && (start_Time - 8) / 2 <= 6){time = (start_Time - 8) / 2;}else{printf("输入时间段错误!\n");system("pause");return;}if (month < 1 || month > 12 || day < 0 || day > Month[month])/*如果输入时间不对就回出错,显示出错信息并且给出提示*/ {printf(" 输入错误!\n");printf(" 请选择输入指令:1.重新输入 2.返回菜单\n");scanf("%d", &n);if (n == 2) { break; }if (n == 1){break;}}else break; //未出错则跳出循环,继续执行后面程序}if (n == 2) return;printf("当前您要查询第几次预约的机位信息?(相同日期视为一次)\n\n");scanf("%d", &a);for (i = 1; i <= 20; i++) /*此循环的作用是判断是否有空的机位*/{if (date[month][day] == 1 && info[i][a].State[time] == 1)printf("\t\t\t\t 第%d 号计算机在这段时间已经被预定. \n\n", i);elseprintf("\t\t\t\t 第%d 号计算机在这段时间内没有被预定. \n\n", i);}system("pause"); /*系统暂停,按任意键继续*/}/******************************机位预定模块*****************************/void book_computer() /*此函数的作用是预定机位*/{int year, month, day, start_Time, end_Time, time;int b = 0, m = 0;int n = 0, i = 0, j, k, s,t;while (1){printf("\t\t********************此处你可以输入(年/月/日/XX-XX时间段)来查看是否有空位计算机********************\n\n");printf("\t\t如果有空闲机位将会自动预约,如果无空位,您可以选择最近时间段空位计算机进行预约!\n\n");printf("\t\t\t\t 请输入您想要预约的日期时间:(例如:2016/7/22/8-10表示)\n");scanf("%d/%d/%d/%d-%d",&year,&month, &day, &start_Time, &end_Time);/*输入查询时间*/if ((start_Time - 8) / 2 >= 0 && (start_Time - 8) / 2 <= 6){time = (start_Time - 8) / 2;}else{printf(" 输入时间段错误!\n");}if (month < 1 || month > 12 || day < 0 || day > Month[month])/*检验查询时间是否出错,并给出提示信息*/{printf(" 输入错误!\n");printf(" 请选择输入指令:1.重新输入 2.返回菜单\n");scanf("%d", &n);if (n == 2) break;}else break; //未出错则跳出循环,继续执行后面程序}if (n == 2) return;int a=0;s = timeone(); //该函数负责将不同时间段信息放置在二维数组结构体的不同列printf(" 请选择预约模式:\n");printf(" 1.按顺序预约 2.选择编号预约\n");scanf("%d", &a);if (a == 1) //顺序预约模块{for (i = 1; i <= 20; i++){if (date[month][day] == 0 || info[i][s].State[time] == 0){date[month][day] = 1;info[i][s].State[time] = 1;printf("\t\t ==================第%d 号计算机已经成功预约!==================\n ", i);printf("\t\t ================您可以在预约的时间段内使用计算机!============= \n \n ");printf("\t\t 本次为机位预约模拟系统第%d次预约(不同时期).请留意次数. \n", s);system("pause");return; //有一个符合条件的计算机,则return跳出该函数}}printf("您查询的时间段内无空闲机位!\n\n");printf("是否仍在非空闲时间段内使用电脑:\n\n");printf("1.是(加入等待队列)\n");printf("2.否(查找临近的空位计算机)\n");scanf("%d", &n);if (n == 1) /*如果加入等待列表,就输入相关的姓名,性别,电话和机位号*/{printf("请输入您想要等待的机位号::\n\n");scanf("%d", &m);printf("请输入您的姓名:\n\n");scanf("%s", info[m][s].name, 20);printf("请输入您的性别:(男或女)\n\n");scanf("%s", info[m][s].sex, 30);printf("请输入您的电话号码:\n\n");scanf("%s", info[m][s].tel, 20);info[m][s].year = year;info[m][s].month = month;info[m][s].day = day;info[m][s].start_Time = start_Time;info[m][s].end_Time = end_Time;printf("您已经成功加入等待队列......\n");system("pause");return;}/*通过四层嵌套循环寻找顺次向后推时间段内空机位信息*/for (i = month; i <= 12; i++) //月份{for (j = day; j <= Month[i]; j++) //日期{for (k = 1; k <= 6; k++) //0-6时间段{for (m= 1; m < 20; m++) //1-20号机器{if (date[i][j] == 0 || info[m][s].State[time] == 0){printf("你可以预约到的最近时间段的计算机:第%d 号计算机%d年%d月%d日%d时-%d时\n", s, year, i, j, (2 * k + 6), (2 * k + 8));printf(" 1.预约第%d 号计算机的该段时间\n", s);printf(" 2.不预约并退出\n");printf(" 请输入1&2进行选择: \n");scanf("%d", &n);if (n == 1){printf("\t\t ==================第%d 号计算机已经成功预约!==================\n ", m);printf("\t\t ================您可以在预约的时间段内使用计算机!============= \n \n ");printf("\t\t 本次为机位预约模拟系统第%d次预约(不同时期).请留意次数. \n", s);date[i][j] = 1; /*将机位状态调整为1*/info[m][s].State[time] = 1;}system("pause"); /*系统暂停,按任意键继续*/return;}}}}}}if (a == 2) /*选择编号进行预约*/{printf("请输入您要预约的计算机机位号:\n");scanf("%d", &i);if (date[month][day] == 0 || info[i][s].State[time] == 0){date[month][day] = 1;info[i][s].State[time] = 1;printf("\t\t ==================第%d 号计算机已经成功预约!==================\n ", i);printf("\t\t ================您可以在预约的时间段内使用计算机!============= \n \n ");printf("\t\t 本次为机位预约模拟系统第%d次预约(不同时期).请留意次数. \n", s);system("pause");}else{printf("第%d号机位已经被他人预约!",i); /*重复之前等待信息载入代码*/printf("是否仍在非空闲时间段内使用电脑:\n");printf("1.是(加入等待队列)\n");printf("2.否(查找临近的空位计算机)\n");scanf("%d", &n);if (n == 1) /*如果预定机位,就输入相关的姓名,性别,时间段*/{printf("请输入您想要等待的机位号::\n\n");scanf("%d", &b);printf("请输入您的姓名:\n\n");scanf("%s", info[b][s].name,30);printf("请输入您的性别:(男或女)\n\n");scanf("%s", info[b][s].sex, 30);printf("请输入您的电话号码:\n\n");scanf("%s", info[b][s].tel, 20);info[b][s].year = year;info[b][s].month = month;info[b][s].day = day;info[b][s].start_Time = start_Time;info[b][s].end_Time = end_Time;printf("您已经成功加入等待队列......\n");system("pause");return;}for (i = month; i <= 12; i++) //月份{for (j = day; j <= Month[i]; j++) //日期{for (k = 1; k <= 6; k++) //0-6时间段{for (t = 1; t < 20; t++) //1-20号机器{if (date[i][j] == 0 || info[t][s].State[time] == 0){printf("你可以预约到的最近时间段的计算机:第%d号计算机%d年%d月%d日%d时-%d时\n\n", t, year, i, j, (2 * k + 6), (2 * k + 8));printf(" 1.预约第%d 号计算机的该段时间\n\n", t);printf(" 2.不预约并退出\n\n");printf(" 请输入1&2进行选择: \n\n");scanf("%d", &n);if (n == 1){printf("****************第%d 号计算机已经成功预约!**************** \n ", t);printf("***************您可以在该时间段内使用计算机!************** \n ");date[i][j] = 1;info[t][s].State[time] = 1;}system("pause");return;}}}}}}}}/******************************取消预约模块*****************************/void book_exit() /*此函数的作用是退出预定*/ {int year,month, day, start_Time, end_Time,time,s=0;int n = 0;while (1){printf("\n在此处您可以取消预约已预订的计算机\n");system("pause");printf("\n请输入您想要取消预约的日期时间:(例如:2016/7/22/8-10表示)\n");scanf("%d/%d/%d/%d-%d", &year,&month, &day, &start_Time, &end_Time);if ((start_Time - 8) / 2 >= 0 && (start_Time - 8) / 2 <= 6){time = (start_Time - 8) / 2;}else{printf("\n输入时间段错误!\n");system("pause");return;}if (month < 1 || month > 12 || day < 0 || day > Month[month]){printf(" 输入错误!\n");printf(" 请选择输入指令:1.重新输入 2.返回菜单\n");scanf("%d", &n);if (n == 2) break;}else break;}if (n == 2) return;printf("请输入您想要取消预约的计算机编号:.\n");scanf("%d", &n);printf("您要取消预约第几次预约的计算机机位:.\n");scanf("%d", &s);if (info[n][s].State[time] == 1){info[n][s].State[time] = 0;printf("第%d号机位取消预约成功!\n",n);}else{printf("在该段时间内您没有预约任何编号的计算机!\n");}system("pause");}/******************************查询等待信息模块*****************************/void Look_wait() /*此函数的作用是查询等待机位的人,并按序显示*/{int m;int year, month, day, start_Time, end_Time,s;printf("请输入您想要查询的日期时间:(例如:2016/7/22/8-10表示)\n\n");scanf("%d/%d/%d/%d-%d", &year, &month, &day, &start_Time, &end_Time);printf("请输入您要查询等待信息的机位号:\n\n");scanf("%d", &m);printf("正在查询,请稍候~\n\n");printf("第%d号计算机:\n\n", m);printf(" 您准备查找第几次预约的信息?\n\n ");scanf("%d", &s);printf("姓名:%s\n\n", info[m][s].name);printf("性别:%s\n\n", info[m][s].sex);printf("联系方式:%s\n\n", info[m][s].tel);printf("该成员于%d年%d月%d日加入本台计算机的等待队列\n\n", info[m][s].year, info[m][s].month, info[m][s].day);system("pause");return;}/******************************预约次数(不同时期)判别模块*****************************/int timeone() /*为了便于对不同预约时间相同机位信息判别加设*/ {int n=0,k;int s = 1;printf("如果在本系统首次预约请选择1 ,再次预约请选择2\n\n");scanf("%d", &n);if (n == 1){return s;}if (n == 2){int i=0;printf("预约日期与前几次是否相同? 1.相同 2.不同\n\n");scanf("%d",& i);if (i == 1){s = 0;printf("预约日期与第几次相同?\n");scanf("%d", &k);s = s + k;return s;}if (i == 2){s = 0;printf("本次为第几次预约(不同时期)?\n");scanf("%d", &k);s = s + k;printf("本次为机位预约模拟系统第%d次预约(不同时期).请留意次数. \n",s);return s;}}}/**********************************主函数模块*************************************/main(){Empty();int num;while (1){system("cls"); /* 清除文本模式窗口*/s_line(4);space(40);printf("********************主菜单********************\n"); /*使用空行函数排版*/s_line(2);space(55);printf("1.查询机位信息\n");s_line(1);space(55);printf("2.预约机位\n");s_line(1);space(55);printf("3.取消机位预约\n");s_line(1);space(55);printf("4.查询等待人员信息\n");s_line(1);space(55);printf("5.退出系统\n");s_line(2);space(40);printf("********************************************\n\n");printf("请输入1~5进行功能操作: \n");scanf("%d", &num); /*输入数字进行相应的函数的调用*/if (num == 5) break;switch (num){case 1:Query();break;case 2:book_computer();break;case 3:book_exit();break;case 4:Look_wait();break;default:printf("输入错误!\n");system("pause");exit(0);}}}。
机房预定位系统(可编辑修改word版)

合肥学院计算机科学与技术系课程设计报告20 12 ~20 13 学年第一学期课程 C 语言课程设计课程设计题目机房机位预订系统学生姓名学号1204032015专业班级网络工程(2)班指导教师20 13 年 1 月目录一、课程设计目的 (2)二、课程设计名称及内容 (2)三、对任务和要求的分析 (2)四.详细设计及实现 (3)五、源代码 (18)六、程序测试 (24)七、总结 (25)一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C 语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用 C 语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。
(6)熟练掌握 C 语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。
二、课程设计名称及内容课程设计名称:机房机位预定系统设计内容:设计一个机房机位预定系统,该系统要求对机房电脑机位进行管理和维护。
20 台机器,从早八点到晚八点,每两个小时一个时间段.任务和要求:20 台机器,编号 1 到 20,从早八点到晚八点。
两小时一个时间段,每次可预定一个时间段。
设计一个机房机位预定系统,通过该系统实现对机房机位的预定管理。
三、对任务和要求的分析可行研究阶段的目标是:使工作人员从繁琐的机位管理工作中解放出来;提高工作质量,使供需双方都获得满意的结果;促进报表,提高工作效率。
c语言课程设计--机房机位预定系统

c语言课程设计--机房机位预定系统1 设计目的机房机位预定系统2 任务概述20台机器,编号1到20,从早八点到晚八点。
两小时一个时间段,每次可预定一个时间段。
功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。
(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。
(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
.........3 模块划分4 主要函数说明及其N-S图1. 主函数:int main(){Menu(); /*当前状态函数*/}void Menu() /*主界面*/{int n,w;do{puts("\t\t****************机房机位预约系统*******************\n");puts("\t\t*************************菜单***************************\n");puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/puts("\t\t\t 2.预定空机位"); /*预定空机位*/puts("\t\t\t 3.取消预订"); /*取消预订*/puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/puts("\t\t\t 5.退出"); /*退出*/puts("\t\t****************************************** **************\n");printf("选择菜单号(1-5):");scanf("%d",&n);if(n<1||n>5){w=1;getchar();}elsew=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;}getch();}2.机位查询:void Situation(){int time;printf("输在(8-20)范围内的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t时间输入错误!\n");printf("输入在(8-20)范围内的时间:");scanf("%d",&time);}detail(time); /*函数调用*/getchar();Menu();}3.机位预定:void Book(){int time,i=0,x,y;FILE *fp;char c;printf("在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t时间输入错误!\n");printf("\t在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);}detail(time); /*函数调用*/if(sum[T]>0){ if((fp=fopen("waitlist.txt","a"))==NUL L){printf("\n无法打开文件!\n");exit(0);}printf("\n\t请输入你想要预定的机号,并且留下你的电话号码!:\n");scanf("%s %s",wait[i].number,wait[i].teleph onenumber);for(i=0;i<1;i++)fwrite(&wait[i],sizeof(struct waitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元*/printf("\t再次输入你想要预定的时间!\n");scanf("%d",&x);/*sum[T]--; / *预定后该时间段空机位数减1*//*computer[T][x]=1; / *预定后该机状态变为1*/printf("\t预订成功!\n");getchar();Menu();}else{printf("这是在这个时间段内未预定的电脑!\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;}printf("\t你想要预定吗?:y/n?");scanf("%s",&c);getchar();if(c=='Y'||c=='y'){if((fp=fopen("waitlist.txt","r"))==NULL){printf("\n无法打开文件!\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++){ prione(i);}printf("\n\t请输入你想要预定的机号,并且留下你的电话号码!:\n");if((fp=fopen("waitlist.txt","a"))==NULL){printf("\n无法打开文件!\n");exit(0);}scanf("%s %s",wait[i].number,wait[i].teleph onenumber);for(i=0;i<1;i++)fwrite(&wait[i],sizeof(struct waitlist),1,fp);fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf("再次输入电脑的序号!\n");scanf("%d",&y);sum[T]--;computer[T][y]=1;printf("\t好了,请等待我们的电话!\n");Menu();}else Menu();}}N4.取消预定:void Cancel(){int time,number;printf("在(8-20)时间范围内输入你已经预定的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t输入时间错误!\n");printf("\t在(8-20)时间范围内输入你已经预定的时间:");scanf("%d",&time);}else{printf("\t输入你预定的机号:");scanf("%d",&number);}detail(time);/* sum[T]++; / *预定后该时间段空机位数加1*//*computer[T][number]=0; / *预定后该机状态变为0*/printf("\t取消成功!\n");getchar();Menu();}5.查询等待信息: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++){ prione(i);}Menu();}5 程序运行数据及其结果1.主菜单:2.机位查询:3.机位预定:4.查询等待信息:6 课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
c语言机房机位预定系统

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:学生考勤系统起迄日期:指导教师:日期: 2017年5月11日1 设计目的模拟考勤过程,根据考勤评分给出考勤分数。
2 任务概述1>菜单界面:选择操作项目。
2>信息录入:输入学生身份信息与考勤次数,并存入文件。
3>修改功能:通过姓名或学号查找,对学生的考勤次数进行修改。
4>查询功能:通过姓名或学好查找,输出学生信息。
5>评分功能:设定标准考勤次数,按照考勤次数占标准考勤次数的百分比给分。
3 模块划分图1,模块划分图4 主要函数说明及其流程图main主函数:图2,主函数主函数:设计了初始界面,使程序的界面友好化。
给用户选择操作项目,让用户对程序的功能一目了然。
调用功能函数,完成设计目的。
图3,input()函数录入函数:通过使用循环体和判断语句,可实现重复输入学生数据和是否确定输入的功能。
使得用户操作起来更加自如。
图4,change()函数修改函数:通过学号和姓名两种方式可以查询到学生的信息,然后将考勤次数重新赋值并写入文件。
这样可以避免出现错误无法修改以至于重新输入的情况。
search()函数:图5,search()函数查询函数:通过学号和姓名两种方式可以选择查找方式,将文件的内容读出,可以看到学生的身份信息和修改后的考勤次数。
确定该生信息存在。
evaluate()函数:图6,evaluate()函数评分函数:输入标准考勤次数,将实际考勤次数占标准考勤次数的百分比作为最后分数。
5 程序运行数据及其结果姓名:张三学号:1性别:男考勤次数:5修改后考勤次数:10标准考勤次数:10考勤分数:1006 课程设计心得通过编写这次C语言课程设计,对C语言的基本语法,选择,循环等结构有了更深刻的认识。
深入地练习了函数的调用和文件的读写方法,熟悉了结构体的使用,和一些算法的运用。
在整个设计的过程中,遇到了很多问题。
当出现语法错误的时候,首先自己看书,看书上的语法和在例题中的应用,从而对该语法的记忆进一步加深。
C语言课程设计报告——机房管理系统[1]
![C语言课程设计报告——机房管理系统[1]](https://img.taocdn.com/s3/m/a876cfaf80eb6294dd886ce4.png)
目录一.设计内容二.设计要求(1)题目要求(2)输入/输出要求三.整体设计思路四.流程图(1)层次模块图(2)空机号查询N—S图五.主函数及功能菜单说明六.各模块简要说明七.心得体会附录一.源程序代码二.各模块运行结果截图一:设计内容题目:机房管理系统设计机房管理系统,要求由菜单进行管理。
(1)上机前先检查是否有空机位,有则将其显示出,无则提示无空位。
(2)还有空位置时,运行进入,并记录下位置号以及序号,与上机时间。
(3)可对上机者上机信息进行查询,修改与删除。
(4)设计相关模块,显示上机者的上机费用。
(5)显示所有上机者的上机信息。
二:设计要求题目要求:(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
(2)要求以上功能分别用函数实现。
输入/输出要求:(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息。
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三:整体设计思路在设计该程序时,要将系统的不同功能分成各个模块。
每个模块由一个函数定义,整个程序由函数调用来实现。
每个模块是一个子函数,由一个主函数调用各个子函数。
在定义子函数时,根据不同的功能选择不同的语句,如需要使用循环时可以用“do……while”来实现;需要使用选择时可以用“switch”或“if”语句来实现等。
设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。
每个模块由组员相应完成。
另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋上上机者相关信息,避免管理员一个一个的给机子输入信息。
本系统程序关键在于一个空机位的检索,亦是本程序核心之所在。
机房机位预约模拟系统—C语言课程设计

机房机位预约模拟系统—C语言课程设计本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。
一.题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1)查询,根据输入的时间,输出机位信息.(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3)退出预定,根据输入的时间,撤消该时间的预定.二.需求分析根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查询等待信息等功能。
还应提供键盘式选择菜单实现功能选择。
而等待信息放在文件里,所以在相关的模块应提供文件的输入、输出操作。
三.总体设计根据上面的需求分析,将这个系统的设计分为下面4个模块:4.详细设计本报告内容全面翔实质量上乘,程序运行稳定质量高,是获得优秀成绩评定的报告,可以充分满足上机等要求,欢迎交流!本专辑为华中某985重点高校的整个大二班级30份暑期C语言实习报告,涵盖了C语言实习题库的近乎全部内容。
1.预处理命令及函数声明#include<tdio.h>#include<tdlib.h>#include<tring.h>#defineN20 {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}};/某该数组表示假设某天某人查询时机房各个时间段机位数情况某/voidMenu();voidSituation();voidBook();voidCancel();voidSearchWaiting();voidE某it();voidprintf_one(inti);tructwaitlit{charnumber[3];chartelephonenumber[12];}wait[N];2.主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
c语言课程设计医院预约系统设计

c语言课程设计医院预约系统设计一、教学目标本课程旨在通过医院预约系统设计的学习,让学生掌握C语言编程的基本概念和方法,培养其解决问题的能力。
具体目标如下:•掌握C语言的基本语法和数据结构。
•理解函数的定义和调用。
•学习模块化编程和文件操作。
•能够使用C语言编写简单的程序。
•学会调试和优化代码。
•具备基本的算法设计能力。
情感态度价值观目标:•培养学生对计算机科学的兴趣和好奇心。
•强调团队合作和互相学习的重要性。
•培养学生的创新意识和解决问题的决心。
二、教学内容本课程的教学内容将依据C语言的基本概念和医院预约系统的需求进行。
具体安排如下:•引言:介绍C语言的背景和医院预约系统的目的。
•基本语法:数据类型、运算符、控制结构等。
•数据结构:数组、链表、栈和队列等。
•函数:函数的定义、调用、参数传递和返回值。
•模块化编程:文件操作和模块的编写。
•医院预约系统设计:需求分析、系统设计和实现。
三、教学方法为了提高学生的学习效果和兴趣,将采用多种教学方法相结合的方式进行教学。
包括:•讲授法:讲解C语言的基本概念和语法。
•案例分析法:通过分析医院预约系统的案例,引导学生理解和应用所学知识。
•实验法:让学生通过编写和调试程序,加深对C语言的理解和运用。
•小组讨论法:鼓励学生进行合作学习和问题讨论。
四、教学资源为了支持教学内容的有效传授和学生的深入学习,将准备以下教学资源:•教材:选择适合学生水平的C语言教材。
•多媒体资料:提供相关的教学PPT和视频资料。
•实验设备:提供计算机实验室,让学生进行编程实践。
•在线资源:推荐一些在线编程平台和论坛,供学生交流和学习。
五、教学评估为了全面、客观地评估学生在医院预约系统设计课程中的学习成果,将采用以下评估方式:平时表现:通过课堂参与、提问和小组讨论等方式,评估学生的课堂表现和参与度。
作业:布置与课程内容相关的编程作业,评估学生的编程能力和对知识的掌握程度。
项目:让学生参与医院预约系统的设计和实现,评估学生的系统设计和编程能力。
c课程设计机房管理系统(源代码)

课程设计报告课程名称:C课程设计班级:学号:姓名:完成日期:沈阳航空航天大学北方软件学院课设任务书专业名称:计算机网络技术设计题目:机房管理系统起止时间:2011年6月27日至2011 年7月8日问题描述通过开发一个机房管理系统,掌握与指针、数组(链表)有关的算法、函数的调用、结构体类型变量的定义和使用;文件打开、关闭、读、写等文件操作,提高对C 语言的实际运用能力。
基本要求机房管理系统实现功能:1.登录:根据菜单提示进行相应的的操作;2.机器信息文件的创建、增加、删除、修改;3.按型号,编号等对机器信息进行查询。
实现提示设计一个主菜单函数,通过菜单选择调用其他函数来实现相应的功能(switch语句)。
机器信息文件可包含编号,详细信息(主板,硬盘,cpu等信息)等项。
选作内容可根据主板,硬盘,cpu等机器信息进行分类统计机器数量。
学生姓名:学号:指导教师:年月日机房管理系统1概要设计用于机房管理,机房电脑的入库应在机房账目上加入电脑的入机房日期,电脑型号,数量,种类等,在电脑出库时应登记出库日期,数量种类等指标,手续经办人签名等。
并有机房盘点功能。
基本要求:入库登记功能出库登记功能机房盘点功能:机房中实际的存量电脑超出存储范围,或没有电脑的预警功能2详细设计主菜单说明struct product product[COUNT];//定义物品结构体数组void menu()//主菜单,应用于选择进行的操作{int choice,A;/*使主菜单循环*/do{printf("\n\n");printf("***********************************************************\n");printf("***********************欢迎进入****************************\n");printf("*********************机房管理系统**************************\n");printf("***********************主菜单******************************\n");printf("***********************************************************\n");printf("\t\t 1、电脑入库登记 \n");printf("\t\t 2、电脑出库登记\n");printf("\t\t 3、电脑库存查询\n");printf("\t\t 4、退出程序\n");printf("***********************************************************\n");printf("请选择所要执行的操作:");scanf("%d",&choice);结构体说明:1、struct product//定义物品的机构体{char name[SIZE];char model[SIZE];char kind[SIZE];char person[SIZE];int date;float inprice;int num;int innumber;int outnumber;int number;};查询菜单说明void Product_Search(){int select,B;for(;1;){system("cls");printf("\n\n");printf("***********************************************************\n");printf("*********************机房管理系统**************************\n");printf("**********************物品出查询***************************\n");printf("***********************************************************\n");printf("\t\t 1.按型号查询\n");printf("\t\t 2.按名称查询\n");printf("\t\t 3.按编号查询\n");printf("\t\t 4. 返回\n");printf("***********************************************************\n");printf("请选择所要执行的操作:");scanf("%d", &select);switch(select){case 1: searchbymodel();getch(); break;case 2: searchbyname();getch();break;case 3: searchbynum();getch();break;case 4: return menu();getch();break;default: printf("\n\n输入错误,请重新输入!!!!!\n");}}}指针、函数说明:3#define SIZE 30//定义字符串长度#define COUNT 100void menu();//菜单void Poduct_Enter();//定义货物入库函数void Product_Out();//货物出库void Product_Search();//货物查询void searchbymodel();//货物按型号查询void searchbyname();//货物按名字查询void searchbynum();//货物按编号查找void exit_system();//程序结束void save();//保存数据void open_out();//打开文件int i,p;2、struct product *p;//定义指针p=&product;3调试报告(1)忘记加分号,分号是C语句中不可缺少的一部分,语句末尾必须有分号,不该加分号的地方加了分号,后来经过调试改正了错误,另外,复合语句的花括号后不应再加分号,否则将会画蛇添足。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言机房机位预约系统课设
项目说明
本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。
(书生)
项目运行截图
代码界面截图
完整源码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int timeone();
/*机位、顾客信息结构体*/
typedef struct PCInfo
{
int State[6]; //机位状态,2小时为一个时间段,8时到20时共6个时间段,0表示有空位,1表示无空位
char name[20]; //各时间段运行顾客
char sex[30];
char tel[20];
int year;
int month;
int day;
int start_Time;
int end_Time;
}PCInfo;
PCInfo info[100][100]; //存放100天,20台机位信息int Month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组定义每
月天数*/
int date[12][31]; /*定义日期和机位信息数组*/
/******************************空白函数模块*****************************/
void s_line(int n) /*空行*/
{
int i;
for (i = 1; i <= n; i++)
printf("\n");
}
void space(int n) /*空白*/
{
int i;
for (i = 1; i <= n; i++)
{
printf(" ");
}
}
/******************************清空机位信息模块*****************************/
void Empty()
{
int i,j,k,a;
for (i = 0; i <=20 ; i++) /*此循环作用是将0赋给机位状态*/
{
for (a = 0; a <= 20; a++)
{
for (j = 0; j <= 6; j++)
{
info[i][a].State[j] = 0;
}
}
}
for (j = 0; j <= 12; j++) /*此循环作用是将0赋给日期*/
{
for (k = 0; k <= 31; k++)
{
date[j][k] = 0;
}
}
}
/******************************查询机位信息模块*****************************/
void Query()
{
int year, month, day, start_Time, end_Time, time,a=1;
int n = 0;
int i;
while (1)
{
printf("\t\t ********************此处你可以输入时间来查看20个计算机的机位信息********************\n\n");
printf("\t\t\t\t 请输入您想要查询的日期时间:(例如:2016/7/22/8-10表示)\n\n");
scanf("%d/%d/%d/%d-%d", &year, &month, &day, &start_Time, &end_Time); /*输入查询时间*/。