《面向过程程序设计实践》课题课件文档格式.docx
《《面向过程程序设计实践》课题课件文档格式.docx》由会员分享,可在线阅读,更多相关《《面向过程程序设计实践》课题课件文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
![《面向过程程序设计实践》课题课件文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/e19c28ec-821d-43d0-9df3-fb740c39651d/e19c28ec-821d-43d0-9df3-fb740c39651d1.gif)
//初始化列表
voidcreate_hb(hbnum*hb);
//从文件中加载数据
voidappend_hb(hbnum*hb,hbinfox);
/*添加数据*/
voiddisplay_hb(hbnumhb);
/*输出航班信息表*/
voiddisplay_xs(hbnumhb);
/*输出航班销售信息表*/
hbinfosearch_hb(hbnumhb,intid);
//根据id查找航班的售票情况
hbnumupdate_hb(hbnumhb,hbinfox);
//根据id修改航班信息
voiddele_hb(hbnum*hb,intid);
//删除航班信息
voidInsertSort_hb(hbnum*r);
//排序
voidsave_hb(hbnum*hb);
//将数据保存到文件中
//航线
voidinit_hx(hxnum*hx);
voidcreate_hx(hxnum*hx);
voidappend_hx(hxnum*hx,hxinfox);
voiddisplay_hx(hxnumhx);
hxinfosearch_hx(hxnumhx,intid);
hxnumupdate_hx(hxnumhb,hxinfox);
//根据id修改航线信息
voiddele_hx(hxnum*hx,intid);
voidInsertSort_hx(hxnum*r);
voidsave_hx(hxnum*hx);
//售票
voidinit_sp(spnum*sp);
voidcreate_sp(spnum*sp);
voidappend_sp(spnum*sp,spinfox);
voiddisplay_sp(spnumsp);
spinfosearch_sp(spnumsp,intid);
voidsearch_mx(spnumsp,intid);
intsearch_tj(spnumsp,intid);
voiddele_sp(spnum*sp,intid);
voidInsertSort_sp(spnum*r);
voidsave_sp(spnum*sp);
/*主函数*/
main(){
hbnumhb;
hxnumhx;
spnumsp;
init_hb(&
hb);
//初始化航班表
create_hb(&
//创建航班表
init_hx(&
hx);
//初始航线表
create_hx(&
//创建航线表
init_sp(&
sp);
//初始化售票表
create_sp(&
//创建售票表
InsertSort_hb(&
//对航班表排序
InsertSort_hx(&
//对航线表排序
InsertSort_sp(&
//对售票表排序
menu();
save_hb(&
save_hx(&
save_sp(&
}
/****************************************************/
/*函数定义函数名称:
menu功能描述:
实现主菜单功能的循环选择。
*/
voidmenu(){
intj;
hbinfohb_up,hb_sea,hb_add;
hxinfohx_up,hx_sea,hx_add;
spinfosp_sea,sp_add;
intid,total;
printf("
\n\n\n\n$---------------------------------$\n"
);
|**welcome**|\n"
^_^管理员能查看和查询的航空信息^_^\n"
\n\n输入航班信息:
\n\n"
1添加新的航班\n"
2添加新的航线\n"
3修改航班信息\n"
4修改航线信息\n"
5根据航班编号删除航班\n"
6根据航班编号删除航班\n"
7显示指定航班的售票情况(明细)\n"
8显示指定航班的售票情况(统计值)\n"
9显示各航班的销售情况\n"
0返回菜单:
"
请选择按键<
0-6>
:
scanf("
%d"
&
j);
if(j!
=1&
&
j!
=0&
=2&
=3&
=4&
=5&
=6&
=7&
=8&
=9){
您输入的选项不存在,请重新输入:
"
}
else{
switch(j){
case1:
{
\nInputahxdentinformation:
\n"
scanf("
%d%d%s%d%s%s"
&
hb_add.hbId,&
hb_add.hxId,&
hb_add.qifei,&
hb_add.emptytotal,&
hb_add.price,&
hb_add.state);
append_hb(&
hb,hb_add);
display_hb(hb);
break;
case2:
{printf("
%d%s%s%s%s"
hx_add.hxId,&
hx_add.qidian,&
hx_add.zhongdian,&
hx_add.gongli,&
hx_add.flytime);
append_hx(&
hx,hx_add);
display_hx(hx);
case3:
\nInputupdateid:
hb_up.hbId);
printf("
\nInputupdatehx,qifeishijian,kongpiao,price,state:
%d%s%d%s%s"
hb_up.hxId,&
hb_up.qifei,&
hb_up.emptytotal,&
hb_up.price,&
hb_up.state);
hb=update_hb(hb,hb_up);
/*输出学生信息表*/
case4:
hx_up.hxId);
%d%s%s"
hx_up.qidian,&
hx_up.zhongdian,&
hx_up.gongli,&
hx_up.flytime);
hx=update_hx(hx,hx_up);
case5:
\nInputayouwangdeletehangbanid:
id);
dele_hb(&
hb,id);
case6:
case7:
\nInputahangbanid:
search_mx(sp,id);
case8:
total=search_tj(sp,id);
%d\n"
total);
case9:
{display_xs(hb);
case0:
{menu();
航班信息
#include<
stdio.h>
stdlib.h>
string.h>
#defineMAXhbsize100
#defineNUMBER50
typedefstruct
inthxId;
charqifei[NUMBER];
intemptytotal;
charprice[NUMBER];
charstate[NUMBER];
}hbinfo;
hbinfoa[MAXhbsize];
inthbsize;
}hbnum;
/*置一个空表*/
voidinit_hb(hbnum*hb)
hb->
hbsize=0;
/*创建航班表并从文件读取*/
voidcreate_hb(hbnum*hb)
FILE*fp;
inti=0;
if((fp=fopen("
hangban.txt"
"
r"
))==NULL)
{
canhIdtopenfile!
exit(-1);
while(!
feof(fp))
fscanf(fp,"
hb->
a[i].hbId,&
a[i].hxId,&
a[i].qifei,&
a[i].emptytotal,&
a[i].price,&
a[i].state);
i++;
hb->
hbsize++;
fclose(fp);
/*追加航班信息*/
voidappend_hb(hbnum*hb,hbinfox)
if(hb->
hbsize==MAXhbsize){
Thesequenceisfull!
exit
(1);
a[hb->
hbsize]=x;
voiddisplay_hb(hbnumhb)
inti;
if(!
hb.hbsize){
\nemptytable"
for(i=0;
i<
hb.hbsize;
i++){
printf("
%d,%d,%s,%d,%s,%s\n"
hb.a[i].hbId,hb.a[i].hxId,hb.a[i].qifei,hb.a[i].emptytotal,hb.a[i].price,hb.a[i].state);
}
航班编号,可售机票总数\n"
%d,%d\n"
hb.a[i].hbId,hb.a[i].emptytotal);
/*判断所查找学生是否在创建的学生表内*/
hbinfosearch_hb(hbnumhb,inthId)
inti=0;
while(i<
hb.hbsize&
hb.a[i].hbId!
=hId){i++;
returnhb.a[i];
/*根据id修改航班信息*/
hbnumupdate_hb(hbnumhb,hbinfox){
=x.hbId){i++;
hb.a[i]=x;
returnhb;
/*删除航班数据*/
voiddele_hb(hbnum*hb,intid)
inti=0,j;
hbsize==0)
\n顺序表是空的"
exit
(1);
while(i<
hbsize&
id!
=hb->
a[i].hbId)
if(i<
0||i>
hbsize){
printf("
\n指定的删除位置不存在!
}else{
for(j=i;
j<
hbsize-1;
j++)
a[j]=hb->
a[j+1];
hbsize--;
/*按学号进行顺序排序*/
voidInsertSort_hb(hbnum*r)
inti,j;
hbinfox;
for(i=1;
i>
r->
hbsize;
i++)/*待插入记录下标为1~r->
len-1*/
x=r->
a[i];
j=i-1;
while(j>
=0&
x.hbId<
r->
a[j].hbId)
{
r->
a[j+1]=r->
a[j];
j--;
r->
a[j+1]=x;
/*保存数据到文件*/
voidsave_hb(hbnum*hb)
w"
for(i=0;
i++)
fprintf(fp,"
%d%d%s%d%s%s\n"
hb->
a[i].hbId,hb->
a[i].hxId,hb->
a[i].qifei,hb->
a[i].emptytotal,hb->
a[i].price,hb->
//voidmain(){
//hbnumhb;
//hbinfoup,sea,add;
//intid;
///*创建一个包含航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)信息表并输出到屏幕,学生信息从recod.txt读取*/
//init(&
//初始化线性表
//create(&
//创建学生表
//printf("
\nsourcelist:
\n"
///*对已建立的学生信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt)*/
//InsertSort(&
//display(hb);
//scanf("
up.hbId);
up.hxId,&
up.qifei,&
up.emptytotal,&
up.price,&
up.state);
//hb=update(hb,up);
////根据id查询航班
//sea=search(hb,id);
////对查找返回的数据进行判断,如果为空则提示没找到,否则输出数据
//if(sea.hbId==0){
nofound%d\n"
id);
//}else{
//printf("
sea.hbId,sea.hxId,sea.qifei,sea.emptytotal,sea.price,sea.state);
}//将查找到的数据输出
///*从键盘输入航班的相关信息插入到已排序的信息表中*/
\nInputahbdentinformation:
add.hbId,&
add.hxId,&
add.qifei,&
add.emptytotal,&
add.price,&
add.state);
//append(&
hb,add);
//dele(&
\nsave-baocun:
//save(&
//getchar();
//}
航线信息
#defineMAXhxsize100
charqidian[NUMBER];
charzhongdian[NUMBER];
chargongli[NUMBER];
charflytime[NUMBER];
}hxinfo;
hxinfoa[MAXhxsize];
inthxsize;
}hxnum;
voidinit_hx(hxnum*hx)
hx->
hxsize=0;
voidcreate_hx(hxnum*hx)
hangxian.txt"
hx->
a[i].hxId,&
a[i].qidian,&
a[i].zhongdian,&
a[i].gongli,&
a[i].flytime);
hx->
hxsize++;
voidappend_hx(hxnum*hx,hxinfox)
if(hx->
hxsize==MAXhxsize){
a[hx->
hxsize]=x;
voiddisplay_hx(hxnumhx)
hx.hxsize){
i