c语言课程设计.docx
《c语言课程设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计.docx(34页珍藏版)》请在冰点文库上搜索。
![c语言课程设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/505cf179-0f85-4f35-8389-b8f4a919240c/505cf179-0f85-4f35-8389-b8f4a919240c1.gif)
c语言课程设计
《C语言课程设计》报告
题目:
车票管理系统
班级:
风能1241
学号:
1203441129
姓名:
王金成
指导老师:
王妍
成绩:
目录
一、课程设计目的和意义1
二、总体设计思路(功能模块图)1
三、详细设计1
1、模块功能介绍1
2、程序清单3
3系统运行结果、22
四、课程设计总结体会24
五、教师评语25
一、课程设计目的和意义
本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
通过这次设计,要在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
二、总体设计思路(功能模块图)
系统功能模块图:
三、详细设计
1、模块功能介绍
(1)功能
1.浏览班次信息
2.查询班次:
①按班次查询;②按终点查询;
3.售票
(1)售票成功(当车票有剩余,且车未发出时)
(2)班次不存在
(3)票已售完(当座位数小于等于已定票人数)
(4)车已发出
4.退票
退票成功(输入的班次号存在且当前时间比发车时间早)
退票失败(班次不存在或当前时间比发车时间晚)
(2)、流程图
车票查询
售票
2、程序清单
#include
#include/*时间库函数*/
#include/*调用系统函数*/
#include/*串操作及内存操作函数*/
#include
#include
#defineN80/*宏定义多条记录*/
voidmaipiao(ints,intt);/*函数定义*/
floattimes(intk);
inthour(intk)
{
switch(k)
{
case1:
return07;break;
case2:
return10;break;
case3:
return13;break;
case4:
return16;break;
case5:
return19;break;
case6:
return21;break;/*d到长春一天的发车时间小时段*/
case7:
return07;break;
case8:
return11;break;
case9:
return15;break;
case10:
return19;break;
case11:
return23;break;/*d到四平一天的发车时间小时段*/
case12:
return07;break;
case13:
return11;break;
case14:
return15;break;
case15:
return19;break;
case16:
return23;break;/*d到沈阳一天的发车时间小时段*/
case17:
return07;break;
case18:
return11;break;
case19:
return16;break;
case20:
return20;break;/*d到锦州一天的发车时间小时段*/
case21:
return07;break;
case22:
return12;break;
case23:
return17;break;
case24:
return22;break;/*d到山海关一天的发车时间小时段*/
case25:
return07;break;
case26:
return14;break;
case27:
return19;break;
case28:
return22;break;/*d到北京一天的发车时间小时段*/
}
}/*开车时间段*/
intminute(intk)
{
switch(k)
{
case1:
return00;break;
case2:
return00;break;
case3:
return00;break;
case4:
return00;break;
case5:
return00;break;
case6:
return00;break;/*d到长春一天的发车时间分钟段*/
case7:
return00;break;
case8:
return00;break;
case9:
return00;break;
case10:
return00;break;
case11:
return00;break;/*d到四平一天的发车时间分钟段*/
case12:
return00;break;
case13:
return00;break;
case14:
return00;break;
case15:
return00;break;
case16:
return00;break;/*d到沈阳一天的发车时间分钟段*/
case17:
return00;break;
case18:
return30;break;
case19:
return00;break;
case20:
return30;break;/*d到锦州一天的发车时间分钟段*/
case21:
return00;break;
case22:
return30;break;
case23:
return00;break;
case24:
return30;break;/*d到山海关一天的发车时间分钟段*/
case25:
return30;break;
case26:
return00;break;
case27:
return30;break;
case28:
return30;break;/*d到北京一天的发车时间分钟段*/
}
}/*开车时间段*/
voidwap(intk)
{
switch(k)
{
case1:
printf("长春");break;
case2:
printf("四平");break;
case3:
printf("沈阳");break;
case4:
printf("锦州");break;
case5:
printf("山海关");break;
case6:
printf("北京");break;
}
}/*输入终点站的函数*/
intshijian()
{
structtm*ptr;
time_tlt;
lt=time(NULL);
ptr=gmtime(<);
printf(ctime(<));
return0;
}/*输出当前时间的函数*/
floattimes(intk)
{
floatt;
if(k==1)
t=1.5;
if(k==2)
t=3.0;
if(k==3||k==4)
t=4.0;
if(k==5||k==6)
t=4.5;
returnt;
}/*输入行车时间的函数*/
intnumber(intk)
{
intf;
if(k==1||k==2)
f=30;
if(k==3||k==4)
f=40;
if(k==5||k==6)
f=45;
returnf;
}/*输入最大载客量的函数*/
intnownumber(intk,inti)
{
intn=0;
charfilename[10];
switch(i)
{
case1:
strcpy(filename,"qiu1.txt");break;
case2:
strcpy(filename,"qiu2.txt");break;
case3:
strcpy(filename,"qiu3.txt");break;
case4:
strcpy(filename,"qiu4.txt");break;
case5:
strcpy(filename,"qiu5.txt");break;
case6:
strcpy(filename,"qiu6.txt");break;
case7:
strcpy(filename,"qiu7.txt");break;
case8:
strcpy(filename,"qiu8.txt");break;
case9:
strcpy(filename,"qiu9.txt");break;
case10:
strcpy(filename,"qiu10.txt");break;
case11:
strcpy(filename,"qiu11.txt");break;
case12:
strcpy(filename,"qiu12.txt");break;
case13:
strcpy(filename,"qiu13.txt");break;
case14:
strcpy(filename,"qiu14.txt");break;
case15:
strcpy(filename,"qiu15.txt");break;
case16:
strcpy(filename,"qiu16.txt");break;
case17:
strcpy(filename,"qiu17.txt");break;
case18:
strcpy(filename,"qiu18.txt");break;
case19:
strcpy(filename,"qiu19.txt");break;
case20:
strcpy(filename,"qiu20.txt");break;
case21:
strcpy(filename,"qiu21.txt");break;
case22:
strcpy(filename,"qiu22.txt");break;
case23:
strcpy(filename,"qiu23.txt");break;
case24:
strcpy(filename,"qiu24.txt");break;
case25:
strcpy(filename,"qiu25.txt");break;
case26:
strcpy(filename,"qiu26.txt");break;
case27:
strcpy(filename,"qiu27.txt");break;
case28:
strcpy(filename,"qiu28.txt");break;
case29:
strcpy(filename,"qiu29.txt");break;
}
FILE*fp;
if((fp=fopen(filename,"rt+"))==NULL)
{
printf("cannotopenfile,strikeanykeyexit!
");
exit
(1);
}
fscanf(fp,"%d",&n);
n=n+k;
rewind(fp);
fprintf(fp,"%d",n);//将输入数组里面的数据写到文本里
fclose(fp);
returnn;
}/*现在已定票人数*/
inttangci(intk)
{
intx;
switch(k)
{
case1:
x=6;break;
case2:
x=5;break;
case3:
x=5;break;
case4:
x=4;break;
case5:
x=4;break;
case6:
x=4;break;
default:
x=0;break;
}
returnx;
}/*确定每个地方一天行车趟次的函数*/
voidjiemian()
{
printf("**********************************************************************\n");
printf("*************************欢迎来到车票查询系统*************************");
printf("\n");
printf("|★★★a:
进入班次一览★★★|\n");
printf("|★★★b:
进入查询班次★★★|\n");
printf("|★★★c:
进入终点站查询★★★|\n");
printf("|★★★d:
售票★★★|\n");
printf("|★★★e:
退票★★★|\n");
printf("|★★★f:
增加班次★★★|\n");
printf("***********************************************************************\n");
printf("\n请选择(a-e):
☆☆☆");
}/*界面函数*/
voidbanci(ints,intt)
{
system("cls");/*清屏*/
inti,flag=1,m,k=1,o=0;/*定义一些要用的数据*/
printf("车票管理系统");
printf("\n");
printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态");
printf("\n");
for(i=1;i<=N;i++)
{
if(flag)
{
m=i+tangci(k)-1;
flag=0;
}/*计算同一个终点站的班次范围*/
if(i>=10)
printf("%d",i);
else
printf("%d",i);
if(hour(i)>=10)
printf("%d",hour(i));/*进行页面的调整,美观*/
else
printf("%d%d",o,hour(i));
if(minute(i)>=10)
printf("%d",minute(i));
else
printf("%d%d",o,minute(i));
printf("长春");
wap(k);
printf("%lf",times(k));
printf("%d",number(k));
printf("%d",nownumber(0,i));
if(sprintf("未发出");
elseif(tprintf("未发出");
else
printf("已发出");
printf("\n");
if(i==m)
{
flag=1;
k++;
}
if(k>6)
break;
}
}/*班次一览*/
voidchaxun1(ints,intt)
{
system("cls");
inti,k=0,n,o=0;
printf("\n请输入要查询的班次i:
");
scanf("%d",&i);
n=i;
while(n>0)
{
k++;
n=n-tangci(k);
}
printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");
if(i>=10)
printf("%d",i);
else
printf("%d",i);
if(hour(i)>=10)
printf("%d",hour(i));
else
printf("%d%d",o,hour(i));
if(minute(i)>=10)
printf("%d",minute(i));
else
printf("%d%d",o,minute(i));
printf("长春");
wap(k);
printf("%f",times(k));
printf("%d",number(k));
printf("%d",nownumber(0,i));
if(sprintf("未发出");
elseif(tprintf("未发出");
else
printf("已发出");
printf("\n");
printf("返回重新查询:
3,输入其他返回:
\n");
scanf("%d",&n);
while(n==3)/*循环*/
{
system("cls");
printf("\n请输入要查询的班次i:
");
scanf("%d",&i);
printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");
if(i>=10)
printf("%d",i);
else
printf("%d",i);
if(hour(i)>=10)
printf("%d",hour(i));
else
printf("%d%d",o,hour(i));
if(minute(i)>=10)
printf("%d",minute(i));
else
printf("%d%d",o,minute(i));
printf("长春");
wap(k);
printf("%f",times(k));
printf("%d",number(k));
printf("%d",nownumber(0,i));
if(sprintf("未发出");
elseif(tprintf("未发出");
else
printf("已发出");
printf("\n");
printf("返回重新查询:
3,输入其他返回:
\n");
scanf("%d",&n);
}
}/*按班次查询*/
voidchaxun2(ints,intt)
{
system("cls");
inti,k=1,m,j,l=0,o=0;
printf("请输入你要查询的终点站:
\n");
printf("1:
长春.2:
四平.3:
沈阳.4:
锦州.5:
山海关.6:
北京.\n");
scanf("%d",&m);
for(j=1;jk=k+tangci(j);
for(j=1;j<=m;j++)
l=l+tangci(j);
printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");
for(i=k;i<=l;i++)
{
if(i>=10)
printf("%d",i);
else
printf("%d",i);
if(hour(i)>=10)
printf("%d",hour(i));
else
printf("%d%d",o,hour(i));
if(minute(i)>=10)
printf("%d",minute(i));
else
printf("%d%d",o,minute(i));
printf("长春");
wap(m);
printf("%f",times(m));
printf("%d",number(m));
printf("%d",nownumber(0,i));
if(sprintf("未发出");
elseif(tprintf("未发出");
else
printf("已发出");
printf("\n");
}
printf("重新查询请输入11,直接买票请输入12,输入其他退出!
:
\n");
scanf("%d",&m);
while(m==11)
{
k=1;
l=0;
printf("请输入你要查询的终点站:
\n");
printf("1:
长春.2:
四平3沈阳.4锦州.5:
山海关.6:
北京.\n");
scanf("%d",&m);
for(j=1;jk=k+tangci(j);
for(j=1;j<=m;j++)
l=l+tangci(j);
printf("班次发车时间起点站终点站行车时间额定数量已订票人数状态\n");
for(i=k;i<=l;i++)
{
if(i>=10)
printf("%d",i);
else
printf("%d",i);
if(hour(i)>=10)
printf("%d",hour(i));
else
printf("%d%d",o,hour(i));
if(minute(i)>=10)
printf("%d",minute(i));
else
printf("%d%d",o,minute(i));
printf("长春");
wap(m);
printf("%f",times(m));
printf("%d",