• 回答数

    2

  • 浏览数

    156

佐必林家具2013
首页 > 学术期刊 > 饭卡管理系统论文模板

2个回答 默认排序
  • 默认排序
  • 按时间排序

z未成年

已采纳

这个最好自己写,但是我有一个员工信息的代码,含注释,与这个很相似,只要稍加修改即可。#include #include #include //清屏函数头文件#include struct Stuff{ char number[10]; //员工编号 char name[10]; //员工姓名 char sex[8]; //员工性别 char borth[10]; //员工生日 char degree[20]; //员工学历 char business[20]; //员工职务 char phone[15]; //员工电话 char place[50]; //员工住址 char con[50]; //判断关键字专用 struct Stuff *next; };char Menu(void); //菜单显示struct Stuff *App(struct Stuff *head); //添加void Sort(struct Stuff *head); //排序struct Stuff *Ser(struct Stuff *head); //查找void Chn(struct Stuff *head,char n[10]); //更改void Scpy(char *p,char *q); //排序中用于交换员工信息struct Stuff *Del(struct Stuff *head,char n[10]); //删除int Sel(char ch,struct Stuff *p,struct Stuff *q); //判断排序及关键字专用函数void Prf(struct Stuff *head); //输出void Fre(struct Stuff *head); //释放int i=1; //定义全局变量,实现实时员工人数统计int main(void){ char n[10]; struct Stuff *head=NULL; //链表头指针定义 while(1) { switch(Menu()) { case '1': printf("请输入员工信息,直接输入'#'结束\n"); head=App(head); break; case '2': Sort(head); break; case '3': head=Ser(head); break; case '4': printf("员工信息如下:\n"); Prf(head); break; case '5': printf("请输入员工编号:"); scanf("%s",n); Chn(head,n); break; case '6': printf("请输入员工编号:"); scanf("%s",n); head=Del(head,n); break; case '0': printf("欢迎下次光临,88!\n"); exit(0); default: printf("输入错误,请重新输入!\n"); } fflush(stdin); //清楚缓冲区 printf("按任意键继续~"); getchar(); system("cls"); //清屏效果 } Fre(head); return 0;} //菜单函数char Menu(void){ char ch; printf("------------请选择-----------\n"); printf("1.添加员工信息\n2.员工信息排序\n3.查找员工信息\n4.输出员工信息\n5.更改员工信息\n6.删除员工信息\n0.退出\n-----------------------------\n"); scanf(" %c",&ch); return ch;}//添加成员函数//输入参数:链表头指针//返回参数:链表头指针struct Stuff *App(struct Stuff *head){ struct Stuff *p=NULL,*q=head; while(i) { p=(struct Stuff *)malloc(sizeof(struct Stuff)); //申请结构体空间 if(p==NULL) { printf("内存不够!\n"); exit(0); } p->next =NULL; //指针域为空 printf("请输入第%d名员工:\n",i); printf(" 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :\n"); fflush(stdin); scanf("%s",p->number ); if(!strcmp(p->number ,"#")) { free(p); //释放不需要的结构体内存 break; } else { ++i; scanf("%s%s%s%s%s%s%s",p->name ,p->sex ,p->borth ,p->degree ,p->business ,p->phone ,p->place ); p->con[0]='\0'; //防止后面判断出现随机值 if(head==NULL) head=p; else { while(q->next !=NULL) //防止结束后再次输入时出现问题 q=q->next ; q->next =p; } q=p; //每次都加在链表尾 } } return head;}//排序函数//输入参数:头指针void Sort(struct Stuff *head){ char ch; struct Stuff *p,*q,*r; while(1) { printf("请选择排序条件:1.编号2.姓名3.性别4.出生年月5.学历6.职务7.电话8.地址0.退出\n"); scanf(" %c",&ch); if(ch=='0') break; if(ch<'1'||ch>'8') { printf("输入错误,请重新输入!\n"); continue; } p=head; while(p->next!=NULL) //选择排序 { q=p->next; r=p; while(q!=NULL) { if(Sel(ch,r,q)) //调用判断函数 r=q; q=q->next; } if(r!=p) //交换内容 { Scpy(r->number,p->number); Scpy(r->name,p->name); Scpy(r->sex,p->sex); Scpy(r->borth,p->borth); Scpy(r->degree,p->degree); Scpy(r->business,p->business); Scpy(r->phone,p->phone); Scpy(r->place,p->place); } p=p->next; } Prf(head); //输出 }}//交换函数void Scpy(char *p,char *q){ char c[50]; strcpy(c,p); strcpy(p,q); strcpy(q,c);}//判断函数//输出参数:1为真,0为假int Sel(char ch,struct Stuff *p,struct Stuff *q){ switch(ch) //实现各个关键字查找 { case '1': return strcmp(q->number ,p->number )<0||strcmp(q->con ,p->number )==0 ; //排序条件及查找条件 case '2': return strcmp(q->name ,p->name )<0||strcmp(q->con ,p->name )==0 ; case '3': return strcmp(q->sex ,p->sex )<0||strcmp(q->con ,p->sex )==0 ; case '4': return strcmp(q->borth ,p->borth)<0 ||strcmp(q->con ,p->borth )==0 ; case '5': return strcmp(q->degree ,p->degree )<0||strcmp(q->con ,p->degree )==0 ; case '6': return strcmp(q->business ,p->business )<0||strcmp(q->con ,p->business)==0 ; case '7': return strcmp(q->phone ,p->phone )<0 ||strcmp(q->con ,p->phone)==0; case '8': return strcmp(q->place ,p->place )<0||strcmp(q->con ,p->place )==0; default : exit(0); }} //查找函数struct Stuff *Ser(struct Stuff *head){ struct Stuff *p=NULL,*q,a={"\0","\0","\0","\0","\0","\0","\0","\0"}; //防止判断时错误 int flag; //查找判断 char ch,sh; q=&a; while(1) { printf("请输入要查找的条件:1.编号2.姓名3.性别4.出生年月5.学历6.职务7.电话8.住址0.退出\n"); scanf(" %c",&ch); if(ch=='0') break; if(ch<'1'||ch>'8') { printf("输入错误,请重新输入!\n"); continue; } fflush(stdin); printf("请输入:"); gets(q->con ); p=head; //指向表头 flag=0; while(p!=NULL) { if(Sel(ch,p,q)) { printf("员工信息如下:\n"); printf(" 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 \n%s %s %s %s %s %s %s %s\n" ,p->number ,p->name ,p->sex ,p->borth ,p->degree ,p->business ,p->phone ,p->place ); printf("是否需要:1.更改 2.删除 3.继续\n"); scanf(" %c",&sh); if(sh=='1') Chn(head,p->number); //调用更改函数 else if(sh=='2') head=Del(head,p->number); //调用删除函数,得到的head必须return flag=1; break; } p=p->next ; } if(flag==0) printf("没有找到该员工信息!\n"); } return head;}//更改函数//输入参数:n[10] 为员工编号void Chn(struct Stuff *head,char n[10]){ struct Stuff *p=head; int flag=0; if(head==NULL) printf("未找到员工信息!\n"); else { while(p!=NULL) { if(!strcmp(p->number,n)) { printf("请输入新的信息:\n编号|姓名|性别|出生年月|学历|职务|电话|住址\n"); scanf("%s%s%s%s%s%s%s%s",p->number ,p->name ,p->sex ,p->borth ,p->degree ,p->business ,p->phone ,p->place ); printf("员工信息如下:\n"); flag++; break; } p=p->next; } if(flag==0) printf("未找到该员工信息!\n"); } Prf(head);}//删除函数//输入参数:n为员工编号//输出参数:头指针struct Stuff *Del(struct Stuff *head,char n[10]){ struct Stuff *p,*pr; int flag; flag=0; p=head,pr=head; if(head==NULL) printf("未找到员工信息!\n"); else { while(strcmp(p->number ,n)&&p->next !=NULL) { pr=p; p=p->next ; } if(!strcmp(p->number ,n)) { if(p==head) head=p->next ; else pr->next=p->next ; free(p); printf("删除成功!\n"); i--; } else printf("未找到员工信息!\n"); } Prf(head); return head;}//输出函数void Prf(struct Stuff *head){ struct Stuff *p=head; int i=1; while(p!=NULL) { printf("%d. %s %s %s %s %s %s %s %s\n" ,i++,p->number ,p->name ,p->sex ,p->borth ,p->degree ,p->business ,p->phone ,p->place); p=p->next ; }}//释放函数void Fre(struct Stuff *head){ struct Stuff *p; while(head!=NULL) { p=head; head=head->next ; free(p); }}只有400行不到,分的如果你真的看懂了,就应该自己写,程序是死的人是活的,自己动手改改吧。

