当前位置:编程学习 > C/C++ >>

高分急求C++高手

用C++完成一个高校饭卡管理系统

系统设计要求:

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

1.主要功能

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

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

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

(4)查询和排序功能:

a.按饭卡所有人姓名查询,输出此饭卡的所有信息。

b.按饭卡号码查询,输出此饭卡的所有信息。

c.按饭卡号码大小排序,输出所有饭卡的信息。

2.设计要求:

(1)用循环语句构建程序主菜单,通过输入菜单项标识符来执行菜单项所关联的功能,如图8-1所示。界面友好,易于操作。

(2)设计并实现饭卡类CCard、学生类CStudent、教师类CTeacher、临时人员类CTemp,编写一个完整的C++应用程序,并画出UML图。

****************************
高校饭卡管理系统
****************************
************************************
** 1 --帮助 **
** 2 –新建饭卡 **
** 3 –撤销饭卡 **
** 4 –饭卡充值 **
** 5 –饭卡消费 **
** 6 –饭卡查询和排序 **
** 0--退出系统 **
************************************

图8-1运行的主界面

CCard类:

数据成员:饭卡号码、饭卡所有者姓名、初次办卡时间、余额。

主要操作:对饭卡的添加、删除、充值、消费、查询。

根据需要定义必要的成员函数,如构造函数、析构函数等。

CStudent类:

数据成员:姓名、性别、身份证号码、所在班级号、所属类别(本科生或者研究生)。

主要操作:按照姓名查询饭卡的所有信息。

根据需要定义必要的成员函数,如构造函数、析构函数等。

CTeacher类:

数据成员:姓名、性别、身份证号码、所属学院、职称(讲师、副教授、教授)。

主要操作:按照姓名查询饭卡的所有信息。

根据需要定义必要的成员函数,如构造函数、析构函数等。

CTemp类:

数据成员:姓名、性别、身份证号码。

主要操作:按照姓名查询饭卡的所有信息。

根据需要定义必要的成员函数,如构造函数、析构函数等。

谢谢

答案:

//功能不是很完善,也不是很好
#include<iostream>
#include<string>
using namespace std;

//基类Ccard
class Ccard
{
public:
void setinformation();//设置初始信息
double result();//充值函数
double consume();//消费函数
double balance();//余额函数
void ask() ;

protected:
string name,cardnumber,IDnumber,易做图,firstsettime;
double yue;
};
//设置基类初始信息
void Ccard::setinformation()
{
cout<<"请输入新建饭卡持有人姓名--8位:"<<endl;
cin>>name;
cout<<"请输入新建饭卡卡号--8位:"<<endl;
cin>>cardnumber;
cout<<"请输入身份证号码--18位:"<<endl;
cin>>IDnumber;
cout<<"请输入性别--男(m),女(w)-2位:"<<endl;
cin>>易做图;
cout<<"请输入初次办卡时间--10位:"<<endl;
cin>>firstsettime;
cout<<"输入余额--3位:"<<endl;
cin>>yue;
}

//基类充值函数
double Ccard::result()
{
double money1;
cout<<"请输入饭卡充值金额--3位:"<<endl;
cin>>money1;
return money1;
}
//基类消费函数
double Ccard::consume()
{
double money2;
cout<<"请输入饭卡消费金额--3位:"<<endl;
cin>>money2;
return money2;
}
//基类余额函数
double Ccard::balance()
{

yue=yue+result()-consume();
return yue;
}

//基类查询函数

void Ccard::ask()
{
cout<<"姓名:"<<name<<'\n'<<"饭卡卡号:"<<cardnumber<<'\n'
<<"身份证号码:"<<IDnumber<<'\n'<<"性别:"<<易做图<<'\n'<<"初次办卡时间:"
<<firstsettime<<'\n'<<"消费余额:"<<balance()<<endl;
}

//派生类Cstudent类
class Cstudent: public Ccard
{
public:
void setinformation2();
void ask() ;

private:
string classnumber,leibie;
};
void Cstudent::setinformation2()
{
cout<<"请输入学生班级号--4位:"<<endl;
cin>>classnumber;
cout<<"请输入学生学历--9位:"<<endl;
cin>>leibie;
}

//派生类Cstudent类查询函数
void Cstudent::ask()
{
Ccard::ask();
cout<<"所属类别:本科生--undergraduate;研究生--graduate:"<<leibie<<'\n'<<"班级号:"<<classnumber<<endl;

}

//派生类Cteacher类
class Cteacher:public Ccard
{
public:
void setinformation3();
void ask();

private:
string xueyuan,zhichen;
};
void Cteacher::setinformation3()
{
cout<<"请输入教师所在学院--10位:"<<endl;
cin>>xueyuan;
cout<<"请输入教师的职称--15位:教授--Professor--副教授--adjunctprofessor--讲师--lecturer--助教--assistant:"
<<endl;
cin>>zhichen;
}

