c++课程设计个人记账软件.doc
《c++课程设计个人记账软件.doc》由会员分享,可在线阅读,更多相关《c++课程设计个人记账软件.doc(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec+课程设计个人记账软件内蒙古科技大学内蒙古科技大学 本科生课程设计论文 课题:c+课程设计 -个人记账软件的设计姓名:学号:专业:通信工程班级:指导老师:目录目录2摘要与引言3第一章 c+简介51.1编辑本段组成部分51.2编辑本段代码性能61.3编辑本段编程技巧71.4编辑本段编程开发8第二章 需求分析9第三章 设计分析113.1系统的基本功能113.2系统流程图
2、12第四章 运行及测试结果17第五章 总结23附录25摘要与引言1.1摘要计主要解决个人日常生活中收入与支出等进行记录的程序设计.在课程设计中,系统开发平台为Windows xp,程序设计开发环境采用Microsoft visual studio 2005,账目库采用Microsoft Access 2003,程序运行平台为Windows 98/2000/XP。对于收入支出进行记录,在程序设计中,采用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中为个人解决简单的实际问题。1.2 程序设计:账目库;SQL;c+;个人理财1.3背景 理财的目
3、的,在追求不虞遗乏的丰富人生,是以经济学为精神、会计学为基础、财务学为手段的一门实用科学。 为什么要理财?每个人都希望过幸福美满的生活,但是你首先应自问有没有这样的能力?房子、车子、股票、珠宝 /系统生成代码,略去 /系统生成代码,略去,在某些人眼里是财富的象征,生活品质的保证,是他们努力追求的价值。 也有许多所谓的有钱人,宁愿选择平平淡淡的生活,辛勤工作、努力储蓄,他们不认为华丽的外表相可以代表高水准的生活品质。不过,显然大多数人一生中都是无法满足的。 心理学家马斯洛的需求理论告诉我们,人类的需求是有层级之分的:在安全无虞的前提下追求温饱,当基本生活条件获得满足之后,则需求得到社会的尊重;并
4、进一步追求人生的最终目标自我实现。 而要依层级满足这些需求,必须建立在不虞遗乏的财务条件上。因此,你必须认识理财的重要,订定一套适合自己的理财计划,来达成自己的生活目标。 我们知道,追求效益极大化是经济学的基本精神,即说以最小的代价,获得最大的收益。但这并非表示我们吝于付出,因为资源是有限的,稀少的资源,迫使我们必须做选择,而理财行为就是聪明的选择。我们付出代价最少、收益最大的一条路,让有限的资源得以发挥最大的效用。 对于我们能拥有的、以及想要争取的,透过会计学对财富流量及存量的记录,客观地显现在资产负债表以及损益表上,可以帮助我们看清自己的财务状况,进而规划出符合我们的需求、能力可及的财务目
5、标。 对于资金的筹措及运用,财务学可以提供我们最佳的策略及方法,以最少的成本取得资源,并做好有效的分配,因应景气循环及环境的变化,配合目标定出自己的资产组合。11.4理财软件的目的 俗话说“你不理财,财不理你”,只有通过合理的理财,才能够有效的管理你的个人资产的合理运用。个人理财软件不仅可以帮你记帐,更多的是可以实时掌握你的收入与支出,掌握资金的变动情况,同时还可以统计出资金的主要流向,从而更合理的分配资金。本课题将达到以下几个目的:(1)清晰简便明了的操作,减少不必要的精力消耗。传统的个人理财软件中,有大量的冗余功能,使用户的大部分精力将耗费在了解复杂的界面与繁琐的操作上,而作为缺少个人理财
6、所应具有的简便明了的特点。通过此个人理财软件,用户可以将绝大部分精力放在对账目的研究上,而不是无意义的操作上。(2)提供更好的服务。个人理财软件可以较迅速、有效地收集各种个人财务信息,用户可以直接从系统中获得自己所需的个人财务信息,并根据相关的信息做出决策和相应的行动方案。(3)降低成本。个人理财软件没有繁琐的操作,简便易懂的操作使用户减少了上手时间,降低了使用成本。第一章 C+简介1.1编辑本段组成部分根据Effective C+第三版第一条款的描述,现在C+由以下四个“子语言”组成: 1、C子语言。C+支持C语言的几乎全部功能,主要是c89的部分,在语法上与C语言仅有极微妙的差别(如括号表
7、达式的左右值性,具体请参考C+标准文献)。 2、面向对象的C+语言。C+语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C+语言也开发出了支持面向对象功能的版本。 3、泛型编程语言。C+强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。 4、STL(C+标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C+程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。 此外,包含在TR1等中的C+0x将实现的新功能在开发和测试
8、中。 编辑本段语言特点 C+设计成静态类型、和C同样高效且可移植的多用途程序设计语言。 C+设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。 C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。 C+设计成尽可能与C兼容,籍此提供一个从C到C+的平滑过渡。 C+避免平台限定或没有普遍用途的特性。 C+不使用会带来额外开销的特性。 C+设计成无需复杂的程序设计环境。 出于保证语言的简洁和运行高效等方面的考虑,C+的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。关于此类话题,Bjarne Strou
9、strup的C+语言的设计和演化(1994)里做了详尽的陈述。 优点C+在一定程度上可以和C语言很好的结合,甚至目前大多数C语言程序是在C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。 C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括MFC、QT、wxWidgets就是使用的C+。 争议C+由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C+的编译系统受到C+的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。 由于本身的复杂性,复杂的C+程序的正确性相当难于保证。
10、也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C+被广泛使用和成功。 1.2编辑本段代码性能人们一般认为,使用Java或C#的开发成本比C+低。但是,如果你能够充分分析C+和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C+的优势将会越来越明显。造成这种差别的就是C+的软件工程性。 美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C+(最初这
11、种语言被称作“C with Classes”)。一开始C+是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通常称作ANSI/ISOC+。 1998年是C+标准委员会成立的第一年,以后每
12、5年视实际需要更新一次标准。C+0x最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C+0x已经毫无疑义地成为正式国际标准。先前被临时命名为C+0x的新标准将被称为C+ 2011。C+ 2011将取代现行的C+标准ISO/IEC 14882,它公开于1998年并于2003年更新,通称C+98以及C+03。国际标准化组织于2011年9月1日出版发布ISO/IEC 14882:2011,名称是:Information technology - Programming languages - C+ Edition: 3。 C+语言发展大概可以分为三个阶段:第一阶段从80年代到1
13、995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额; 第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击; 第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。 1.3编辑本段编
14、程技巧运算符new和delete提供了存储的动态内存分配和释放功能,它的作用相当于C语言的函数malloc()和free(),但是性能更为优越。使用new较之使用malloc()有以下的几个优点: (1)new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。 (2)自动地返回正确的指针类型,不用进行强制指针类型转换。 (3)可以用new对分配的对象进行初始化。 对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。例如宏:#define abs(a)(a)0?(-a):(a),当使用abs(
15、i+)时,这个宏就会出错。 所以在C+中应该使用inline内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。 使用内联函数只须把inline关键字放在函数返回类型的前面。例如: inline int Add(int a,int b);/声明Add()为内联函数 这样编译器在遇到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。 使用函数重载。在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C+中,函数名相同而参数账目类型不同的两个函数被解释为重载。例如: void PutHz(char* str);/在当前位置输出汉字 void Put
16、Hz(int x,?int y,?char * str);/在x,y处输入数字 使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。同时必须注意,参数账目类型相同,但是函数返回类型不同的两个函数不能重载。 用引用(reference)代替指针进行参数传递。通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C+的代码中都大量地使用了缺省参数。 需要说明的是,所有的缺省参数必须出现在不缺省
17、参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。否则当你省略其中一个参数的时候,编译器无法知道你是自定义了这个参数还是利用了缺省参数而定义了非缺省的参数。 1.4编辑本段编程开发开发方式 :在unix世界有大量的程序员是传统的非IDE的方式进行软件开发。一般是如下组合: 1.编译器:gcc,clang等 2.编辑器:一般是vim/emacs 3.make:gnu make 或者bsd 的pmake等,功能与用法基本一样 4.版本管理:cvs,svn,git等 5.代码阅读:cscope,ctags,lxr等 集成开发环境(IDE) 第二章 需求分析内蒙古科技大学课程设计任务书
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 个人 记账 软件
限制150内