C程序设计 实习报告 正文.docx

上传人:b****5 文档编号:6809845 上传时间:2023-01-10 格式:DOCX 页数:18 大小:452.42KB
下载 相关 举报
C程序设计 实习报告 正文.docx_第1页
第1页 / 共18页
C程序设计 实习报告 正文.docx_第2页
第2页 / 共18页
C程序设计 实习报告 正文.docx_第3页
第3页 / 共18页
C程序设计 实习报告 正文.docx_第4页
第4页 / 共18页
C程序设计 实习报告 正文.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C程序设计 实习报告 正文.docx

《C程序设计 实习报告 正文.docx》由会员分享,可在线阅读,更多相关《C程序设计 实习报告 正文.docx(18页珍藏版)》请在冰豆网上搜索。

C程序设计 实习报告 正文.docx

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.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1