您好,欢迎来到好兔宠物网。
搜索
您的当前位置:首页小学期c++实验报告

小学期c++实验报告

来源:好兔宠物网
山西大学管理学院 本科生课程设计论文

(2010 ---- 2011 学年 第 1 学期)

学 院: 管理学院 专 业 名 称: 电子商务 课 程 名 称: 面向对象程序设计 论 文 题 目: 《模拟网上购书的结账功能》 授课 教师(职称): 学 生 姓 名: 年 级: 2010 级 成 绩:

山西大学管理学院 2011年 9 月 14日

模拟网上购书的结账功能

一、问题分析与功能定义:

随着计算机技术的飞速发展,企业办公系统智能化已成为不可取代的趋势。它不仅更加快捷方便,也体现了如今无纸化办公的思想。

现在要解决的问题是:员工在发工资时,系统根据员工不同的岗位将工资打到员工卡上。 工资系统发工资的一般过程是:员工输入自己的员工编号,然后,工资系统计算出应发工资。

根据实际情况,确定了员工可分为三级别: 兼职技术人员,工资按小时计算 销售人员,月薪按销售额的4%计算

经理,固定工资8000元加销售额的4%计算

二、对象(类)设计:

Class Staff //基类 { protected:

String name; //姓名 int number; //员工编号

double money; //工资 public: staff();

staff(string n,double m);

string getstaffname(); //取姓名 int getnumber(); //取员工编号 double getmoney(); //取工资 virtual void display()=0; //显示函数 virtual void setmoney(double=0); //计算工资 };

Class Manager:public Staff //经理类

( int level; //经理级别 public:

worker(string n,int u,double m,int l ):Staff(n,u,m)

{level=l;} //构造函数 void display(); //显示函数 void setmoney(double m); //计算工资 };

Class Salesman:public Staff //销售人员类 { double rate; //占利润比 public:

Salesman (string n,int u,double m,double r) :Staff(n,u,m)

{rate=r;} //构造函数 void display(); //显示函数 void setmoney(double m); //计算工资 };

Class Technician:public Staff //技术人员类 { public:

Technician (string n,int u,double m) :Staff(n,u,m)

{ } //构造函数 void display(); //显示函数 void setmoney(double m); //计算工资

三、核心控制与编码:

// employee.cpp #include #include

#include \"employee.h\" using namespace std;

int employee::employeeNo=1000; // 员工编号基数为1000(起始编号)

employee::employee() {

char namestr[50]; // 输入雇员姓名时首先临时存放在namestr中 cout<<\"请输入下一个雇员的姓名:\"; cin>>namestr;

name=new char[strlen(namestr)+1]; // 动态申请用于存放姓名的内存空间 strcpy(name,namestr); // 将临时存放的姓名复制到name

individualEmpNo=employeeNo++; // 新输入的员工,其编号为目前最大编号加1 grade=1; // 级别初值为1

accumPay=0.0; // 月薪总额初值为0 }

employee::~employee() {

delete name; // 在析构函数中删除为存放姓名动态分配的内存空间 }

void employee::pay() { }

void employee::promote(int increment) {

grade+=increment; // 升级,提升的级数由increment指定

}

void employee::displayStatus() { }

technician::technician() {

hourlyRate=100; // 每小时薪金100元 }

void technician::pay() {

cout<<\"请输入\"<>workHours;

accumPay=hourlyRate*workHours; // 计算月薪,按小时计算

cout<<\"兼职技术人员 \"<void technician::displayStatus() {

cout<<\"兼职技术人员 \"<<<\" 级别为 \"<salesman::salesman() {

CommRate=0.04; // 销售提成比例4% }

void salesman::pay() {

cout<<\"请输入\"<>sales;

accumPay=sales*CommRate; // 月薪=销售提成

cout<<\"推销员 \"<void salesman::displayStatus() {

cout<<\"推销员 \"<<<\" 级别为 \"<}

manager::manager() {

monthlyPay=8000; // 固定月薪8000元 }

void manager::pay() {

accumPay=monthlyPay; // 月薪总薪即固定月薪数

cout<<\"经理 \"<void manager::displayStatus() {

cout<<\"经理 \"<<<\" 级别为 \"<salesmanager::salesmanager() {

monthlyPay=5000; // 固定月薪8000元 CommRate=0.05; // 销售提成比例5% }

void salesmanager::pay() {

cout<<\"请输入\"<>sales;

accumPay=sales*CommRate+monthlyPay; // 月薪=销售提成+固定工资

cout<<\"销售经理 \"<void salesmanager::displayStatus() {

cout<<\"销售经理 \"<<<\" 级别为 \"<// End employee.cpp

部分截图:

实验心得:

C++定义类最大的特点是使程序面向对象而不是面向过程,这在C中是没有体现的。类的标志特性是继承,封装,多态,对象化提供了模型化和信息隐藏的好处,类化提供了可重用性德好处。

通过面向对象使得程序设计模块化了,便于编程人员拆分合作。类首先是基类,派生和继承得到的新类既有基类的公共属性,又可以定义新的功能属性,便有了多元化实用价值,封装便于保护代码不被任意篡改和便于维护,可移植性和重用性高。

实验结束了,对于我们小组来说并不容易,有时代码要修改三四次,但是回想整个过程,收获还是不少的。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务