面向对象课程设计.docx

上传人:b****4 文档编号:26908711 上传时间:2023-06-24 格式:DOCX 页数:20 大小:171.45KB
下载 相关 举报
面向对象课程设计.docx_第1页
第1页 / 共20页
面向对象课程设计.docx_第2页
第2页 / 共20页
面向对象课程设计.docx_第3页
第3页 / 共20页
面向对象课程设计.docx_第4页
第4页 / 共20页
面向对象课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

面向对象课程设计.docx

《面向对象课程设计.docx》由会员分享,可在线阅读,更多相关《面向对象课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

面向对象课程设计.docx

面向对象课程设计

面向对象课程设计

1.课程设计目的及要求…………………………………………………02

2.总体方案设计…………………………………………………………03

2.1总体功能框图………………………………………………………03

2.2类的设计说明………………………………………………………03

2.3主要算法流程图……………………………………………………04

3.程序清单及注释………………………………………………………07

4.运行结果与分析………………………………………………………13

5.课程设计总结…………………………………………………………16

6.参考文献………………………………………………………………17

 

1.课程设计目的及要求:

1)目的:

全面熟悉、掌握面向对象程序设计基本知识,掌握面向对象程序设计中的几个重要概念和特性,即类、对象、继承、封装和多态,和面向对象程序设计基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础。

2)内容及要求:

程序功能简介

个人财政支出管理程序,完成收入,支出,盈余的记录和管理。

课程设计要求

(1)增加函数,完成财政账目的管理功能。

(2)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。

(3)可自行增加程序的功能。

(4)设计测试主程序,在主程序中完成测试。

课程设计说明

(1)SetGoal()函数账目中有问题,改正。

(2)可将整修记录装入一个字符串,在两条记录间用特殊符号隔开。

(3)查找相应记录时,可采用逐个字节比较的方法。

 

2.总体方案设计

2.1总体功能框图:

 

图2.1总体功能框图

2.2类的设计说明

在这个程序中的定义类为,classMangaer。

类是把各种不同类型的数据和对数据的操作组织在一起而形成的用户自定义的数据类型。

此程序中的构造成员函数:

Desposit,ViewTotal,SetGoal,ViewTotal,SetZero。

Deposit函数是记录函数,记录用户的收入,及对目录的更新。

SetGoal函数是制定函数,制定用户的目标金额。

ViewTotal函数用于查看用户的帐户。

SetZero函数的用途为将用户之前的账户内容,历史进行清零。

Withdram函数的用途是,记录用户的支出记录,并且进行保存。

 

2.3主要算法流程图

1)主函数流程图

 

 

 

图2.3主函数流程图

 

2)收入模式流程图

 

图2.2收入模式流程图

注释:

mm是Manager,类的对象。

dAmt是收入数目

num是存入输入的数据

此段程序,进入收入模式,输入收入金额dAmt,判断dAmt的数据是否为正数,如果是就将dAmt重新赋值为dAmt+num。

否则进行重新输入。

 

3)支出函数流程图

 

图2.3支出模式流程图

注释:

mm是Manager,类的对象。

wAmt是收入数目

num是存入输入的数据

此段程序,进入支出模式,输入支出金额wAmt,判断wAmt的数据是否为正数,如果是就将wAmt重新赋值为wAmt+num。

 

 

3.程序清单及注释

#include

#include

#include

#include

#include

classManager//定义类Manager

{

private:

doubledAmt;//收入数目

charans;//存放键盘字符的ASCII码

doublenum;//存入输入的数据

doublewAmt;//支出数目

doublesetAmt;//制定目标

doublegAmt;//取目标金额

doublebalance;//收支金额

doublenewbalance;//与目标所差金额

public:

//声名我所有的函数

voidDeposit();//收入函数

voidWithdraw();//支出函数

voidViewTotal();//查看帐目

voidSetGoal();//制定目标

voidSetZero();//记录置零

};

classManagermain()//主函数

{

Managermm;//创建对象

charselect;

cprintf("======个人财政支出管理======");//显示标题

#ifdefMIN

cout<<"\n\n\n##########################调试模式#########################"<

#endif

cout<<"\n\n\t<1>收入模式"<进入收入模式

cout<<"\n\t<2>支出模式"<进入支出模式

cout<<"\n\t<3>查看帐目"<进入查看帐目模式

cout<<"\n\t<4>制定目标"<进入制定目标模式

cout<<"\n\t<5>记录置零"<记录置零

cout<<"\n\t<6>退出系统"<退出

cout<<"\n\t<0>帮助"<

cout<<"\n\n\t请输入你的选择:

";

cin>>select;

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'){

cout<

getch();

main();//回主函数

}else{

if(select=='6')

{exit

(1);}//退出

elsemain();//回主函数

}}}}}}

}

