西电软件学院c++上机实验报告

上传人:小** 文档编号:90949964 上传时间:2019-06-20 格式:DOC 页数:42 大小:172.88KB
返回 下载 相关 举报
西电软件学院c++上机实验报告_第1页
第1页 / 共42页
西电软件学院c++上机实验报告_第2页
第2页 / 共42页
西电软件学院c++上机实验报告_第3页
第3页 / 共42页
西电软件学院c++上机实验报告_第4页
第4页 / 共42页
西电软件学院c++上机实验报告_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《西电软件学院c++上机实验报告》由会员分享,可在线阅读,更多相关《西电软件学院c++上机实验报告(42页珍藏版)》请在金锄头文库上搜索。

1、 C+实验报告 姓 名: 赵 妍 学 院: 软件学院 学 号: 14130140358 1、 实验要求 完成一个完整的简化系统:一卡通乘车系统。 一卡通乘车系统主要完成的功能是,支持一卡通刷卡乘车;对每张一卡通的使用情况及费用进行统计;对每辆班车的运行情况进行统计。 在实现该系统的功能时,不要求实现图形界面,控制台输出即可。 必须采用面向对象程序设计的方式实现。2、 程序中所设计的类 class StuCard; Class People; class bus;3、 类中的关键数据成员和成员函数1、StuCard类class StuCardpublic:void pay();/上车刷卡时调用此

2、函数,根据卡的类型扣除上车费用并给出 相应提示 int GetRest();/获取卡余额 StuCard(string name,string id,int money,int type,int count); string get_name()return name; string get_id()return id; int get_type()return type; int get_money()return money; int get_count()return count;/乘车次数 private:string name;/持卡人姓名 string id;/卡号 int mon

3、ey;/余额 int type;/卡的类型 (type=1,学生卡;type=2,教师卡;type=3,限制卡) int count; /乘车次数 ;/定义了一个StuCard的类,用type来区分卡的类型,用get_X函数在主函 数中来获得数据成员的值2、bus类struct timeint hour;int minute;class busstring bnumber;/车牌号string xnumber;/型号int people;/载乘人数 string name;/驾驶员姓名struct time stime;/发车时间struct time etime;/到站时间 struct t

4、ime t_stime;/实际发车时间struct time t_etime;/实际到站时间 public:bus(string bn,string xn,int p,string n,int sh,int sm,int eh,int em)bnumber=bn;xnumber=xn;people=p;name=n;stime.hour=sh;stime.minute=sm;etime.hour=eh;etime.minute=em;/构造函数string get_b()return bnumber;/获得车牌号string get_x()return xnumber;/获得车的型号int g

5、et_p()return people;/获取上车人数string get_n()return name;/获取驾驶员姓名void Stime(int a,int b);/获取预计发车时间void Etime(int c,int d);/获取预计到站时间void show(string bnumber,string xnumber,int people,string name);void T_stime(int ta,int tb);/获取实际发车时间void T_etime(int tc,int td);/获取实际到站时间float peoplebi(float e,float f);/载乘

6、人数比int get_sthour(); /获得发车时间的小时int get_stminute();/获得发车时间的分钟 int get_ethour();/获得到站时间的小时int get_etminute();/获得到站时间的分钟void stshow(int p,int q);void etshow(int x,int y); ;3、 people类class Peoplestring name;/姓名string sex;/性别string work;/职务string office;/所属单位string number;/学号/工号public:People(string n,str

7、ing s,string w,string o,string b);/构造函数void readPeople();/用于在主函数中读入人的信息void show(string name,string sex,string work,string office,string number);void addPeople();/申请一张新卡void deletePeople();/注销一卡通string get_name()return name;string get_sex()return sex;string get_work()return work;string get_office()r

8、eturn office;string get_number()return number;4、 运行流程的说明 主程序分为两个系统:乘车系统和一卡通管理系统。 1、 乘车系统主要实现的功能如下: 首先,采用随机函数,生成本站会上车的人数,这个人数不超过车的最大载乘人数。其次,生成几个人上车,就依次输入几个人的卡号,持卡人在持卡上车时一卡通余额、乘车次数会发生变更,并且根据余额的多少会有相应提示信息,再将变更后的信息写入文件 公交车在每上一个人的时候乘车人数加一,到达最大载乘人数时提示不能再刷卡上车,并且采用随机函数,随机生成预计发车时间、预计到站时间,实际发车时间和实际到站时间,计算发车准时

9、率和到站准时率,再将变更后的的信息写入文件 2、一卡通管理系统主要实现的功能如下: 在文件中保存人的基本信息,记录每个人的乘车次数,增加申请新卡,注销一卡通的功能。 在程序中有一个people的txt文件,里面储存了人的信息,卡的主体是人,办卡的前提是人在people文件中存在。当选择办卡时,输入people中存在的人名,从文件头开始查找,到文件尾结束,当输入的人名与people中已存的信息相匹配的时候,就将这组信息(包括姓名,学号,卡的类型,余额(新办的卡余额初始化为50),乘车次数(新卡为0)写入mycard.txt文件中去,办卡成功。 当需要删除一个卡的时候,人的信息没有改动,只是将my

10、card.txt中办卡的信息删去了。以vector cards(200)的方式,定义了一个类的数组,当输入需要删除的人的姓名之后,从文件头开始查找,当输入的人名与mycard中已存的信息不匹配的时候,就将这一组信息写入数组,到文件尾结束,再将数组里面的写入mycard中,这样子就把想要删掉的内容删掉了。5、 运行结果及分析 文档设置:Mycard内容分别对应 姓名,学号,余额,乘车次数,卡的类型(1=学生卡;2=教师卡,3=限制卡)Bus的内容分别对应为 车牌号,车类型,最大载乘人数,驾驶员姓名,预计出发时间(时、分)和预计到达时间(时、分)当运行程序时,会看到如下界面选择1,进入乘车系统首先

11、输入车牌信息,随机产生等车人数,刷卡上车,即输入卡号输入1402012,即李四上车,李四的乘车次数加1,余额减2,写入文件,可以看到其中,李四的乘车信息相比初始时发生了正确的改变。并且随机产生的30组发车时间和到站时间,发车准时率和到站准时率,载乘人数比也正确的算出。选择2,进入一卡通管理系统 选择1,办新卡输入张三,为张三办一张新卡,张三的卡号从people文件读取,卡的类型,根据张三的职业的定义初始化为1=学生卡;2=教师卡,3=限制卡,新卡余额默认100元,乘车次数为0。若选择2,删除一张卡如图,将刚刚插入的张三的信息删除,并且更新文件信息,张三在mycard内的记录已经不见了。删卡成功

12、。6、 源代码#include#include#include#include#include#include#include#includeusing namespace std; struct timeint hour;int minute;class StuCardpublic:void pay(); int GetRest(); void show(); StuCard(string name,string id,int money,int type,int count); string get_name() return name; string get_id() return id

13、; StuCard() name=null; id=null; money=0; count=0; type=0; int get_type() return type; int get_money() return money; int get_count() return count; private:string name;/持卡人姓名 string id;/卡号 int money;/余额 int type;/卡的类型 (type=1,学生卡;type=2,教师卡;type=3,限制卡) int count; /乘车次数 ; void StuCard:pay() /StuCard stucard1(char name16,char ID17,int money,int type,int count); if (type=1 ) money-=2; count=count+1; cout 你的卡余额为:money n; if(money5)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号