《c++程序设计》课程设计报告

 

 

 

 

 

设计题目:手机资费系统

班级: 15级信息一班学号:20153873

报告人姓名:辛靓  

 

指导教师:费玉奎

 

实验地点: 山东农业大学南校区计算机实验室

 

完成起止日期: 2015.6.27—2016.7.1

《c++程序设计》课程设计报告 1

一、设计思路: 3

一、数据类和操作类,系统功能规划: 3

二、设计问题解决: 4

二、 具体实现: 5

用户类: 5

套餐类: 7

登陆界面: 9

主界面: 9

用户登陆界面: 10

管理员登陆界面: 11

套餐操作: 12

用户操作: 16

三、 运行调试和分析讨论: 22

登陆界面: 23

管理员通道: 23

添加用户: 23

制定套餐: 24

查询用户基本信息: 25

修改用户基本信息: 25

删除用户信息: 26

查询套餐信息: 27

用户通道: 28

查询话费余额: 28

添加账户密码: 29

修改密码: 29

查看个人套餐订阅情况: 30

业务模拟: 31

删除账号密码: 33

四、 设计总结和心得感悟: 34

 

一、设计思路:

一、数据类和操作类,系统功能规划:

一般设计一个系统都包含数据类和操作类,手机资费系统是面向用户手机资费添加和查询的系统,所以数据类中一定要包含一个用户基本信息类和一个套餐基本信息类,除此之外还添加了用户账号密码密码管理功能,所以又添加了一个账号、密码类;而相应的包含了两个操作类——用户操作类和管理员操作类。

对于手机资费的使用用户基本信息类所包含的数据成员有:

1、用户最基本信息:用户姓名、手机号;

2、套餐代码——进行套餐的添加、选择、查询、更改操作;

3、话费余额——进行话费余额查询、业务模拟操作;

4、剩余通话、剩余流量——进行业务查询、业务模拟操作。

对于套餐类数据成员有:

1、套餐最基本信息:套餐代码、套餐名称(本套餐主要根据移动和联通的相应业务添加内容);

2、月租、套餐内通话、套餐内流量——管理员添加套餐项目;

3、套餐外通话计费、套餐外流量计费——套餐外计费标准、进行业务模拟。

账号和密码主要用于用户模拟业务;

管理员操作类实现的主要功能分两大类:

1、用户信息操作:

A)添加用户;

B)修改用户信息;

C)删除用户信息;

D)查询用户基本信息;

··············

2、套餐信息操作:

A)添加套餐;

B)删除套餐;

C)修改套餐;

D)查询套餐;

···············

客户端操作类的主要功能:对套餐的增、删、查、改和业务模拟话费查询等····主要如下:

A)查看话费余额;

B) 业务办理、查询;

C)业务模拟;

D)使用情况;

二、设计问题解决:

在操作类内的构造和析构函数内编写文件的读取和储存。实现了程序一运行就将所有内容存入向量组中,在操作完之后再将全部内容重新导出,储存于文件。

二、具体实现:

用户类:

class user

{

    private:

        string name;//姓名

        string number;// 手机号码

       int taocan_id;//套餐代码

        double yue;//余额

        int tonghua;//通话

        double liuliang;//流量

    public:

        user(string na,string nu,int i,double y,int t,double l):name(na),number(nu),taocan_id(i),yue(y),tonghua(t),liuliang(l){}

        user(){}

        string getname(){return name;}

        void setname(string na){name=na;}

        string getnumber(){return number;}

        void setnumber(string nu){number=nu;}

        int gettaocan_id(){return taocan_id;}

        void settaocan_id(int i){taocan_id=i;}

        double getyue(){return yue;}

        void setyue(double y){yue=y;}

        int gettonghua(){return tonghua;}

        void settonghua(int t){tonghua=t;}

        double getliuliang(){return liuliang;}

        void setliuliang(double l){liuliang =l;}

        friend istream& operator>>(istream&is,user&c);

        friend ostream& operator<<(ostream&os,const user&c);

};

