科研经费管理系统的设计.docx

上传人:b****6 文档编号:7324326 上传时间:2023-01-22 格式:DOCX 页数:16 大小:308.62KB
下载 相关 举报
科研经费管理系统的设计.docx_第1页
第1页 / 共16页
科研经费管理系统的设计.docx_第2页
第2页 / 共16页
科研经费管理系统的设计.docx_第3页
第3页 / 共16页
科研经费管理系统的设计.docx_第4页
第4页 / 共16页
科研经费管理系统的设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

科研经费管理系统的设计.docx

《科研经费管理系统的设计.docx》由会员分享,可在线阅读,更多相关《科研经费管理系统的设计.docx(16页珍藏版)》请在冰豆网上搜索。

科研经费管理系统的设计.docx

科研经费管理系统的设计

课程设计

2009~2010学年第一学期

 

设计题目《面向对象程序设计》课程设计

 

院(系)计算机科学与信息工程学院

专业计算机科学与技术

班级学号

学生姓名

设计时间2010年1月25日--1月29日

指导教师

提交日期2010年1月29日

上海应用技术学院课程设计任务书

课程名称

《面向对象程序设计》课程设计

课程代码

B704210

设计题目

科研经费管理系统的设计

题目序号

设计时间

2010年1月25日——2010年1月29日

系(院)

计算机科学与信息工程系

专业

班级

一、课程设计任务(条件)、具体技术参数(指标)

本课程设计是《面向对象程序设计》课程的后继教学环节,学好C++语言就必须坚持用面向对象的思维方式分析问题、解决问题。

科研经费管理系统课程设计题目:

实现一个简单的科研经费管理系统。

系统的主要功能是计算科研经费的使用情况并存档。

项目内有5种不同类型的经费支出:

图书、培训、调研、出差、设备,他们的经费计算方式各不相同。

图书按照实际发票金额计算经费;设备是按照实际发票经额计算经费;培训按照培训费用实际支出*人数;出差按照出差的天数支出出差补贴100/天,调研是培训费+出差补贴

科研经费管理系统的设计:

对于整个系统的设计思路是,首先,输入编号,支出项;然后,在计算该支出项经费的时候,系统先从已输入的支出项,调用不同的处理程序进行计算;最后将结果存档。

从用户需求中,可以发现5种类型的支出项都可以分别设计为一个类。

首先,他们都属于支出,因此可以设计一个基类expenditure,然后从中派生出book类,hardware类、training类和travel类。

从travel和training中派生出一个research类。

根据用户需要expenditure类应该拥有的属性有:

编号,支出项名称,支出项编号。

expenditure类的服务可以包括info()、search()、countPay()、recordInfo()和recordPay()。

其中,info()函数用于接收用户输入的支出信息;search()函数用来根据支出名称查找支出信息;countPay()函数为支出计算函数,但在基类中为空,原因是各类支出项目的计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。

recordInfo()函数和recordPay()函数分别是支出信息和支出经额,分别将信息存入文件info.txt和pay.txt。

二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)

(1)分析科研经费管理系统程序结构:

画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起);

(2)对你已经实现的功能(修改的、新编写的)做详细的说明,并附上流程图及程序清单。

(3)自己对该科研经费管理系统的进一步设想;

(4)对于有设想但最终未实现的功能的大致编程思路的阐述;

(5)论述在设计过程中遇到的并且对你具有启发性的问题。

(6)严禁抄袭,发现雷同,双方扣分。

三、课程设计工作进度计划:

周一白天:

教师布置任务,讲解本课设模块。

周一晚上:

画出主程序粗略的流程图和各个模块的详细流程图。

周三:

设计程序及调试程序。

同时着手写报告。

周四:

完成设计,提交报告,接受教师考评。

四、主要参考资料

(1)《面向对象程序设计》,郑莉,清华大学出版社,

(2)《面向对象程序设计C++语言》,朱战立等编西安电子科技大学出版社

