200分求救!C语言饭卡管理系统代码!

200分求救!C语言饭卡管理系统代码!,第1张

花半小时简单的写了一下,你看看行不行.

最开始运行程序的时候,要先建立文件,就是要选菜单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.餐卡的各种 *** 作。包括:客户开户、挂失、解挂、补卡、注销、客户信息修正、补助 *** 作、客户单位调整等)、消费纠错、主机存取款等

参考资料:百度百科-食堂饭卡机

参考资料:百度百科-饭卡机

参考资料:百度百科-饭卡

参考资料:百度百科-智慧校园系统


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9904912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存