VC++课程设计报告个人财政支出管理._第1页
VC++课程设计报告个人财政支出管理._第2页
VC++课程设计报告个人财政支出管理._第3页
VC++课程设计报告个人财政支出管理._第4页
VC++课程设计报告个人财政支出管理._第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、题2具体实现2.1 程序总体方案开发平台程序结构或流程图2.2 所做改良 六、 课题2调试报告七、 总体小结八、 分工介绍一、课题1目标1.1 程序功能简介1.2 课程设计要求1.3 评定难易级别二、课题1具体实现 程序总体方案开发平台程序结构或流程图1主函数的流程图:2.2 所做改良 改良一.1 改良方案.2 具体实现改良二.1 改良方案.2 具体实现2.2.3改良三.1 改良方案.2 具体实现三、课题1调试报告四、课题2目标4.1 程序功能简介个人财政支出管理程序,将个人财务的目标及当前存款,支出保存下来,可以随时更新,查看,比拟盈余与目标的差距。4.2 课程设计要求1将收支的数据与相应的

3、函数封装到类中,并改写程序,是程序结构化。2增加保存每笔收入的记录,并对每笔记录增加日期录入,按日期的顺序保存、查看记录。将所有记录放入一个文件中,每次运行程序时首先翻开这个文件,程序完毕时将更新的记录放回文件中。3完善程序,补充类中数据成员盈余的计算和输出,要求每笔输入和支出都要重新统计当前情况下的盈余数目。4增加程序监控功能,当输入时间发生错误时,要求重新输入正确的时间,当结余的数目为负数,输出信息,警告已经超支!4.3 评定难易级别A级五、课题2具体实现程序总体方案.1开发平台Windows 7Microsoft Visual Studio 20215程序结构程序结构:class CFi

4、nance int nYear,nMonth,nDay; /定义年、月、日double dlIncome,dlOutput; /定义收入、支出数目double dlBalance; /定义结余情况char szPurpose20; /定义用途、目的double dlGap; /据目标的差额public: /公有成员CFinance();CFinance(int,int,int); /根据日期生成结点,查找用 int Compare(CFinance &); /比拟日期的大小,大于返回1,小于返回-1,等于返回0void Show(); /输出记录void SetFinance(int,

5、int,int,double,double,char *); /对象赋值double ShowPur(); /返回目标void Calculate(double dlBal); /计算结点的盈余情况double GetBalance(); /返回结点的盈余情况,计算下一结点用void ModifyData(); /修改结点数据记录void SetVal(int &,int &,int &,double &,double &,char *); /实现结点数据的输入/输出bool IsDateEqual(int,int,int); /判断日期是否存在void

6、 ShowWithoutBalance(); /输出除收支情况以外的记录int GetDate(); /取时间,排序用;class CNodeCFinance *pData; /指向数据类的指针CNode *pNext; /指向链表的下一个结点的指针public:CNode(); /结点构造函数CNode(CNode &node); /用于拷贝的构造函数void InputData(CFinance *pdata); /输入数据void ShowNode(); /输出结点数据CFinance *GetData(); /返回数据friend class CList; /定义链表类为友元类

7、;class CListprotected: /保护成员CNode *pHead; /链表头结点指针public:CList();CList(); void AddNode(CNode *pnode); /在首部添加结点void DeleteNode(CNode *); /删除一个指定的结点,返回该结点的指针CNode *LookUp(CFinance&); /查找一个指定的数据,返回该数据所在结点在链表中的指针,假设未找到返回0void ShowList(); /打印整个链表void SortList(); /链表按时间升序排序void DeleteList(); /删除整个链表CN

8、ode *GetListHead(); /返回链表首结点CNode *GetListNextNode(CNode *); /返回链表指定结点的下一个结点void Insert(CNode *); /据日期插入结点CNode *GetLastNode(); /返回最后一个结点,看看最后的盈余有无赤字 void CalBalance(); /逐个结点计算盈余;class CRecordCList list; /把CList的对象list作为CRecord的成员public:void ReadFromFile(); /从文件中读取数据void SaveToFile(); /把数据保存在文件中void

9、 Deposit(); /输入收入数据void Withdraw(); /输入支出数据void ViewDepositRecord(); /查看收入记录void ViewWithdrawRecord(); /查看支出记录void ViewBalance(); /查看收支平衡情况 void LookUpRecord(); /根据日期查找记录 void EditRecord(); /根据日期修改记录void DeleteRecord(); /根据日期删除记录void setgoal(double); /设定目标;Void main();5.2 所做改良改良一.1改良方案去掉类CFinance静态变

10、量成员dlPurpose,防止在修改目标时引起对象之间dlPurpose的混乱,而把dlPurpose放到全局中。我们认为dlPurpose应该是一个全程的目标,而并不是说每次收入和支出都有一个目标,而且这样在修改的时候可以方便很多。.2 具体实现static double dlPurpose=0.0; class CFinance int nYear,nMonth,nDay; double dlIncome,dlOutput;double dlBalance; char szPurpose20; double dlGap; public: ;改良二.1 改良方案进一步使程序更加结构化,将主函

11、数调用的子函数封装到类中。.2 具体实现class CRecordCList list; /把CList的对象list作为CRecord的成员public:void ReadFromFile(); /从文件中读取数据void SaveToFile(); /把数据保存在文件中void Deposit(); /输入收入数据void Withdraw(); /输入支出数据void ViewDepositRecord(); /查看收入记录void ViewWithdrawRecord(); /查看支出记录void ViewBalance(); /查看收支平衡情况 void LookUpRecord()

12、; /根据日期查找记录 void EditRecord(); /根据日期修改记录void DeleteRecord(); /根据日期删除记录void setgoal(double); /设定目标; 改良三.1 改良方案对于原来没有顺序的账目,本程序可以对其进行按时间升序排序.2 具体实现void CList:SortList()int t=99999999,tt;CNode*p1=pHead,*p2;CNode*head=NULL,*p3,*p4=NULL,*plast;while(1)p1=pHead;t=99999999;if(p1=NULL) break;while(p1!=NULL)t

13、t=p1->GetData()->GetDate();if(tt<t)p2=p1;plast=p4;t=tt;p4=p1;p1=p1->pNext;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; 改良四.1 改良方案将类的链表封装成模版,并放在LinkList.h中,方便以后再次使用。.2 具体实现详见源代码六、课题2调试报告9月6日,对于类的链表无从下手,我们只好搜集资料,终于知道怎么回事,也进一步理解结构化编程的好处,类封装完了以后,我们不再考虑类里面是怎么实现的,只要拿来用就可以了,就像头文件一样。9月8日,对于我们来说,这是第一次使用类的链表,所以困难重重,但是我还是很想自己上网查找资料比拟好。9月12日,终于大体完成,但是发现如果原来的记录是无序的,那么应该写一个链表的排序,一些小问题比拟多,不过最终一一解决。七、总体小结这次选的课题比拟难,相对于我的水平来说完成起来比拟棘手。我的伙伴邓奥林的c+知识掌握的较好,所以,程序难的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论