《我c课程设计个人记账软件》由会员分享,可在线阅读,更多相关《我c课程设计个人记账软件(32页珍藏版)》请在金锄头文库上搜索。
1、内蒙古科技大学c+课程设计内蒙古科技大学本科生课程设计论文课题:c+课程设计 -个人记账软件的设计 姓名: 学号: 专业: 班级: 指导老师:孙涛目录摘要与引言21.1摘要21.2 程序设计:31.3背景31.4理财软件的目的3第一章 C+简介41.1编辑本段组成部分41.2编辑本段代码性能51.3编辑本段编程技巧61.4编辑本段编程开发7第二章 需求分析7第三章 设计分析93.1系统的基本功能93.2系统流程图10第四章 运行及测试结果154.1、登录主界面 :154.3修改账目信息:174.4查询、修改账目:184.5统计账目:19第五章 总结20附录21摘要与引言1.1摘要计主要解决个人
2、日常生活中收入与支出等进行记录的程序设计.在课程设计中,系统开发平台为Windows xp,程序设计开发环境采用Microsoft visual studio 2005/Vc6.0,账目库采用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语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C+标准文献)。 2、面向对象的C+语言。C+语言
7、原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C+语言也开发出了支持面向对象功能的版本。 3、泛型编程语言。C+强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。 4、STL(C+标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C+程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。 此外,包含在TR1等中的C+0x将实现的新功能在开发和测试中。 编辑本段语言特点 C+设计成静态类型、和C同样高效且可移植的多用途程序
8、设计语言。 C+设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。 C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。 C+设计成尽可能与C兼容,籍此提供一个从C到C+的平滑过渡。 C+避免平台限定或没有普遍用途的特性。 C+不使用会带来额外开销的特性。 C+设计成无需复杂的程序设计环境。 出于保证语言的简洁和运行高效等方面的考虑,C+的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。关于此类话题,Bjarne Stroustrup的C+语言的设计和演化(1994)里做了详尽的陈述。 优点C+在一
9、定程度上可以和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+(最初这种语言被称作“C with Classes”)。一开始C+是作为C语言的增强
11、版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通常称作ANSI/ISOC+。 1998年是C+标准委员会成立的第一年,以后每5年视实际需要更新一次标准。C+0x最终国际投票已于2011年8月10日结束
12、,并且所有国家都投出了赞成票,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年代到1995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接近C
13、语言的效率,在工业界使用的开发语言中占据了相当大份额; 第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击; 第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。 1.3编辑本段编程技巧运算符new和delete提供了存储的动态内存分配和释放功能,它的作用
14、相当于C语言的函数malloc()和free(),但是性能更为优越。使用new较之使用malloc()有以下的几个优点: (1)new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。 (2)自动地返回正确的指针类型,不用进行强制指针类型转换。 (3)可以用new对分配的对象进行初始化。 对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。例如宏:#define abs(a)(a)0?(-a):(a),当使用abs(i+)时,这个宏就会出错。 所以在C+中应该使用inline内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。 使用内联函数只须把inline关键字放在函数返回类型的前面。例如: inline int Add(int a,int b);/声明Add()为内联函数 这样编译器在遇到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。 使用函数重载。在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C+中,函数名相同而参数账目类型不同的两个函数被解释为重载。例如: void PutHz(char* str);/在当前位置输出汉字 void PutHz(int x,?int y,?cha