科研经费管理系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计2009 ~ 2010学年第一学期
设计题目《面向对象程序设计》课程设计
院(系)计算机科学与信息工程学院
专业计算机科学与技术
班级学号
学生姓名
设计时间2010年 1 月 25 日-- 1 月 29 日指导教师
提交日期 2010年1月29日
上海应用技术学院课程设计任务书
指导教师(签名):教研室主任(签名):
目录
1概述: .................................................................................. 错误!未定义书签。
1.1XXXXXX............................................... 错误!未定义书签。
1.2XXXXXX:............................................. 错误!未定义书签。2课题分析 .............................................................................. 错误!未定义书签。
2.1XXXX ................................................ 错误!未定义书签。
2.2XXXX ................................................ 错误!未定义书签。3详细设计说明 ...................................................................... 错误!未定义书签。
3.1XXXX ................................................ 错误!未定义书签。
3.2XXX................................................. 错误!未定义书签。
3.3XXX................................................. 错误!未定义书签。4课程设计总结 ...................................................................... 错误!未定义书签。5软件使用说明 ...................................................................... 错误!未定义书签。6附录(参考文献,原代码:) ............................................ 错误!未定义书签。参考文献:................................................ 错误!未定义书签。原代码 ................................................... 错误!未定义书签。
1.概述
1.1基本功能
实现一个简单的科研经费管理系统。系统的主要功能是计算科研经费的使用情况并存档。
(1)可以输入各个支出项的费用、人数和天数等。
(2)可以计算支出项费用。
(3)可以查找支出项信息。
(4)可以将支出项信息保存进文件。
1.2拓展功能
无
2.课题分析
2.1类的设计
在这个课程设计中,需要有6个类。根据设计任务,设计一个虚基类expenditure ,然后派生出book(图书)类,hardware(硬件)类,training(培训)类和travel(出差)类,从travel类和training类中派生出一个research(调研)类。
在基类中,除了定义构造函数和析构函数外,还应定义对各类支出项信息应有的操作,这样可以规范类族中各派生类的基本行为。由于各类支出项经费的计算方法不同,在基类中将countpay()定义为纯虚函数,然后在派生类中进行重新定义其具体实现,以便实现运行时的多态性。
class expenditure
{
protected:
long number;
char name[20];
int pay;
public:
expenditure();
~expenditure();
void info();
virtual void countpay()=0;
int getpay();
char *getname();
void recordinfo();
void recordpay();
long getnumber();
};
class book:public expenditure
{
private:
int bpay;
public:
void infor();
void countpay();
};
class hardware:public expenditure
{
private:
int hpay;
public:
void infor();
void countpay();
};
class training:virtual public expenditure
{
public:
int trainpay;
int people;
void infor();
void countpay();
};
class travel:virtual public expenditure
{
public:
int day;
int travelpay;
travel();
void infor();
void countpay();
};
class research:public training,public travel
{
public:
void countpay();
void infor();
};
2.2类的实现
通过构建变量和函数来体现该类的属性。
根据用户需要expenditure类应该拥有的属性有:编号,支出项名称,支出项编号。expenditure类的服务可以包括info()、search()、countPay()、recordInfo()和recordPay ()。其中,info()函数用于接收用户输入的支出信息;search()函数用来根据支出名称查找支出信息;countPay()函数为支出计算函数,但在基类中为空,原因是各类支出项目的计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。recordInfo()函数和recordPay()函数分别是支出信息和支出经额,分别将信息存入文件info.txt和pay.txt。
#include
#include