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

2019-04-10 08:47

C++实验报告 姓 名:学 院:学 号:赵 妍 软件学院 14130140358

一、实验要求

? 完成一个完整的简化系统:一卡通乘车系统。

? 一卡通乘车系统主要完成的功能是,支持一卡通刷卡乘车;对每张一卡通的使用情况及费用进行统计;对每辆班车的运行情况进行统计。 ? 在实现该系统的功能时,不要求实现图形界面,控制台输出即可。 ? 必须采用面向对象程序设计的方式实现。

二、程序中所设计的类

class StuCard;

Class People; class bus;

三、类中的关键数据成员和成员函数

1、StuCard类

class StuCard { public:void pay();//上车刷卡时调用此函数,根据卡的类型扣除上车费用并给出 相应提示

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 money;//余额 int type;//卡的类型 (type=1,学生卡;type=2,教师卡;type=3,限制卡)

int count; //乘车次数

} ;//定义了一个StuCard的类,用type来区分卡的类型,用get_X函数在主函 数中来获得数据成员的值

2、bus类

struct time{ int hour; int minute; };

class bus{

string bnumber;//车牌号 string xnumber;//型号 int people;//载乘人数 string name;//驾驶员姓名 struct time stime;//发车时间 struct time etime;//到站时间 struct time 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 get_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);//载乘人数比 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 People{

string name;//姓名 string sex;//性别 string work;//职务 string office;//所属单位 string number;//学号/工号

public:

People(string n,string 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(){return office;} string get_number(){return number;}

四、运行流程的说明

主程序分为两个系统:乘车系统和一卡通管理系统。 1、 乘车系统主要实现的功能如下:

首先,采用随机函数,生成本站会上车的人数,这个人数不超过车的最大载乘人数。其次,生成几个人上车,就依次输入几个人的卡号,持卡人在持卡上车时一卡通余额、乘车次数会发生变更,并且根据余额的多少会有相应提示信息,再将变更后的信息写入文件

公交车在每上一个人的时候乘车人数加一,到达最大载乘人数时提示不能再刷卡上车,并且采用随机函数,随机生成预计发车时间、预计到站时间,实际发车时间和实际到站时间,计算发车准时率和到站准时率,再将变更后的的信息写入文件

2、一卡通管理系统主要实现的功能如下:

在文件中保存人的基本信息,记录每个人的乘车次数,增加申请新卡,注销一卡通的功能。

在程序中有一个people的txt文件,里面储存了人的信息,卡的主体是人,办卡的前提是人在people文件中存在。当选择办卡时,输入people中存在的人名,从文件头开始查找,到文件尾结束,当输入的人名与people中已存的信息相匹配的时候,就将这组信息(包括姓名,学号,卡的类型,余额(新办的卡余额初始化为50),乘车次数(新卡为0))写入mycard.txt文件中去,办卡成功。 当需要删除一个卡的时候,人的信息没有改动,只是将mycard.txt中办卡的信息删去了。以vector cards(200)的方式,定义了一个类的数组,当输入需要删除的人的姓名之后,从文件头开始查找,当输入的人名与mycard中已存的信息不匹配的时候,就将这一组信息写入数组,到文件尾结束,再将数组里面的写入mycard中,这样子就把想要删掉的内容删掉了。

五、运行结果及分析

文档设置:


西电软件学院c++上机实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:图像处理常用命令matlab

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: