VC++课程设计报告个人财政支出管理(共8页).doc

上传人:飞****2 文档编号:14161016 上传时间:2022-05-03 格式:DOC 页数:8 大小:38KB
返回 下载 相关 举报
VC++课程设计报告个人财政支出管理(共8页).doc_第1页
第1页 / 共8页
VC++课程设计报告个人财政支出管理(共8页).doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《VC++课程设计报告个人财政支出管理(共8页).doc》由会员分享,可在线阅读,更多相关《VC++课程设计报告个人财政支出管理(共8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 南京理工大学VC课程设计报告课 程:VC+课程设计 系 别:计算机科学与计算机学院班 级:学 号:姓 名:郭斐选题1名称: 计算器选题1难易级别:B级选题2名称: 个人财政支出管理选题2难易级别:A级自报成绩 优起止时间:2011.08.252011.09.12指导教师:衷宜 日期:2011年 09 月 13日目 录一、 课题1目标1.1 程序功能简介1.2 课程设计要求1.3 评定难易级别二、 课题1具体实现2.1 程序总体方案2.1.1开发平台2.1.2程序结构或流程图2.2 所做改进 三、 课题1调试报告四、 课题2目标1.1 程序功能简介1.2 课程设计要求

2、1.3 评定难易级别五、 课题2具体实现2.1 程序总体方案2.1.1开发平台2.1.2程序结构或流程图2.2 所做改进 六、 课题2调试报告七、 总体小结八、 分工介绍一、课题1目标1.1 程序功能简介1.2 课程设计要求1.3 评定难易级别二、课题1具体实现2.1 程序总体方案2.1.1开发平台2.1.2程序结构或流程图(1)主函数的流程图:2.2 所做改进 2.2.1改进一2.2.1.1 改进方案2.2.1.2 具体实现2.2.2改进二2.2.2.1 改进方案2.2.2.2 具体实现2.2.3改进三2.2.3.1 改进方案2.2.3.2 具体实现三、课题1调试报告四、课题2目标4.1 程

3、序功能简介个人财政支出管理程序,将个人财务的目标及当前存款,支出保存下来,可以随时更新,查看,比较盈余与目标的差距。4.2 课程设计要求1)将收支的数据与相应的函数封装到类中,并改写程序,是程序结构化。2)增加保存每笔收入的记录,并对每笔记录增加日期录入,按日期的顺序保存、查看记录。将所有记录放入一个文件中,每次运行程序时首先打开这个文件,程序完毕时将更新的记录放回文件中。3)完善程序,补充类中数据成员盈余的计算和输出,要求每笔输入和支出都要重新统计当前情况下的盈余数目。4)增加程序监控功能,当输入时间发生错误时,要求重新输入正确的时间,当结余的数目为负数,输出信息,警告已经超支!4.3 评定

4、难易级别A级五、课题2具体实现5.1程序总体方案5.1.1开发平台Windows 7Microsoft Visual Studio 20105.1.2程序结构程序结构:class CFinance int nYear,nMonth,nDay; /定义年、月、日double dlIncome,dlOutput; /定义收入、支出数目double dlBalance; /定义结余情况char szPurpose20; /定义用途、目的double dlGap; /据目标的差额public: /公有成员CFinance();CFinance(int,int,int); /根据日期生成结点,查找用 i

5、nt Compare(CFinance &); /比较日期的大小,大于返回1,小于返回-1,等于返回0void Show(); /输出记录void SetFinance(int,int,int,double,double,char *); /对象赋值double ShowPur(); /返回目标void Calculate(double dlBal); /计算结点的盈余情况double GetBalance(); /返回结点的盈余情况,计算下一结点用void ModifyData(); /修改结点数据记录void SetVal(int &,int &,int &,double &,double

6、 &,char *); /实现结点数据的输入/输出bool IsDateEqual(int,int,int); /判断日期是否存在void ShowWithoutBalance(); /输出除收支情况以外的记录int GetDate(); /取时间,排序用;class CNodeCFinance *pData; /指向数据类的指针CNode *pNext; /指向链表的下一个结点的指针public:CNode(); /结点构造函数CNode(CNode &node); /用于拷贝的构造函数void InputData(CFinance *pdata); /输入数据void ShowNode()

7、; /输出结点数据CFinance *GetData(); /返回数据friend class CList; /定义链表类为友元类;class CListprotected: /保护成员CNode *pHead; /链表头结点指针public:CList();CList(); void AddNode(CNode *pnode); /在首部添加结点void DeleteNode(CNode *); /删除一个指定的结点,返回该结点的指针CNode *LookUp(CFinance&); /查找一个指定的数据,返回该数据所在结点在链表中的指针,若未找到返回0void ShowList(); /打