83 评论

晴天夹心

饭卡属于非接触式ID卡,或称射频卡,其核心部分是一个带有电磁感应线圈的微型计算机芯片。饭卡的使用离不开读卡器。刷卡时,读卡器从饭卡读取到一串数字,即卡号。

任何两张饭卡的卡号都不相同,具有唯一性,好比指纹。也就是说,饭卡可以作为身份认证来使用。当读卡器读取到卡号后,会进入数据库系统,依据卡号找到相应的个人信息和数据,并进行相关操作。(即,我们所说的“饭卡里的钱”实际上是数据库中的相应记录。)

如果在食堂使用饭卡,进入的是校园一卡通系统;如果在计算机学院机房使用饭卡,进入的是机房管理系统。所以在食堂充的钱只能在食堂就餐,在机房充的钱只能在机房自由上机。这两个系统相互独立,没有关联,只不过都是用饭卡作为身份认证而已。

扩展资料

系统主要性能与特点

1. 系统采用先进的单片机网络技术,运行速度快,中间环节少。一台主机可直接联接99台售饭终端机,传输速率为1024kbps,从管理主机到窗口终端最大传输距离为5000米。

2. 采用最新射频卡读写技术。卡片无磨损,不怕潮湿,可适应各种餐厅环境。独特的传输技术(CAN)。所有传输数据均进行数据校验,绝对保证数据安全。