istream& operator>>(istream&is,user&c)

{

    is>>c.name>>c.number>>c.taocan_id>>c.yue>>c.tonghua>>c.liuliang;

    return is;

}

ostream&operator<<(ostream&os,const user&c)

{

    os<<"姓名:"<<c.name<<"      ";

    os<<"号码:"<<c.number<<":"<<endl;

    os<<"套餐代码:"<<c.taocan_id<<"     ";

    os<<"余额:"<<c.yue<<"      ";

    os<<"已通话时间:"<<c.tonghua<<"     ";

    os<<"已使用流量:"<<c.liuliang<<endl;

    return os;

}

套餐类:

class taocan

{

private:

    int id;

    string name;

    double cost;//每月花费

    int time;//套餐每月包含的通话时间

    double liu;

    double cost_time;

    double cost_liu;

public:

    taocan(){}

    taocan(int i,string na,double c,int t,double l,double ct,double cl):id(i),name(na),cost(c),time(t),liu(l),cost_time(ct),cost_liu(cl){}

    int getid(){return id;}

    void setid(int i){id=i;}

    string getname(){return name;}

    void setname(string na){name=na;}

    double getcost(){return cost;}

    void setcost(double c){cost=c;}

    int gettime(){return time;}

    void settime(int t){time=t;}

    double getliu(){return liu;}

    void setliu(double l){liu=l;}

    double getcost_time(){return cost_time;}

    void setcost_time(double ct){cost_time=ct;}

    double getcost_liu(){return cost_liu;}

    void setcost_liu(double cl){cost_liu=cl;}

    friend istream& operator>>(istream&is,taocan&c);

    friend ostream& operator<<(ostream &os,const taocan&c);

}t;

istream& operator>>(istream&is,taocan&c)

{

    is>>c.id>>c.name>>c.cost>>c.time>>c.liu>>c.cost_time>>c.cost_liu;

    return is;

}

ostream& operator<<(ostream&os,const taocan&c)

{

    os<<"套餐代码:"<<c.id<<"    ";

    os<<"套餐名称:"<<c.name<<":"<<endl;

    os<<"该套餐月租费:"<<c.cost<<"      ";

    os<<"套餐内通话时间:"<<c.time<<"      ";

    os<<"套餐内流量:"<<c.liu<<"      ";

    os<<"套餐外通话记费标准:(分钟)"<<c.cost_time<<"      ";

    os<<"套餐外流量计费标准:(M)"<<c.cost_liu<<endl;

    return os;

}

登陆界面:

主界面:

 

 

用户登陆界面:

void denglu::user_list()

{

    cout<<"~~~~~~~~~~~~~~~~欢迎进入用户界面~~~~~~~~~~~~~~~~~~~~~~"<<endl;

    cout<<"+       请输入相应序号进行相应操作:                 +"<<endl;

    cout<<"+            1、查询话费余额                         +"<<endl;

    cout<<"+            2、添加账户密码                         +"<<endl;

    cout<<"+            3、修改密码                             +"<<endl;

    cout<<"+            4、查看个人订阅套餐基本信息             +"<<endl;

    cout<<"+            5、查看套餐使用情况                     +"<<endl;

    cout<<"+            6、业务模拟                             +"<<endl;

    cout<<"+            7、费用详单                             +"<<endl;

    cout<<"+            8、删除密码                             +"<<endl;

    cout<<"+            0、退出系统                             +"<<endl;

    cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;

}

void denglu::user_menu()

