《面向对象课程设计.doc》由会员分享,可在线阅读,更多相关《面向对象课程设计.doc(17页珍藏版)》请在三一办公上搜索。
1、面向对象课程设计目 录1课程设计目的及要求 022总体方案设计 03 2.1总体功能框图032.2类的设计说明032.3主要算法流程图043程序清单及注释 07 4运行结果与分析 135课程设计总结 16 6. 参考文献 17 1课程设计目的及要求:1)目的: 全面熟悉、掌握面向对象程序设计基本知识,掌握面向对象程序设计中的几个重要概念和特性,即类、对象、继承、封装和多态,和面向对象程序设计基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际
2、问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础。2)内容及要求:程序功能简介个人财政支出管理程序,完成收入,支出,盈余的记录和管理。课程设计要求(1) 增加函数,完成财政账目的管理功能。(2) 将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。(3) 可自行增加程序的功能。(4) 设计测试主程序,在主程序中完成测试。课程设计说明(1) SetGoal()函数账目中有问题,改正。(2) 可将整修记录装入一个字符串,在两条记录间用特殊符号隔开。(3) 查找相应记录时,可采用逐个字节比较的方法。
3、2总体方案设计2.1 总体功能框图:主界面菜单制定目标查看目录记录置零退出系统支出模式收入模式图2.1总体功能框图2.2 类的设计说明 在这个程序中的定义类为,class Mangaer。类是把各种不同类型的数据和对数据的操作组织在一起而形成的用户自定义的数据类型。此程序中的构造成员函数:Desposit, ViewTotal ,SetGoal, ViewTotal, SetZero。Deposit函数是记录函数,记录用户的收入,及对目录的更新。SetGoal函数是制定函数,制定用户的目标金额。ViewTotal函数用于查看用户的帐户。SetZero函数的用途为将用户之前的账户内容,历史进行清
4、零。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)支出函
5、数流程图开始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码 d
6、ouble 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; /创
7、建对象 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();
8、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 =
9、 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
10、确认你输入的数据: ; 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(); /回主函数 get
11、ch(); 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
12、; 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(); coutnn
13、nnnendl; 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(*制定目
14、标* ); 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()
15、 /查看帐目函数 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( =); c
16、outnnendl; 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)newbalanceen
17、dl; 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(); c
18、outendlendlendl; main(); /回主函数 else coutendlendlendl; main(); /回主函数4运行结果与分析1)登陆界面图5.1 登陆界面截屏2)收入模式图5.2收入模式截屏3)支出模式图5.3 支出模式截屏4)查看账目图5.4 查看账目截屏5)记录置零图5.5 记录置零截屏6)退出系统.图5.6 退出系统截屏5.课程设计总结面向对象程序课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在如今高度计算机化的社会下,电脑编程在计算机领域已尤为重要,扮演着一个不可或缺与替代
19、的角色。经过一周的面向对象程序课程设计,我不但实践了课本的知识,还制作了自己的小程序,更重要的是自己对面向对象程序设计有了更深入的了解。在实践中,深刻体会到只有经过调试程序,我们才能掌握正确的语法知识及把解决问题的方法用程序语言来表达。在设计程序的过程中不仅使我掌握了面向对象程序设计基本技能,同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 和解决问题的能力。 想起这次课程设计的这些日子,至今我仍感慨颇多。以前上课时学的都是一些最基本的东西,觉得很枯燥无味。但当自己能把所学的知识转换为有用的东西时,心中却不知何时有了一种莫名的动力,在电脑前面一坐就是好几个小时。或许这就
20、是有压力才有动力吧!在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。这一周的课程设计,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正掌握好所学知识,才能够实现理论到使用的升华!这次课程设计过程中遇到问题,可以说是数不胜数。此外,在设计的过程中发现了自己对以前所学过的知识理解得不够透彻、掌握得不够牢固的不足之处。好的学习方法在学习中很多时候都起着至关重要的作用!尤其是在这次课程设计过程中,深深地体会到,善
21、于总结是学习过程中不可缺少的重要的一个环节。每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的调试和运行状况,随时总结,找到自己的错误与不足之处,这样所编写的程序才能逐步提高。就如生活那样,汗水预示着结果也见证着收获。直到实际动手做,我才真正领略到“一份耕耘,一份收获。”这一句话的真正含义。这次的面向对象程序设计,对我们而言,知识上的收获重要,但是在一个团队间的团结合作的幕幕更让我们记忆终生。挫折是一份财富,经历是一份拥有。虽然这些日子很短暂但我相信这次实际操作必会成为我人生路上的一段美好的回忆!最后我想对给过我帮助的所有同学和各位指导老师表示忠心的感谢!参考文献 李爱华.面向对象程序设计(C+语言).北京:清华大学出版社,2010 谭浩强.C+面向对象程序设计.北京:清华大学出版社,2006 钱能.C+程序设计教程.第二版.北京:清华大学出版社,2005 陈志泊.面向对象程序设计语言C+.第二版.北京:人民邮电出版社,2007 朱立华,朱建,俞琼.面向对象程序设计语言C+.北京:人民邮电出版社,2008