毕业设计(论文)-家庭记账软件的设计与开发.doc_第1页
毕业设计(论文)-家庭记账软件的设计与开发.doc_第2页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宁波职业技术学院标题:毕业设计(论文)封面修改状态:01教育质量管理体系质量记录编号:nzqms-qr-2014-xx生效日期:2007.9.1家庭记账软件的设计与开发系(分院): 电子信息工程系 专业班 级: 计算机3081 学生姓名: 学 号: 指导教师: 二一一年 四 月 一 日宁波职业技术学院标题:毕业论文正文或毕业设计方案(作品)修改状态:01教育质量管理体系质量记录编号:nzqms-qr-2014-26生效日期:2007.9.1摘 要随着信息技术在生活各个领域上越来越深入而广泛的应用,人们每天会面对大量的数据,比如电话号码,存折卡号,qq帐号,和各种密码,以及每天的收入支出等。所以就会产生针对各种信息记录的软件,像记账软件就是其中的一种。记账软件又针对用户的不同分为家庭记账,企业记账等等。本文将介绍针对家庭的记账软件的功能分析及可行性分析。在总体设计里会有部分的代码。这个家庭记账系统界面友好,操作简单,比较实用,能够满足大部分家庭的记账工作。关键词: 家庭记账软件、信息技术、.net编程毕业设计(论文)目 录第一章前言1第二章 绪论22.1开发工具的介绍22.2开发语言的介绍22.2.1定义32.2.2c#从java继承而来的特点32.2.3c#从c和c+继承的特点42.2.4c#独有的特点52.2.5基本的数据类型5第三章 可行性分析8第四章 系统整体设计与实现94.1系统主页面及数据库设计94.1.1系统主页面预览94.1.2 数据库设计124.2具体功能的实现134.2.1登陆页面的实现134.2.2 收支数据新增,修改删除的实现164.2.3图形报表的功能实现174.2.4导出功能的实现18结束语20致谢21主要参考文献22第一章 前言随着家庭的开支不断变化,家庭的账户也不断的变化,面对每天枯燥乏味让人头疼的数据,如何有效的进行整理,并针对这些数据找到最佳的理财方式,是每个家庭最希望的。本系统主要用于家庭的记账,总体任务是实现家庭账目的有序化,其主要任务是用计算机对家庭日常的开支数据进行增加,修改和删除。对开支的分类支持增加,修改和删除,并能统计相应时间内的收入支出情况。针对这些要求设计了家庭记账软件。本软件主要包括账目的维护、类目的维护和统计三部分。其功能主要有:1、有关账目信息的输入,查询,修改删除等2、类目的操作,包括查询类目,增加,删除等。3、整个账目信息的统计。家庭记账软件讲采用c#作为编程语言,以微软的.net为环境,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成令用户满意的软件。第二章 绪论2.1开发工具的介绍visual studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。 visual studio 2008 包括各种增强功能,例如可视化设计器(使用 .net framework 3.5 加速开发)、对 web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。visual studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 ajax 的 web 应用程序。 开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 asp net 应用程序服务和 microsoft 平台。 visual studio 是微软公司推出的开发环境。是目前最流行的 windows 平台应用程序开发环境。目前已正式发布的是 9.0 版本,也就是 visual studio 2008,而在2008年12月份,一个振奋 人心的信息传来:微软公布了下一代开发工具和平台“visual studio team system 2010”以及.net framework 4.0的相关信息,并透露他们将在2009年底或者2010年正式发布。2.2开发语言的介绍简介c sharp(又被简称为c#)是微软公司在二ooo年六月发布的一种新的编程语言,并定于在微软职业开发者论坛(pdc)上登台亮相.c#是微软公司研究员anders hejlsberg的最新成果.c#看起来与java有着惊人的相似;它包括了诸如单一继承,界面,与java几乎同样的语法,和编译成中间代码再运行的过程.但是c#与java有着明显的不同,它借鉴了delphi的一个特点,与com(组件对象模型)是直接集成的,而且它是微软公司.net windows网络框架的主角。 在本文中,我将考察创建一种新计算机语言的一般动机,并将特别指明是什么原因导致了c#的出现.然后我将介绍c#和它与java,c,c+的相似之处.其次我将讨论一些存在于java和c#之间的高层次的,和基础的差别.我将以衡量在用多种语言开发大型应用程序的时候所需的知识(或者对这种知识的缺乏程度)来结束本文,而这正是.net和c#的一个主要战略.目前,c#和.net还只能以c#语言规则,以及windows 2000的一个d预览版本,还有msdn上迅速增多的文档集子的形式获得(还没有最终定型)。 2.2.1定义微软c#语言定义主要是从c和c+继承而来的,而且语言中的许多元素也反映了这一点。c#在设计者从c+继承的可选选项方面比java要广泛一些(比如说structs),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮java、c#还需要进化成一种开发者能够接受和采用的语言。而微软当前为它的这种新语言大造声势也是值得注意的。目前大家的反应是:“这是对java的反击” 。 c#更象java一些,虽然微软在这个问题上保持沉默。这也是意料中的事情,我觉得,因为java近来很成功而使用java的公司都报告说它们在生产效率上比c+获得了提高。 java所带来的巨大影响和大家对它的广泛接受已经由工作于这种语言和平台之上的程序员数量明显的说明了(估计世界范围内共有两百五十万程序员使用java)。由这种语言写成的应用程序的数量是令人惊讶的并已经渗透了每一个级别的计算,包括无线计算和移动电话(比如日本发明的java电话)。c#能够在用户领域获得这样的礼遇吗?我们必须等待并观望,就象已经由ssi公司的ceo和主席kalpathi s. suresh指出来的那样:我发现所有这些都是渐进的。如果c#不存在,我们总能回到java或c和c+。这些都不完全是新技术,它们在更大的意义上来说只是大公司制造的市场噱头。我们必须给他们时间安顿下来看看这些是不是真的对it工业有什么影响。 2.2.2c#从java继承而来的特点类:在c#中类的申明与java很相似.这是合理的因为经验告诉我们java模型工作得很好.c#的关键字import已经被替换成using,它起到了同样的作用.一个类开始执行的起点是静态main()方法.下面的hello world程序展示了程序基本结构形式: using system; class hello static void main() console.writeline(hello, world); console.readline(); 在这个例子中,system这个名字指向一个包括了基本c#实用类集合的命名空间(namespace).这个命名空间包括了console类,它在这个例子中被用来输出一个字符串.类可以是抽象的和不可继承的:一个被申明成abstract的类不能被实例化;它只能被用做一个基类.c#关键字lock就象java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类.界面:就象在java中一样,一个界面是一组方法集合的抽象定义.当一个类或结构体实现一个界面的时候,它必须实现这个界面中定义的所有方法.一个单一的类可以实现几个界面.也许以后会出现一些微妙的差别,但是这个特点看起来与java相比没有变化.布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔常量true和false是c#中的关键字.错误处理:如java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由底层.net框架进行自动内存垃圾回收. 2.2.3c#从c和c+继承的特点编译:程序直接编译成标准的二进制可执行形式.如果前面的hello world程序被保存成一个文本文件并被命名为hello.cs,它将被编译成命名hello.exe的可执行程序. 结构体:一个c#的结构体与c+的结构体是相似的,因为它能够包含数据声明和方法.但是,不象c+,c#结构体与类是不同的而且不支持继承.但是,与java相同的是,一个结构体可以实现界面. 预编译:c#中存在预编译指令支持条件编译,警告,错误报告和编译行控制.可用的预编译指令有: #define #undef #if #elif #else #endif #warning #error #line 没有了#include 伪指令.你无法再用#define 语句对符号赋值,所以就不存在源代码替换的概念-这些符号只能用在#if和#elif伪指令里.在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名. 操作符重载:一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被重载的单目操作符是: + - ! + - true false 能够被重载的二元运算符是: + - * / % & | = != = 0) messagebox.show(修改成功); this.consumetableadapter.fill(this.familyfinacedataset.consume); else messagebox.show(修改失败); conn.close();数据删除的部分代码if (messagebox.show(确定要删除吗, 请确认, messageboxbuttons.okcancel) = dialogresult.ok) sqlconnection conn = new sqlconnection(data source=.;initial catalog=familyfinace;user id=sa;password=123;connect timeout=30); string sql = string.format(delete from consume where id=0, txtliushui.text); sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); int rowcount = cmd.executenonquery(); if (rowcount 0) messagebox.show(删除成功); this.consumetableadapter.fill(this.familyfinacedataset.consume); else messagebox.show(删除失败); conn.close(); 4.2.3图形报表的功能实现我在这里使用了chartlet插件,部分代码如下:chartlet1.charttitle.text = 理财数据统计分析; chartlet1.appearancestyle = fang.chartlet.appearancestyles.pie_3d_breeze_nocrystal_noglow_noborder; chartlet1.background.paper = color.fromargb(0, 0, 0, 0); sqlconnection conn = new sqlconnection(data source=.;initial catalog=familyfinace;user id=sa;password=123;connect timeout=30); string sql = select type,sum(consumemoney) from dbo.consume group by type; sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); sqldataadapter da = new sqldataadapter(sql, conn); dataset ds = new dataset(); da.fill(ds, consume); chartlet1.bindchartdata(ds); /chartlet1.bindchartdata(ds.tables0); conn.close();4.2.4导出功能的实现导出为excel文件的部分代码如下savefiledialog savefiledialog = new savefiledialog(); savefiledialog.filter = 保存为微软excel2003格?式?|*.xls; savefiledialog.filterindex = 0; savefiledialog.restoredirectory = true; savefiledialog.createprompt = true; savefiledialog.title = 另存为; savefiledialog.showdialog(); stream mystream; mystream = savefiledialog.openfile(); streamwriter sw = new streamwriter(mystream, system.text.encoding.getencoding(-0); string str = ; try /写标题 for (int i = 0; i 0) str += t; str += dgvhome.columnsi.headertext; sw.writeline(str); /写内容 for (int j = 0; j dgvhome.rows.count; j+) string tempstr = ; for (int k = 0; k 0) tempstr += t; tempstr += dgvhome.rowsj.cellsk.value.tostring(); sw.writeline(tempstr); sw.close(); mystream.close(); catch (exception ee) messagebox.show(ee.tostring(); finally sw.close(); mystream.close(); 结束语家庭理财系统的excel导出和图表统计,能方便的满足大部分用户的需求。在本系统的开发过程中,由于本人是初次开发系统,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对理财的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管本系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本系统所必需的。相信本家庭理财系统是一套家庭在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对c#的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论