C语言专业课程设计报告范例Word下载.docx
- 文档编号:14367019
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:17
- 大小:206.95KB
C语言专业课程设计报告范例Word下载.docx
《C语言专业课程设计报告范例Word下载.docx》由会员分享,可在线阅读,更多相关《C语言专业课程设计报告范例Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程设计开发文档的能力(书写课程设计报告);
二、课程设计报告正文
(1)课程设计题目的原文;
假定民航机场共有n个航班:
航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。
试设计一民航订票系统,使之能提供下列服务:
航班信息录入功能(文件保存)
完成航班信息浏览功能;
查询航线(至少一种查询方式)。
(2)题目的分析(需求分析);
任务:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中)
浏览:
航班信息浏览功能需要提供显示操作;
查询:
可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);
另外要提供键盘式选择菜单以实现功能选择。
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。
(3)整体设计与模块划分;
根据需求分析,该程序可分为以下四大模块:
(4)代码设计;
包括——各功能模块的流程图;
重要模块中关键部分的代码分析;
关键函数的算法设计和分析;
等等;
(1)分析:
主函数的功能比较简单,形式比较简洁,主要功能为:
在系统中没有程序所要的文件时,为程序建立一个所许的文件;
调用菜单函数。
程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!
本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。
菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:
用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;
用一个switch语句来选择用户所要用到的函数。
(2)程序:
voidmenu()
{
intn,w;
do
puts("
\t\t***********************MENU***************************\n\n"
);
\t\t\t\tnewdata"
\t\t\t\tall"
\t\t\t\t"
\n\n\t\t***************************************************\n"
printf("
Choiceyournumber(1-4):
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
4)
{
w=1;
getchar();
}
elsew=0;
}
while(w==1);
switch(n)
{
case1:
enter();
break;
case2:
Browse();
case3:
Search();
case4:
exit(0);
}
/**********************主函数*********************/
main()
{menu();
各功能模块中的分程序中的交错的较多,因而,本程序的公共函有5个,这使得各功能模块函数显得简洁,这是程序的一个特点。
此处的公共函数的功能较为简单,但他很实用。
1、把航班信息输入到文件中的函数。
voidinput(i)
structflightt;
printf("
\nflight_nostartstationendstationflytimeplan_ticketsell_ticket\n"
scanf("
%d%s%s%s%d%d"
,,,&
fp=fopen("
"
"
ab"
if(!
fp){printf("
cannotopenthisfile\n"
elsefwrite(&
t,sizeof(structflight),1,fp);
fclose(fp);
2、输出一个航班信息函数
voidprintf_oneflight(inti)
\n%5d%20s%20s%10s%4d%4d\n"
fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);
3、输出文件内容结构函数
voidprintf_face()
\n\tNO.startstationendstationflytimeplan_ticketsell_ticket\n"
4、载入函数实现文件内容载入程序,并返回飞机航班数值。
intload()
FILE*fp;
inti;
if((fp=fopen("
rb"
))==NULL)
\nCannotopenfile\n"
exit(0);
for(i=0;
!
feof(fp);
i++)
fread(&
fly[i],sizeof(structflight),1,fp);
return(i-1);
5、返回退出函数实现程序退出、返回。
voidprintf_back()
intw;
\n\n\tSuccessful.^_^\n\n"
Whatdoyouwanttodo?
\n\n\t1).Browseallnow\t2).back:
[]\b\b"
w);
if(w==1)Browse();
elsemenu();
航班信息录入函数:
航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现。
但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能。
不过本程序采用的是fwrite函数。
再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦!
[流程图]输入信息
voidenter()
inti,n;
Howmanyflightsdoyouwantinput?
:
[]\b\b"
\nEnterdatanow\n\n"
i<
n;
\nInput%dthfloatrecord.\n"
i+1);
input(i);
printf_back();
D.航班信息浏览模块
[流程图]显示信息
显示航班信息:
voidBrowse()
n=load();
printf_face();
if(i%10==0)
\nPressanykeytocontiune..."
getchar();
puts("
\n\n"
printf_oneflight(i);
\tThereare%drecord.\n"
n);
\nPressanykeytoback...\n"
getchar();
menu();
E.航班信息查询模块
分析:
基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。
在查询小模块中采用了直接查找的方法。
本模块可以通过多种查询方式进行完善。
这是本程序没有做的地方。
[流程图]
程序:
voidSearch()
intm,i,flight_no,flag=0;
Pleaseinputflight_no:
\n"
flight_no);
m=load();
m;
if(flight_no==fly[i].flight_no)
flag=1;
printf("
\nTheflightmessageis:
printf_oneflight(i);
if(flag==1)
Found!
else
NotFound!
(5)运行与测试报告:
在第一步编程过程中很顺利的编写好了各模块,最后整合成了一个完整的程序,但在调试过程中遇到了许多问题。
如一些由于粗心导致分号,括号,字母输错的例子很多。
但都很快改正。
还有函数调用错误fp=fopen("
我在写时丢了fopen结果一直错误,并且发现不了,后来请老师才解决问题。
还有写程序中我经常忘记头文件包含命令,以及函数声明,导致调试中出现警告。
这让我体会到只有耐心的一行一行的改错误才能把程序调试好。
运行中遇到问题:
例如,对数据的写文件操作中,我把存在fly[N]中的数据以fwrite(&
fly[N,sizeof(structflight),1,fp)写入文件,结果发现文件中总是不能出现数据。
以至程序不能运行后面部分。
后来才发现取得地址错了应改成fwrite(&
t,sizeof(structflight),1,fp)。
在机票显示阶段就是这问题让程序出现错误。
不能正确读出输入的飞机航班信息。
三、总结
程序整体上运行与题目要求很吻合,算法大多比较通用,各个函数模块的正确性、完备性、对输入的容错能力以及算法的进一步改进在设计中都有表述,这道题使我熟悉了文件的输入输出操作,真切的感受到了fprintf和fwrite函数的区别!
回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。
通过这次课程设计使我懂得了理论与实际相结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计 报告 范例
![提示](https://static.bdocx.com/images/bang_tan.gif)