最开始运行程序的时候,要先建立文件,就是要选菜单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=0i<countsi++)
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=0i<countsi++)
{
if(card[i].ID==card_id)
{
if(card[i].flag==1)
{
printf("本卡已挂失!\n")
return
}
if(card[i].value<5)
{
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=0i<countsi++)
{
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=0i<countsi++)
{
if(card[i].ID==id)
{
for(j=ij<counts-1j++)
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=0i<countsi++)
{
if(card[i].ID==id)
{
card[i].flag=f
printf("设置完成 !\n")
break
}
}
}
void output()
{
int i
printf("%6s%11s%10s%6s\n","卡号","姓名","金额","挂失")
for(i=0i<countsi++)
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,tfloatxsystem("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>=0&&sele>1.输入成绩2.计算总分>3.求平均值4.输出总分与平均>5.清理屏幕6.高低排列>7.上平均分人数0.退出>8.全部情况:总分平均分第一名及格人数>><<\n")breakcase6:gaodi(a)breakcase7:super(a)breakcase8:full(t,x)break}elseprintf("你的输入有误,请重新:")饭卡属于非接触式ID卡,或称射频卡,其核心部分是一个带有电磁感应线圈的微型计算机芯片。饭卡的使用离不开读卡器。刷卡时,读卡器从饭卡读取到一串数字,即卡号。
任何两张饭卡的卡号都不相同,具有唯一性,好比指纹。也就是说,饭卡可以作为身份认证来使用。当读卡器读取到卡号后,会进入数据库系统,依据卡号找到相应的个人信息和数据,并进行相关 *** 作。(即,我们所说的“饭卡里的钱”实际上是数据库中的相应记录。)
如果在食堂使用饭卡,进入的是校园一卡通系统;如果在计算机学院机房使用饭卡,进入的是机房管理系统。所以在食堂充的钱只能在食堂就餐,在机房充的钱只能在机房自由上机。这两个系统相互独立,没有关联,只不过都是用饭卡作为身份认证而已。
扩展资料
系统主要性能与特点
1. 系统采用先进的单片机网络技术,运行速度快,中间环节少。一台主机可直接联接99台售饭终端机,传输速率为1024kbps,从管理主机到窗口终端最大传输距离为5000米。
2. 采用最新射频卡读写技术。卡片无磨损,不怕潮湿,可适应各种餐厅环境。独特的传输技术(CAN)。所有传输数据均进行数据校验,绝对保证数据安全。
3. 窗口机具有三种售饭方式,可随时切换混合使用。即计算(直接输入价格)售饭方式,自动(份饭)售饭方式,品种售饭方式。
5. 具有自动补贴功能:在售饭过程中可实现自动补贴写卡,而无需交卡。
6. 增款机可实现实时增款和取款功能,即方便员工又可吸引资金。
7. 可以设置每天消费最大金额,防止丢卡后,被别人拣到后恶意透支。
8.及时挂失功能。丢失卡后,可以立即挂失,防止卡内金额流失。
9.可以固定金额消费;即:每刷卡一次,可以减掉固定金额。以提高售饭效率。
10.可以品种消费。即:将各种价格的食品定义成各个快捷键,消费时,只按相应数字键就可以。
11.餐卡的各种 *** 作。包括:客户开户、挂失、解挂、补卡、注销、客户信息修正、补助 *** 作、客户单位调整等)、消费纠错、主机存取款等
参考资料:百度百科-食堂饭卡机
参考资料:百度百科-饭卡机
参考资料:百度百科-饭卡
参考资料:百度百科-智慧校园系统
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)