C课设高速公路收费系统设计.docx

上传人:b****5 文档编号:12691454 上传时间:2023-04-21 格式:DOCX 页数:12 大小:129.14KB
下载 相关 举报
C课设高速公路收费系统设计.docx_第1页
第1页 / 共12页
C课设高速公路收费系统设计.docx_第2页
第2页 / 共12页
C课设高速公路收费系统设计.docx_第3页
第3页 / 共12页
C课设高速公路收费系统设计.docx_第4页
第4页 / 共12页
C课设高速公路收费系统设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C课设高速公路收费系统设计.docx

《C课设高速公路收费系统设计.docx》由会员分享,可在线阅读,更多相关《C课设高速公路收费系统设计.docx(12页珍藏版)》请在冰豆网上搜索。

C课设高速公路收费系统设计.docx

C课设高速公路收费系统设计

C课设:

高速公路收费系统设计

 

学校:

西安理工大学

姓名:

陈国平

班级:

电气106

学号:

3100421166

 

(C程序代码和程序运行部分结果)

#include

#include

#include

#include

#defineN1000000

structvehicle/*定义储存车辆信息的结构体*/

{charnum[8];/*车牌号码*/

charvariety;/*车辆类型a,b,c(大,中,小)*/

intentera;/*进入口1,2,3……分别为各个入口*/

}ve[N];

intcount=0;

FILE*fp;

/*函数声明*/

voidreadfile();/*从文件导入*/

voidmenu();/*主菜单函数*/

voidinput();/*输入车辆信息函数*/

voidshow();/*显示应收金额*/

voidmmoney();/*统计总金额*/

voidwritefile();/*保存车辆信息*/

voidxianshi();/*显示车辆信息*/

voidmain()

{

readfile();

while

(1)

{

menu();

}

}

voidreadfile()/*从文件导入*/

{

if((fp=fopen("vehicle.txt","r"))==NULL)

{

printf("\n\t\t\t\t文件为空,请添加信息");

if((fp=fopen("vehicle.txt","w"))==NULL)

{

printf("\n\t\t\t建立失败");

exit(0);

}

else

{

printf("\n\t\t文件已建立");

printf("\n\t\tPressanykeytogettomainmenu!

");

getch();

return;

}

exit(0);

}

fseek(fp,0,2);/*文件指针fp指到到文件末尾*/

if(ftell(fp)>0)/*文件不为空*/

{

fseek(fp,0,0);/*文件指针指到文件开始位置*/

for(count=0;!

feof(fp)&&fread(&ve[count],sizeof(structvehicle),1,fp);count++);

fclose(fp);

printf("\n\t\t文件导入成功");

printf("\n\t\t按任意键进入系统");

getch();

return;

}

printf("\n\t\t\t已成功打开文件!

");

fclose(fp);

printf("\n\t\t\tPressanykeytogetbacktomainmenu");

getch();

return;

}

voidmenu()

{charn;

printf("\n\n\n\n");

printf("\t\t**********欢迎使用高速公路计费系统**********\n");

printf("\t\t主菜单\n");

printf("\t\t*********1.输入车辆信息*********\n");

printf("\t\t*********2.显示应收金额*********\n");

printf("\t\t*********3.显示金额总数*********\n");

printf("\t\t*********4.保存退出系统*********\n");

printf("\t\t*********5.显示车辆信息*********\n");

printf("请输入数字选择操作类型:

\n");

n=getchar();

switch(n)

{

case'1':

input();break;

case'2':

show();break;

case'3':

mmoney();break;

case'4':

writefile();break;

case'5':

xianshi();break;

default:

break;

}

}

voidinput()

{

printf("请输入车辆信息\n");

printf("车牌号:

\n");

scanf("%s",ve[count].num);

getchar();

printf("车辆类型(a,b,c分别代表大,中,小):

\n");

scanf("%c",&ve[count].variety);

printf("入口(1,2,3代表三个入口):

\n");

scanf("%d",&ve[count].entera);

count++;

printf("\n输入完毕,按任意键返回主菜单");

getch();

return;

}

voidshow()

{charnum[8];

intenterb,i;

doublel1=200,l2=300,l3=400;

/*定义三个入口到出口的路程分别是l1l2l3(200300400)公里*/

printf("请输入车牌号:

\n");

scanf("%s",num);

printf("请输入进入口:

\n");

scanf("%d",&enterb);

i=count-1;

if(strcmp(ve[i].num,num)==0&&ve[i].entera==enterb)

{

printf("车辆信息:

\n");

printf("车牌号:

%s\n",ve[i].num);

printf("车辆类型:

%c\n",ve[i].variety);

printf("入口站:

%d\n",ve[i].entera);

}

switch(ve[i].variety)

{case'a':

switch(ve[i].entera)

{case1:

printf("此车应收费%f",0.5*l1);break;

case2:

printf("此车应收费%f",0.5*l2);break;

case3:

printf("此车应收费%f",0.5*l3);break;

default:

break;

}break;

case'b':

switch(ve[i].entera)

{case1:

printf("此车应收费%f",0.4*l1);break;

case2:

printf("此车应收费%f",0.4*l2);break;

case3:

printf("此车应收费%f",0.4*l3);break;

default:

break;

}break;

case'c':

switch(ve[i].entera)

{case1:

printf("此车应收费%f",0.3*l1);break;

case2:

printf("此车应收费%f",0.3*l2);break;

case3:

printf("此车应收费%f",0.3*l3);break;

default:

break;

}break;

default:

break;

}

if(strcmp(ve[i].num,num)==0&&ve[i].entera==enterb)

printf("输入正确,此计费正确\n");

elseprintf("输入错误,此收费错误\n");

printf("\n按任意键返回主菜单");

getch();

return;

}

voidmmoney()

{inti;

doubled=0;

doublel1=200,l2=300,l3=400;

for(i=0;i

switch(ve[i].variety)

{case'a':

switch(ve[i].entera)

{case1:

d=d+0.5*l1;break;

case2:

d=d+0.5*l2;break;

case3:

d=d+0.5*l3;break;

default:

break;

}break;

case'b':

switch(ve[i].entera)

{case1:

d=d+0.4*l1;break;

case2:

d=d+0.4*l2;break;

case3:

d=d+0.4*l3;break;

default:

break;

}break;

case'c':

switch(ve[i].entera)

{case1:

d=d+0.3*l1;break;

case2:

d=d+0.3*l2;break;

case3:

d=d+0.3*l3;break;

default:

break;

}break;

default:

break;

}

printf("总金额为:

%f\n",d);

printf("按任意键返回主菜单");

getch();

return;

}

voidwritefile()

{

inti;

if((fp=fopen("vehicle.txt","w"))==NULL)

{

printf("\n\t\t文件打开失败");

}

for(i=0;i

{

if(fwrite(&ve[i],sizeof(structvehicle),1,fp)!

=1)

{

printf("\n\t\t写入文件错误!

\n");

}

}

fclose(fp);

printf("\n\t\t通讯录文件已保存");

printf("\n\t\t按任意键退出程序\n\t\t");

exit(0);

}

voidxianshi()

{inti;

for(i=0;i

{printf("第%d辆车的信息\n",i+1);

printf("车牌号码为%s\n",ve[i].num);

printf("车辆类型为%c\n",ve[i].variety);

printf("车辆入口为%d\n",ve[i].entera);

}

printf("按任意键返回主菜单");

getch();

return;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1