c语言《公交一卡通》实例_公交一卡通在线
c语言《公交一卡通》实例由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“公交一卡通在线”。
本程序出自 谭浩强主编。崔武子 等编著的《C语言程序设计》一书的第159页。
#include void menu();void addnew(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num);int findcard(int *pnum,int *pflag,int cardnumber,int num);void logout(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num);void modify(int *pnum,int *pmoney,int *pbalance,int *pflag,int num);void readcard(int *pnum,int *pmoney,int *pbalance,int *pflag,int num);void savemoney(int *pnum,int *pmoney,int *pbalance,int *pflag,int num);void statmax(int *pnum,int *pmoney,int *pbalance,int num);void displayall(int *pnum,int *pmoney,int *pbalance,int *pflag,int num);void exitout();
main(){
int num=0;
int cnum[20]={0},cmoney[20]={0},cbalance[20]={0},flag[20]={0};
char choose=' ';
menu();
while(1)
{
printf(“nnnn”);
printf(“ntt||--------||”);
printf(“ntt||----------Please input(0-8)------------||”);
printf(“ntt||--------||”);
printf(“ntt|
1.Add new Card
|”);
printf(“ntt|
2.Logout Card
|”);
printf(“ntt|
3.Modify Card
|”);
printf(“ntt|
4.Read card
|”);
printf(“ntt|
5.Save money
|”);
printf(“ntt|
6.Stat.max money
|”);
printf(“ntt|
7.Display
|”);
printf(“ntt|
8.Delete Data File
|”);
printf(“ntt|
0.Exit
|”);
printf(“ntt|----------|”);
printf(“ntt”);
scanf(“%c”,&choose);
switch(choose)
{
case'1':addnew(cnum,cmoney,cbalance,flag,&num);
break;
case'2':logout(cnum,cmoney,cbalance,flag,&num);
break;
case'3':modify(cnum,cmoney,cbalance,flag,num);
break;
case'4':readcard(cnum,cmoney,cbalance,flag,num);
break;
case'5':savemoney(cnum,cmoney,cbalance,flag,num);
break;
case'6':statmax(cnum,cmoney,cbalance,num);
break;
case'7':displayall(cnum,cmoney,cbalance,flag,num);
break;
case'8':printf(“ntYou select 8```”);
getch();
break;
case'0':exitout();
break;
default:printf(“ntYou input error.Please input again.”);
getch();
}
} } void menu(){
clrscr();
printf(“ntt||=======================================||”);
printf(“ntt||--------||”);
printf(“ntt||-------------Welcome-------------------||”);
printf(“ntt||----------use bus traffic--------------||”);
printf(“ntt||--------------Card---------------------||”);
printf(“ntt||--------||”);
printf(“ntt||=======================================||”);
getch();} void addnew(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num){
int i=0,cardnumber=0,cardmoney=0;
for(i=0;i
if(pflag[i]==1)
break;
cardnumber=i;
printf(“ntHow much money you want to save in your card”);
scanf(“%d”,&cardmoney);
*(pnum+cardnumber)=cardnumber+1;
*(pmoney+cardnumber)=cardmoney;
*(pbalance+cardnumber)=cardmoney;
*(pflag+cardnumber)=0;
if(cardnumber==*num)
(*num)++;
printf(“nt|--%5d--|--%5d--|--%5d--|”,*(pmoney+i),*(pbalance+i));
getch();}
void logout(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num){
int f=0,cardnumber=0;
char choose=' ';
printf(“ntPlease input your card number:”);
scanf(“%d”,&cardnumber);
f=findcard(pnum,pflag,cardnumber,*num);
if(f==-1)
{
printf(“ntNo find the card.”);
getch();
}
else
{
printf(“ntReturu you balance money:%d.”,*(pbalance+f));
do
{
printf(“nntAre you sure logout the card(y/n)?”);
scanf(“%c”,&choose);
}
while(choose!='y' && choose!='y' && choose!='N' && choose!='n');
if(choose=='y' || choose=='y')
{
*(pmoney+f)=0;
*(pbalance+f)=0;
*(pflag+f)=1;
}
} }
int findcard(int *pnum,int *pflag,int cardnumber,int num){
int i=0;
for(i=0;i
if(pnum[i]==cardnumber && pflag[i]!=1)
return i;
return-1;
}
void modify(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){
int f=0,cardnumber=0,cardmoney=0,balance=0;
char choose=' ';
printf(“ntPlease input card number that you want to modify:”);
scanf(“%d”,&cardnumber);
f=findcard(pnum,pflag,cardnumber,num);
if(f==-1)
{
printf(“ntNo find the card.”);
getch();
}
else
{
while(1);
{
clrscr();
printf(“ntt------------”);
printf(“ntt
please input modify Item
”);
printf(“ntt------------”);
printf(“ntt------------1.save money------------------”);
printf(“ntt------------2.balance money---------------”);
printf(“ntt------------3.Return----------------------”);
printf(“ntt------------”);
scanf(“%c”,&choose);
switch(choose)
{
case'1':
printf(“ntPlease input new save money:”);
scanf(“%d%”,&cardmoney);
*(pbalance+f)+=cardmoney-*(pmoney+f);
*(pmoney+f)=cardmoney;
break;
case'2':
printf(“ntPlease input new balance money:”);
scanf(“%d%”,&balance);
*(pbalance+f)=balance;
break;
case'3':
break;
default:
printf(“ntInput error, Please input again!”);
getch();
continue;
}
}
} }
void readcard(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){
int f=0,ticket=0,symbol=0,stops=0,cardnumber=0;
printf(“ntPlease input your card number:”);
scanf(“%d”,&cardnumber);
if(f==-1)
{
printf(“ntNo find the card.”);
getch();
}
else
{
while(symbol==0)
{
printf(“ntHow many you want to take bus stops:”);
scanf(“%d”,&stops);
if(stops30)
{
printf(“ntInput error.Please input again.”);
getch();
}
else if(stops
{
ticket=1;
symbol=1;
}
else if(stops
{
ticket=2;
symbol=1;
}
else if(stops
{
ticket=3;
symbol=1;
}
else if(stops
{
ticket=4;
symbol=1;
}
else if(stops
{
ticket=5;
symbol=1;
}
}
if(*(pbalance+f)>=ticket)
{
printf(“ntBefore:”);
printf(“cnum:%5d cmoner:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f));
*(pbalance+f)-=ticket;
printf(“ntAfter:”);
printf(“cnum:%5d cmoner:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f));
getch();
}
else
{
printf(“ntYour card balance money is not enough.Please use cash.”);
getch();
}
} }
void savemoney(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){
int f=0,cardnumber=0,cardmoney=0;
printf(“ntPlease input your card number:”);
scanf(“%d”,&cardnumber);
f=findcard(pnum,pflag,cardnumber,num);
if(f==-1)
{
printf(“ntNO find the card.”);
getch();
}
else
{
do
{
printf(“ntPlease input you want to save money in the card:”);
scanf(“%d”,&cardmoney);
if(cardmoney
printf(“ntInput error.Please input again.”);
}while(cardmoney
*(pmoney+f)=cardmoney;
*(pbalance+f)+=cardmoney;
printf(“ntYour card have already saved money:%5d.”,cardmoney);
printf(“ntcnum:%5d cmoney:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f));
getch();
} }
void statmax(int *pnum,int *pmoney,int *pbalance,int num){
int i=0,maxindex=0;
maxindex=0;
for(i=1;i
if(*(pmoney+maxindex)
maxindex=i;
printf(“ntMax save money is:%d.”,*(pmoney+maxindex));
printf(“ntcnum:%5d cmoney:%5d cbalance:%5d”,*(pnum+maxindex),*(pmoney+maxindex),*(pbalance+maxindex));
getch();}
void displayall(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){
int i=0;
clrscr();
printf(“nt|--------|”);
printf(“nt|--Cardnum--|--Savvemoney--|--Balance--|”);
for(i=0;i
{
if(*(pflag+i)==1)
continue;
else
{
printf(“nt|-----------------------------|”);
printf(“nt|--%5d--|--%5d--|--%5d--------|”);
*(pnum+i),*(pmoney+i),*(pbalance+i);
if((i+1)%10==0)
{
getch();
printf(“Pre any key to go on...”);
}
}
}
printf(“nt|--|”);
getch();}
void exitout(){
char choose=' ';
do
{
printf(“ntAre you sure exit(y/n):”);
scanf(“%c”,&choose);
}while(choose!='Y' && choose!='y' && choose!='N'&&choose!='n');
if(choose=='Y'||choose=='y')
exit(0);}
XX市公共交通总公司 公交一卡通项目负责小组关于汇报项目总体情况概述暨推行方案的请示因我公司一卡通配套刷卡设备与旧型号刷卡设备不通用,且存在老年卡结算、各类乘车卡服......
背景介绍一、民生银行与曲靖市政府洽谈智慧化城市建设的过程:在2012年底,住房和城乡建设部就出台了《国家智慧城市(区、镇)试点指标体系(试行)》,为中国智慧城市试点建设提供了......
SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL (结构化查询语言)是用于执行查询的语法。 但是 SQL 语言也包含用于更新、插入和......
中国移动河南焦作分公司助建“公交一卡通”日前,随着新的刷卡机在公交车上全部安装完毕并通过测试,由河南焦作移动和焦作市公交公司共同建设的河南省首个“公交一卡通”项目正......
2012年乌鲁木齐市加载金融功能的社会保障卡发放承办银行为:中国银行、中国农业银行、中国工商银行、中国建设银行、乌鲁木齐商业银行、招商银行、中国邮政储蓄银行、交通银行......
