C程序设计 实习报告 正文.docx
《C程序设计 实习报告 正文.docx》由会员分享,可在线阅读,更多相关《C程序设计 实习报告 正文.docx(18页珍藏版)》请在冰豆网上搜索。
C程序设计实习报告正文
第一章实习报告
§1.1题目描述
【要求】
假定某民航机场共有n个航班。
每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。
试设计一民航订票系统,能提供下列服务。
(1)航班信息录入功能(航班信息用文件保存)。
(2)航班信息浏览功能。
(3)查询航线:
(至少一种查询方式)。
按航班号查询。
按起点站查询。
按终点站查询。
按飞行时间查询。
【提示】
(1)需求分析
航班信息用文件保存,因而要提供文件的输入/输出功能;要浏览航班信息,需要提供显示功能;要查询航线,需要提供查找功能;另外,还要提供键盘式选择菜单以实现功能选择。
(2)总体设计
整个系统可以设计为航班信息输入模块、航班信息浏览模块和航线查询模块。
(3)数据结构
建立航班结构体,结构体成员包括航班号、起始站、终点站、飞行时间(星期几)、预售票总数、已售票数。
§1.2算法设计
根据需求分析,可以将这个系统的设计分为如下五大模块:
输入航班信息,保存航班信息,浏览航班信息,查找航班信息,退出。
§1.3程序设计及代码分析
1.结构体设计
建立航班结构体,结构体成员包括航班号,起点站,终点站,飞行时间(星期几),预售票总数。
structair
{intfir_num;
charstart[20];
charterminus[20];
charfir_time[10];
intcount;
}s[N];/*s[N]中每个数组元素依次对应一个航班信息*/
[注意]
s[N]中的N为学生个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#defineN10000。
2.主函数
[流程图]
显示一系列功能选项
[程序]
voidmain()
{intj;
printf(“----welcometoourscheduledflightmanagesystem!
----*\n”);
printf(“*****************************************************\n”);
do
{printf(“1.Pleaseinputthescheduledflightinformation\n\m”
“2.Lookthroughthescheduledflightinformation\n\n”
“3.Searchforthescheduledflightinformation\n\n”
“0.EXIT\n\n”);
printf(“*****************************************************\n”);
printf(“NOTE:
Thissystemjustsupporttheflyinformationinthenearestweek\n\n”);
printf(“Pleasechooseonenumberduring0-3thenpushenter:
\n\n”);
scanf(“%d”,&j);
switch(j)
{case1:
input();/*调用输入模块*/
break;
case2:
print();/*调用打印模块*/
break;
case3:
search();/*调用查找模块*/
break;
case0:
break;}/*退出*/
}while(j!
=0);
printf(“Thankyouforusingoursystem!
Goodbye!
\n”);}
3.各功能模块设计
3.1输入航班信息
[流程图]
[程序]
voidinput()
{charf[]=“20121000748”;/*设置密码*/
inty;
printf(“PleaseinputthepasswordthenpushEnter:
\n\n”);
scanf(“%s”,f);/*读取密码*/
if(strcmp(f,“20121000748”)==0)
{printf(“Pleaseinputtheflightinformationonebyone(thenumberoftheticketshouldbeendedby0):
\n\n”);
printf(“*****************************************************\n”);
for(i=0;i{printf(“Pleaseinputtheflightnumber:
\n”);
scanf(“%d”,&s[i].fir_num);/*读取航班号*/
printf(“Pleaseinputthestartplace:
\n”);
scanf(“%s”,s[i].start);/*读取起点站*/
printf(“Pleaseinputtheterminus:
\n”);
scanf(“%s”,s[i].terminus);/*读取终点站*/
printf(“Pleaseinputthetime:
\n”);
scanf(“%s”,s[i].fir_time);/*读取时间*/
printf(“Pleaseinputthenumberoftheticket(thenumberoftheticketshouldbeendedby0:
)\n”,m);
scanf(“%d”,&s[i].count);/*读取机票数*/
m++;
printf(“The%dgroupinformationhavebeeninputted!
Pleasepushanykeytocontinue,push0totheend”,m);
scanf(“%d”,&y);
if(y==0)
{save();/*将结构体存盘*/
print();/*输入输出航班信息*/
break;}
}
}}
elseprintf(“passworderror!
Pleasecheckyourpassword!
Thankyou!
Goodbye!
\n\n”);}
3.2保存信息模块
[流程图]
[程序]
voidsave()
{FILE*fp,*fp1;/*定义文件指针*/
if((fp=fopen(“chen.dat”,”wb”))==NULL)/*打开文件并判断是否出错*/
{printf(“Failtocreatthefile!
\n\n”);
getchar();
return;}
if((fp1=fopen(“hao.dat”,”wb”))==NULL)
{printf(“Failtocreatthefile!
\n\n”);
getchar();
return;}
for(i=0;iif(fwrite(&s[i],sizeof(structair),1,fp)==0)/*向文件写入数据并判断是否出错*/
printf(“Failtoinputdatatothefile!
\n\n”);
fprintf(fp1,”%d”,m);
fclose(fp);/*关闭文件*/
fclose(fp1);}
3.3浏览信息模块
[流程图]
[程序]
voidread()
{FILE*fp,*fp1;/*定义文件指针*/
if((fp=fopen(“chen.dat”,”rb”))==NULL)/*打开文件判断是否出错*/
{printf(“Errorpleasemakesurethefileisexist!
Pushanykeybacktothemenu”);
getchar();}
if((fp1=fopen(“hao.dat”,”rb”))==NULL)/*打开文件判断是否出错*/
{printf(“Failtocreatthefile!
\n\n”);
getchar();
return;}
fscanf(fp1,”%d”,&m);
fclose(fp1);
for(i=0;i{fread(&s[i],sizeof(s),1,fp);}/*从文件中读取信息*/
fclose(fp);}/*关闭文件*/
voidprint()/*打印模块*/
{charw[10];
read();/*调用读文件函数*/
printf(“FlightNumberStartPlaceTerminusTimeTicketNumber\n”);
for(i=0;i{printf(PRINT);}/*打印信息*/
printf(“Pleasepushanykeybacktotheupmenu:
\n”);
scanf(“%s”,w);}
3.4查询信息模块
[流程图]
显示查询方式菜单
[程序]
voidsearch()
{charname1[20];
charname2[20];
charii[10];
chartime[10];
intn,no;
do
{printf("Pleasechooseonewayyouwanttosearch:
\n\n");/*打印查询方式菜单*/
printf("1.Accordingtotheflightnumber\n\n"
"2.AccordingtotheTerminus\n\n"
"3.Accordingtothestartplace\n\n"
"4.Accordingtotheflyingtime\n\n"
"0.BACK\n\n");
printf("Pleasechooseonenumberduring[0-3]:
[]\n\n"
"Pushanyotherkeybacktothetopmenu:
\n\n");
scanf("%d",&n);/*读取查找方式*/
if(n==0)
break;
switch(n)
{case1:
printf("Pleaseinputtheflightnumber:
\n");
scanf("%d",&no);/*航班号*/
break;
case2:
printf("Pleaseinputtheterminus:
\n");
scanf("%s",name2);/*读取终点站*/
break;
case3:
printf("Pleaseinputthestartplace:
\n");
scanf("%s",name1);/*读取起点站*/
break;
case4:
printf("Pleaseinputtheflyingtime:
\n");
scanf("%s",time);
break;
}
read();/*调用读取函数*/
for(i=0;i{
if(strcmp(s[i].start,name1)==0||strcmp(s[i].terminus,name2)==0)
/*按终点站起始站判断输出条件*/
{
printf("\nSucceedinsearchingfortheflightinformation!
\n");
printf("FlightNumberStartPlaceTerminusTimeTicketNumber\n");
printf(PRINT);/*打印信息*/
}
if(s[i].fir_num==no)/*按航班号判断输出条件*/
{
printf("\nSucceedinsearchingfortheflightinformation!
\n");
printf("FlightNumberStartPlaceTerminusTimeTicketNumber\n");
printf(PRINT);
}
if(strcmp(s[i].fir_time,time)==0)
{
printf("\nSucceedinsearchingfortheflightinformation!
\n");
printf("FlightNumberStartPlaceTerminusTimeTicketNumber\n");
printf(PRINT);/*打印信息*/
}
printf("Cannotfindtheinformtiongyouwantedoryou
havedoneit:
\n\n"
"Doyouwanttocontinue?
PleaseinputYESorNO
andpushenter\n");
scanf("%s",ii);
}while(strcmp(ii,"yes")==0);
}
§1.4实验数据及运行效果截图
1.输入数据
管理员输入航班信息:
航班号起点站终点站飞行时间总票数
100quzhouwuhan9.1100
101quzhouwuhan9.2150
102wuhanquzhou9.1130
103beijingwuhan9.2100
……
2.编译,连接和运行
3.结果
3.1主菜单函数
3.2输入信息模块
3.3浏览信息模块
3.4查询信息模块
3.4.1按照航班号查询
3.4.2按照终点站查询
3.4.3按照起点站查询
3.4.4按照时间查询
3.4.5结束
§1.5设计中出现的错误及解决方法
我在程序的设计中遇到了诸如中英输入法错误、标点符号错误等错误,同时在函数调用处多次出错,很感谢马钊老师、殷商珉珉同学和李洋同学的指导,让我学会用模块化的方式处理相关问题。
当然,那些错误在编译过程中多次、逐行修改,最终获得了程序的成功运行。
、
第二章实习心得
经过几天的实习,我对C程序的实际应用有了进一步的了解,领悟到了许以前不知道的东西,不仅表现在程序功能的实现,更表现在对程序编辑技巧的追求,虽然时间不长,但还是有了很多收获。
实习要求从给定的题目中选择一题目完成。
需要写出自己的分析过程,算法,以及程序的流程图。
在以前,虽然自己也经常编程,但是都是看着题目直接写程序,分析是在一开始有一个模糊的认识,至于算法,更是没有认真考虑过,都是抄起键盘就输代码,边写边改,最后让功能可以实现就行了。
流程图我以前也没有画过。
总之,以前写程序是一点儿也不讲究科学的方法。
在这次实习的要求下,让我有了改正自己错误的压力。
在按照要求完成了课程设计任务后,感觉自己进步不少。
第一天刚开始拿到题的时候根本不知道从那里下手,有点仗二的和尚摸不到头脑,没办法,只要看书,看前面老师做的讲解及应用的方法,“庖丁解牛”及“举一反三”,尤其是举一反三的方法,让我有了很大收获,有个编辑的大体思路,框架出来了一切都好解决了,该注重一些分模块及细节方面的问题,一点点来,没有耐性绝对不行。
最后要特别感谢老师的指导和同学们的帮助!
第三章参考文献
[1]谭浩强.C程序设计(第四版)[M].北京:
清华大学出版社,2010.
[2]谭浩强.C程序设计(第四版)学习辅助[M]北京:
清华大学出版社,2010.
[3]张冬梅,刘远兴.基于PBL的C语言课程设计及学习指导[M]北京:
清华大学出版社,2011.