位
机
段息间位亠耳眄机雷某空耙寺询定鞘询出
12345
△你恕蓼预定的时间汐
:
7
:
10
:
11
習習習疋2内的曆脑脑脑脑-^¥」7nl-rTTJTT-JfrrnrTT-JTT-JTTa置貫置ww号周目空空V空空空
请输入你想要预定的机号,并且留下你的电话号码F:
12345&7
再次输入你想要预定的时间?
4.查询等待信息:
选择菜单号<1-5>:
4
Inputtineijouuanttosearchbetweent8-20i:
9waitlist:
nunbertelephonenunbei*
612345fi
101234567
6课程设计心得
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力
的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,
当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握一些基
本的软件开发技术是十分重要和必要的。
回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理
论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以
前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂
得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与
实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力,这
样才能真正为体会和认识它,才能写出一个完整的程序代码,才能使自己在过程中得到锻炼和提高。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够
牢固,比如说结构体的建立,指针的应用等都不太熟练。
通过这次课程设计,也使我对以前所学过的知识重新温故和加强。
程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:
首先
要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问
题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入
导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法;最后可得结论。
通过这次课程设计,我深刻地体会到:
<1>.细节决定成败:
在学习的过程中,要注意每一个细节,要知道一个分隔符或一个括号都会使整个程序出现错误。
<2>.要熟练掌握一些经典的结构和方法,如选择排序,递归,递推等,在遇到问题是可
直接应用,快速解决问题。
<3>.要熟悉一些标准数据库,对一些可直接利用的函数就直接利用,没必要重新定义。
<4>.在设计过程中最好使程序模块化,既便于阅读,也可增加其移植性。
<5>.熟能生巧。
平时应该多加训练,要知道,即使我们能完全看懂一个程序,但要让你
自己写出一个时仍是很困难的。
它要求你对每一个语句,每一个变量,每一个函数,每一个模块都充分的熟悉,要知道它们的作用,作用域等等。
因此只有平时做的多了,至耐候才会游刃有余。
一个多礼拜中,我有过山穷水尽的困惑;有过柳暗花明的惊喜;一个多礼拜的时间我经历了很多,也收获了很多。
与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考
验。
经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我学会了如何运用所学
知识去解决实际问题.
附录:
#include
#include
#include
#defineN20
#defineT(time-8)/2
intsum[6]={0};
intcomputer[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,000,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}};/*该数组表示假设某天某人查询时机房各个时
间段机位数情况*/
voidMenu();
voidSituation();
voidBook();
voidCancel();
voidSearchWaiting();
voiddetail(inttime);
voidprione(inti);
structwaitlist/*等待列表*/
{
charnumber[3];
chartelephonenumber[11];
}wait[N];
voidprintone(inti);
intmain()
{
Menu();/*当前状态函数*/
}
voidMenu(){
intn,w;
do
/*主界面*/
puts("\t\t*
***************
机房机位预约系统
puts("\t\t\t1.查询某时间段机位状态");/*查询某时间段机位状态
*/
puts("\t\t\t2.预定空机位”);/*预定空机位*/
puts("\t\t\t3.取消预订");/*取消预订*/
puts("\t\t\t4.查询等待信息”);/*查询等待信息*/
puts("\t\t\t5.退出");/*退出*/
printf("选择菜单号(1-5):
");
scanf("%d",&n);if(n<1||n>5){w=1;getchar();}
else
w=0;
}while(w==1);
switch(n)
{
case1:
Situation();break;
case2:
Book();break;
case3:
Cancel();break;
case4:
SearchWaiting();break;
case5:
exit(0);break;
}
getch();
}
/*时间查询*/
voidSituation()
{
inttime;
printf("输在(8-20)范围内的时间:
");scanf("%d",&time);
if(time<8||time>20)
{printf("\t时间输入错误!
\n");
printf("输入在(8-20)范围内的时间:
”);seanf("%d",&time);
}
detail(time);/*函数调用*/
getchar();
Menu();
}
/*预定函数*/
voidBook()
{inttime,i=0,x,y;
FILE*fp;
charc;
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"))==NULL)
{
printf("\n无法打开文件!
\n");exit(0);
}
!
:
\n");
printf("\n\t请输入你想要预定的机号,并且留下你的电话号码
scanf("%s%s",wait[i].number,wait[i].telephonenumber);for(i=0;i<1;i++)
fwrite(&wait[i],sizeof(structwaitlist),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("\t最近的空闲时间是%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:
numbertelephonenumber\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].telephonenumber);
for(i=0;i<1;i++)
fwrite(&wait[i],sizeof(structwaitlist),1,fp);
fclose(fp);/*若等待,就用文件的方式列出当时的等待列表
并提示输入你的等待序号和联系方式*/
printf("再次输入电脑的序号!
\n");
scanf("%d",&y);
sum[T]__;
computer[T][y]=1;
printf("\t好了,请等待我们的电话!
\n");
Menu();
}
elseMenu();
}
}
/*取消预订*/
voidCancel()
{
inttime,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();
}
/*查看等待信息*/
voidSearchWaiting()
{
inttime,i;
FILE*fp;
printf("\t在(8-20)之间输入您要搜索的时间:
");
scanf("%d",&time);
if(time<8||time>20)
{
printf("\t时间输入错误!
\n");
printf("\t在(8-20)之间输入您要搜索的时间:
");
scanf("%d",&time);
}else
if((fp=fopen("waitlist.txt","r"))==NULL)
{
printf("\nCannotopenfile!
\n");
exit(0);
}
else
{printf("waitlist:
numbertelephonenumber\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++)
{