//派生类Cteacher类查询函数
void Cteacher::ask()
{
Ccard::ask();
cout<<"所属学院:"<<xueyuan<<'\n'<<"职称:"<<zhichen<<endl;

}
//派生类Ctemp类
class Ctemp:public Ccard
{
public:
void ask();
};
//派生类Ctemp类查询函数
void Ctemp::ask()
{
Ccard::ask();
cout<<"临时饭卡--8位:"<<endl;
Ccard::ask();
}

//主函数
void main()
{

Cstudent student[100];
Cteacher teacher[100];
Ctemp temp[100];
int a,b;
int i=0,j=0,t=0,x;

cout<<"----------------欢迎进入大学饭卡管理系统----------------"<<endl;
cout<<"----** 1 --帮助 ** ** 2 -新建饭卡 ** ** 3 -撤销饭卡 **----"<<endl;
cout<<"----** 4 -饭卡充值 ** ** 5 -饭卡消费 ** ** 6 -饭卡查询 ** ----"<<endl
<<"----** 0--退出系统 **----"<<endl;
cout<<"请输入您所需要服务的代号0---6"<<endl;
cin>>a;
while(a)
{
switch(a)
{
case 1:cout<<"大学的饭卡分为三类:教师卡、学生卡、临时卡.\n"
<<"您可以根据您的需要选择相应的服务代号,然后按提示操作即可!"<<endl; break;
case 2:cout<<"请问您需要新建一张什么类型的饭卡:10--学生卡,11--教师卡,12--临时卡:"<<endl;
cout<<"请选择"<<endl;
cin>>b;
switch(b)
{
case 10: student[i].setinformation();student[i++].setinformation2();
cout<<"您已成功新建一张学生饭卡."<<endl;break;
case 11: teacher[j].setinformation();teacher[j++].setinformation3();
cout<<"您已成功新建一张教师饭卡."<<endl;break;
case 12: temp[t++].setinformation();
cout<<"您已成功新建一张临时饭卡."<<endl;break;
}
cout<<endl;
break;

case 3:cout<<"请问撤销什么类型的饭卡:10--学生卡,11--教师卡,12--临时卡:"<<endl;
cout<<"请选择"<<endl;
cin>>b;
switch(b)
{
case 10:cout<<"请输入撤销卡代码:"<<endl;
cin>>x;
student[x].setinformation();
student[x].setinformation2();
cout<<"您已成功撤销该张学生饭卡."<<endl;
break;
case 11:cout<<"请输入撤销卡代码:"<<endl;
cin>>x;
teacher[x].setinformation();
teacher[x].setinformation3();
cout<<"您已成功撤销该张教师饭卡."<<endl;
break;
case 12:cout<<"请输入撤销卡代码:"<<endl;
cin>>x;
temp[x].setinformation();
cout<<"您已成功撤销该张临时饭卡."<<endl;
break;
}

break;

case 4:cout<<"请问充值什么类型的饭卡:10--学生卡,11--教师卡,12--临时卡:"<<endl;
cout<<"请选择"<<endl;
cin>>b;
switch(b)
{
case 10:cout<<"请输入充值卡代码:"<<endl;
cin>>x;
student[x].result();
cout<<"您当前的余额是:"<<student[x].balance();
break;
case 11:cout<<"请输入充值卡代码:"<<endl;
cin>>x;
teacher[x].result();
cout<<"您当前的余额是:"<<teacher[x].balance();
break;
case 12:cout<<"请输入充值卡代码:"<<endl;
cin>>x;
temp[x].result();
cout<<"您当前的余额是:"<<temp[x].balance();
break;
}
break;


case 5:cout<<"请问消费什么类型的饭卡:10--学生卡,11--教师卡,12--临时卡:"<<endl;
cout<<"请选择"<<endl;
cin>>b;
switch(b)
{
case 10:cout<<"请输入消费卡代码:"<<endl;
cin>>x;
student[x].consume();
cout<<"您当前的余额是:"<<student[x].balance();
break;
case 11:cout<<"请输入消费卡代码:"<<endl;
cin>>x;
teacher[x].consume();
cout<<"您当前的余额是:"<<teacher[x].balance();
break;
case 12:cout<<"请输入消费卡代码:"<<endl;
cin>>x;
temp[x].consume();
cout<<"您当前的余额是:"<<temp[x].balance();
break;
}
break;
case 6: cout<<"请问查询什么类型的饭卡:10--学生卡,11--教师卡,12--临时卡:"<<

上一个:通讯录怎样用C++编写啊
下一个:windows7怎么安装visual c++

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,