饭卡管理系统
饭卡管理系统
文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]
饭卡管理系统
指导教师
班级
姓名
学号
完成日期
系统需求:
随着宁波大学的发展,学生,教师及外来人员的不断增加,对于食堂来讲,普通意义上的现金交易严重影响了工作效率,使消费者等待时间加长,食堂交易方式数字化已经刻不容缓,宁波大学饭卡管理系统就是基于以上问题开发,基本上能实现普通交易的功能,同时又能提高工作效率。
功能分析:
宁大高校饭卡信息包括:饭卡号码、饭卡所有者信息、初次办卡时间、余额。其中,饭卡的所有者分为学生、教师、临时人员,学生有各自的班级号,教师有所属学院等信息。
实现功能:
(1)学生入学或老师新调入,需要新建一张饭卡。
(2)学生毕业或老师调离,撤销当前对象的饭卡。
(3)饭卡的充值和消费。
(4)查询和排序功能
A:按饭卡所有人姓名查询,输出此饭卡的所有信息。
B:按饭卡号码查询,输出此饭卡的所有信息。
C:按饭卡号码大小排序,输出所有饭卡的信息。
程序设计:
Ccard类:基类,设置初始信息,设置充值,消费,余额,信息查询对象函数,初始信息中包括人的公有特征,如姓名,性别,身份证号码。
声明代码:
Cstudent类: 从Ccard类公有继承初始信息函数、查询函数,自己再设置独立的关于学生的对象,譬如班级号和类别,并要求对卡号保存。
声明代码:
Cteacher类:从Ccard类公有继承初始信息函数、查询函数,自己再设置独立的关于教师的对象,譬如所属学院、职称,并要求对卡号保存。
声明代码:
Ctemp类:从Ccard类公有继承初始信息函数、查询函数,由于是临时卡,不保存卡号。
声明代码:
遇到问题:
while(m!=0)
{
switch(m)
{
case 1:
etname(temp); etchuci(temp); etsex(tt); etidnum(temp);
cout<<"所在班级号:";
cin>>temp;
s[ssign].setclass(temp); etlei(tt); etname(temp);
cout<<"输入初次办卡时间(如:2010-1-1):";
cin>>temp;
t[tsign].setchuci(temp);
cout<<"输入性别(女—f; 男—m):";
cin>>tt;
if((tt)!='f'&&(tt)!='m')
{
cout<<"指令错误!请重新输入!"< cout<<"请输入您的性别(女—f; 男—m):"; cin>>tt; } t[tsign].setsex(tt); etidnum(temp); cout<<"所属学院:"; cin>>temp; t[tsign].setxueyuan(temp); cout<<"职称(讲师—j; 副教授—fp; 教授—p):"; cin>>tt; if((tt)!='j'&&(tt)!='fp'&&(tt)!='p') { cout<<"指令错误!请重新输入!"< cout<<"所属类别(讲师—j; 副教授—fp; 教授—p):"; cin>>tt; } t[tsign].setzhicheng(tt); etname(temp); cout<<"输入初次办卡时间(如:2010-6-1):"; cin>>temp; c[csign].setchuci(temp); cout<<"输入性别(女—f; 男—m):"; cin>>tt; if((tt)!='f'&&(tt)!='m') { cout<<"指令错误!请重新输入!"< cout<<"请输入您的性别(女—f; 男—m):"; cin>>tt; } c[csign].setsex(tt); etidnum(temp); cout<<"添加临时帐户成功!!"; csign++; break; } break; } break; case 3: cout<<"请输入待撤销饭卡用户姓名\n"; cin>>na1; cout<<"请输入待撤销饭卡用户卡号\n"; cin>>na2; for(i=0;i<100;i++) { num4=s[i].getname(); num5=t[i].getname(); num6=c[i].getname(); n0=s[i].getcardnum(); n1=t[i].getcardnum(); n2=c[i].getcardnum(); if (na1==num4) etname("0"); etchuci("0"); s[i].setsex('0'); s[i].setidnum("0"); s[i].setclass("0"); s[i].setlei('0'); cout<<"卡号:"< < 额:"< cout<<" 性别:"< < 别:"< sflag = 1; break; } if(na1==num5) etname("0"); etchuci("0"); t[i].setsex('0'); t[i].setidnum("0"); t[i].setxueyuan("0"); t[i].setzhicheng('0'); cout<<"卡号:"< <<" 办卡时间:"< cout<<"性别:"< <<所属学院:"< sflag = 1; break; } if(na1==num6) etname("0"); etchuci("0"); c[i].setsex('0'); c[i].setidnum("0"); cout<<"卡号:"< < 额:"< cout<<"性别:"< sflag = 1; break; } } if(1==sflag) { cout<<"该账户已成功删除!!!"< } if(0==sflag) etcardnum(); etcardnum(); etcardnum(); etname()!="str") { cout<<"请输入充值数额\n"; cin>>m1; s[i].chongzhi(m1); etname()!="str") { cout<<"请输入充值数额\n"; cin>>m1; t[i].chongzhi(m1); flagx = 1; break; } if (temp1==num3) if(c[i].getname()!="str") { cout<<"请输入充值数额\n"; cin>>m1; c[i].chongzhi(m1); flagx = 1; break; } } if(0==flagx) etcardnum()) onsume(m1); flag = 1; break; } else if(temp1==t[i].getcardnum()) onsume(m1); flag = 1; break; } else if(temp1==c[i].getcardnum()) onsume(m1); flag = 1; break; } } if(0==flag) etname()!="0") etcardnum()<<" 姓名:"< 额:"< cout<<" 性别(女—f; 男— m):"< } for(i=99;i>=0;i--) if(t[i].getname()!="0") etcardnum()<<" 姓名:"< 额:"< cout<<" 性别(女—f; 男— m):"< 院:"< p):"< } for(i=99;i>=0;i--) etname()!="0") { cout<<"卡号:"< 额:"< cout<<" 性别(女—f; 男— m):"< 级:"< y):"< } break; case 2: cout<<"请输入饭卡拥有者名字—1; 饭卡号码—2 \n"; cin>>m; switch (m) { case 1: cout<<"请输入饭卡查询的名字\n"; cin>>na1; for(i=0;i<100;i++) { num4=s[i].getname(); etname(); etname(); etcardnum()<<" 姓名:"< 间:"< cout<<" 性别(女—f; 男— m):"< 级:"< y):"< sflag = 1; break; } else if(na1==num5) { cout<<"卡号:"< 额:"< cout<<" 性别(女—f; 男— m):"< 院:"< sflag = 1; break; } else if(na1==num6) { cout<<"卡号:"< 额:"< cout<<" 性别(女—f; 男— m):"< sflag = 1; break; } } if(0==sflag) { cout<<"\n\n查无此人!!!\n\n"< } else { sflag = 0; } break; /***********************************************************/ case 2: cout<<"请输入查询的号码\n"; cin>>m; for(i=0;i<100;i++) { num1=s[i].getcardnum(); etcardnum(); etcardnum(); etcardnum()<<" 姓名:"< cout<<" 性别(女—f; 男— m):"< 级:"< y):"< sflag = 1; break; } else if(m==num2) { cout<<"卡号:"< 额:"< cout<<" 性别(女—f; 男— m):"< 院:"< sflag = 1; break; } else if(m==num3) { cout<<"卡号:"< 额:"< cout<<" 性别(女—f; 男— m):"< sflag = 1; break; } } if(0==sflag) { cout<<"\n\n查无此人!!!\n\n"< } else { sflag = 0; } break; } /***********************************************************/ } break; case 0: cout<<"退出系统"; exit(1); break; } } }