饭卡管理系统

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

饭卡管理系统

指导教师班级姓名学号完成日期

系统需求:

随着宁波大学的发展,学生,教师及外来人员的不断增加,对于食堂来讲,普通意义上的现金交易严重影响了工作效率,使消费者等待时间加长,食堂交易方式数字化已经刻不容缓,宁波大学饭卡管理系统就是基于以上问题开发,基本上能实现普通交易的功能,同时又能提高工作效率。

功能分析:

宁大高校饭卡信息包括:饭卡号码、饭卡所有者信息、初次办卡时间、余额。其中,饭卡的所有者分为学生、教师、临时人员,学生有各自的班级号,教师有所属学院等信息。

实现功能:

(1)学生入学或老师新调入,需要新建一张饭卡。

(2)学生毕业或老师调离,撤销当前对象的饭卡。

(3)饭卡的充值和消费。

(4)查询和排序功能

A:按饭卡所有人姓名查询,输出此饭卡

的所有信息。

B:按饭卡号码查询,输出此饭卡的所有

信息。

C:按饭卡号码大小排序,输出所有饭卡

的信息。

程序设计:

Ccard类:基类,设置初始信息,设置充值,消费,余额,信息查询对象函数,初始信息中包括人的公有特征,如姓名,性别,身份证号码。声明代码:

Cstudent类: 从Ccard类公有继承初始信息函数、查询函数,自己再设置独立的关于学生的对象,譬如班级号和类别,并要求对卡号保存。声明代码:

Cteacher类:从Ccard类公有继承初始信息函数、查询函数,自己再设置独立的关于教师的对象,譬如所属学院、职称,并要求对卡号保存。声明代码:

Ctemp类:从Ccard类公有继承初始信息函数、查询函数,由于是临时卡,不保存卡号。

声明代码:

遇到问题:

(1)当查询充值余额和消费余额时,程序正常是调用double result();//充值函数、

double consume();//消费函数、double

balance();//余额函数,但是当运行余额

函数时,总会2次调用充值和消费函数,

这样就直接导致充值的金额和消费的余

额扩大一倍,最后发现原来是返回函数写

错了,因为money是余额,money1是充值

金额,money2是消费金额,我在而我都返

回了money值给充值函数、消费函数和余

额函数。

(2)按照卡号查询饭卡所有者信息时,除了初始信息,姓名,性别,身份证号码外,

最主要的还是查询出这个号码的所剩余

额,刚开始时我使用的是调用充值,消费

函数,这样一来,当输出余额是会弹出对

话框,问你充了多少钱,消费了多少钱,

一般情况下查询时肯定不会充值和消费,

所以应该输入充值0消费0,但是这样对

于操作会很繁琐,虽然结果一样会输出,

最后我直接调用money对象,直接输出,

这样就不用再手动输入了,结果直接会显

示在显示屏上。

(3)删除信息函数,最后由于查的可以用指针的方法用new和delet函数彻底释放内

存中的信息,但是由于对C++的认识不够

深,不会用指针的方法处理这个删除任

务,所以简而求其次,把各个初值都赋0

值,这样的话信息就会以0初值的方式显

示,也可以说基本完成删除信息的任务(4)用姓名查找,首先想到怎么去掉用姓名函数,然后通过再把和姓名相关的信息输

出,但是写好程序后,不管输入怎么的姓

名,程序就是无动于衷,什么都输不出,

最后和老师一讨论,决定用匹配的方式,

就是输入的姓名和原始建卡时所存在的

姓名匹配,成功的话sflag设1,输出建

卡时的内容,简单易懂

改进:

这个程序只能说够用,挺基本的,很多功能还需要修改完善,譬如可以实现个人历史充值记录和消费记录,然后可以知道他的日平均消费或者

月平均消费,对于数字的输入也没有比较好的识别,譬如金额可以输入负数可以输入字母,虽然程序中写明用数字,但是实用中难免会出现误输入,系统就不会报错。

感想:

最最有体会的地方就是我对C++程序员致以最高的尊敬,写程序真的是太痛苦了,对于初学C++语言的我来说,亲自写个程序对我是莫大的考验,整个程序涉及到了C++的各个方面,如书中的继承,结构,类,运算符操作,数值定义方法等等,一旦程序写完觉得自己整个人都轻松了很多,其中我要感谢帮助过我的人,我的指导老师,我的同窗,我想要真正写个能在实际生活中使用的程序,凭现在的我是万万不可能的,这得积累几年的经验,几年的锻炼才可以啊,虽然这是个基础程序,但也凝结了我几天的辛勤劳作,万事开头难,有了这次实践,我想我以后会做的更好。

功能框图:

系统总程序:

#include

#include

#include

using namespace std;

class CCard //卡类

{

protected:

char sex; //拥卡者性别

string idnum; //拥卡者ID int cardnum1; //拥卡者卡号

string name; //拥卡者姓名

string chucitime; //初次办卡的时间

double balance; //卡内余额

static int cardnum; //卡号设为静态,可以使卡号连续增加

public:

CCard();

void setsex(char); //设置拥卡者性别

char getsex(); //获得拥卡者性别

void setidnum(string); //设置拥卡者ID string getidnum(); //获得拥卡者的ID void setname(string); //设置拥卡者名字string getname(); //获取拥卡者名字

void setchuci(string); //设置办卡时间

string getchuci(); //获取办卡时间

void chongzhi(double); //充值

void consume(double); //消费

double getbalance(); //获取卡内余额

int getcardnum(); //获取饭卡编号void del(); //消除饭卡

void add(); //新建饭卡

};

相关文档
最新文档