C语言食堂饭卡管理系统

合集下载

C语言课程设计餐馆管理系统

C语言课程设计餐馆管理系统

C语言课程设计餐馆管理系统一、教学目标本课程的目标是让学生掌握C语言的基本知识,通过构建一个简单的餐馆管理系统,培养学生的实际编程能力和问题解决能力。

在知识目标方面,学生需要理解C语言的数据类型、控制结构、函数等基本概念。

在技能目标方面,学生应掌握C语言的编程技巧,能够独立完成一个小型的软件系统。

在情感态度价值观目标方面,学生应培养对计算机科学的兴趣,具备良好的团队合作精神和自主学习能力。

二、教学内容教学内容主要包括C语言的基本语法、数据类型、控制结构、函数等。

具体的教学内容安排如下:1.引言:介绍C语言的发展历程和特点,让学生了解C语言的重要性和应用范围。

2.数据类型和变量:讲解整型、浮点型、字符型等数据类型的定义和使用方法。

3.控制结构:介绍条件语句、循环语句等控制结构的使用和原理。

4.函数:讲解函数的定义、声明和调用,以及函数的参数传递和返回值。

5.餐馆管理系统:通过构建一个简单的餐馆管理系统,让学生将所学知识应用于实际问题的解决。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

在讲授法中,教师将系统地讲解C语言的基本概念和语法。

在讨论法中,教师将引导学生进行思考和讨论,培养学生的创新思维和问题解决能力。

在案例分析法中,教师将通过分析具体的编程案例,让学生了解C语言在实际应用中的重要性。

在实验法中,教师将学生进行上机实验,让学生在实际操作中掌握C语言的编程技巧。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。

教材方面,我们选择《C程序设计语言》作为主教材,辅以《C语言编程实例教程》进行实践操作。

参考书方面,我们推荐《C Primer Plus》和《C和指针》。

多媒体资料方面,我们将制作PPT课件和视频教程,以便学生更好地理解和掌握知识。

实验设备方面,我们将提供计算机实验室,让学生进行上机实验和编程实践。

食堂饭卡管理系统C语言课程设计实习(二)2024

食堂饭卡管理系统C语言课程设计实习(二)2024

食堂饭卡管理系统C语言课程设计实习(二)引言概述:食堂饭卡管理系统是一个基于C语言的课程设计实习项目。

该系统旨在解决食堂饭卡管理的效率和准确性问题,通过计算机技术的应用,提供了一个功能完善、用户友好、高效的饭卡管理解决方案。

本文将从以下五个方面进行详细介绍和讨论。

1. 饭卡充值管理1.1 充值功能:实现用户对饭卡进行充值操作,输入充值金额并完成充值流程。

1.2 充值记录查询:提供用户查询充值记录的功能,用户可以通过输入时间范围和饭卡号码来查找充值记录。

1.3 充值统计分析:系统自动统计总充值金额、平均充值金额等数据,为管理者提供充值情况的分析报告。

2. 饭卡消费管理2.1 消费功能:用户可以通过选择食堂菜品并输入数量进行一次或多次消费操作,系统将扣除相应金额并更新余额。

2.2 菜品管理:管理员可以添加、修改和删除食堂菜品信息,保证系统中的菜品信息始终准确。

2.3 消费记录查询:用户和管理员都拥有查询消费记录的权限,可以根据时间范围和饭卡号码查看相应的消费记录。

3. 饭卡挂失与解挂3.1 饭卡挂失:用户可以在系统内申请挂失饭卡,挂失后无法进行充值和消费操作,有效保护饭卡余额的安全。

3.2 饭卡解挂:用户可以通过输入饭卡号和密码解除挂失状态,系统将重新激活饭卡并恢复正常使用。

4. 饭卡余额查询和管理4.1 余额查询:用户可以随时查询当前饭卡的余额,并了解最近账户的变动情况。

4.2 账户管理:管理员可以对用户的饭卡账户进行管理,包括账户冻结和解冻功能,以防止异常账户的继续使用。

5. 系统安全与日志管理5.1 登录验证:系统需要用户输入正确的用户名和密码进行登录,确保只有授权用户才能访问系统。

5.2 操作日志:系统将记录用户的所有操作日志,包括登录、充值、消费、挂失、解挂等,以便管理者对系统进行监控和追踪。

总结:食堂饭卡管理系统C语言课程设计实习(二)是一个以提高饭堂饭卡管理效率为目标的项目。

通过充值、消费、挂失和解挂、余额查询与管理以及系统安全与日志管理等五个方面的设计,该系统能够有效提高食堂饭卡的便利性和管理性,提供用户友好的界面和安全可靠的操作环境。

C语言食堂饭卡管理系统

C语言食堂饭卡管理系统

食堂饭卡管理系统3人
基本功能:
(1)发卡:学生员工持有效证件到管理处缴押金,办理就餐卡,操作人员将相关内容写入卡中,并自动产生编号,持卡人员再预交一定金额款项即可进行就餐。

(2)存款:持卡人在卡中存款快用完时,到管理处交款存入就餐卡中,并可打印一张收据。

(3)就餐:持卡人将就餐卡插入或接近窗口机,窗口机检测是否有效,是否时本单位所发的卡,是否已被挂失,若有问题则窗口机报警,若正常则窗口机上数码显示就餐卡中的余额,工作人员键入本次用餐金额,并在数码上显示出来,若无误按结算键写卡,整个售饭过程完成。

(4)汇总统计:食堂就餐结束后,管理处计算机能通过联网(或统计卡)取出各窗口机中的数据,进行统计分析,可统计出本餐售饭总收入,各窗口收入,各持卡人存款明细,本日、月存款金额,卡中流动资金总额,日餐报表,年餐报表等
(5)挂失:持卡人不慎将卡丢失,可到管理处进行挂失,管理处将挂失名单传送到各窗口机中,用已挂失卡就餐就会报警,直到取消挂失为止,持卡人不会因卡丢失而引起经济上的损失。

(6)注销:学生离校或其他原因,不再就餐时,可到管理处注销卡退取押金,该卡还可重新使用。

C语言实现的餐饮管理系统

C语言实现的餐饮管理系统

C语言实现的餐饮管理系统在餐饮行业中,餐厅、酒店以及其他餐饮企业需要一个高效的管理系统来处理订单、库存、员工管理等重要业务。

C语言作为一种强大而灵活的编程语言,可以实现餐饮管理系统的各种功能。

本文将介绍C语言实现的餐饮管理系统的设计和功能,以及其对餐饮行业的重要意义。

一、系统设计1. 数据库设计餐饮管理系统的数据库设计是系统设计的重要一环。

数据库应包含以下表格:菜品表、订单表、库存表、员工表和顾客表。

这些表格应包含相应的字段,如菜品名称、价格、库存量、销售量、员工姓名、职位、顾客姓名等。

2. 功能设计餐饮管理系统的功能设计是系统设计的核心。

系统应该具备以下功能:(1)菜品管理:包括菜品信息的录入、查询和修改功能,以及对菜品库存量和销售量的统计。

(2)订单管理:包括新建订单、查询订单、修改订单和删除订单的功能,以及对订单信息的统计分析。

(3)库存管理:包括库存量的录入、查询和修改功能,以及库存量的统计和报警功能。

(4)员工管理:包括员工信息的录入、查询和修改功能,以及员工职位的调整和离职处理。

(5)顾客管理:包括顾客信息的录入、查询和修改功能,以及对顾客消费信息的统计和分析。

二、系统实现餐饮管理系统的实现需要使用C语言进行编程。