{

    while(1)

    {

       system("cls");

    user_list();

    int choice;

    cin>>choice;

    switch(choice)

    {

        case 1:{string id;

        cout<<"请输入所查询用户的手机号码:"<<endl;

        cin>>id;

        e.exhi_selfs(id);system("pause");break;}

        case 2:{f.add_account();system("pause");break;}

        case 3:{

            string id,pass;

            cout<<"请输入用户手机号码,按提示进行密码修改:"<<endl;

            cin>>id;

            f.change_user_account(id);system("pause");break;}

        case 4:{string id;

        cout<<"请输入所查询用户的手机号码:"<<endl;

        cin>>id;

           e.taocan_info(id);system("pause");break;}

        case 5:{string id;

        cout<<"请输入所查询用户的手机号码:"<<endl;

        cin>>id;

            e.extra_tp(id);system("pause");break;}

        case 6:{string id;

        cout<<"请输入所查询用户的手机号码:"<<endl;

        cin>>id;

            e.servise_imitate(id);system("pause");break;}

        case 7:{system("pause");break;}

        case 8:{f.delete_account();system("pause");break;}

        case 0:{return;}

    }

    }

}

管理员登陆界面:

void denglu::manager_list()

{

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~欢迎进入管理员窗口~~~~~~~~~~~~~~~~~"<<endl;

cout<<"~                  请输入相应序号进行相应操作:           ~"<<endl;

cout<<"~                  1、添加用户基本信息                    ~"<<endl;

cout<<"~                  2、制定套餐                            ~"<<endl;

cout<<"~                  3、查看用户基本信息                    ~"<<endl;

cout<<"~                  4、修改用户基本信息                    ~"<<endl;

cout<<"~                  5、删除用户信息                        ~"<<endl;

cout<<"~                  6、删除套餐信息                        ~"<<endl;

cout<<"~                  7、查询套餐信息                        ~"<<endl;

cout<<"~                  8、修改套餐信息                        ~"<<endl;

cout<<"~                  9、充值                                ~"<<endl;

cout<<"~                  0、返回                                ~"<<endl;

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;

}

void denglu::manager_menu()

{

while(1)

{

system("cls");

manager_list();

int choice;

cin>>choice;

switch(choice)

{

case 1:{e.add_user_info();system("pause");break;}

case 5:{e.delete_user_info();system("pause");break;}

case 3:{

cout<<e.exhi_info();system("pause");break;}

case 4:{e.chan_user_info();system("pause");break;}

case 2:{x.add_taocan();system("pause");break;}

case 6:{x.delete_taocan();system("pause");break;}

case 7:{

cout<<"请输入查询套餐的代码:"<<endl;

int id;

cin>>id;

x.exhi_taocan(id);

system("pause");break;}

case 8:{x.chan_taocan();system("pause");break;}

case 9:{system("pause");break;}

case 0:return;

}

}

}

套餐操作:

class taocan_manage

{

public:

vector<taocan> tp;

vector<taocan>::iterator tpi;

taocan_manage();

~taocan_manage();

void add_taocan();

void delete_taocan();

taocan exhi_taocan(int id);

void chan_taocan();

void taocan_chan_list();

}x;

构造函数析构函数实现文件读取存储

taocan_manage::taocan_manage()

{

ifstream infile("d:\\套餐信息.txt",ios::in);

taocan temp;

while(infile>>temp)

tp.push_back(temp);

infile.close();

}

taocan_manage::~taocan_manage()

{

ofstream outfile("d:\\套餐信息.txt",ios::out);

// taocan temp;

//outfile<<temp;

for(tpi=tp.begin();tpi!=tp.end();++tpi)

outfile<<tpi->getid()<<' '<<tpi->getname()<<' '<<tpi->getcost()<<' '<<tpi->gettime()<<' '<<tpi->getliu()<<' '<<tpi->getcost_time()<<' '<<tpi->getcost_liu()<<endl;

outfile.close();

}

套餐修改                                                          void taocan_manage::  taocan_chan_list()      { cout<<"********套餐列表************************"<<endl;

    cout<<"*    1、套餐名                         *"<<endl;

cout<<"*    2、每月通话                       *"<<endl;

cout<<"*    3、套餐内每月包含通话             *"<<endl;

cout<<"*    4、套餐内每月包含流量             *"<<endl;

cout<<"*    5、超出套餐内通话时间的计费(分钟)*"<<endl;

cout<<"*    6、超出套餐内流量的计费(M)      *"<<endl;

cout<<"****************************************"<<endl;

}