voidManager:

:

Deposit(){//在程序中记录收入数目的函数

mm1:

dAmt=0;

num=0;

doublea=0,c=0;

ifstreamget("Money.txt");//打开存贮数据文件

#ifdefDE1

cout<<"\n#########################打开文件money.txt读取数据#########################"<

#endif

get>>a>>num>>c;//取得存档文件中的三个数据

get.close();

cout<

cprintf("**************************收入**************************");

cout<<"\n\n\t请输入收入金额:

$";

cin>>dAmt;

//检查输入的数据是否为错误的数据或是零,然后继续

if(dAmt<=0){//如果数据小于等于零

cout<<"\n\n\n\n\n"<

cprintf("!

!

!

!

!

!

!

!

!

!

错误的数据!

!

!

!

!

!

!

!

!

!

..");

getch();

main();

}else{

cout<<"\n\n\t数据输入<"<."<

cout<<"\n\t确认你输入的数据:

";

cin>>ans;

if(ans=='y'){

dAmt=dAmt+num;//把新数据加到原有数据上

ofstreamsave("Money.txt");

#ifdefDE2

cout<<"\n#########################打开文件money.txt,保存数据#########################"<

#endif

save<

save.close();

cout<<"\n\n\n\n\n"<

cprintf("你的收入数据成功输入...");

cout<<"\n\t继续输入收入金额:

";

cin>>ans;

if(ans=='y')gotomm1;//继续输入数据

else

{cout<

main();}//回主函数

getch();

cout<

main();//回主函数

}

else{//中止输入数据

main();//回主函数

}

main();//回主函数

}

}

voidManager:

:

Withdraw(){//在程序中记录支出数目的函数

mm2:

wAmt=0;

num=0;

doublea=0,b=0;

ifstreamget("Money.txt");//打开存贮数据文件

#ifdefWI1

cout<<"\n#########################打开文件money.txt,读取数据#########################"<

#endif

get>>a>>b>>num;//取得存档文件中的三个数据

get.close();

cout<

cprintf("**************************支出**************************");

cout<<"\n\n\t请输入支出金额:

$";

cin>>wAmt;

if(wAmt<=0){//检查输入的数据是否为错误的数据或是零,然后继续

cout<<"\n\n\n\n\n"<

cprintf("!

!

!

!

!

!

!

!

!

!

错误的数据!

!

!

!

!

!

!

!

!

!

..");

getch();

main();

}else{

cout<<"\n\n\t数据输入<"<."<

cout<<"\n\t确认你输入的数据:

";

cin>>ans;

if(ans=='y'){

wAmt=wAmt+num;//把新数据加到原有数据上

ofstreamsave("Money.txt");

#ifdefWI2

cout<<"\n#########################打开文件money.txt,保存数据#########################"<

#endif

save<

save.close();

cout<<"\n\n\n\n\n"<

cprintf("你的支出数据成功输入...");

cout<<"\n\t继续输入支出金额:

";

cin>>ans;

if(ans=='y')gotomm2;//继续输入数据

else

{cout<

main();}//回主函数

getch();

cout<

main();

}

else{//中止输入数据

main();//回主函数

}

main();//回主函数

}

}

voidManager:

:

SetGoal(){//在程序中制定目标金额的函数

setAmt=0;

doubleb=0,c=0,temp=0;

cout<

cprintf("**************************制定目标**************************");

cout<<"\n\n\t制定目标金额:

";

cin>>setAmt;//保存新数据到文件中

ifstreamget("Money.txt");//打开存贮数据文件

get>>temp>>b>>c;//取得存档文件中的三个数据

get.close();

#ifdefSG

cout<<"\n#########################打开文件money.txt,保存数据#########################"<

#endif

ofstreamsave("Money.txt");

save<

save.close();

cout<<"\n\n\n\n\n"<

cprintf("你的目标金额已建立...");

getch();

cout<

main();

}

voidManager:

:

ViewTotal(){//查看帐目函数

dAmt=0;//收入数目

wAmt=0;//支出数目

gAmt=0;//取目标金额

balance=0;//收支金额

newbalance=0;//与目标所差金额

#ifdefVT

cout<<"\n#########################打开文件money.txt,读取数据#########################"<

#endif

ifstreamget("Money.txt");//打开存贮数据文件

get>>gAmt>>dAmt>>wAmt;//取得存档文件中的三个数据

get.close();

balance=dAmt-wAmt;//收入减去支出取得收支平衡数据

cout<

cprintf("**************************查看帐目**************************");

cout<<"\n\n"<

cprintf("收支总数");

cout<<""<

cprintf("=============");

cout<<"\n\n"<

cprintf("收入总金额支出总金额收支总金额");

cout<<"\n"<

cout<

newbalance=gAmt-balance;

cout<<"\n\n\n"<

cprintf("收支平衡");

cout<<""<

cprintf("=============");

cout<<"\n\n"<

cprintf("目标金额收支平衡金额相差金额");

cout<<"\n"<

cout<

getch();

cout<

main();//回到主函数

}

voidManager:

:

SetZero(){//记录置零函数

cout<<"\n\n\n\n你确定要将记录置零:

";

cin>>ans;//确认是否要将记录置零

if(ans=='y'){

dAmt=0;//先初始数据为零

wAmt=0;

setAmt=0;

#ifdefSZ

cout<<"\n#########################打开文件money.txt,保存数据#########################"<

#endif

ofstreamsave("Money.txt");//打开存放数据的文件并将收入数据置零

save<

save.close();

cout<

main();}//回主函数

else

{cout<

main();}//回主函数

}

 

4.运行结果与分析

1)登陆界面

图5.1登陆界面截屏

2)收入模式

