- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南 京 理 工 大 学
C++课程设计报告
姓名:谢记超
课程设计题目:个人财政支出管理(A级)
程序功能简介:将个人财物的目标及当前存款、支出保存下来,可随时更新查看,比 较盈余与目标的差距。
设计要求:
(1)将收支的数据与相应的函数封装到类中,并改写主程序,使程序结构化。
(2)增加保存每笔收支的记录,并对每笔记录增加日期录入,按日期顺序保存查看记录。将所有记录放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。
(3)完善程序,补充类中数据成员(dlbalance)的计算和输出,要求每笔收入和支出都要重新统计当前情况下的盈余数目。
(4)增加程序监控功能,当输入时间发生错误(如月份超过十二),要求重新输入正确的时间;当结余数目为负数时,输出信息,警告已超支。
对题目的分析,以及功能的实现
类:
类:Clist(链表类)
(指针成员指向类cnode的对象
类cnode各数据成员以及成员函数
类CFinance的数据成员以及成员函数
CNode
(指针成员pData指向CFinance的对象)
类Clist的各数据成员
以及成员函数
关键的四个类
1.class CFince数据类2.class CNode 结点类
3.class CList 链表类4.class CRecord 处理类
两个函数
1. 判断日期是否正确的函数 2. main()函数
实现如下功能
程序的结构化,将各函数封装到类中。
数据的保存与读取。
数据的处理,用相应函数实现
优化处理,界面美观,人性化提示,数据输入的监控
程序设计过程中遇到的问题与解决方法
开始做出的程序添加收入与支出记录是未进行日期检查,导致不实际的日期也被录入。对于日期的检查用了函数IsDateRight来实现,其中应用了if语句,switch语句帮助实现该功能。
数据的保存与读取开始实现不了,保存下来的数据格式不正确,打不开,再次运行时上次的数据也未能读取。最终在class CRecord 处理类中添加void ReadFromFile()和void SaveToFile()实现了这个功能,里面用到了输入输出流ifstream和ofstream,实现数据的保存与再次读取是很高兴的,最令人兴奋的是关闭程序后可以在文本文件中看到收支记录!
数据类 结点类 链表类 数据处理类的编写是很复杂的,环环相扣,数据类、节点类是基础,链表类将数据串起来,然后再用数据处理类中的函数处理链表中的数据!这四大类真是让人费劲心思!当时实现这个生产链时,那是相当有成就感的!
如何区分开收入与支出记录输出,当时困扰了我很久,实在不希望不能实现收入记录与支出记录的分开显示,后来发觉可以通过判断函数的值来判断该笔记录是收入还是支出,最终实现了查看收入记录则只显示收入记录,查看支出记录只显示支出记录。
累计计算余额,实现超支预警,
void CRecord::ViewBalance()
{
list.ShowList();
if(list.GetLastNode()-GetData()-GetBalance()0)
{cout您的财政已超支!endl;}
} 累积计算的实现别看代码不长绝非易事。
6.主界面的美化,还是花了不少心思的!
程序中尚存在的不足
1.根据日期修改记录只实现了金额的修改,而日期和用途的修改未实现。
2.入日期时用cinabC; ;获取时间,在Dos屏幕中输入 2012 8 5 100而入的的100会被下一次cind;获得(即被当做收入获得)如何在取得相应数据后清空为取得的数据?cin.ignore cin.sync cin.ignore 都不行。
3.入与支出的用途在Dos屏幕中只能输入英文,不能输入汉语,如果这个程序用MFC编程来编写效果会更好!
4.操作未实现,有时候运行次数过多就会在评上留下很多东西,DOS屏幕会显乱。
程序演示截图
#includeiostream.h
#includestring.h
#includestdlib.h
#includefstream.h
bool IsDateRight(int,int,int); // 函数原形说明
static double dlPurpose=0.0; //全局静态变量,目标
class CFinance //数据类
{
int nYear,nMonth,nDay;
double dlIncome,dlOutput;
double dlBalance;
char szPurpose[20];
double dlGap;
public:
CF
您可能关注的文档
- 《网站建设技术》课程设计报告.doc
- 《微机原理及接口技术》智能双路数字电压表课程设计.doc
- 《微机原理与接口技术》课程设计报告.doc
- 《我们爱你啊,中国》教学课件.ppt
- 旅游沿革——话说旅游.ppt
- 《我们和诚信在一起》教学课件.ppt
- 《我能为你做点什么》课件设计.ppt
- 旅游与旅游文学概述.pptx
- 《我设计服装》课件(人教新课标六年级美术下册课件).ppt
- 《我为学校护绿做贡献》活动设计.ppt
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)