花半小时简单的写了一下,你看看行不行.
成都创新互联公司主要从事成都做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务淮阴,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
最开始运行程序的时候,要先建立文件,就是要选菜单1.
#include stdio.h
struct Card
{
int ID; //卡号
char name[20];
double value; //金额
int flag; //挂失信息
}
card[1000]; //假设最多1000张
int counts; //当前已有饭卡数量
FILE * fp;
int menu()
{
int choose;
printf("|-------------------------------|\n");
printf("| 请输入选项编号(0--7) |\n");
printf("|-------------------------------|\n");
printf("| 0——退出 |\n");
printf("| 1——建立饭卡文件 |\n");
printf("| 2——买饭 |\n");
printf("| 3——续钱 |\n");
printf("| 4——添加新饭卡 |\n");
printf("| 5——注销旧饭卡 |\n");
printf("| 6——设置与解除挂失 |\n");
printf("| 7——显示全部饭卡信息 |\n");
printf("|-------------------------------|\n");
scanf("%d",choose);
return choose;
}
void write_file()
{
int i;
FILE * f;
f=fopen("card.dat","w");
for(i=0;icounts;i++)
fprintf(f,"%d %s %lf %d\n",card[i].ID,card[i].name,card[i].value,card[i].flag);
fclose(f);
}
void create_file() //如果已经存在了card.dat那么就打开该文件
{
int i=0;
fp=fopen("card.dat","r");
if(fp!=NULL) //如果已经存在
{
printf("文件已经存在!\n");
while(fscanf(fp,"%d%s%lf%d",card[i].ID,card[i].name,card[i].value,card[i].flag)!=EOF)
i++;
counts=i;
fclose(fp);
return ;
}
fp=fopen("card.dat","w");
printf("输入卡号,姓名,金额,挂失信息(0/1)(卡号-1表示输入结束!):\n");
while(scanf("%d%s%lf%d",card[i].ID,card[i].name,card[i].value,card[i].flag),card[i].ID!=-1)
i++;
counts=i;
fclose(fp);
write_file();
}
void buy1(int card_id,double cost)
{
int i;
for(i=0;icounts;i++)
{
if(card[i].ID==card_id)
{
if(card[i].flag==1)
{
printf("本卡已挂失!\n");
return ;
}
if(card[i].value5)
{
printf("金额不足!\n");
return ;
}
printf("%lf\n",card[i].value);
card[i].value-=cost;
printf("%lf\n",card[i].value);
}
}
printf("非法卡!\n");
}
void buy()
{
int id;
double v;
printf("输入卡号和消费金额:\n");
scanf("%d%lf",id,v);
buy1(id,v);
}
void add_value()
{
int id,i;
double v;
printf("输入卡号和续钱金额:\n");
scanf("%d%lf",id,v);
for(i=0;icounts;i++)
{
if(card[i].ID==id)
{
printf("%lf\n",card[i].value);
card[i].value+=v;
printf("%lf\n",card[i].value);
printf("ok!\n");
return ;
}
}
printf("error!\n");
}
void add_card()
{
int i=counts;
printf("输入卡号,姓名,金额,挂失信息(0/1)(卡号-1表示输入结束!):\n");
while(scanf("%d%s%lf%d",card[i].ID,card[i].name,card[i].value,card[i].flag),card[i].ID!=-1)
i++;
counts=i;
}
void del_card()
{
int id;
int i,j;
printf("输入要注销的卡号:\n");
scanf("%d",id);
for(i=0;icounts;i++)
{
if(card[i].ID==id)
{
for(j=i;jcounts-1;j++)
card[j]=card[j+1];
printf("注销成功!\n");
return ;
}
}
}
void set_flag()
{
int id,i,f;
printf("输入卡号和挂失信息(1:挂失,0:解除挂失)\n");
scanf("%d%d",id,f);
for(i=0;icounts;i++)
{
if(card[i].ID==id)
{
card[i].flag=f;
printf("设置完成 !\n");
break;
}
}
}
void output()
{
int i;
printf("%6s%11s%10s%6s\n","卡号","姓名","金额","挂失");
for(i=0;icounts;i++)
printf("%6d%11s%10.3lf%2d\n",card[i].ID,card[i].name,card[i].value,card[i].flag);
}
void main()
{
int m;
while(m=menu(),m)
{
switch(m)
{
case 1:
create_file();
break;
case 2:
buy();
break;
case 3:
add_value();
break;
case 4:
add_card();
break;
case 5:
del_card();
break;
case 6:
set_flag();
break;
case 7:
output();
break;
default:
printf("输入有误,重新输入!\n");
}
}
write_file(); //退出系统的时候,把数据保存到文件
}
饭卡充值方法!!!让坑爹的学校哭去,易语言,学校饭卡充值方法!!!让坑爹的学校哭去 在家里就可以免费给饭卡充钱,简单方便 首先我不是标题党,近来无事...
答案voidmain(){intsele=1,t;floatx;system("cls");printf("欢迎使用简易菜单!本菜单在VC++平台编译通过\n");printf("有何建议请联系本人!\n");printf("成绩管理菜单\n");printf("\n");printf("1.输入成绩2.计算总分3.求平均值4.输出总分与平均5.清理屏幕6.高低排列7.上平均分人数0.退出8.全部情况:总分平均分第一名及格人数");scanf("%d",sele);puts("");if(sele=0sele1.输入成绩2.计算总分3.求平均值4.输出总分与平均5.清理屏幕6.高低排列7.上平均分人数0.退出8.全部情况:总分平均分第一名及格人数\n");break;case6:gaodi(a);break;case7:super(a);break;case8:full(t,x);break;}elseprintf("你的输入有误,请重新:")