(3)《面向对象程序设计----VisualC++》,刘斌等编,清华大学出版社

(4)《面向对象程序设计----C++语言描述》,RichardJohnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社,2003

指导教师(签名):

教研室主任(签名):

目录

 

1.概述

1.1基本功能

实现一个简单的科研经费管理系统。

系统的主要功能是计算科研经费的使用情况并存档。

(1)可以输入各个支出项的费用、人数和天数等。

(2)可以计算支出项费用。

(3)可以查找支出项信息。

(4)可以将支出项信息保存进文件。

1.2拓展功能

2.课题分析

2.1类的设计

在这个课程设计中,需要有6个类。

根据设计任务,设计一个虚基类expenditure,然后派生出book(图书)类,hardware(硬件)类,training(培训)类和travel(出差)类,从travel类和training类中派生出一个research(调研)类。

在基类中,除了定义构造函数和析构函数外,还应定义对各类支出项信息应有的操作,这样可以规范类族中各派生类的基本行为。

由于各类支出项经费的计算方法不同,在基类中将countpay()定义为纯虚函数,然后在派生类中进行重新定义其具体实现,以便实现运行时的多态性。

classexpenditure

{

protected:

longnumber;

charname[20];

intpay;

public:

expenditure();

~expenditure();

voidinfo();

virtualvoidcountpay()=0;

intgetpay();

char*getname();

voidrecordinfo();

voidrecordpay();

longgetnumber();

};

classbook:

publicexpenditure

{

private:

intbpay;

public:

voidinfor();

voidcountpay();

};

classhardware:

publicexpenditure

{

private:

inthpay;

public:

voidinfor();

voidcountpay();

};

classtraining:

virtualpublicexpenditure

{

public:

inttrainpay;

intpeople;

voidinfor();

voidcountpay();

};

classtravel:

virtualpublicexpenditure

{

public:

intday;

inttravelpay;

travel();

voidinfor();

voidcountpay();

};

classresearch:

publictraining,publictravel

{

public:

voidcountpay();

voidinfor();

};

2.2类的实现

通过构建变量和函数来体现该类的属性。

根据用户需要expenditure类应该拥有的属性有:

编号,支出项名称,支出项编号。

expenditure类的服务可以包括info()、search()、countPay()、recordInfo()和recordPay()。

其中,info()函数用于接收用户输入的支出信息;search()函数用来根据支出名称查找支出信息;countPay()函数为支出计算函数,但在基类中为空,原因是各类支出项目的计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。

recordInfo()函数和recordPay()函数分别是支出信息和支出经额,分别将信息存入文件info.txt和pay.txt。

#include

#include

#include

#include

usingnamespacestd;

expenditure:

:

expenditure()

{}

expenditure:

:

~expenditure()

{}

voidexpenditure:

:

info()

{

cout<<"请输入编号:

";

cin>>number;

cout<<"请输入名称:

";

cin>>name;

}

longexpenditure:

:

getnumber()

{

returnnumber;

}

intexpenditure:

:

getpay()

{

returnpay;

}

char*expenditure:

:

getname()

{

returnname;

}

voidexpenditure:

:

recordinfo()

{

ofstreamfile("info.txt",ios:

:

app);

file<<"编号:

"<

file<<"名称:

"<

();

}

voidexpenditure:

:

recordpay()

{

ofstreamfile("pay.txt",ios:

:

app);

file<<"编号:

"<

file<<"名称:

"<

file<<"费用:

"<

();

}

voidbook:

:

infor()

{

cout<<"请输入图书的发票金额:

";

cin>>bpay;

}

voidbook:

:

countpay()

{

pay=bpay;

}

voidhardware:

:

infor()

{

cout<<"请输入设备的发票金额:

";

cin>>hpay;

}

voidhardware:

:

countpay()

{

pay=hpay;

}

voidtraining:

:

infor()

{

cout<<"请输入培训费用:

";

cin>>trainpay;

cout<<"请输入培训人数:

";

cin>>people;

}

voidtraining:

:

countpay()

{

pay=trainpay*people;

}

travel:

:

travel()

{

travelpay=100;

}

voidtravel:

:

infor()

{

cout<<"请输入出差的天数:

";

cin>>day;

}

voidtravel:

:

countpay()

{

pay=travelpay*day;

}

voidresearch:

:

infor()

{

cout<<"请输入调研费用:

";

cin>>trainpay;

cout<<"请输入调研人数:

";

cin>>people;

cout<<"请输入调研的天数:

";

cin>>day;

}

voidresearch:

:

countpay()

{

pay=trainpay*people+100*day;

}

函数设计说明:

Info()—输入函数,输入编号,名称

Infor()--输入各个类不同的信息

Countpay()—计算支出费用

Recordinfo()--保存编号,名称

Recordpay()--保存编号,名称,支出费用

Search()--查询信息的函数

3.详细设计说明

对于整个系统的设计思路是,首先,输入编号,支出项;然后,在计算该支出项经费的时候,系统先从已输入的支出项,调用不同的处理程序进行计算;最后将结果存档。

随后可在查询功能里面找寻已保存的资料信息。

3.1界面

程序实现及解析如下:

点击运行,出现主界面

选择要输入的支出项

查询正确的支出项名称时所显示出的运行结果

查询错误的支出项名称时所显示出的运行结果

退出程序

3.2方案

算法:

本程序主要是对不同支出项经费的计算。

图书:

费用=实际发票金额

设备:

费用=实际发票金额

培训:

费用=培训费用实际支出*人数

出差:

费用=出差的天数*出差补贴100/天

调研:

费用=培训费+出差补贴

3.3程序描述

运行程序---主菜单----输入选择数字---利用if语句调用相应的函数---输入1---调用info()函数---输入选择数字---调用相应的输入函数和save()函数---是否继续输入

(y/n)---输入n---输入选择数字---输入0---主菜单---输入2---调用search()函数

费用的编号和支出项的编号都是长整型的,费用的支出项名称是字符型的。

具体的基类和派生类的定义:

主程序流程图:

3.4限制条件

本程序用户添加的各个职位的人员最多只能是18个。

4.课程设计总结

这次的课程设计使我更清楚地认识到每个类的作用。

起初,对文件和指针的使用运用不太好,但是最后都得到初步解决。

本程序综合性非常强,由于我们对使用C++设计程序的能力还不是很熟练,所以在设计时非常吃力。

在整个程序中,我通过使用while循环,for和if的嵌套循环,实现各功能之间的联系,用主函数实现对功能的选择以及类的定义及使用来完成程序设计,使我提高了对C++中语句的使用能力和组合能力,进一步加强了我对使用C++编程的能力。

通过此次程序设计实习,我发现自己在学习C++方面还有很多不足,在此程序中可能还有一些不足和错误,我们将在以后的学习过程中不断努力并强化对C++的练习。

5.软件使用说明

Expenditure类:

n:

支出项编号

name:

项目名

pay:

支出金额

countPay():

计算支出函数

recordInfo():

保存信息

recordPay():

保存支出

Training类:

money:

培训单人支出

num:

培训人数

Travel类

Day:

出差天数

Research类

money:

调研单人支出

num:

调研人数

Day:

调研时长

6.附录(参考文献,原代码)

(1)《面向对象程序设计》,郑莉,清华大学出版社,

(2)《面向对象程序设计C++语言》,朱战立等编西安电子科技大学出版社

(3)《面向对象程序设计----VisualC++》,刘斌等编,清华大学出版社

(4)《面向对象程序设计----C++语言描述》,RichardJohnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社,2003

(5)《面向对象程序设计教程题解与课程设计指导》,马石安,魏文平编,清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1