下面是系统实现的主要步骤:1. 数据库连接使用C语言中的数据库连接库,如MySQL的C API等,连接数据库。

2. 菜品管理实现菜品信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

3. 订单管理实现订单的新建、查询、修改和删除功能,使用C语言的数据结构来存储订单信息,并使用文件操作函数进行读写操作。

4. 库存管理实现库存量的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

5. 员工管理实现员工信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

6. 顾客管理实现顾客信息的录入、查询和修改功能,使用C语言的文件操作函数来进行读写操作。

c语言饭卡管理系统课程设计

c语言饭卡管理系统课程设计

c语言饭卡管理系统课程设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符、控制语句等基础知识。

2. 学会使用数组、结构体等数据结构,实现数据的组织和管理。

3. 掌握函数的定义和调用,理解模块化编程的重要性,并能够运用到实际项目中。

4. 了解文件操作的基本方法,实现数据的存储和读取。

技能目标:1. 能够运用C语言编写简单的饭卡管理系统,实现用户注册、充值、消费、查询等功能。

2. 培养学生分析问题、设计算法、编写程序、调试和优化代码的能力。

3. 提高学生的编程实践能力,使其能够将理论知识应用到实际项目中。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发其主动学习和探究的精神。

2. 培养学生团队协作意识,学会与他人合作共同解决问题,共同完成项目。

3. 培养学生严谨、细心的编程态度,养成良好的编程习惯,提高代码质量。

课程性质:本课程为实践性较强的学科,旨在让学生通过实际项目开发,掌握C语言编程的基本知识和技能。

学生特点:学生已具备一定的计算机基础,对编程有一定了解,但实践经验不足。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生编程思维和解决问题的能力。

通过本课程的学习,使学生能够独立完成简单的饭卡管理系统项目,达到课程目标。

在教学过程中,关注学生的个体差异,提供有针对性的指导,确保每位学生都能在学习中取得进步。

二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符、控制语句(条件语句、循环语句)。

2. 数据结构:数组、结构体。

3. 函数:函数定义、调用、参数传递、模块化编程。

4. 文件操作:文件的打开、关闭、读写。

5. 饭卡管理系统功能模块设计:- 用户注册模块:设计用户信息结构体,实现用户注册功能。

- 充值模块:实现用户饭卡的充值功能。

- 消费模块:实现用户饭卡的消费功能。

- 查询模块:实现用户饭卡余额的查询功能。

[VIP专享]C语言课程设计—饭卡管理程序

[VIP专享]C语言课程设计—饭卡管理程序

