C课设:高速公路收费系统设计_高速公路收费管理系统

2020-02-27 其他范文 下载本文

C课设:高速公路收费系统设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“高速公路收费管理系统”。

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

学校:西安理工大学

姓名:陈国平

班级:电气106

学号:3100421166

(C程序代码和程序运行部分结果)#include #include #include #include #define N 1000000

struct vehicle

/*定义储存车辆信息的结构体 */ {char num[8];

/*车牌号码*/ char variety;

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

/*进入口1,2,3……分别为各个入口*/ } ve[N];int count=0;FILE *fp;

/*函数声明*/ void readfile();

/*从文件导入*/ void menu();

/*主菜单函数*/ void input();

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

/*显示应收金额*/ void mmoney();

/*统计总金额*/ void writefile();

/*保存车辆信息*/ void xianshi();

/*显示车辆信息*/

void main(){

readfile();

while(1)

{

menu();

} }

void readfile()

/*从文件导入 */ {

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

{

printf(“ntttt文件为空,请添加信息”);

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

{

printf(“nttt建立失败”);

exit(0);}

else

{

printf(“ntt文件已建立”);

printf(“nttPre any key to get to mainmenu!”);

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(struct vehicle),1,fp);count++);

fclose(fp);

printf(“ntt文件导入成功”);

printf(“ntt按任意键进入系统”);

getch();

return;

}

printf(“nttt已成功打开文件!”);

fclose(fp);

printf(“ntttPre anykey to get back to mainmenu”);

getch();

return;}

void menu(){char n;printf(“nnnn”);printf(“tt**********欢迎使用高速公路计费系统**********n”);printf(“tt

主菜单

n”);

printf(“tt

*********1.输入车辆信息*********n”);printf(“tt

*********2.显示应收金额*********n”);printf(“tt

*********3.显示金额总数*********n”);printf(“tt

*********4.保存退出系统*********n”);printf(“tt

*********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;} }

void input(){

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;}

void show(){char num[8];int enterb,i;double l1=200,l2=300,l3=400;/* 定义三个入口到出口的路程分别是l1 l2 l3(200 300 400)公里*/ 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(“车牌号:%sn”,ve[i].num);

printf(“车辆类型:%cn”,ve[i].variety);

printf(“入口站:%dn”,ve[i].entera);} switch(ve[i].variety){case 'a': switch(ve[i].entera)

{case 1: printf(“此车应收费%f”,0.5*l1);

break;

case 2: printf(“此车应收费%f”,0.5*l2);

break;

case 3: printf(“此车应收费%f”,0.5*l3);

break;

default:

break;

}

break;

case 'b': switch(ve[i].entera)

{case 1: printf(“此车应收费%f”,0.4*l1);break;

case 2: printf(“此车应收费%f”,0.4*l2);break;

case 3: printf(“此车应收费%f”,0.4*l3);break;

default:

break;

}

break;

case 'c': switch(ve[i].entera)

{case 1: printf(“此车应收费%f”,0.3*l1);break;

case 2: printf(“此车应收费%f”,0.3*l2);break;

case 3: printf(“此车应收费%f”,0.3*l3);break;

default:

break;

}

break;

default :

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

printf(“输入正确,此计费正确n”);else printf(“输入错误,此收费错误n”);printf(“n按任意键返回主菜单”);getch();return;}

void mmoney(){ int i;

double d=0;

double l1=200,l2=300,l3=400;

for(i=0;i

switch(ve[i].variety)

{case 'a':switch(ve[i].entera)

{case 1: d=d+0.5*l1;break;

case 2: d=d+0.5*l2;break;

case 3: d=d+0.5*l3;break;

default:

break;

}

break;

case 'b':switch(ve[i].entera)

{case 1: d=d+0.4*l1;break;

case 2: d=d+0.4*l2;break;

case 3: d=d+0.4*l3;break;

default:

break;

}

break;

case' c':switch(ve[i].entera)

{case 1: d=d+0.3*l1;break;

case 2: d=d+0.3*l2;break;

case 3: d=d+0.3*l3;break;

default:

break;

}

break;

default : break;} printf(“总金额为:%fn”,d);printf(“按任意键返回主菜单”);getch();return;}

void writefile(){

int i;

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

{

printf(“ntt文件打开失败”);

}

for(i=0;i

{

if(fwrite(&ve[i],sizeof(struct vehicle),1,fp)!=1)

{

printf(“ntt写入文件错误!n”);

}

}

fclose(fp);

printf(“ntt通讯录文件已保存”);

printf(“ntt按任意键退出程序ntt”);

exit(0);}

void xianshi(){int i;for(i=0;i

printf(“车牌号码为%sn”,ve[i].num);

printf(“车辆类型为%cn”,ve[i].variety);

printf(“车辆入口为%dn”,ve[i].entera);} printf(“按任意键返回主菜单”);getch();return;}

《C课设:高速公路收费系统设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C课设:高速公路收费系统设计
点击下载文档
相关专题 高速公路收费管理系统 高速公路 设计 收费系统 高速公路收费管理系统 高速公路 设计 收费系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文