C语言课程设计

发布 2022-09-30 17:08:28 阅读 7075

(2)题目的分析(需求分析);

任务:通过此系统可以实现如下功能:

录入: 可以录入航班情况(数据可以存储在一个数据文件中)

浏览:航班信息浏览功能需要提供显示操作;

查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。

要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。

3)整体设计与模块划分;

根据需求分析,该程序可分为以下四大模块:

4)**设计;

包括——各功能模块的流程图;重要模块中关键部分的**分析;关键函数的算法设计和分析;等等;

一)主函数。

1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所许的文件;调用菜单函数。

程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。

菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。

2)程序:void menu()

int n,w;

doputs("\t\tmenun");

puts("\t\t\t\t new data");

puts("\t\t\t\t all");

puts("\t\t\t\t ")

puts("\t\t\t\t ")

puts("\t\tn");

printf("choice your number(1-4): b\b");

scanf("%d",&n);

if(n<1||n>4)

else w=0;

while(w==1);

switch(n)

主函数。main()

menu();

二)公共函数。

1)分析:各功能模块中的分程序中的交错的较多,因而,本程序的公共函有5个,这使得各功能模块函数显得简洁,这是程序的一个特点。此处的公共函数的功能较为简单,但他很实用。

2)程序:1、把航班信息输入到文件中的函数。

void input(i)

struct flight t;

printf("flight_no startstation endstation flytime plan_ticket sell_ticket");

scanf("%d%s%s%s%d%d",&

fp=fopen(""ab");

if(!fp)

else fwrite(&t,sizeof(struct flight),1,fp);

fclose(fp);

2、输出一个航班信息函数。

void printf_oneflight(int i)

printf("%5d%20s%20s%10s%4d%4d",fly[i].flight_no,fly[i].startstation,fly[i].

endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].

sell_ticket);

3、输出文件内容结构函数。

void printf_face()

printf("\tno. startstation endstation flytime plan_ticket sell_ticket");

4、载入函数实现文件内容载入程序,并返回飞机航班数值。

int load()

file *fp;

int i;

if((fp=fopen(""rb"))null)

for(i=0;!feof(fp);i++)

fread(&fly[i],sizeof(struct flight),1,fp);

fclose(fp);

return(i-1);

5、返回退出函数实现程序退出、返回。

void printf_back()

int w;

printf("\tsuccessful.^_n");

printf("what do you want to do?\t1).browse all now\t2).back:b\b");

scanf("%d",&w);

if(w==1) browse();

else menu();

三)航班基本信息输入模块。

航班信息录入函数:

1)分析:航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现。但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能。

不过本程序采用的是fwrite函数。再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦!

流程图]输入信息。

2)程序:void enter()

int i,n;

printf("how many flights do you want input? :b\b");

scanf("%d",&n);

printf(" enter data now");

for(i=0;i

printf_back();

航班信息浏览函数:

流程图]显示信息。

显示航班信息:

void browse()

int i,n;

n=load();

printf_face();

for(i=0;i

puts("");

printf_oneflight(i);

printf("\tthere are %d record.",n);

printf("press any key to back ..n");

getchar();

menu();

查询模块:分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。

在查询小模块中采用了直接查找的方法。本模块可以通过多种查询方式进行完善。这是本程序没有做的地方。

流程图]程序:

void search()

int m,i,flight_no,flag=0;

printf("please input flight_no:");

scanf("%d",&flight_no);

m=load();

for(i=0;i

if(flag==1)

printf("found!")

elseprintf("not found!")

printf_back();

5)运行与测试报告:

在第一步编程过程中很顺利的编写好了各模块,最后整合成了一个完整的程序,但在调试过程中遇到了许多问题。如一些由于粗心导致分号,括号,字母输错的例子很多。但都很快改正。

还有函数调用错误fp=fopen(""ab");我在写时丢了fopen结果一直错误,并且发现不了,后来请老师才解决问题。还有写程序中我经常忘记头文件包含命令,以及函数声明,导致调试**现警告。这让我体会到只有耐心的一行一行的改错误才能把程序调试好。

运行中遇到问题:例如,对数据的写文件操作中,我把存在fly[n]中的数据以fwrite(&fly[n,sizeof(struct flight),1,fp)写入文件,结果发现文件中总是不能出现数据。以至程序不能运行后面部分。

后来才发现取得地址错了应改成fwrite(&t,sizeof(struct flight),1,fp)。在机票显示阶段就是这问题让程序出现错误。不能正确读出输入的飞机航班信息。

三、总结。程序整体上运行与题目要求很吻合,算法大多比较通用,各个函数模块的正确性、完备性、对输入的容错能力以及算法的进一步改进在设计中都有表述,这道题使我熟悉了文件的输入输出操作,真切的感受到了fprintf和fwrite函数的区别!

回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。

C语言课程课程设计

课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...