C++设计实例-----毕业生收入预测分析系统
来源:互联网 发布:0基础学美工 编辑:程序博客网 时间:2024/05/01 21:36
本设计主要是用C++编程来实现每类学生的预期工资和预期奖金的分类,以三类学生为例,每类学生的预期工资和预期奖金可以是各不相同的。这三类学生分别为本科生、硕士生、博士生。先用基类来定义本科生,然后用继承的方法来定义硕士生和博士生,共用四个虚函数,并调用基类的构造函数,最后输出每类学生的预期工资和预期奖金。
算法
用define函数进行宏定义,把学生的预期奖金和预期工资用标识符表示出来,
S_Salary取值为1000 G_Salary取值为2000 D_Salary取值为3000
S_Rewards取值为200 G_Rewards取值为200 D_Rewards取值为400
定义一个基类CStudent
{
受保护成员变量:
grade 为double型变量
Name 为长度20的字符数组
Age 为double型变量
公有成员方法:
定义一个含有两个参数(char和double型)的构造函数CStudent
{对成员变量grade 和Name进行赋值}
定义返回值为double的成员函数getGrade
{返回整型变量grade}
定义返回指针值的成员函数GetName
{返回字符数组Name}
定义返回值为double型的成员函数getage
{返回整型变量Age}
定义返回值为double型的虚函数Caculate
{返回为grade与S_Salary的乘积}
定义返回值为double型的虚函数Rewards
{返回值为S_Rewards}
}
定义一个子类CGraduateStudent,公有继承基类CStudent
{
公有成员方法:
定义一个含有两个参数(char和double型)的构造函数CGraduateStudent
{调用基类的构造函数CStudent}
重新定义返回值为double型虚函数Caculate
{返回为grade与G_Salary的乘积
重新定义返回值为double型虚函数Rewards
{返回值为G_Rewards}
}
定义一个子类CDoctorStudent,公有继承基类CStudent
{
公有成员方法:
定义一个含有两个参数(char和double型)的构造函数CDoctorStudent
{调用基类的构造函数CStudent}
重新定义返回值为double型虚函数Caculate
{返回为grade与D_Salary的乘积
重新定义返回值为double型虚函数Rewards
{返回值为D_Rewards}
}
空类型主函数main
{
定义基类的指针变量temp
定义基类的对象s1,并使化
定义派生类CGraduateStudent的对象s2,并使化
定义派生类CDoctorStudent的对象s3,并使化
用temp来指向对象s1
调用GetName函数来输出学生姓名
调用Caculate函数来输出本科生预期工资
调用Rewards函数来输出本科生预期奖金
用temp来指向对象s2
调用GetName函数来输出学生姓名
调用Caculate函数来输出硕士生预期工资
调用Rewards函数来输出硕士生预期奖金
用temp来指向对象s3
调用GetName函数来输出学生姓名
调用Caculate函数来输出博士生预期工资
调用Rewards函数来输出博士生预期奖金
}
三、 程序
#include <iostream> //头文件
#include <string.h>
using namespace std;
#define S_Salary 1000 //用define函数对标识符进行宏定义
#define G_Salary 2000
#define D_Salary 3000
#define S_Rewards 200
#define G_Rewards 200
#define D_Rewards 400
class CStudent //定义基类CStudent
{
protected: //定义受保护成员
double Wyear;
charName[20]; //定义一个字符数组Name长度为20
double a;
double Age;
public: //定义公有成员
CStudent(char *name,double w,double age) //定义含有两个参数的构造函数CStudent
{
strcpy_s(Name,name); //将字符串name复制给字符数组Name
Wyear=w;
Age=age;
}
doublegetWyear() //定义基类成员函数getWyear
{
return Wyear;
}
doublegetage()
{
return Age;
}
char*GetName() //定义返回指针值的基类成员函数GetName
{ return Name;}
virtual doubleCaculate() //定义虚函数Caculate
{ returnWyear*S_Salary;}
virtual doubleRewards() //定义虚函数Rewards
{ returnS_Rewards*(Wyear-0.6);}
virtual voidlevel()
{a=Wyear*S_Salary;
if(500<a&&a<1500)
cout<<"分析此学生收入偏低"<<endl;
else if (1500<a&&a<2500)
cout<<"分析此学生收入中等"<<endl;
else if(2500<a&&a<3500)
cout<<"分析此学生收入较高"<<endl;
else if(a&&a<500)
cout<<"分析此学生收入过低"<<endl;
else
cout<<"分析此学生收入高"<<endl;
}
virtual voiddevelopment()
{ a=Wyear*S_Salary;
if(Age<28&&500<a&&a<1500)
cout<<"分析此学生发展潜力大"<<endl;
else if(Age<28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力较大"<<endl;
else if(Age>28&&500<a&&a<1500)
cout<<"分析此学生发展潜力较小"<<endl;
else if(Age>28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力小"<<endl;
else
cout<<"分析此学生发展潜力中等"<<endl;
}
};
class CGraduateStudent:public CStudent
//定义CStudent类的子类CGraduateStudent,公有继承
{
public:
CGraduateStudent(char *name,double Wyear,double age):CStudent(name,Wyear,age)
//定义派生类的构造函数CGraduateStudent,调用基类的构造函数CStudent
{ }
doubleCaculate() //重新定义虚函数Caculate
{ returnWyear*G_Salary;}
doubleRewards() //重新定义虚函数Rewards
{ returnG_Rewards*(Wyear-0.6);}
voidlevel()
{ a=Wyear*G_Salary;
if(500<a&&a<1500)
cout<<"分析此学生收入偏低"<<endl;
else if (1500<a&&a<2500)
cout<<"分析此学生收入中等"<<endl;
else if(2500<a&&a<3500)
cout<<"分析此学生收入较高"<<endl;
else if(a&&a<500)
cout<<"分析此学生收入过低"<<endl;
else
cout<<"分析此学生收入高"<<endl;
}
voiddevelopment()
{ a=Wyear*G_Salary;
if(Age<28&&500<a&&a<1500)
cout<<"分析此学生发展潜力大"<<endl;
else if(Age<28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力较大"<<endl;
else if(Age>28&&500<a&&a<1500)
cout<<"分析此学生发展潜力较小"<<endl;
else if(Age>28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力小"<<endl;
else
cout<<"分析此学生发展潜力中等"<<endl;
}
};
class CDoctorStudent: public CStudent
//定义CStudent类的子类CDoctorStudent,公有继承
{
public:
classCDoctorStudent(char *name,double Wyear,double age):CStudent(name,Wyear,age)
//定义派生类的构造函数CDoctorStudent,调用基类的构造函数CStudent
{ }
double Caculate() //重新定义虚函数Caculate
{ returnWyear*D_Salary;}
doubleRewards() //重新定义虚函数Rewards
{return D_Rewards*(Wyear-0.6);}
voidlevel()
{a=Wyear*D_Salary;
if(500<a&&a<1500)
cout<<"分析此学生收入偏低"<<endl;
else if (1500<a&&a<2500)
cout<<"分析此学生收入中等"<<endl;
else if(2500<a&&a<3500)
cout<<"分析此学生收入较高"<<endl;
else if(a&&a<500)
cout<<"分析此学生收入过低"<<endl;
else
cout<<"分析此学生收入高"<<endl;
}
voiddevelopment()
{ a=Wyear*D_Salary;
if(Age<28&&500<a&&a<1500)
cout<<"分析此学生发展潜力大"<<endl;
else if(Age<28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力较大"<<endl;
else if(Age>28&&500<a&&a<1500)
cout<<"分析此学生发展潜力较小"<<endl;
else if(Age>28&&1500<a&&a<2500)
cout<<"分析此学生发展潜力小"<<endl;
else
cout<<"分析此学生发展潜力中等"<<endl;
}
};
voidmain() //定义主函数
{
cout<<" 学生预期的收入情况如下"<<endl;
CStudents1("wang",3,30),*temp;
CGraduateStudent s2("zhang",1,29);
CDoctorStudent s3("li",1,27);
CStudents4("huang",1,27);
CDoctorStudent s5("den",1,35);
temp=&s1; //指向基类CStudent的象
cout<<"姓名\t"<<temp->GetName();
cout<<"\t工作年数\t"<<temp->getWyear() ;
cout<<"\t学生年龄\t"<<temp->getage();
cout<<"\t本科毕业生\t月薪\t";
cout<<temp->Caculate(); //调用Caculate函数,输出本科毕业生月薪
cout<<"\t\t年终奖金\t";
cout<<temp->Rewards()<<endl; //调用Rewards函数,输出本科毕业生年终奖金
s1.level();
s1.development();
temp=&s2; //指向派生类CGraduateStudent的对象
cout<<"姓名\t"<<temp->GetName();
cout<<"\t工作年数\t"<<temp->getWyear() ;
cout<<"\t学生年龄\t"<<temp->getage() ;
cout<<"\t硕士毕业生\t月薪\t";
cout<<temp->Caculate(); //调用Caculate函数,输出硕士毕业生月薪
cout<<"\t\t年终奖金\t";
cout<<temp->Rewards()<<endl; //调用Rewards函数,输出硕士毕业生年终奖金
s2.level();
s2.development();
temp=&s3; //指向派生类CDoctorStudent的对象
cout<<"姓名\t"<<temp->GetName();
cout<<"\t工作年数\t"<<temp->getWyear() ;
cout<<"\t学生年龄\t"<<temp->getage() ;
cout<<"\t博士毕业生\t月薪\t";
cout<<temp->Caculate(); //调用Caculate函数,输出博士毕业生月薪
cout<<"\t\t年终奖金\t";
cout<<temp->Rewards()<<endl; //调用Rewards函数,输出博士毕业生年终奖金
s3.level();
s3.development();
temp=&s4;
cout<<"姓名\t"<<temp->GetName();
cout<<"\t工作年数\t"<<temp->getWyear() ;
cout<<"\t学生年龄\t"<<temp->getage() ;
cout<<"\t本科毕业生\t月薪\t";
cout<<temp->Caculate();
cout<<"\t\t年终奖金\t";
cout<<temp->Rewards()<<endl;
s4.level();
s4.development();
temp=&s5;
cout<<"姓名\t"<<temp->GetName();
cout<<"\t工作年数\t"<<temp->getWyear() ;
cout<<"\t学生年龄\t"<<temp->getage();
cout<<"\t本科毕业生\t月薪\t";
cout<<temp->Caculate(); //调用Caculate函数,输出本科毕业生月薪
cout<<"\t\t年终奖金\t";
cout<<temp->Rewards()<<endl; //调用Rewards函数,输出本科毕业生年终奖金
s5.level();
s5.development();
while(1);
}
总结
C++语言是一种优秀的面向对象的程序设计语言,它是在C语言的基础上发展起来的一种新型的编程语言。通过对C++语言的学习,我们可以解决很多的实际问题,就拿本题来说,它可以通过来解决每类学生预期收入和奖金的分类,这只是它其中的一个小小的用途,我们还可以用它来输出N类学生的信息的分类 ,如N个学生的M门科目的成绩,个人资料等,还可以用来设计各种窗口,网页等方面的问题。经过一段时间C++的学习,我感觉自己学到了很多,当然了,要学得更好,就得花更多的时间来研究它,而且它在日后的学习中将会有更大的用途。C++语言学的好与不好,很大程序上取决于上机编程,因此,我们应该在这方面加强,从而提高自己的C++语言的水平。
- C++设计实例-----毕业生收入预测分析系统
- 股票预测系统设计
- SQL 贷款毕业生信息管理系统数据库设计
- Matlab预测控制工具箱设计实例
- 人体运动状态预测-实例分析
- appstore收入分析及策略类游戏的战斗设计
- 【毕业生推荐系统】(2) 需求与数据库设计
- 设计模式综合实例分析之数据库同步系统
- 收入预测:4年后十大热门职业的收入状况
- 个人收入预测——决策树详解
- 数据库设计实例分析
- 毕业生收入最高的前30所大学排行榜
- 游戏行业成为毕业生收入最高的行业
- 如何准确预测收入——全年收入的预测点就在Q1
- 毕业生信息管理系统
- java.jsp.c#毕业生面试系统|jsp物流管理系统设计
- 实验二 预测分析算法的设计与实现
- 预测未来OA协同系统市场七大演变分析
- Visual C++中MFC消息的分类
- mysql获取某节点ID的所有子节点(包括他本身)
- 终结者:详述Log4j配置文件中代码的含义
- Spring之Core模块
- 将博客搬至CSDN
- C++设计实例-----毕业生收入预测分析系统
- 安卓数据持久化工具类总结
- c#如何实现从xml中加载树目录,并且显示完整的Text
- JAVA和C++比较之我见
- JAVA菜鸟入门(4) Int vs Integer
- 静态语言和动态语言的概念和区别
- endCall
- CRC8 CRC16 查表法
- 数组到序存放再输出