8、印整个链表void SortList(); /链表按时间升序排序void DeleteList(); /删除整个链表CNode *GetListHead(); /返回链表首结点CNode *GetListNextNode(CNode *); /返回链表指定结点的下一个结点void Insert(CNode *); /据日期插入结点CNode *GetLastNode(); /返回最后一个结点,看看最后的盈余有无赤字 void CalBalance(); /逐个结点计算盈余;class CRecordCList list; /把CList的对象list作为CRecord的成员public:voi

9、d ReadFromFile(); /从文件中读取数据void SaveToFile(); /把数据保存在文件中void Deposit(); /输入收入数据void Withdraw(); /输入支出数据void ViewDepositRecord(); /查看收入记录void ViewWithdrawRecord(); /查看支出记录void ViewBalance(); /查看收支平衡情况 void LookUpRecord(); /根据日期查找记录 void EditRecord(); /根据日期修改记录void DeleteRecord(); /根据日期删除记录void setgoa

10、l(double); /设定目标;Void main();5.2 所做改进5.2.1改进一5.2.1.1改进方案去掉类CFinance静态变量成员dlPurpose,避免在修改目标时引起对象之间dlPurpose的混乱,而把dlPurpose放到全局中。我们认为dlPurpose应该是一个全程的目标,而并不是说每次收入和支出都有一个目标,而且这样在修改的时候可以方便很多。5.2.1.2 具体实现static double dlPurpose=0.0; class CFinance int nYear,nMonth,nDay; double dlIncome,dlOutput;double dl

11、Balance; char szPurpose20; double dlGap; public: ;5.2.2改进二5.2.2.1 改进方案进一步使程序更加结构化,将主函数调用的子函数封装到类中。5.2.2.2 具体实现class CRecordCList list; /把CList的对象list作为CRecord的成员public:void ReadFromFile(); /从文件中读取数据void SaveToFile(); /把数据保存在文件中void Deposit(); /输入收入数据void Withdraw(); /输入支出数据void ViewDepositRecord();

12、/查看收入记录void ViewWithdrawRecord(); /查看支出记录void ViewBalance(); /查看收支平衡情况 void LookUpRecord(); /根据日期查找记录 void EditRecord(); /根据日期修改记录void DeleteRecord(); /根据日期删除记录void setgoal(double); /设定目标; 5.2.3改进三5.2.2.1 改进方案对于原来没有顺序的账目,本程序可以对其进行按时间升序排序5.2.2.2 具体实现void CList:SortList()int t=,tt;CNode*p1=pHead,*p2;C

13、Node*head=NULL,*p3,*p4=NULL,*plast;while(1)p1=pHead;t=;if(p1=NULL) break;while(p1!=NULL)tt=p1-GetData()-GetDate();if(ttpNext;if(p2=pHead)pHead=pHead-pNext;elseplast-pNext=p2-pNext;if(head=NULL)head=p2;head-pNext=NULL;p3=head;elsep3-pNext=p2;p3=p3-pNext;p3-pNext=NULL;pHead=head;5.2.4 改进四5.2.4.1 改进方案将

14、类的链表封装成模版,并放在LinkList.h中,方便以后再次使用。5.2.4.2 具体实现详见源代码六、课题2调试报告9月6日,对于类的链表无从下手,我们只好搜集资料,终于知道怎么回事,也进一步理解结构化编程的好处,类封装完了以后,我们不再考虑类里面是怎么实现的,只要拿来用就可以了,就像头文件一样。9月8日,对于我们来说,这是第一次使用类的链表,所以困难重重,但是我还是很想自己上网查找资料比较好。9月12日,终于大体完成,但是发现如果原来的记录是无序的,那么应该写一个链表的排序,一些小问题比较多,不过最终一一解决。七、总体小结这次选的课题比较难,相对于我的水平来说完成起来比较棘手。我的搭档邓奥林的c+知识掌握的较好,所以,程序难的部分都是由他解决的,他也比较耐心,仔细地跟我讲解他的想法和构思。我们就根据课程设计的要求去查书上的知识点,将之后所学的输入输出流以及模板的知识加入到我们的程序里。总体上两个人互相协助完成此次的程序,在过程中体会到了合作的重要性,也让认识到应该巩固自己的c+基础知识。八、课题2分工介绍邓奥林主要是写细节的代码,对于一些难点的解决,以及检查错误之类的工作,占工作量的50%我主要是设计程序的框架,设计类和类的成员,程序的结构,占工作量的50%专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