青岛理工大学c语言课设航空管理系统.docx
- 文档编号:10342263
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:24
- 大小:174.25KB
青岛理工大学c语言课设航空管理系统.docx
《青岛理工大学c语言课设航空管理系统.docx》由会员分享,可在线阅读,更多相关《青岛理工大学c语言课设航空管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
青岛理工大学c语言课设航空管理系统
青岛理工大学
《C语言程序设计》
题目航空信息管理程序
指导教师:
周全强
姓名:
学号:
班级:
专业:
软件工程
地点:
计算机工程学院机房
时间:
2014.6.30至2014.7.4
一、内容
航空信息管理程序
本系统主要实现了对航空信息的航班号,机型,座位数,起飞时间,降落时间管理,具体有对航班号,机型,起飞时间,降落时间储存入文件,添加入文件,修改数据,删除数据,查询对应数据的功能;在应用该航空管理系统时应注意所输入信息的合法性,除座位数是整形外其他均为字符型数组。
二、上机环境
操作系统:
window8.1
开发工具:
VC++6.0
三、函数调用关系图
main()
deletestud()
newaddstud()
amendstud()
querymenu()
readstud()
query()
四、各函数功能说明
1,voidmain()主函数输出主菜单
2,voidnewaddstud(intn)新建或者添加内容
3,voiddeletestud()删除信息
4,voidamendstud()修改信息
5,voidquerymenu()查询菜单
6,voidquery(char[],intn)查询
7,aviation*readstud()读取文件内容
五、流程图
1,main()
开始
主菜单
输入序号sel
sel=1?
n
sel=0?
yn
调用新建航空信息函数
Yy
结束
sel=2?
n
y
调用添加航空信息函数
sel=3?
n
y
调用删除航空信息函数
sel=4?
n
y
调用修改航空信息函数
sel=5?
?
n
调用查询航空信息函数
y
2,voidnewaddstud(intn)
开始
读入参数n
建立链表,并在链表中存入数据
n=1?
n
以添加的方式打开文件
以写的方式打开文件
y
将链表输入文件
关闭文件
结束
3,voiddeletestud()
开始
调用查询函数,显示全部内容
输入删除内容n
n=1?
n
y
全删
n=0?
n
输入删除条件
y
删除对应信息
结束
4,voidamendstud()
开始
调用查询函数,显示全部内容
输入修改内容n
n=0?
n
y
输入修改条件
查找对应信息
输入修改内容
结束
5,voidquerymenu()
开始
查询菜单
输入序号sel
sel=1?
n
y
按航班号
查询
Y
sel=2?
n
按机型查询
y
sel=3?
n
y
按起飞时间查询
sel=4?
n
按降落时间查询
y
sel=5?
?
sel=0?
nn
查询全部
yy
结束
6,voidquery(char[],intn)
开始
读入查询项目
输入查询内容n
显示内容
结束
7,aviation*readstud()
开始
读方式打开文件
读取文件写入链表,返回head
关闭文件
结束
六、程序运行效果图
图1主菜单
图2新建文件警告
图3添加航班信息
图4删除航班信息
图5修改航班信息
图6查询菜单
图7查询结果显示
七、总结
经过为期一周的课程设计,我经历了很多困难,很多挫折,但是也锻炼了自己,同时也学习到了更多的知识。
充分的把自己的所学用于实践。
在这一个周的时间了,我重新巩固了所学的c语言,重新弥补了自己的不足。
学习了一个学期的c语言,在这一周里得到了充分的利用。
在写程序的过程中,我遇到了很多挫折,程序也出现了很多bug,有时候一丁点错误也会需要很长的时间去寻找,有时候也会因为知识不足而导致错误。
在这段时间里,我发现了自己很多不足,发现自己实际运用的能力还不够,还应该多写一些代码,多熟悉,多学习,多看一些好的代码,去完善自己的代码。
这一次课程设计也是对我这一学期学习的一次检验,也是我对软件工程的一次亲密接触,让我充分认识到软件设计的魅力。
我们大学生就应该学会把理论用于实践,不能纸上谈兵。
在写代码的过程中,出现了很多小错误,语法错误,有时候一个分号就能使程序出错,有时候不够细心就能让你折腾很久。
在经历了这周的课程设计,我觉得我们应该多练,多总结经验,才能让自己有所提高。
只有不断的努力才能让自己的程序写的更好更全面。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,是生活也更加好。
八、参考文献
[1]李春葆.C语言程序设计教程(第二版).清华大学出版,2011
九、程序清单
#include
#include
#include
#include
typedefstructaviation//航空信息结构体
{
charnumber[10];//航班号
charmodel[20];//机型
intseat;//座位数
charup[15];//起飞时间
chardown[15];//降落时间
structaviation*next;
}aviation;
voidnewaddstud(intn);//新建及添加函数
voiddeletestud();//删除函数
voidamendstud();//修改函数
voidquerymenu();//查询菜单函数
voidquery(char[],intn);//查询函数
aviation*readstud();//读取文件函数
voidmain()
{
intsel,i;
do
{
printf("\n\n\n\n\t\t========================================\t\t\t\n");
printf("\t\t*菜单*\t\t\t\n");
printf("\t\t*1,新建航空信息;*\t\t\t\n");//主菜单
printf("\t\t*2,添加航空信息;*\t\t\t\n");
printf("\t\t*3,删除航空信息;*\t\t\t\n");
printf("\t\t*4,修改航空信息;*\t\t\t\n");
printf("\t\t*5,查询航空信息;*\t\t\t\n");
printf("\t\t*0,结束.*\t\t\t\n");
printf("\t\t========================================\t\t\t\n");
scanf("%d",&sel);
system("CLS");//选择菜单选项
switch(sel)//转到菜单对应函数
{
case1:
{
printf("\n\n\n\n================================================================================\n");
printf("警告!
\n");
printf("如果选择新建文件将会覆盖之前输入的信息\n");
printf("1,继续0,返回\n");
printf("================================================================================\n");
scanf("%d",&i);
system("CLS");
if(i==1)
{
newaddstud
(1);system("CLS");break;
}
}
break;
case2:
newaddstud
(2);system("CLS");break;
case3:
deletestud();system("CLS");break;
case4:
amendstud();system("CLS");break;
case5:
querymenu();system("CLS");break;
case0:
break;
}
}while(sel!
=0);
}
voidnewaddstud(intn)
{
inti;
aviation*head,*p,*s,*r;
head=(aviation*)malloc(sizeof(aviation));
r=head;
printf("请输入航空信息,结束请输入-1:
\n");
printf("-----------------------------------------------------------------------------\n");
printf("航班号\t机型\t座位数\t起飞时间\t降落时间\n");//输入信息,建立链表
for(i=0;;i++)
{
p=(aviation*)malloc(sizeof(aviation));
scanf("%s",p->number);
if(strcmp(p->number,"-1")==0)
break;
scanf("%s%d%s%s",p->model,&p->seat,p->up,p->down);
r->next=p;
r=p;
}
r->next=NULL;
FILE*at;//写或加模式打开文件
if(n==1)
{
if((at=fopen("aviation.txt","w"))==NULL)
{
printf("不能建立文件avition.txt\n");
exit(0);
}
}
else
{
if((at=fopen("aviation.txt","a"))==NULL)
{
printf("不能建立文件avition.txt\n");
exit(0);
}
}
fseek(at,0,2);//将链表写入文件
s=head->next;
while(s!
=NULL)
{
fprintf(at,"%s\t%s\t%d\t%s\t%s\n",s->number,s->model,s->seat,s->up,s->down);
s=s->next;
}
printf("信息添加完成\n按任意键结束\n");
getchar();
getchar();
fclose(at);
}
voiddeletestud()
{
FILE*at;
inti;
charn[20],name[]="0";
aviation*head,*p,*q;
query(name,5);
printf("1,全删0,返回\n");
printf("------------------\n");
printf("请输入需要删除的航班号:
");
scanf("%s",n);//写入删除条件
if(strcmp(n,"1")==0)
{
if((at=fopen("aviation.txt","w+"))==NULL)//全删
{
printf("不能建立文件avition.txt\n");
exit(0);
}
}
elseif(strcmp(n,"0"))
{
head=readstud();
p=head;//在链表中删除节点
q=head->next;
while(q!
=NULL)
{
if(strcmp(q->number,n)==0)
break;
p=q;
q=q->next;
}
if(q!
=NULL)
{
p->next=q->next;
free(q);
at=fopen("aviation.txt","w+");//将删除后的链表写入文件
q=head->next;
while(q!
=NULL)
{
fprintf(at,"%s\t%s\t%d\t%s\t%s\n",q->number,q->model,q->seat,q->up,q->down);
q=q->next;
}
fclose(at);
}
else
printf("删除内容不存在\n");
printf("信息删除完成\n按任意键结束\n");
getchar();
getchar();
}
}
voidamendstud()
{
FILE*at;
inti;
charn[20],name[]="0";
aviation*head,*q;
query(name,5);
printf("--------------------------------\n");
printf("请输入需要修改的航班号0,返回\n");
scanf("%s",n);//修改条件
if(strcmp(n,"0"))
{
head=readstud();//链表中修改节点数据
q=head->next;
while(q!
=NULL)
{
if(strcmp(q->number,n)==0)
{
printf("请输入新的信息:
\n");
scanf("%s%s%d%s%s",q->number,q->model,&q->seat,q->up,q->down);
break;
}
q=q->next;
}
if(q!
=NULL)
{
at=fopen("aviation.txt","w+");//将修改后的链表写入文件
q=head->next;
while(q!
=NULL)
{
fprintf(at,"%s\t%s\t%d\t%s\t%s\n",q->number,q->model,q->seat,q->up,q->down);
q=q->next;
}
fclose(at);
}
else
printf("要修改的信息不存在\n");
printf("信息修改完成\n按任意键结束\n");
getchar();
getchar();
}
}
voidquerymenu()
{
intsel;
charname[20];
do
{
printf("\n\n\n\t\t========================================\t\t\t\n");//查询菜单
printf("\t\t*航空管理查询系统*\t\t\t\n");
printf("\t\t*1,按航班号查询*\t\t\t\n");
printf("\t\t*2,按机型查询*\t\t\t\n");
printf("\t\t*3,按起飞时间查询*\t\t\t\n");
printf("\t\t*4,按降落时间查询*\t\t\t\n");
printf("\t\t*5,查询所有航班信息*\t\t\t\n");
printf("\t\t*0,结束*\t\t\t\n");
printf("\t\t========================================\t\t\t\n");
scanf("%d",&sel);
system("CLS");
switch(sel)
{
case1:
strcpy(name,"航班号");query(name,sel);getchar();getchar();system("CLS");break;
case2:
strcpy(name,"机型");query(name,sel);getchar();getchar();system("CLS");break;
case3:
strcpy(name,"起飞时间");query(name,sel);getchar();getchar();system("CLS");break;
case4:
strcpy(name,"降落时间");query(name,sel);getchar();getchar();system("CLS");break;
case5:
strcpy(name,"所有航班");query(name,sel);getchar();getchar();system("CLS");break;
case0:
break;
}
}while(sel!
=0);
}
aviation*readstud()
{
FILE*at;
aviation*head,*p,*r;
charch;
if((at=fopen("aviation.txt","r"))==NULL)
{
printf("\t\t********不能读取aviation.txt文件********\t\t\n");
getchar();
getchar();
exit(0);
}
ch=fgetc(at);
head=(aviation*)malloc(sizeof(aviation));
r=head;
if(ch!
=EOF)//判断文件是否为空
{
rewind(at);
while(!
feof(at))
{//读文件内容写入链表
p=(aviation*)malloc(sizeof(aviation));
fscanf(at,"%s%s%d%s%s\n",p->number,p->model,&p->seat,p->up,p->down);
r->next=p;
r=p;
}
r->next=NULL;
}
else
head->next=NULL;
fclose(at);
returnhead;
}
voidquery(charname[],intn)
{
aviation*p;
chars[10];
p=readstud();//调用读文件函数生成的链表
p=p->next;
if(n!
=5)
{
printf("--------------------------------------------------------------------\n");
printf("请输入要查询的%s:
",name);
scanf("%s",s);
}
system("CLS");
printf("================================================================================\n");
printf("航空信息表\n");
printf("================================================================================\n");
printf("\t航班号\t机型\t座位数\t起飞时间\t降落时间\t\n");
while(p!
=NULL)
{
switch(n)//根据查询条件分类
{
case1:
if(strcmp(p->number,s)==0)
printf("\t%s\t%s\t%d\t%s\t%s\t\n",p->number,p->model,p->seat,p->up,p->down);break;
case2:
if(strcmp(p->model,s)==0)
printf("\t%s\t%s\t%d\t%s\t%s\t\n",p->number,p->model,p->seat,p->up,p->down);break;
case3:
if(strcmp(p->up,s)==0)
printf("\t%s\t%s\t%d\t%s\t%s\t\n",p->number,p->model,p->seat,p->up,p->down);break;
case4:
if(strcmp(p->down,s)==0)
printf("\t%s\t%s\t%d\t%s\t%s\t\n",p->number,p->model,p->seat,p->up,p->down);break;
case5:
printf("\t%s\t%s\t%d\t%s\t%s\t\n",p->number,p->model,p->seat,p->up,p->down);break;
}
p=p->next;
}
if(n!
=5)
printf("\n\n\t查询完毕\t\n\t按任意键结束\t\n");
printf("=====================================================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 青岛 理工大学 语言 航空 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)