void taocan_manage::add_taocan()

{

cout<<"请依次输入套餐代码、套餐名、每月花费、每月套餐内通话时间、每月套餐内流量、超出套餐外通话价格(分钟)、超出套餐外流量价格(M),并将它们用空格分开"<<endl;

taocan temp;

cin>>temp;

x.tp.push_back(temp);

}

void taocan_manage::delete_taocan()

{

int j=1;

cout<<"请输入套餐代码:"<<endl;

int id,i;

for( i=0;i<3;i++)

{

cin>>id;

for(x.tpi=tp.begin();x.tpi!=tp.end();++tpi)

{

if(x.tpi->getid()==id)

{

x.tp.erase(x.tpi);

cout<<"删除成功!";j=0;break;

}

}

if(j)cout<<"输入有误,请重输!!"<<endl;

else break;

}

if(i==3)cout<<"非法输入!!"<<endl;

}

taocan taocan_manage::exhi_taocan(int id)

{

int i=1;

for(x.tpi=tp.begin();x.tpi!=tp.end();++tpi)

{

if(x.tpi->getid()==id)

{

cout<<"套餐基本内容为 :"<<endl;

cout<<*x.tpi;

return *x.tpi;

i=0;break;

}

}

if(i){ return taocan ();

cout<<"该套餐不存在!!"<<endl;}

}

void taocan_manage::chan_taocan()

{

int i=1;

cout<<"请输入要修改的套餐代码:"<<endl;

int id;

cin>>id;

for(x.tpi=tp.begin();x.tpi!=tp.end();++tpi)

{

if(x.tpi->getid()==id){i=0;

break;}

}

if(i){cout<<"该套餐不存在!!"<<endl;}

else{

while (1)

{

system("cls");

taocan_chan_list();

cout<<"请输入要修改的项目:(输入0退出修改)"<<endl;

int choice;

cin>>choice;

switch(choice)

{

case 1:{cout<<tpi->getname()<<endl;

cout<<"请输入修改后的套餐名称:"<<endl;

string name;cin>>name;

x.tpi->setname(name);break;}

case 2:{

cout<<tpi->getcost()<<endl;

cout<<"请输入修改后的套餐花费:"<<endl;

double cost;

cin>>cost;

x.tpi->setcost(cost);

break;

}

case 3:{

cout<<tpi->gettime()<<endl;

cout<<"请输入修改后的套餐内通话时间:"<<endl;

int tonghua; cin>>tonghua;

x.tpi->settime(tonghua);break;

}

case 4:{

cout<<x.tpi->getliu()<<endl;

cout<<"请输入修改后的套餐内流量:"<<endl;

double liu;cin>>liu;

x.tpi->setliu(liu);break;

}

case 5:{

cout<<x.tpi->getcost_time()<<endl;

cout<<"请输入修改后套餐外通话收费标准:(分钟)"<<endl;

double cost_time;cin>>cost_time;

x.tpi->setcost_time(cost_time);break;

}

case 6:{

cout<<x.tpi->getcost_liu()<<endl;

cout<<"请输入修改后套餐外流量收费标准:(M)"<<endl;

double cost_liu;cin>>cost_liu;

x.tpi->setcost_liu(cost_liu);break;

}

case 0:return;

}

}

}

}

用户操作:

class user_manage

{

public:

vector<user> uifo;

vector<user>::iterator uifoi;

user_manage();

~user_manage();

void add_user_info();

void delete_user_info();

void chan_user_info();

void exhi_selfs(string id);

user exhi_info();

void taocan_info(string id);

int get_tp_id(string id);

void extra_tp(string id);

void servise_imitate(string id);

}e;

user_manage::user_manage()

{

ifstream infile("d:\\用户信息.txt",ios::in);

user temp;

while(infile>>temp)

uifo.push_back(temp);

infile.close();

}

user_manage::~user_manage()