ab2cad+-b-*+*cae-*fd/b---ec/1dfa/e+fb*(c-d)4-5e./1f44T4T3 4T241F4T0G39T3. 8NF37T3F635T3T433F3F2F31 3F0 2T928F2T72T6 2F52F42F3 22T21F2T01F9 18F17T16F.15F1. 4T.n1132T.T T 31.11F0 F9 5T80kT7k301nT6,02kF,n3k,4n4,05T=,6n32k,.+2F1,5.,F6F,4,16T65,2I65,41I160 631056612066n1i1in 5n9-i+55187.555K6K. 15254^3k1-101502514“5”90n4i18i,nJn, -4Ji74465. “4”4.43.424. 14.0319 138373635 32“3”384ndia1tian3n2n3e-1xi tp13h02e9ad2p7nep2-562>22ie,n40ie1x13t9-a>[mn0e2]2x3-2t1n1eJ22,0J25e16189ni61foi1nr7(nin-its}j=s1+;jp<in;=ti;pwj=+h1+i{ln;e)t(p1+*i6=+=n0ij<;s,n=sf)os=1r+05(pi;nnts}j=1s+;j<pin=;ti;wpj=h+1i+il{ne;)t(p+1*i+4==in0<j;s,=1=sn3s=)+0p;111n2.0n.i1nin1nin-i9n87.-iA6+On=1e1 45n2-1513642 2a6[6m1].-1 COA(nO)D(1O)B8(nO5lno(lgongCB)2D8nA4) Bnn8A2C((A58D)03A7GBC2G4. 37A8A45D7(15B02) 0B35545D6s(58C=31Cr)0e4n)a3C+r51-AO>Dn(8lilB2no0C*nkgnn(r-2De>1ACna)lOi)rnDB=A(k1rOs;er)(eBa=7narO9l-=eor>C-(arg>nleir2nl);aink7r)-ke8>-ad>lrianl=itCnkare;kO,=adl7(irsenm-6-Alk>e>A)rOlDtlie1einn(7aOAk1kr7rA;e([);1nmBdCaDd]meOr[+e41;lnl7Ae(]en4C)2t4te)2eD70s04sA;B;7[343A7][13.1]4/24A6CA.1[057]A[5B5.41].A16CA.72D4hB.17C1C3B1..2392B7.DD2C2.h5.Q+1B72DC1UA.1C.Q.-C4hQ>QU0.fU3Ur2-o1>--Cn>D>ret.rr.=2Ceeah=aar-Qrr1Q-=D7QUU=0.U-1QQ->>0-rU>UferDf-(maor>Co.rnhf0+(n)rtA+o-1t1=1n)((A6=AtD9=m)).mDn(0B/02)(D)(C(B)()B)n6(A+81)A/2D.6174AAn.1(CA0B6A).CtB6on.p2C+-81+DCB/2.61S51CA6T8B(.6D4BS-5.>3t16)ToNt9o-pn>tp-o-t<poDCD>=p.m1<=12>NC0206.t2oSpBAT.mDDto0.B.pB6S.DB1.TC.S(t-oACB.T>p()t-DAo=>np).0t/o62=p0m(=(DC0-C1)()((ABB))()5D9n).+(B1D/)528n (C(AC)A)(A(5DnA)7(-).B15B/)2A5A.61.t0(BoDCpB.)6++5n5B8C.51D.B417C1.5t9o3pND-Ct-o..8p1=2(C=CN.)(tA(oBDrApe)A.)(atD5f.orr!2)po=C(BnNBD5t.=U)1.t=LoCr5Lpe.0=Baf0roD(n.CDtr()eBAfa)rrof,rno4tn=9tA=.!(=NDN(UD)B(UDL)L)(LC)(B)4(A8)(CD()A)(D)4A(7BD4B) 6C“” DCD.D4A.5.B. 4. 4BC.n.D(An.>.B1.)hCr(.)D4A.3.B. . CD.DA4.2.B. . CA. AD4.1. CBn.AD+n1-410DCnA02Bnnn A 39ADBnnnC2A+33B18689D8sDB1-BC7>3s6B7lL-p>in-ClA>Lkp=inr-pLCk>;i=sn3rp-kL>7;Cis=4nrL-2sk>Ai;1nr=3p3LksC32-=iDn;>61sDpkr1--L1=>,>B2i3pnr3Cl,2L-k31>hi-An23r>eLkh5laL;iB=ednpdipank->;dk;tppar=n-L-,=>se>iln;LNrxrsLLkti-Un=i-i>nnk>hLlkk,LleLL-=ria>n3iLsndlk4iL;knpB=hi=kn-peh>psk;aeD;sr=psdaLhs-di>n;es-DkrBa>-L->dn>iCnr!el=LLkxNi=intBn=Uspkk3=;=-L=A>3NpLsr-U;L>DiLnrLkDinkC B A3C23nAC0+n{1-215D73110BC0nn51AA431D5A1B7A84C2a3352D49Ba1BA(5a(2))}C18 ADAC.AsC6=. r.92e588a04r->2CliDn7rBk1eA.-0CaB>s50rpDl.-A=i1>n-9.rs>4Blek94i=9ln;rai28nrekre6kea-=Aa>=arpr=Blsri-;Cn-r>-r>e>k.elilalni24ai-nnr>k5r-kk=>;ld-ip;nr>lasi-enk-l>tia>;kn2lri,l;fkn4i-rnl>f=ekdirnkDlse=ai=kn-e(st.>rpak;(e3l;r,iaenflirakne)r;C;kBDe)Dfq;6q(rsepA3-)>e*-8;>ql(2is*lni3p)nDBk;1*k=67s2=C37sAs.;5Ba->sB0-lDi>n2Claki2An;2B1Aknq(a=(-)>qC)2l;in2DkB13n=Cn2As+31;B14 AD5B4BEC2CDC6E2kF7+AG12H2k8I0J 199B0D21Bkk20+k-1B1-+11 1C2181C433A2113411CD7D211,B23,23C11C36OAOA(D(nA1loO)Bg(X2nnC) )0nB(1nOD5-11(Onl)oD2A(gn2n2-1n)lD4)3nnCB(n3n-B41A)1AD(E5AB4B)C2D6CEF7GH(18BI3J) 9 10 C(CC11s(1)-n2A>+4(nn1Ae-)21x/2A)t1=/1C2s1p3(-na-D>>bA1n)nBnca4eCenbx1x/ct20=tDpDapa-b+s>Bb=c1ncCarpebe-xca>AtB=rnD-se>x9lBitnC=DksrD-eB>asl(i-rA*n>B=pksnrD);e.er=ns8eaxre-Csaret>-x=pras>Blt-Lpr-=r>lCep>i;-nsl>a-ilrA(n>Lkern*p-k=iasen7>r-pL)rxk>dl.=i;nt=nlasCprienpk-etL-O>ax;k>ais=,nrt=d(nr=L-nslk-se>ii>(n;ln-DAl*orx=el>kpLkitOgsntrl=-)iei=n;>k.n(spna1)kr;kr-D-eLe=r)>d;>DBa6xiOapnedrltrnOLr-elk-(e;>>in-xlB(n5ter>nCl2teLkidtnl)eL;ri=asnpkeipt;ns-ka>;k;rp,plrA=i-lL-nL>rs>Biekin;=rnrs;raLLkrek-rie-i>ne,a-n>a>lkarkLlrL=l-r=i;>n-irnsr>elkeL;klap=iaip-=nnr->prs-k>s4k=>l;-i;dr=nrp>lsLieasDnk-liia>tn;knasrk;fk-,Lr->f=el>CirinrlsenliLLnk-e(kAi>r=iknr(neler;spkikeanaf;=-=Drak>rep)sDr;r.;3e-);Lf>;(rBiCsenrC.L)ek;i(AnsDk); 2BC AD1Bii A

食堂饭卡管理系统源代码

食堂饭卡管理系统源代码
printf("\n\t\t输入密码:");
scanf("%s",&student[num].password);
printf("\n\t\t输入添加金额:");
scanf("%d",&student[num].balance);
num++;
printf("\n\t\t是否继续添加?(Y/N):");
void select(); /* 主菜单 */
void writetofile();
void addnewcard(); /*添加用户*/
void searchcard(); /*查询用户*/
printf("\n\t\t余额: %d",student[i].balance);
printf("\n\t\t密码: %s",student[i].password);
printf("\n\t\t************************************************");
if (getch()=='y')
addnewcard();
return;
}
void searchcard() /*查询用户 */
{
int mark=0;
int i;
int a=0;
char cardnumber[10];
printf("\n\t\t***************** 按学号查找 *****************\n");

C语言实现餐饮点餐管理系统

C语言实现餐饮点餐管理系统

C语⾔实现餐饮点餐管理系统本⽂实例为⼤家分享了C语⾔实现餐饮点餐管理系统的具体代码,供⼤家参考,具体内容如下具体代码如下/*项⽬名称:南航餐饮管理系统组员:梁⽂新,刘青林,刘艺,施瑞⽂(组长)*///当注册⽤户名为:root,密码为:root的账号时,系统默认为初始管理员//头⽂件#include<stdio.h>#include<stdlib.h>#include<time.h>#include<conio.h>#include<windows.h>#include<string.h>//宏定义区#define M sizeof(struct User)//⽤户表的⼤⼩#define N sizeof(struct stapleFood)//主⾷表⼤⼩#define P sizeof(struct non_stapleFood)//副⾷表⼤⼩#define Q sizeof(struct Drink_beverage) //饮品表⼤⼩#define X sizeof(struct Table)//餐桌表⼤⼩#define Y sizeof(struct Form)//订单表⼤⼩//结构体struct User //⽤户表{char userName[10];//⽤户名char passWord[18];//密码int isVIP;//会员标记int isAdministrator;//管理员标记float money;//余额struct User *next;//指针域};typedef struct User user;typedef user* pUser;struct stapleFood //主⾷{char name[20];float price;struct stapleFood *next;};struct non_stapleFood //副⾷{char name[20];float price;struct non_stapleFood *next;};typedef struct non_stapleFood non_staple_food;typedef non_staple_food *pNon_stapleFood;struct Drink_beverage //饮品{char name[20];float price;struct Drink_beverage *next;};typedef struct Drink_beverage drinkBeverage;typedef drinkBeverage *pDrinkBeverage;struct Table //餐桌{int ID;//餐桌编号int People;//已坐⼈数int count;//可容纳⼈数char Username[10];//订餐⼈struct Table *next;};typedef struct Table table;typedef table *pTable;struct Form //订单{char name[20];float price;struct Form *next;};typedef struct Form orderForm;typedef orderForm *pOrder;//⾃定义函数区//⽤户客户端void Default();//欢迎界⾯void User_Login();//⽤户登录界⾯void Logon();//注册界⾯pUser readUserFile();//从⽂件中读取⽤户信息,返回⼀个表头地址void save_User(pUser p1);//将⽤户信息保存到⽂件中void User_Menu();//⽤户菜单void User_Order();//点餐void Order_StapleFood();//主⾷void Order_nonStapleFood();//副⾷void Order_DrinkBeverage();//饮品void Order_Form(int ID,int number);//订单void User_List_Table();//餐桌列表void Apply_VIP_Menu();//会员办理菜单void Add_money(pUser head);//充值void Updata_User(pUser head);//更新⽤户表void Apply_VIP(pUser head);//办理会员void User_Wallet();//我的钱包//管理员客户端void Administrator_Menu();//管理员菜单void Administrator_Login();//管理员登录void Check_User();//查看⽤户void Find_User();//查找⽤户void All_User();//查看所有⽤户void All_VIP();//本店会员void Setup_administrator();//设置管理员void Food();//菜品信息void Add_Food();//添加菜单void save_stapleFood(pStapleFood p);//保存主⾷信息void save_non_stapleFood(pNon_stapleFood p);//保存副⾷信息void save_drinkBeverage(pDrinkBeverage p);//保存饮品信息pStapleFood readStapleFoodFile();//从主⾷⽂件中读取⽤户信息,返回⼀个表头地址pNon_stapleFood readNonStapleFoodFile();//从副⾷⽂件中读取⽤户信息,返回⼀个表头地址pDrinkBeverage readDrinkBeverageFile();//从饮品⽂件中读取⽤户信息,返回⼀个表头地址void Table();//餐桌管理void Add_Table();//添加餐桌void save_Table(pTable p);//保存餐桌信息pTable readTableFile(); //从餐桌⽂件中读取⽤户信息,返回⼀个表头地址void Clear_Table();//清理餐桌void Clear_oneTable();//清理指定餐桌void Administrator_List_Table();//餐桌列表//公共函数void toxy(int x,int y);//将光标移动到x,y坐标处void HideCursor(int x);//隐藏光标char *HidePassword();//隐藏密码void Exit();//退出系统void Change();//切换账号void Amend_passWord();//修改密码void List_Food();//菜单列表//全局变量区char _userName[10];char _passWord[18];//记录当前⽤户pOrder orderHead=NULL,p2=NULL;//记录当前⽤户的订单int num=0;//函数实现区void toxy(int x,int y)//将光标移动到x,y坐标处{COORD pos={x,y};HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(Out,pos);}void HideCursor(int x)//隐藏光标 ,当x为0时,隐藏,为1时,显⽰{CONSOLE_CURSOR_INFO cursor_info ={1,x};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); }void Default()//欢迎界⾯{char t;//⽤于选择do{HideCursor(0); //隐藏光标system("color 72");toxy(28,8);printf(" 欢迎来到南航餐饮! ");toxy(26,9);printf("-----------------------------");toxy(27,11);printf("1.登录 2.注册 3.管理员登录");while(1) //死循环为防⽌其他按键⼲扰{t=getch();//不回显函数if(t=='1')//如果按1,则进⼊登录界⾯User_Login();else if(t=='2')//如果按2,则进⼊注册界⾯Logon();else if(t=='3')Administrator_Login();}//如果既不是1也不是2和3,则循环输⼊}while(1);//永远为真}void User_Menu()//⽤户菜单{char t;//⽤于选择菜单选项do{system("cls");HideCursor(0); //隐藏光标system("color 74");toxy(32,3);printf("南航餐饮点餐系统!");toxy(32,4);printf("当前⽤户:%s",_userName);toxy(30,5);printf("*********************");toxy(32,7);printf("| 1.菜单列表 |");toxy(32,9);printf("| 2.餐桌列表 |");toxy(32,11);printf("| 3.会员办理 |");toxy(32,13);printf("| 4.修改密码 |");toxy(32,15);printf("| 5.我的钱包 |");toxy(32,17);printf("| 7.退出系统 |");t=getch();//不回显函数,输⼊⼀个值switch(t){case '1':User_Order();break;case '2':User_List_Table();break;case '3':Apply_VIP_Menu();break;case '4':Amend_passWord();break;case '5':User_Wallet();break;case '6':Change();break;case '7':Exit();break;default :break;}}while(1);//永远为真}char *HidePassword()//隐藏密码{char password[18];//密码char *p;//指向密码的指针int i=0;//记录密码位数char t;//输⼊密码for(;;) //此处为输⼊密码不回显操作{t=getch(); //输⼊kif(t=='\r') //如果输⼊k为回车,则跳出循环{break;}else if(t=='\b') //如果输⼊k为删除键{if(i>0) //如若密码还没完全删除{printf("\b");printf(" ");printf("\b");i--;}}else //如果输⼊的k既不是删除键,也不是回车键{password[i]=t; //把k的值赋给_password[i];printf("*"); //输出*号,保护⽤户隐私i++; //密码位数加1}}password[i]='\0';//在数组末端加⼀个结束符p=password;//让p指向该数组return p; //返回⼀个指向密码的指针}pUser readUserFile()//从⽂件中读取⽤户信息,返回⼀个表头地址{FILE *fp; //⽂件指针int n=0;//记录链表的结点数pUser head=NULL;//定义头指针pUser p2,p,pre;fp=fopen("User.txt","a+"); //以只读的⽅式打开⽂件if(fp==NULL){printf("cannot open file\n");}else{while(!feof(fp)) //判断⽂件位置标志是否移动到⽂件末尾{n++;p=(pUser)malloc(M); //向内存申请⼀段空间fread(p,M,1,fp); //将fp所指向的⽂件中的内容赋给pif(n==1){head=p;p2=p;}else //创建链表{pre=p2;p2->next=p;p2=p;}}p2->next=NULL;}if(n<=2)head->next=NULL;elsereturn head; //返回头指针}void save_User(pUser p1) //将p1所指向的内容存储到⽂件中{FILE *fp; //⽂件指针fp=fopen("User.txt","a+"); //以追加的⽅式打开⽂件if(fp==NULL){printf("cannot open file\n");}if(fwrite(p1,M,1,fp)!=1) //将p1所指向的1个⼤⼩为N的数据结构写⼊fp所指向的⽂件中{printf("file write error\n");}fclose(fp); //关闭⽂件}void User_Login()//登录页⾯{char *q,t,c;//q指针⽤于接收 *HidePassword()函数返回的指向密码的指针,t和c均⽤于选择pUser p=readUserFile();//从⽂件中读取⽤户信息,返回⼀个表头地址do{HideCursor(1);//显⽰管光标system("cls");//清屏system("color 73");//设置颜⾊toxy(28,8);printf("南航餐饮管理系统登录界⾯");toxy(26,9);printf("-----------------------------");toxy(32,11);printf("⽤户名:");toxy(32,13);printf("密码:");toxy(40,11);scanf("%s",_userName);toxy(40,13);q=HidePassword();//输⼊密码strcpy(_passWord,q);//将获得的密码复制给_passWord[]数组while(p!=NULL&&strcmp(p->userName,_userName)!=0) //遍历链表,寻找当前输⼊的账户的账号 {p=p->next;}if(p!=NULL) //如果p不为空{if(strcmp(p->passWord,_passWord)==0) //如果输⼊的密码正确{toxy(32,16);printf("正在登陆....");Sleep(500); //暂停0.5秒system("cls");toxy(32,10);printf("登陆成功!");break; //跳出循环}else //如果输⼊的密码错误{toxy(32,16);printf("正在登陆....");Sleep(500);system("cls");toxy(30,8);printf("-------------------------");toxy(30,9);printf("| |");toxy(30,10);printf("| 密码错误!是否继续? |");toxy(30,12);printf("| 1.是 2.否 |");toxy(30,13);printf("| |");toxy(30,14);printf("-------------------------");while(1)//⽆限循环为防⽌其他按键⼲扰{t=getch(); //输⼊tif(t=='1'){system("cls"); //清屏break;}else if(t=='2') //如果输⼊t为n,进⼊开始界⾯{system("cls"); //清屏Default();break;}}else //如果p为空,即输⼊的账号不正确{toxy(32,16);printf("正在登陆....");Sleep(500);system("cls");toxy(30,8);printf("-------------------------");toxy(30,9);printf("| |");toxy(30,10);printf("| 账号错误!是否继续? |");toxy(30,11);printf("| |");toxy(30,12);printf("| 1.是 2.否 |");toxy(30,13);printf("| |");toxy(30,14);printf("-------------------------");while(1) //死循环防⽌其他按键⼲扰{c=getch();if(c=='1'){system("cls");break;}else if(c=='2'){system("cls"); //清屏Default();}}}}while(1);Sleep(500); //暂停0.5秒User_Menu(); //账号密码均正确,进⼊⽤户主菜单}void Logon()//注册界⾯{pUser p1;pUser p=readUserFile();//从⽂件中读取⽤户信息,返回⼀个表头地址p1=(pUser)malloc(M); //向内存申请⼀段空间char *q1,*q2;//q1,q2分别⽤于接收 *HidePassword()函数返回的值char userName[10],passWord[18],againPassword[18],c,k,t;//c,k,t均⽤于选择 do{system("cls");system("color 73");HideCursor(1);//显⽰光标int flag=0;//标记信息库中是否存在要注册⽤户名toxy(28,8);printf("南航餐饮管理系统注册界⾯");toxy(26,9);printf("-----------------------------");toxy(32,11);printf("⽤户名:");toxy(32,13);printf("密码:");toxy(32,15);printf("确认密码:");toxy(42,11);scanf("%s",userName);//输⼊⽤户名toxy(42,13);q1=HidePassword();//输⼊密码strcpy(passWord,q1);toxy(42,15);q2=HidePassword();//输⼊确认密码strcpy(againPassword,q2);while(p!=NULL) //遍历链表,寻找当前输⼊的账户的账号{if(strcmp(p->userName,userName)==0)//如果信息库中存在该⽤户名{toxy(32,17);printf("⽤户名已存在,请重新注册!");flag=1;//flag为1时表⽰⽤户名已存在break;//跳出循环}p=p->next;}if(flag)//如果⽤户名已存在{HideCursor(0);//隐藏光标toxy(32,21);printf("1.是\t2.否");while(1){t=getch();if(t=='1')break;else if(t=='2')break;}if(t=='1')//如果继续,则重新注册continue;else if(t=='2')//如果不继续,则回到⾸页{system("cls");//清屏Default();//回到⾸页}}if(strcmp(passWord,againPassword)==0) //如果输⼊的两次密码均正确 {strcpy(p1->userName,userName);strcpy(p1->passWord,passWord);strcpy(_userName,userName);strcpy(_passWord,passWord);p1->isVIP=0;p1->money=0;if(strcmp(userName,"root")==0&&strcmp(passWord,"root")==0)p1->isAdministrator=1;elsep1->isAdministrator=0;toxy(32,16);printf("正在注册....");Sleep(500);break; //跳出循环}else //如果输⼊的两次密码不同{toxy(32,16);printf("正在注册....");Sleep(500);system("cls");toxy(30,8);printf("------------------------------");toxy(30,9);printf("| |");toxy(30,10);printf("|两次密码不⼀致!是否继续注册?|");toxy(30,11);printf("| |");toxy(30,12);printf("| 1.是 2.否 |");toxy(30,13);printf("| |");toxy(30,14);printf("------------------------------");while(1){c=getch();if(c=='1'){system("cls");break;}else if(c=='2'){system("cls");Default();break;}}}}while(1);save_User(p1); //调⽤函数,将p1所指向的内容存储到⽂件中system("cls");toxy(32,10);printf("注册成功!");Sleep(500); //暂停0.5秒toxy(32,12);printf("正在⾃动为您登陆....");Sleep(500);User_Menu(); //注册成功后进⼊主菜单}void User_Order()//点餐{int ID;int number;do{while(1){system("cls");HideCursor(1);int flag=0;pTable T,Thead;Thead=readTableFile();T=Thead;int j=11;toxy(12,6);printf("餐桌列表(按任意键继续)");toxy(2,8);printf("餐桌编号 | 可坐⼈数 | 已坐⼈数");toxy(0,9);printf("--------------------------------------");while(T!=NULL){toxy(6,j);printf("%-10d%-10d%d",T->ID,T->count,T->People); j++;T=T->next;}toxy(38,12);printf("请选择餐桌号:");scanf("%d",&ID);toxy(40,14);printf("请选择⼈数:");scanf("%d",&number);T=Thead;while(T!=NULL){if(T->ID==ID){if((T->count)-(T->People)>=number){toxy(38,16);printf("占座成功!按任意键继续点餐");flag=1;break;}else{toxy(38,16);printf("占座失败!该餐桌座位不够");flag=0;break;}}T=T->next;}if(T==NULL&&flag==0){toxy(38,16);printf("该餐桌编号不存在,请重新输⼊");Sleep(1000);continue;}else if(T!=NULL&&flag==0){toxy(38,17);printf("是否继续 1.是 2.否");while(1){ch=getch();if(ch=='1'||ch=='2')break;}if(ch=='1')continue;else if(ch=='2')break;}else if(flag)break;}if(ch=='2')break;getch();do{system("cls");printf("-----------------");toxy(28,10);printf("1) 主⾷");toxy(28,12);printf("2) 副⾷");toxy(28,14);printf("3) 饮品");toxy(28,16);printf("4)订单");toxy(28,18);printf("5)返回");t=getch();switch(t){case '1':Order_StapleFood();break;case '2':Order_nonStapleFood();break;case '3':Order_DrinkBeverage();break;case '4':Order_Form(ID,number);break;case '5':break;default :break;}if(t=='5')break;}while(1);if(t=='5')break;}while(1);}void Order_StapleFood()//主⾷{char t;do{system("cls");pStapleFood p,head=readStapleFoodFile();pOrder p1;p=head;char foodName[20];int i=8;toxy(10,4);printf("主⾷菜单");toxy(6,6);printf("菜名\t\t\t价格");toxy(0,7);printf("-----------------------------------");while(p!=NULL){toxy(6,i);printf("%-22s%.2f",p->name,p->price);i++;p=p->next;}toxy(40,8);printf("请输⼊您要点的菜名:");scanf("%s",foodName);p=head;while(p!=NULL&&strcmp(p->name,foodName)!=0) {p=p->next;}if(p){p1=(pOrder)malloc(Y);strcpy(p1->name,foodName);p1->price=p->price;num++;if(num==1){orderHead=p1;p2=p1;}else{p2->next=p1;p2=p1;}p2->next=NULL;toxy(40,10);printf("点餐成功!是否继续?1.是 2.否");while(1){if(t=='2')break;}else{toxy(36,10);printf("没有找到这道菜,请检查您输⼊的菜名是否正确!"); Sleep(1500);}}while(1);}void Order_nonStapleFood()//副⾷{char t;do{system("cls");pNon_stapleFood p,head=readNonStapleFoodFile();pOrder p1;p=head;char foodName[20];int i=8;toxy(10,4);printf("副⾷菜单");toxy(6,6);printf("菜名\t\t\t价格");toxy(0,7);printf("-----------------------------------");while(p!=NULL){toxy(6,i);printf("%-22s%.2f",p->name,p->price);i++;p=p->next;}toxy(40,8);printf("请输⼊您要点的菜名:");scanf("%s",foodName);p=head;while(p!=NULL&&strcmp(p->name,foodName)!=0){p=p->next;}if(p){p1=(pOrder)malloc(Y);strcpy(p1->name,foodName);p1->price=p->price;num++;if(num==1){orderHead=p1;p2=p1;}else{p2->next=p1;p2=p1;}p2->next=NULL;toxy(36,10);printf("点餐成功!是否继续?1.是 2.否");while(1){t=getch();if(t=='1')break;else if(t=='2')break;}if(t=='2')break;}else{toxy(36,10);printf("没有找到这道菜,请检查您输⼊的菜名是否正确!"); Sleep(1500);}}while(1);pDrinkBeverage p,head=readDrinkBeverageFile();pOrder p1;p=head;char foodName[20];int i=8;toxy(10,4);printf("饮品菜单");toxy(6,6);printf("菜名\t\t\t价格");toxy(0,7);printf("-----------------------------------");while(p!=NULL){toxy(6,i);printf("%-22s%.2f",p->name,p->price);i++;p=p->next;}toxy(40,8);printf("请输⼊您要点的菜名:");scanf("%s",foodName);p=head;while(p!=NULL&&strcmp(p->name,foodName)!=0){p=p->next;}if(p){p1=(pOrder)malloc(Y);strcpy(p1->name,foodName);p1->price=p->price;num++;if(num==1){orderHead=p1;p2=p1;}else{p2->next=p1;p2=p1;}p2->next=NULL;toxy(36,10);printf("点餐成功!是否继续?1.是 2.否");while(1){t=getch();if(t=='1')break;else if(t=='2')break;}if(t=='2')break;}else{toxy(36,10);printf("没有找到这道菜,请检查您输⼊的菜名是否正确!"); Sleep(1500);}}while(1);}void Order_Form(int ID,int number)//订单{do{system("cls");int i=10;char t;float totalPrice=0;float actualPayment=0;pOrder p=orderHead;pUser q,head;pTable T,Thead;q=head;if(orderHead==NULL){printf("我的订单");toxy(22,8);printf("菜品名称\t\t价格");toxy(20,9);printf("***************************");while(p!=NULL){toxy(22,i);printf("%-18s%.2f",p->name,p->price);i++;totalPrice+=p->price;p=p->next;}head=readUserFile();q=head;toxy(20,i);printf("***************************");while(q!=NULL&&strcmp(q->userName,_userName)!=0) {q=q->next;}if(q){toxy(24,++i);printf("总价: %.2f",totalPrice);if(q->isVIP)actualPayment=totalPrice*0.85;elseactualPayment=totalPrice;toxy(24,++i);printf("实付: %.2f",actualPayment);}toxy(22,++i);printf("1.确认⽀付 2.取消订单 3.返回");while(1){t=getch();if(t=='1'||t=='2'||t=='3')break;}if(t=='1'){Thead=readTableFile();T=Thead;while(T!=NULL&&T->ID!=ID){T=T->next;}toxy(24,++i);printf("正在⽀付....");if(q->money>=actualPayment){q->money-=actualPayment;T->People+=number;Updata_User(head);Updata_Table(Thead);Sleep(1500);system("cls");toxy(24,10);printf("⽀付成功!按任意键返回");orderHead=NULL;getch();break;}else{Sleep(1500);system("cls");toxy(24,10);printf("余额不⾜!按任意键返回");getch();break;}}else if(t=='2'){orderHead=NULL;break;}else if(t=='3')void User_List_Table()//餐桌列表{system("cls");pTable p,head;head=readTableFile();p=head;int i=11;toxy(32,6);printf("餐桌列表(按任意键继续)");toxy(22,8);printf("餐桌编号 | 可坐⼈数 | 已坐⼈数");toxy(20,9);printf("--------------------------------------");while(p!=NULL){toxy(26,i);printf("%-10d%-10d%d",p->ID,p->count,p->People);i++;p=p->next;}getch();}void Apply_VIP_Menu()//办理会员{char t; //t⽤于选择do{system("cls");system("color 75");HideCursor(0);pUser head=readUserFile();//从⽂件中读取⽤户信息,返回⼀个表头地址toxy(32,6);printf("会员办理");toxy(30,8);printf("1) 充值 ");toxy(30,10);printf("2) 办理会员");toxy(30,12);printf("3) 返回");t=getch();switch(t){case '1':Add_money(head);break;case '2':Apply_VIP(head);break;case '3':break;default :break;}if(t=='3')//如果输⼊3,则跳出循环,该函数⽣命周期结束,回到上⼀级菜单break;}while(1);}void Add_money(pUser head)//充值{float money;//输⼊要充值的钱pUser p;p=head;//head为从上⼀级菜单传过来的参数,为⽤户信息链表的头结点while(p!=NULL&&strcmp(p->userName,_userName)!=0)//遍历链表,寻找当前登录账户的信息 {p=p->next;}while(1){system("cls");system("color 76");toxy(32,6);printf("南航餐饮充值中⼼");if(p!=NULL){if(p->isVIP==0)//如果不是会员{toxy(20,8);printf("对不起,您还不是会员,请先办理会员后再来充值!");toxy(32,10);printf("请按任意键返回!");break;}else if(p->isVIP==1)//如果是会员{HideCursor(1);toxy(32,8);printf("请输⼊充值⾦额(⼀次不少于200):");printf("正在充值....");Updata_User(head);//更新⽤户表toxy(32,10);printf("充值成功 ");toxy(32,12);printf("请按任意键返回!");break;}else//如果充值⾦额⼩于200{toxy(32,10);printf("⼀次⾄少充值200元!");Sleep(1500);continue;}}}}getch();}void Apply_VIP(pUser head)//办理会员{system("cls");system("color 76");pUser p=head;//head为从上⼀级菜单传过来的参数,为⽤户信息链表的头结点char t;float money;toxy(32,6);printf("南航餐饮会员办理中⼼");while(p!=NULL&&strcmp(p->userName,_userName)!=0)//遍历链表,寻找当前登录账户的信息 {p=p->next;}do{if(p!=NULL){if(p->isVIP==1)//如果已经是会员{toxy(20,8);printf("您已是本店尊贵会员,⽆需再次办理!");toxy(32,10);printf("请按任意键返回!");getch();break;}else if(p->isVIP==0)//如果还没办理会员{toxy(30,8);printf("提⽰:");toxy(30,9);printf("1.办理会员⾄少充值500");toxy(30,10);printf("2.冲500送200,冲1000送500");toxy(32,12);printf("是否确认办理会员?");toxy(32,13);printf("1.是\t2.否");while(1){t=getch();if(t=='1')break;else if(t=='2')break;}if(t=='1'){while(1){system("cls");HideCursor(1);toxy(32,10);printf("请输⼊充值⾦额:");scanf("%f",&money);if(money>=500&&money<1000){money+=200;p->money+=money;p->isVIP=1;Updata_User(head);toxy(32,12);}else if(money>=1000){money+=500;p->money+=money;p->isVIP=1;Updata_User(head);toxy(32,12);printf("恭喜,您已成为本店尊贵会员!");toxy(32,14);printf("请按任意键返回主菜单");getch();User_Menu();}else{toxy(32,12);printf("办理会员⾄少充值500");Sleep(2000);}}}else if(t=='2')break;}}}while(1);}void Updata_User(pUser head)//更新⽂件{FILE *fp;pUser p=head->next; //使p指向第⼆个结点fp=fopen("User.txt","w"); //先清空原⽂件内容再将修改后的信息写⼊⽂件if(fp==NULL){printf("cannot open file\n");}if(fwrite(head,M,1,fp)!=1) //将head所指向的数据写⼊fp所指向的⽂件{printf("file write error\n");}fclose(fp); //关闭⽂件fp=fopen("User.txt","a"); // 打开User.txt⽂件,⽅式为追加while(p!=NULL) //p不为空就执⾏循环体{if(fwrite(p,M,1,fp)!=1) //将p所指向的1个⼤⼩为N的数据结构写⼊fp所指向的⽂件{printf("file write error\n");}p=p->next; //使p指向下⼀个结点}fclose(fp); //关闭⽂件}void Amend_passWord()//修改密码{system("cls"); //清屏HideCursor(0); //隐藏光标,看着更舒服pUser p,head;head=readUserFile();do{p=head;char password[18],newpassword[18],t,k,*q1,*q2;int i=0;toxy(34,5); //将光标移动到坐标为(50,5)的位置printf("南航餐饮点餐系统");toxy(34,8);printf("修改密码");toxy(32,10);printf("请输⼊旧密码:");q1=HidePassword();strcpy(password,q1);toxy(32,12);printf("请输⼊新密码:");q2=HidePassword();strcpy(newpassword,q2);while(p!=NULL&&strcmp(p->userName,_userName)!=0)//遍历链表,寻找当前登陆账户的账号 {p=p->next;}if(p!=NULL) //如果p不为空break; //跳出循环}else //如果旧密码输⼊错误{system("cls");toxy(30,8);printf("--------------------------");toxy(30,9);printf("| |");toxy(30,10);printf("| 密码错误!是否继续? |");toxy(30,11);printf("| |");toxy(30,12);printf("| 1.是 2.否 |");toxy(30,13);printf("| |");toxy(30,14);printf("--------------------------");while(1){t=getch(); //输⼊tif(t=='1'){system("cls");break;}else if(t=='2')User_Menu();}}}}while(1); //永远为真Updata_User(head);//修改密码toxy(32,14);printf("修改成功!正在跳转...");Sleep(500); //暂停0.5秒}void User_Wallet()//我的钱包{system("cls");system("color 78");pUser p,head;head=readUserFile();p=head;while(p!=NULL&&strcmp(p->userName,_userName)!=0) {p=p->next;}if(p!=NULL){toxy(32,10);printf("账户余额为:%.2f",p->money);toxy(32,12);printf("请按任意键返回");}getch();}void Change()//切换账号{system("cls");Default();}void Exit()//退出点餐系统{char t;toxy(30,10);printf("-----------------------");toxy(30,11);printf("| 您确定要退出吗? |");toxy(30,13);printf("| 1.确定 2.取消 |");toxy(30,14);printf("-----------------------");while(1){t=getch(); //输⼊tswitch(t){case '1':system("cls");toxy(32,10);printf("已安全退出软件");toxy(32,12);printf("谢谢使⽤!");toxy(32,14);printf("by-by^_^");exit(0); break; //终⽌程序case '2':break; //调⽤函数,进⼊菜单default :break;}if(t=='2')break;}}void Administrator_Menu()//管理员菜单{char t;//⽤于选择菜单选项do{system("cls");HideCursor(0); //隐藏光标system("color 74");toxy(32,3);printf("南航餐饮管理系统!");toxy(32,4);printf("当前管理员:%s",_userName);toxy(30,5);printf("*********************");toxy(32,7);printf("| 1.菜品信息 |");toxy(32,9);printf("| 2.餐桌管理 |");toxy(32,11);printf("| 3.查看⽤户 |");toxy(32,13);printf("| 4.本店会员 |");toxy(32,15);printf("| 5.设置管理员 |");toxy(32,17);printf("| 6.修改密码 |");toxy(32,19);printf("| 7.切换账号 |");toxy(32,21);printf("| 8.退出系统 |");t=getch();//不回显函数,输⼊⼀个值switch(t){case '1':Food();break;case '2':Table();break;case '3':Check_User();break;case '4':All_VIP();break;case '5':Setup_administrator();break;case '6':Amend_passWord();break;case '7':Change();break;case '8':Exit();break;default :break;}}while(1);//永远为真}void Administrator_Login()//管理员登录{char *q,t,c;//q指针⽤于接收 *HidePassword()函数返回的指向密码的指针,t和c均⽤于选择 pUser p=readUserFile();//从⽂件中读取⽤户信息,返回⼀个表头地址do{HideCursor(1);//显⽰管光标system("cls");//清屏system("color 73");//设置颜⾊toxy(28,8);printf("南航餐饮管理员登录界⾯");toxy(26,9);printf("-----------------------------");toxy(32,11);printf("⽤户名:");toxy(32,13);printf("密码:");toxy(40,11);scanf("%s",_userName);toxy(40,13);q=HidePassword();//输⼊密码strcpy(_passWord,q);//将获得的密码复制给_passWord[]数组。

饭店管理系统(c语言课程设计)

饭店管理系统(c语言课程设计)
for(i=number-a;i<number;i++)
scwork();
savework();
printf("增加成功\n");
}
void searchname()//按照名字查询
{
char name[12];int r=0;
printf("请输入名字\n");
scanf("%s",name);
printf("|------------------------------------------------------------------|\n\n");
}
//---------------------------------------------------------------------------员工信息
fwrite(&number,sizeof(int),1,fn);
fclose(fn);
}
void arragework()//重置员工信息
{
printf("输入您想要安排的人员个数\n");
scanf("%d",&number);
printf("工号 姓名 每月休息日期1: 2: 3: 4: \n");
case 2:fp=fopen("mimazf.txt","wb"); if((fp=fopen("mimazf.txt","wb"))==NULL) printf("无法创建密码文件\n");break;

c语言饭卡管理系统课程设计报告

c语言饭卡管理系统课程设计报告

课程设计报告课程名称:C语言程序设计课设项目名称:饭卡管理系统学院:专业:姓名:学号:指导教师:成绩:目录第1部分课程设计题目与要求 (2)1.问题描述 (2)2.功能要求 (2)第2部分《饭卡管理系统》的设计与功能实现 (3)1.总体设计 (3)2.数据结构 (3)3.算法设计 (4)4.程序代码设计 (12)5.测试与调试 (22)附录Ⅰ程序清单 (23)附录Ⅱ用户使用说明书 (34)参考文献 (35)第1部分课程设计题目与要求1.问题描述学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家就得排长队等候,而且还要经过先去买饭票等麻烦的经不仅提高卖饭速度,还易于管理,减少不必要的麻烦,同时减轻管理人员的工作负担。

2.功能要求重复显示如图所示的主菜单,在主菜单中选择任意一项,均实现相应功能。

在主菜单中选择1,建立名为card.dat的文件,并在其中添加若干人的饭卡号、姓名、金额、挂失信息,要求饭卡号是唯一的。

在主菜单中选择2,要求用户输入饭卡号、饭费,然后系统自动从该人的饭卡中减去饭钱,并分别显示买饭前后的金额,如果原来饭卡中的金额不足5元,则不能买饭,而且显示“金额不足够,请续钱!”,如果挂失信息为真,则显示“本卡已冻结!”。

在主菜单中选择4,添加新饭卡,这时要求新饭卡号和已有的饭卡号不能重号。

在主菜单中选择5,注销旧饭卡。

在主菜单中选择6,要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。

在主菜单中选择7,在主菜单中选择0,显示“感谢使用本软件!已正常退出,按任意键结束。

”按任意键退出本系统。

第2部分《饭卡管理系统》的设计与功能实现1.总体设计图1初始的主模块图2细分后的主模块图2.数据结构例如:struct card{ char name[10],num[10]; float yu,sum; int guashi;}; num[10]表示学号放在一维数组中,name[10]表示姓名放在一维数组中,yu表示余额,sum表示消费金额的累积,guashi表示挂失的情况。

c语言课程设计食堂管理系统

c语言课程设计食堂管理系统
7.第四部分:食堂管理系统设计(4课时)
–教材章节:无
–主要内容:菜单显示、菜品添加、删除、修改和查询等功能的设计和实现
三、教学方法
本课程采用讲授法、案例分析法和实验法相结合的教学方法。
8.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识。
9.案例分析法:通过分析具体的食堂管理系统的案例,使学生更好地理解和掌握C语言编程的方法和技巧。
34.教学日志:教师记录教学过程中的得失,不断反思和改进教学方法。
反馈机制有助于我们及时了解学生的学习情况,提高课程质量。
31.开源项目参与:引导学生参与开源项目,提高他们的团队合作能力和实际项目经验。
社会实践和应用有助于学生将所学知识应用于实际,提高他们的实践能力。
十二、反馈机制
为了不断改进课程设计和教学质量,我们将建立有效的学生反馈机制。具体措施如下:
32.学生问卷:定期进行问卷,收集学生对课程的意见和建议。
33.学生座谈会:学生座谈会,与学生面对面交流,了解他们的学习需求和困惑。
教学创新有助于激发学生的学习兴趣,提高他们的学习效果。
十、跨学科整合
本课程将考虑不同学科之间的关联性和整合性,促进跨学科知识的交叉应Leabharlann 和学科素养的综合发展。具体措施如下:
26.结合数学知识:在编程中引入数学问题,让学生体会数学与编程的紧密联系。
27.结合物理知识:通过模拟物理实验,让学生了解编程在物理领域的应用。
18.课后辅导:针对有需求的学生,提供课后辅导时间,解答他们的疑问,帮助他们巩固知识。
19.项目实践:设计不同难度的编程项目,让学生根据自己的能力选择完成,激发学生的学习兴趣。
差异化教学有助于满足不同学生的学习需求,提高他们的学习效果。

c语言饭卡管理系统课程设计报告

c语言饭卡管理系统课程设计报告

课程设计报告课程名称:C语言程序设计课设项目名称:饭卡管理系统学院:专业:姓名:学号:指导教师:成绩:目录第1部分课程设计题目与要求 (2)1.问题描述 (2)2.功能要求 (2)3.任务分工 ............................................................................ 错误!未定义书签。

第2部分《饭卡管理系统》的设计与功能实现 (3)1.总体设计 (3)2.数据结构 (4)3.算法设计 (5)4.程序代码设计 (14)5.测试与调试 (25)第3部分课程设计总结......................................................................... 错误!未定义书签。

个人总结............................................................................................. 错误!未定义书签。

个人总结............................................................................................. 错误!未定义书签。

结束语................................................................................................. 错误!未定义书签。

附录Ⅰ程序清单 (26)附录Ⅱ用户使用说明书 (37)参考文献 (38)第1部分课程设计题目与要求1.问题描述学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家就得排长队等候,而且还要经过先去买饭票等麻烦的经历。

提高卖饭速度,还易于管理,减少不必要的麻烦,同时减轻管理人员的工作负担。

食堂饭卡管理系统C语言课程设计实习(一)

食堂饭卡管理系统C语言课程设计实习(一)

食堂饭卡管理系统C语言课程设计实习(一)引言概述:食堂饭卡管理系统是一种用于管理食堂内饭卡充值、消费以及查询等功能的软件系统。

本文档旨在说明食堂饭卡管理系统的设计和实现。

通过C语言课程设计实习(一),我们将使用C语言来开发这个系统。

正文:一、系统需求分析1.明确系统目标和功能需求2.分析用户的使用场景和需求3.确定系统的基本功能和界面设计4.制定系统的具体需求文档5.与用户进行需求确认和迭代二、系统设计1.确定系统的整体结构和模块划分2.设计数据库结构和表的关系3.界面设计和用户交互流程4.算法设计和业务逻辑的实现5.绘制系统的流程图和类图三、系统实现1.搭建开发环境和配置编译器2.编写程序的主框架和基本功能3.编写数据库的操作代码4.编写用户界面和交互代码5.进行模块的测试和调试四、系统优化1.对数据库进行性能优化2.对程序代码进行性能优化3.优化用户界面和交互体验4.进行系统整体功能测试5.解决系统中存在的bug和问题五、系统部署与维护1.准备部署所需的服务器和数据库环境2.将系统部署至服务器并进行测试3.培训用户的使用方法和注意事项4.定期进行系统维护和更新5.收集用户反馈和进行系统改进总结:通过C语言课程设计实习(一),我们成功地设计和实现了食堂饭卡管理系统。

该系统能够满足用户对饭卡充值、消费以及查询等功能的需求。

在实现过程中,我们充分考虑了系统的需求分析、设计、实现、优化以及部署与维护等方面。

通过不断改进和完善,我们将为用户提供更加便捷和高效的使用体验。

C语言课程设计-学生饭卡管理系统

C语言课程设计-学生饭卡管理系统

C语言课程设计-学生饭卡管理系统(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f\n",strshare[i].name,strs hare[i].kh,strshare[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);ame,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&s trshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++) m,bm)==0){printf("请输入消费金额:");if(!InitVoice())return ;Speak("请输入消费金额");ReleaseVoice();scanf("%f",&xf);strshare[i].xf+=xf;strshare[i].cash-=strshare[i].xf;if((fp=fopen("","w"))==NULL){printf("ERROR\n");exit(0);}for(i=0;i<nNum;i++)fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f\n",strshare[i].name,strs hare[i].kh,strshare[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);menu();ame,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&s trshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++) . fclose(fp);menu();}void Tj()ame,&strshare[nNum].kh,strshare[nNum].bm,&strshare[nNum].cash,&s trshare[nNum].xf);nNum++;}nNum--;。

