C程序设计 实习报告 正文.docx
- 文档编号:6809845
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:18
- 大小:452.42KB
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;i if(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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 实习报告 正文 程序设计 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)