{

ofstream outfile("d:\\用户信息.txt",ios::out);

// user temp;

//outfile<<temp;

for(uifoi=uifo.begin();uifoi!=uifo.end();++uifoi)

outfile<<uifoi->getname()<<' '<<uifoi->getnumber()<<' '<<uifoi->gettaocan_id()<<' '<<uifoi->getyue()<<' '<<uifoi->gettonghua()<<' '<<uifoi->getliuliang()<<endl;

outfile.close();

}

void user_manage::chan_user_info()

{

cout<<"请重新依次输入用户基本信息依次输入姓名、手机号、套餐代码、初始余额,通话时间、流量用量,并将它们用空格分开:"<<endl;

user temp;

cin>>temp;

string id;

id=temp.getnumber();

for(e.uifoi=uifo.begin();e.uifoi!=uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

e.uifoi->setname(temp.getname());

e.uifoi->settaocan_id(temp.gettaocan_id());

e.uifoi->setyue(temp.getyue());

e.uifoi->settonghua(temp.gettonghua());

e.uifoi->setliuliang(temp.getliuliang());

cout<<"用户信息修改成功!!"<<endl;break;

}

}

if(e.uifoi>uifo.end())cout<<"该号码为空号!!"<<endl;

}

void user_manage::exhi_selfs(string id)

{

for(e.uifoi=uifo.begin();e.uifoi!=uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

cout<<"您的话费余额为:";

cout<<e.uifoi->getyue()<<endl;break;

}

}

if(e.uifoi==uifo.end())cout<<"该手机号码为空号!!"<<endl;

}

void user_manage::taocan_info(string id)

{

int tid;

tid=e.get_tp_id(id);

taocan taocan;

cout<<x.exhi_taocan(tid);

}

user user_manage::exhi_info()

{

cout<<"请输入用户手机号码:"<<endl;

string id;

cin>>id;

for(e.uifoi=uifo.begin();e.uifoi!=uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

cout<<"用户基本信息如下:"<<endl;

return *e.uifoi;

}

}

if(e.uifoi>uifo.end())cout<<"该手机号码为空号!!"<<endl;

}

int user_manage::get_tp_id(string id)

{

for(e.uifoi=uifo.begin();e.uifoi!=uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

cout<<"套餐序号为:"<<e.uifoi->gettaocan_id()<<endl;

return e.uifoi->gettaocan_id();break;

}

}

if(e.uifoi==uifo.end())cout<<"该手机号码为空号!!"<<endl;

}

void user_manage::delete_user_info()

{

int i=1;

cout<<"请输入要删除用户的电话号码:"<<endl;

string num;

cin>>num;

for(e.uifoi=uifo.begin();e.uifoi!=uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==num)

{

e.uifo.erase(e.uifoi);

cout<<"删除成功"<<endl;i=0;break;

}

}

if(i)cout<<"该号码用户不存在!!"<<endl;

}

增加用户

void user_manage::add_user_info()

{

cout<<"1:增加单个用户信息:"<<endl;

cout<<"2:增加多个用户信息:"<<endl;

int choice;

cin>>choice;

switch(choice)

{

case 1:{

cout<<"请依次输入姓名、手机号、套餐代码、初始余额、通话时间、流量使用情况,并将它们用空格分开"<<endl;

user temp;

cin>>temp;

e.uifo.push_back(temp);

break;

}

case 2:{

cout<<"请依次输入姓名、手机号码、套餐代码、初始余额、通话时间、流量使用情况,输入6个0结束操作,并将它们用空格分开,全部输入0时结束输入"<<endl;

user temp;

while (cin>>temp)

{

if(temp.getname()=="0")break;

e.uifo.push_back(temp);

cout<<endl;

}

}

}

}

void user_manage::extra_tp(string id)//套餐剩余

{

int temp;

int costtime,alltime,extratime;

double costdata,alldata,extradata;

temp=e.get_tp_id(id);cout<<"shu"<<temp;

for(e.uifoi=e.uifo.begin();e.uifoi!=e.uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

costtime=e.uifoi->gettonghua();

costdata=e.uifoi->getliuliang();

break;

}

}