大一c语言饭店管理系统

大一c语言饭店管理系统

大一c语言饭店管理系统以下是一个简单的C语言实现的饭店管理系统,包括菜单显示、点餐、结账等功能:```cinclude <>include <>define MAX_DISHES 100define MAX_TABLES 10typedef struct {char name[50];float price;} Dish;typedef struct {int table_num;Dish dishes[MAX_DISHES];int dish_count;} Table;Table tables[MAX_TABLES];int table_count = 0;void display_menu() {printf("菜单:\n");for (int i = 0; i < table_count; i++) {printf("桌 %d:\n", tables[i].table_num);for (int j = 0; j < tables[i].dish_count; j++) {printf("%s - %.2f 元\n", tables[i].dishes[j].name, tables[i].dishes[j].price);}}}void add_dish(Dish dish) {for (int i = 0; i < table_count; i++) {if (tables[i].dish_count < MAX_DISHES) {tables[i].dishes[tables[i].dish_count] = dish;tables[i].dish_count++;break;}}}void take_order(int table_num, Dish dish) {for (int i = 0; i < table_count; i++) {if (tables[i].table_num == table_num) {for (int j = 0; j < tables[i].dish_count; j++) { if (strcmp(tables[i].dishes[j].name, ) == 0) { printf("点餐成功!\n");return;}}}}printf("没有找到该菜品!\n");}void pay(int table_num) {float total = 0;for (int i = 0; i < table_count; i++) {if (tables[i].table_num == table_num) {for (int j = 0; j < tables[i].dish_count; j++) { total += tables[i].dishes[j].price;}printf("总计:%.2f 元\n", total);printf("请输入支付金额:");float pay = 0;scanf("%f", &pay);if (pay == total) {printf("支付成功!\n");} else {printf("支付失败!\n");}break;}}}```。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

