




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程设计专用纸No17目 录1课程设计目的及要求 022总体方案设计 03 2.1总体功能框图032.2类的设计说明032.3主要算法流程图043程序清单及注释 07 4运行结果与分析 135课程设计总结 16 6. 参考文献 17 1课程设计目的及要求:1)目的: 全面熟悉、掌握面向对象程序设计基本知识,掌握面向对象程序设计中的几个重要概念和特性,即类、对象、继承、封装和多态,和面向对象程序设计基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础。2)内容及要求:程序功能简介个人财政支出管理程序,完成收入,支出,盈余的记录和管理。课程设计要求(1) 增加函数,完成财政账目的管理功能。(2) 将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。(3) 可自行增加程序的功能。(4) 设计测试主程序,在主程序中完成测试。课程设计说明(1) SetGoal()函数账目中有问题,改正。(2) 可将整修记录装入一个字符串,在两条记录间用特殊符号隔开。(3) 查找相应记录时,可采用逐个字节比较的方法。2总体方案设计2.1 总体功能框图:主界面菜单制定目标查看目录记录置零退出系统支出模式收入模式图2.1总体功能框图2.2 类的设计说明 在这个程序中的定义类为,class Mangaer。类是把各种不同类型的数据和对数据的操作组织在一起而形成的用户自定义的数据类型。此程序中的构造成员函数:Desposit, ViewTotal ,SetGoal, ViewTotal, SetZero。Deposit函数是记录函数,记录用户的收入,及对目录的更新。SetGoal函数是制定函数,制定用户的目标金额。ViewTotal函数用于查看用户的帐户。SetZero函数的用途为将用户之前的账户内容,历史进行清零。Withdram函数的用途是,记录用户的支出记录,并且进行保存。2.3 主要算法流程图1)主函数流程图开始输入6输入5输入4输入3输入2输入1退出系统制定目标记录置零查看目录支出模式收入模式结束图2.3 主函数流程图开始2)收入模式流程图收入模式Mm1:dAmt=0 Num=o 输入dAmtNdAmt=0YdAmt=dAmt+num 结束图2.2收入模式流程图注释:mm是Manager,类的对象。 dAmt是收入数目 num是存入输入的数据 此段程序,进入收入模式,输入收入金额dAmt,判断dAmt的数据是否为正数,如果是就将dAmt重新赋值为dAmt+num。否则进行重新输入。3)支出函数流程图开始Mm2:wAmt=0 Num=o 输入wAmtNwAmt=0YwAmt=wAmt+num 结束图2.3支出模式流程图注释:mm是Manager,类的对象。 wAmt是收入数目 num是存入输入的数据 此段程序,进入支出模式,输入支出金额wAmt,判断wAmt的数据是否为正数,如果是就将wAmt重新赋值为wAmt+num。3.程序清单及注释#include #include #include #include #include class Manager /定义类Managerprivate: double dAmt; /收入数目 char ans; /存放键盘字符的ASCII码 double num; /存入输入的数据 double wAmt; /支出数目 double setAmt; /制定目标 double gAmt; /取目标金额 double balance; /收支金额 double newbalance; /与目标所差金额public: /声名我所有的函数 void Deposit(); /收入函数 void Withdraw(); /支出函数 void ViewTotal(); /查看帐目 void SetGoal(); /制定目标 void SetZero(); /记录置零;class Manager main() /主函数 Manager mm; /创建对象 char select; cprintf(=个人财政支出管理= );/显示标题# ifdef MIN coutnnn#调 试 模 式#endl;#endif coutnnt 收入模式endl; /选择进入收入模式 coutnt 支出模式endl; /选择进入支出模式 coutnt 查看帐目endl; /选择进入查看帐目模式 coutnt 制定目标endl; /选择进入制定目标模式 coutnt 记录置零endl; /选择记录置零 coutnt 退出系统endl; /选择退出 coutnt 帮 助 endl; coutselect; if(select = 1)mm.Deposit();else if(select = 2)mm.Withdraw();else if(select = 3)mm.ViewTotal();else if(select = 4)mm.SetGoal();else if(select = 5)mm.SetZero();else if(select = 0) coutendlendlendl; getch(); main(); /回主函数 else if(select = 6) exit(1); /退出 else main(); /回主函数 void Manager:Deposit()/在程序中记录收入数目的函数 mm1:dAmt = 0; num = 0; double a=0,c=0; ifstream get(Money.txt); /打开存贮数据文件# ifdef DE1 coutn#打开文件money.txt读取数据#anumc; /取得存档文件中的三个数据 get.close(); coutendlendl; cprintf(*收入* ); coutdAmt;/检查输入的数据是否为错误的数据或是零,然后继续 if(dAmt = 0) /如果数据小于等于零 coutnnnnnendl; cprintf( !错误的数据! .); getch(); main(); else coutnnt数据输入 dAmt.endl; coutnt 确认你输入的数据: ; cinans; if(ans = y) dAmt = dAmt + num; /把新数据加到原有数据上 ofstream save(Money.txt);# ifdef DE2 coutn#打开文件money.txt,保存数据#endl;#endif saveandAmtnc; save.close(); coutnnnnnendl; cprintf( 你的收入数据成功输入.); coutnt 继续输入收入金额: ; cinans; if(ans = y)goto mm1; /继续输入数据 else coutendlendlendl; main(); /回主函数 getch(); coutendlendlendl; main(); /回主函数 else /中止输入数据 main(); /回主函数 main(); /回主函数 void Manager:Withdraw() /在程序中记录支出数目的函数 mm2:wAmt = 0; num = 0; double a=0,b=0; ifstream get(Money.txt); /打开存贮数据文件# ifdef WI1 coutn#打开文件money.txt,读取数据#abnum; /取得存档文件中的三个数据 get.close(); coutendlendl; cprintf(*支出* ); coutwAmt; if(wAmt = 0) /检查输入的数据是否为错误的数据或是零,然后继续 coutnnnnnendl; cprintf( !错误的数据! .); getch(); main(); else coutnnt数据输入 wAmt.endl; coutnt 确认你输入的数据: ; cinans; if(ans = y) wAmt = wAmt + num; /把新数据加到原有数据上 ofstream save(Money.txt);# ifdef WI2 coutn#打开文件money.txt,保存数据#endl;#endif saveanbnwAmt; save.close(); coutnnnnnendl; cprintf( 你的支出数据成功输入.); coutnt 继续输入支出金额: ; cinans; if(ans = y)goto mm2; /继续输入数据 else coutendlendlendl; main(); /回主函数 getch(); coutendlendlendl; main(); else /中止输入数据 main(); /回主函数 main(); /回主函数 void Manager:SetGoal() /在程序中制定目标金额的函数 setAmt = 0; double b=0,c=0,temp=0; coutendlendl; cprintf(*制定目标* ); coutsetAmt; /保存新数据到文件中 ifstream get(Money.txt); /打开存贮数据文件 gettempbc; /取得存档文件中的三个数据 get.close();# ifdef SG coutn#打开文件money.txt,保存数据#endl;#endif ofstream save(Money.txt); savesetAmtnbnc; save.close(); coutnnnnnendl; cprintf( 你的目标金额已建立.); getch(); coutendlendlendl; main();void Manager:ViewTotal() /查看帐目函数 dAmt = 0; /收入数目 wAmt = 0; /支出数目 gAmt = 0; /取目标金额 balance = 0; /收支金额 newbalance = 0;/与目标所差金额# ifdef VT coutn#打开文件money.txt,读取数据#gAmtdAmtwAmt; /取得存档文件中的三个数据 get.close(); balance = dAmt - wAmt; /收入减去支出取得收支平衡数据 coutendlendl; cprintf(*查看帐目* ); coutnnendl; cprintf( 收支总数); coutendl; cprintf( =); coutnnendl; cprintf( 收入总金额 支出总金额 收支总金额 ); coutnendl; coutsetw(15)dAmtsetw(25)wAmtsetw(20)balanceendl;/使每两个数据按一定的间隔输出 newbalance = gAmt - balance; coutnnnendl; cprintf( 收支平衡); coutendl; cprintf( =); coutnnendl; cprintf( 目标金额 收支平衡金额 相差金额 ); coutnendl; coutsetw(15)gAmtsetw(25)balancesetw(23)newbalanceendl; getch(); coutendlendlendl; main(); /回到主函数void Manager:SetZero() /记录置零函数 coutnnnn 你确定要将记录置零: ; cinans; /确认是否要将记录置零 if(ans = y) dAmt = 0; /先初始数据为零 wAmt = 0; setAmt = 0;# ifdef SZ coutn#打开文件money.txt,保存数据#endl;#endif ofstream save(Money.txt); /打开存放数据的文件并将收入数据置零 savesetAmtndAmtnwAmt; save.close(); coutendlendlendl; main(); /回主函数 else coutendlendlendl; main(); /回主函数4运行结果与分析1)登陆界面图5.1 登陆界面截屏2)收入模式图5.2收入模式截屏3)支出模式图5.3 支出模式截屏4)查看账目图5.4 查看账目截屏5)记录置零图5.5 记录置零截屏6)退出系统.图5.6 退出系统截屏5.课程设计总结面向对象程序课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在如今高度计算机化的社会下,电脑编程在计算机领域已尤为重要,扮演着一个不可或缺与替代的角色。经过一周的面向对象程序课程设计,我不但实践了课本的知识,还制作了自己的小程序,更重要的是自己对面向对象程序设计有了更深入的了解。在实践中,深刻体会到只有经过调试程序,我们才能掌握正确的语法知识及把解决问题的方法用程序语言来表达。在设计程序的过程中不仅使我掌握了面向对象程序设计基本技能,同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 和解决问题的能力。 想起这次课程设计的这些日子,至今我仍感慨颇多。以前上课时学的都是一些最基本的东西,觉得很枯燥无味。但当自己能把所学的知识转换为有用的东西时,心中却不知何时有了一种莫名的动力,在电脑前面一坐就是好几个小时。或许这就是有压力才有动力吧!在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。这一周的课程设计,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铁路运输安全管理师资格考试试卷及答案
- 2025年影视剪辑与后期制作实践考试卷及答案
- 2025年网页设计与制作考试试题及答案
- 2025年广告设计与创意基础考试试卷及答案
- 2025年文化产业管理专业入学考试试题及答案
- 新能源汽车高性能电机控制器研发与生产合作协议
- 高层建筑工程测量与抗震评估协议
- 直播平台主播IP授权合作协议
- 氢能源技术员项目绩效评估合同
- 多语种同传翻译术语库与技术解决方案租赁合同
- 光影中国学习通超星期末考试答案章节答案2024年
- 工科中的设计思维学习通超星期末考试答案章节答案2024年
- 2020年全国II卷英语高考真题试题(答案+解析)
- 脑洞大开背后的创新思维学习通超星期末考试答案章节答案2024年
- 科傻平差软件说明指导书
- ipo上市商业计划书
- 山东省青岛市市北区2023-2024学年七年级下学期英语期末考试试题
- 《养老护理员》-课件:老年人安全防范及相关知识
- 小儿肺炎诊治考核试题及答案
- 五年级信息技术第13课画城堡课件
- 林场储备林建设项目施工布署及平面布置
评论
0/150
提交评论