科研经费管理系统的设计Word文件下载.docx
- 文档编号:20432790
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:16
- 大小:308.62KB
科研经费管理系统的设计Word文件下载.docx
《科研经费管理系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《科研经费管理系统的设计Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
科研经费管理系统课程设计题目:
实现一个简单的科研经费管理系统。
系统的主要功能是计算科研经费的使用情况并存档。
项目内有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;
voidinfor();
voidcountpay();
classhardware:
inthpay;
classtraining:
virtualpublicexpenditure
inttrainpay;
intpeople;
classtravel:
intday;
inttravelpay;
travel();
classresearch:
publictraining,publictravel
2.2类的实现
通过构建变量和函数来体现该类的属性。
根据用户需要expenditure类应该拥有的属性有:
#include<
iostream>
fstream>
cstring>
stdlib.h>
usingnamespacestd;
expenditure:
:
expenditure()
{}
~expenditure()
voidexpenditure:
info()
cout<
<
"
请输入编号:
;
cin>
>
number;
请输入名称:
name;
}
longexpenditure:
getnumber()
returnnumber;
intexpenditure:
getpay()
returnpay;
char*expenditure:
getname()
returnname;
recordinfo()
ofstreamfile("
info.txt"
ios:
app);
file<
编号:
number<
endl;
名称:
name<
endl<
();
recordpay()
pay.txt"
费用:
pay<
voidbook:
infor()
请输入图书的发票金额:
bpay;
countpay()
pay=bpay;
voidhardware:
请输入设备的发票金额:
hpay;
pay=hpay;
voidtraining:
请输入培训费用:
trainpay;
请输入培训人数:
people;
pay=trainpay*people;
travel:
travel()
travelpay=100;
voidtravel:
请输入出差的天数:
day;
pay=travelpay*day;
voidresearch:
请输入调研费用:
请输入调研人数:
请输入调研的天数:
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类
调研单人支出
调研人数
调研时长
6.附录(参考文献,原代码)
(5)《面向对象程序设计教程题解与课程设计指导》,马石安,魏文平编,清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科研经费 管理 系统 设计