食堂饭卡管理系统3人
基本功能:
(1)发卡:学生员工持有效证件到管理处缴押金,办理就餐卡,操作人员将相关内容写入卡中,并自动产生编号,持卡人员再预交一定金额款项即可进行就餐。

(2)存款:持卡人在卡中存款快用完时,到管理处交款存入就餐卡中,并可打印一张收据。

(3)就餐:持卡人将就餐卡插入或接近窗口机,窗口机检测是否有效,是否时本单位所发的卡,是否已被挂失,若有问题则窗口机报警,若正常则窗口机上数码显示就餐卡中的余额,工作人员键入本次用餐金额,并在数码上显示出来,若无误按结算键写卡,整个售饭过程完成。

(4)汇总统计:食堂就餐结束后,管理处计算机能通过联网(或统计卡)取出各窗口机中的数据,进行统计分析,可统计出本餐售饭总收入,各窗口收入,各持卡人存款明细,本日、月存款金额,卡中流动资金总额,日餐报表,年餐报表等
(5)挂失:持卡人不慎将卡丢失,可到管理处进行挂失,管理处将挂失名单传送到各窗口机中,用已挂失卡就餐就会报警,直到取消挂失为止,持卡人不会因卡丢失而引起经济上的损失。

(6)注销:学生离校或其他原因,不再就餐时,可到管理处注销卡退取押金,该卡还可重新使用。

相关文档
最新文档