for(x.tpi=x.tp.begin();x.tpi!=x.tp.end();++x.tpi)

{

if(x.tpi->getid()==temp)

{

alltime=x.tpi->gettime();

alldata=x.tpi->getliu();

extratime=alltime-costtime;

extradata=alldata-costdata;

cout<<"套餐内剩余通话时间(分钟):"<<extratime<<endl;

cout<<"套餐内剩余上网流量(M):"<<extradata<<endl;break;

}

}

}

业务模拟

void user_manage::servise_imitate(string id)

{

cout<<"请输入操作项目序号::"<<endl;

cout<<"*   1、打电话       *"<<endl;

cout<<"*   2、上网         *"<<endl;

cout<<"*   3、发短信       *"<<endl;

cout<<"*   4、退出         *"<<endl;

cout<<"*********************"<<endl;

int choice;

while(1){

// system("cls");

cin>>choice;

switch(choice)

{

case 1:{

int alltime, oldtime,newtime;

double outmoney,deletemoney=0;

cout<<"通话时间(分钟):";

int temptime;

cin>>temptime;

for(e.uifoi=e.uifo.begin();e.uifoi!=e.uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

oldtime=e.uifoi->gettonghua();

e.uifoi->settonghua(oldtime+temptime);

newtime=e.uifoi->gettonghua();

break;

}

}

int temp;

temp=e.get_tp_id(id);

for(x.tpi=x.tp.begin();x.tpi!=x.tp.end();++x.tpi)

{

if(x.tpi->getid()==temp)

{

alltime=x.tpi->gettime();

outmoney=x.tpi->getcost_time();

break;

}

}

if(newtime>alltime)

{

if(oldtime>=alltime)

deletemoney=outmoney*temptime;

else deletemoney=(newtime-alltime)*outmoney;

}

e.uifoi->setyue(e.uifoi->getyue()-deletemoney);

cout<<"通话"<<temptime<<"分钟的花费为:(若话费为0则为套餐内通话不额外扣费)"<<deletemoney<<endl;

cout<<"话费余额:"<<e.uifoi->getyue()<<endl;

break;

}

case 2:{

double alldata,olddata,newdata;

double outmoney,deletemoney=0;

cout<<"使用流量(M):";

double tempdata;

cin>>tempdata;

for(e.uifoi=e.uifo.begin();e.uifoi!=e.uifo.end();++e.uifoi)

{

if(e.uifoi->getnumber()==id)

{

olddata=e.uifoi->getliuliang();

e.uifoi->setliuliang(olddata+tempdata);

newdata=e.uifoi->getliuliang();

break;

}

}

int temp;

temp=e.get_tp_id(id);

for(x.tpi=x.tp.begin();x.tpi!=x.tp.end();++x.tpi)

{

if(x.tpi->getid()==temp)

{

alldata=x.tpi->getliu();

outmoney=x.tpi->getcost_liu();

break;

}

}

if(newdata>alldata)

{

if(olddata>=alldata)

{

deletemoney=outmoney*tempdata;

}

else deletemoney=(newdata-alldata)*outmoney;

}

e.uifoi->setyue(e.uifoi->getyue()-deletemoney);

cout<<"套餐外流量花费为:(若花费为0,则未超出套餐流量)"<<e.uifoi->getyue();

break;

}

case 3:break;

case 4:return;

}system("pause");

}

}

三、运行调试和分析讨论:

登陆界面:

 

 

管理员通道:

 

添加用户:

 

 

添加用户是另写了添加多个用户,方便管理员操作,使系统更加人性化。

 

制定套餐:

 

查询用户基本信息:

 

输入号码用vector 数组和for 函数找到该号码用户,若找到输出用户信息;否则该用户不存在。

 

修改用户基本信息:

 

这个修改写的有些粗,其实也可以像套餐的修改一样逐项修改,但这样也有利于用户确认信息,结果还是改了信息的。