3. 窗口机具有三种售饭方式,可随时切换混合使用。即计算(直接输入价格)售饭方式,自动(份饭)售饭方式,品种售饭方式。

5. 具有自动补贴功能:在售饭过程中可实现自动补贴写卡,而无需交卡。

6. 增款机可实现实时增款和取款功能,即方便员工又可吸引资金。

7. 可以设置每天消费最大金额,防止丢卡后,被别人拣到后恶意透支。

8.及时挂失功能。丢失卡后,可以立即挂失,防止卡内金额流失。

9.可以固定金额消费;即:每刷卡一次,可以减掉固定金额。以提高售饭效率。

10.可以品种消费。即:将各种价格的食品定义成各个快捷键,消费时,只按相应数字键就可以。

11.餐卡的各种操作。包括:客户开户、挂失、解挂、补卡、注销、客户信息修正、补助操作、客户单位调整等)、消费纠错、主机存取款等

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

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

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

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

262 评论

相关问答

  • 论文系统的管理模板

    1、论文格式的论文题目:(下附署名)要求准确、简练、醒目、新颖。 2、论文格式的目录 目录是论文中主要段落的简表。(短篇论文不必列目录) 3、论文格式的内容提要

    魔神坛老佛爷 4人参与回答 2023-12-06
  • 计算机管理系统的论文模板

    试论现代高校图书馆的定位与发展摘 要 本文针对当前图书馆所面临的形势,提出了现代高校图书馆应以创新的意识,对其定位与发展做战略性的调整和整体设计。并从创新办

    xulisha0221 3人参与回答 2023-12-09
  • 饭卡管理系统论文模板

    这个最好自己写,但是我有一个员工信息的代码,含注释,与这个很相似,只要稍加修改即可。#include #include #include //清屏函

    佐必林家具2013 2人参与回答 2023-12-07
  • 员工考勤管理系统论文模板

    集团公司考勤管理制度范文总结,下面就来给大家详细介绍:集团公司考勤管理制度总结可以分为三个部分来描写,首先可以描写建立考勤管理制度的目的,第二个可以描写具体有哪

    心之愿c 4人参与回答 2023-12-07
  • 系统架构师论文答题卡模板

    系统架构师论文是四选一。 系统架构设计师属于软考高级,系统架构设计师论文是四选一。从给出的4道试题(试题一至试题四)中任选1道解答,需在答题纸上的指定位置处将所

    胡来,任性 3人参与回答 2023-12-09