图5.2收入模式截屏

3)支出模式

图5.3支出模式截屏

4)查看账目

图5.4查看账目截屏

5)记录置零

图5.5记录置零截屏

6)退出系统

.图5.6退出系统截屏

5.课程设计总结

面向对象程序课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

在如今高度计算机化的社会下,电脑编程在计算机领域已尤为重要,扮演着一个不可或缺与替代的角色。

经过一周的面向对象程序课程设计,我不但实践了课本的知识,还制作了自己的小程序,更重要的是自己对面向对象程序设计有了更深入的了解。

在实践中,深刻体会到只有经过调试程序,我们才能掌握正确的语法知识及把解决问题的方法用程序语言来表达。

在设计程序的过程中不仅使我掌握了面向对象程序设计基本技能,同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题和解决问题的能力。

想起这次课程设计的这些日子,至今我仍感慨颇多。

以前上课时学的都是一些最基本的东西,觉得很枯燥无味。

但当自己能把所学的知识转换为有用的东西时,心中却不知何时有了一种莫名的动力,在电脑前面一坐就是好几个小时。

或许这就是有压力才有动力吧!

在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。

这一周的课程设计,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正掌握好所学知识,才能够实现理论到使用的升华!

这次课程设计过程中遇到问题,可以说是数不胜数。

此外,在设计的过程中发现了自己对以前所学过的知识理解得不够透彻、掌握得不够牢固的不足之处。

好的学习方法在学习中很多时候都起着至关重要的作用!

尤其是在这次课程设计过程中,深深地体会到,善于总结是学习过程中不可缺少的重要的一个环节。

每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的调试和运行状况,随时总结,找到自己的错误与不足之处,这样所编写的程序才能逐步提高。

就如生活那样,汗水预示着结果也见证着收获。

直到实际动手做,我才真正领略到“一份耕耘,一份收获。

”这一句话的真正含义。

这次的面向对象程序设计,对我们而言,知识上的收获重要,但是在一个团队间的团结合作的幕幕更让我们记忆终生。

挫折是一份财富,经历是一份拥有。

虽然这些日子很短暂但我相信这次实际操作必会成为我人生路上的一段美好的回忆!

最后我想对给过我帮助的所有同学和各位指导老师表示忠心的感谢!

参考文献

李爱华.面向对象程序设计(C++语言).北京:

清华大学出版社,2010

谭浩强.C++面向对象程序设计.北京:

清华大学出版社,2006

钱能.C++程序设计教程.第二版.北京:

清华大学出版社,2005

陈志泊.面向对象程序设计语言——C++.第二版.北京:

人民邮电出版社,2007

朱立华,朱建,俞琼.面向对象程序设计语言——C++.北京:

人民邮电出版社,2008

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1