删除用户信息:

 

主要是通过号码找到用户,用erase 删除vector 数组里的该元素;

查询套餐信息:

 

套餐若不存在返回随机数,但用好几种方法改后发现这是最好的情况。

用户通道:

 

查询话费余额:

 

添加账户密码:

 

修改密码:

 

修改密码里用了好几个循环函数,在密码输入有误时可输三次,但输入正确也循环,而且在这个循环里边还有一个查找用户的循环,解决方法:1、用break;2、在结构体外定义i=1;操作成功后将i 变成0;进行判断。

查看个人套餐订阅情况:

 

因为套餐查询的这个返回值是套餐结构体,而对于结构体的内容已用重载<<、>>运算符直接输入输出,而且在很多函数里都用到了套餐能容查询,所以不能单个输出,但套餐不存在时输出的不是空,而是随机数,暂时没找到解决办法。

业务模拟:

 

在业务模拟时用到了套餐序号查找函数,该函数有返回值用int类型,找到套餐后它的返回值为套餐结构体,取内容时用get()函数;

先把用户余额取出,通话分钟与套餐内通话时间相比较,若小于则本次通话花费为0;否则取出套餐的资费标准,对超出的通话时间进行计算得出话费,用余额减去话费得到现在用户的余额;流量函数同通话。

 

删除账号密码:

 

 

总体来说的输出问题有:操作结束时总是出现很多的请按任意键继续,该问题的所在是在类里的函数里加了system(“pause”)结果在菜单函数里又加了,有的则直接加在了循环函数里;

四、设计总结和心得感悟:

   经过一学期的学习我觉得自己对类有了一定的了解,特别是这几天写手机资费系统,很多之前没注意的问题都暴露出来,感觉学到了很多知识;

一开始为了操作方便,把类里的数据成员都写成公有的后来改成私有的,回过头来想想泪最大的特点是什么——封装性,所以私有成员必须私有化,后来成员都改成私有的,并用get(),set()函数实现功能进行弥补。

之前写程序老是不会文件的存储和读取,经过老师最后几节课的讲解和同学的帮助,终于弄清了如何进行正确的文件操作,如何正确的读取、修改、保存文件。

再设计程序之处一定要有一个清晰地思路,写起来会比较顺手,我一开始没有细想,写起来还是非常吃力的,后来通过一边调程序,一边写,才慢慢找到感觉,写代码是最好写完一个函数就运行一下,后来会比较通畅。

再调程序时遇到不会的问题,可以上网搜下,会有不小的收获,模拟功能时可能会遇到一些问题,要冷静下来,仔细查看该功能所涉及的函数,先单个运行,在整合起来,不要着急,通过不同的试探,或许还会摸索出新的方法。

总之,在这次苦乐参半的编程之旅中,我不仅收获了知识锻炼了能力,还体会到了编程的乐趣——调通程序的方法永远不止一种,细心回想知识点,调通就在不经意间,有时候一个分号就可以改变一串bug,所以永远不要说放弃,因为你永远不知道自己离成功有多近,那距离或许只差一个符号。

 

 

 

C++程序设计报告(手机资费系统)相关推荐

  1. 有n个学生选修了c语言程序设计这门课程,C语言程序设计报告学生选修课系统(18页)-原创力文档...

    C 语 言 程 序 设 计 学校: 学院: 班级序号: 学号: :姓名 指导老师: C语言程序设计报告 一.C语言课程设计的目的: 高级语言课程设计是学习完<高级语言程序设计>课程后进行的 ...

  2. 安卓APP源码和设计报告——手机天气预报系统

    目录 摘要1需求分析2一.开发背景2二.项目需求分析2总体设计2一.系统规划2二.系统功能界面3设置预报城市界面:3天气显示界面:4Widget 桌面小部件界面:5三.设计目标6系统设计6一.开发及运 ...

  3. c语言机票预定程序,c语言程序设计报告飞机票预订系统.doc

    目录 TOC \o "1-3" \h \z \u HYPERLINK \l _Toc1220 目录 PAGEREF _Toc1220 i HYPERLINK \l _Toc6278 ...

  4. java学生考勤系统实验报告,程序设计实验报告学生考勤系统).doc

    程序设计实验报告学生考勤系统) C语言程序设计 课程报告 所在学院计算机科学学院所在班级计算机科学与技术1班 小组成员XX(组长) XXX(副组长) XXX(组员) XXX(组员) 指导老师XXX X ...

  5. 景点查询系统c语言程序,《C语言程序设计》课程计报告-景点查询系统.doc

    <C语言程序设计>课程计报告-景点查询系统 课 程 设 计 报 告 题目: 景点查询系统 课程名称: C语言与程序设计 专业班级: 信息安全1302班 学 号: 姓 名: 指导教师: 报告 ...

  6. 有n个学生选修了c语言程序设计这门课程,C语言程序设计报告—学生选修课程系统...

    <C语言程序设计报告-学生选修课程系统>由会员分享,可在线阅读,更多相关<C语言程序设计报告-学生选修课程系统(11页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计学校: ...

  7. c语言报表系统,C语言考试系统程序设计报告.doc

    C语言考试系统程序设计报告 <程序设计基础> 课程设计报告 考试系统 指导教师:任姚鹏 班 级:计科系1204班 学生姓名:丁晓荟 加雪梅 姚乐 张进 吕亚斌 完成日期:2013.11.2 ...

  8. java+实现集合并运算_JAVA程序设计报告+集合运算

    JAVA程序设计报告+集合运算 JAVA程序设计报告集合的运算(交并差)学生学号专业信息工程(系统工程方向)院系信息与控制学院实习时间三周:指导老师陈金辉目录实验目的试验设计实验源程序程序设计调试不足 ...

  9. c语言程序报告英汉词典,C语言电子英汉词典程序设计报告-自动化1203-李煜明.docx...

    C语言电子英汉词典程序设计报告-自动化1203-李煜明 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 自动化 班 级 1203 学 号 201201020304 姓 ...

最新文章

  1. 概率和统计的matlab指令
  2. Leecode15. 三数之和——Leecode大厂热题100道系列
  3. InnoDB 的索引模型
  4. Spring Boot 核心知识点总结,值得收藏!
  5. 一道丧心病狂的java面试题
  6. phpcms v9 打开网站特别慢 增加数据库缓存方法
  7. 【Elasticsearch】如何在Elasticsearch中查找相似的术语
  8. STM8单片机串口发送引脚和接收引脚分开使用
  9. Http Post 二进制通信
  10. MAC PHP Composer
  11. 网页中自私自利且影响他人的Float
  12. oracle错误ORA-00604 递归sql级别1出现错误 ora-00942 表或试图不存在 ORA-06512 在line 11...
  13. 高德地图--根据地理位置获取经纬度
  14. 6月29日Java实训第一天
  15. Bugzilla的快速入门指南(全网最详细)
  16. 微软ImageX工具*.wim文件的备份与恢复
  17. 什么是表示学习(representation learning)表征学习 表达学习
  18. 三维重建中经常遇到的拓扑学概念的通俗解释
  19. 【贪心策略】区间选点问题
  20. 为什么INC,DEC指令不影响CF标志位呢?

热门文章

  1. 孩子的认知行为治疗案例:小偷小摸后的处理
  2. 论文笔记:Hashtag Recommendation for Multimodal Microblog Using Co-Attention Network
  3. ERP系统哪个平台好?
  4. 优酷 Android 构建速度优化实践
  5. PTA 7-44 黑洞数
  6. 北京汇佳学校执行校长李艳丽:Nothing is impossible
  7. 大学生计算机爱课程网,爱课程2020电脑版
  8. pytorch测试模型时显存不够的问题
  9. 阿里云linux好用不了,十个你可能不曾用过的Linux命令!巨好用!
  10. 太妃物语 0.47.5 攻略(0.68可用)