您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 湖南科技大学智能终端系统开发及应用课程设计报告
智能终端系统及应用开发课程设计报告题目:个人理财小助手学号:班级:姓名:指导老师:一、题目:个人理财小助手(1)目的与要求1.掌握SQLite数据库及其使用。2.熟练掌握布局及常用控件Button、ListView、EditText、TextView等。(2)功能需求个人理财小助手主要为用户提供5个主要模块,包括:登录模块、收入管理模块、支出管理模块、便签管理模块、系统设置模块。对日常的开支进行随时记录,存储到本机的SQLite数据库。1.使用SQLite数据库实现增加、删除、修改;2.使用ListView进行显示;3.增加私密性,验证成功才能进行收支管理;4.能提供简单的收支统计(按月、按周)功能;5.提供数据管理,能对数据进行导出(如将收入/支出明细导出为txt或Excel文档)。二、工作日志12月15日(1)搭建android开发环境。从下载版本6.0以上的JDK并安装。配置环境变量:安装JDK以后,若需要在cmd下使用Java命令和编译、运行程序,可以配置环境变量:新建环境变量JAVA_HOME,右击“我的电脑”—“属性”—“高级”—“环境变量”。从下载adt-bundle-windows-x86-20130917,解压缩即可,进入eclipse文件夹,运行eclipse.exe。(2)创建HelloWorld程序,并在模拟器上运行,如下图所示。(3)确定开发题目——个人理财小助手。个人理财小助手主要为用户提供5个主要模块,包括:登录模块、收入管理模块、支出管理模块、便签管理模块、系统设置模块。对日常的开支进行随时记录,存储到本机的SQLite数据库。开始设计第一个布局——登录布局,上网查找所需图片。12月16日(1)改进了昨天做的登录界面,在之前的基础上加入一张图片和一个按钮,如下图所示。先将网上下载的图片复制到res/drawable下,再利用ImageView添加图片。登录界面整体采用相对布局,TextView和EditText之间使用线性布局。(2)设计了菜单界面的布局。菜单界面整体采用相对布局,界面上有8个按钮,每一行的按钮采用线性布局。赋给每个线性布局一个id,再用android:layout_below=”@+id/线性布局id将这3个线性布局分开。将下载好的图片利用android:background=”@drawable/图片名字”作为按钮的背景。利用android:background=”#e7e7e7e7”改变背景颜色。(3)设计了保存密码界面的布局,布局与登录界面的布局差不多,但背景颜色为android:background=”#e7e7e7e7”,如下图所示。(4)设计了新增收入界面和新增支出界面的布局,界面整体使用相对布局,界面上有5个TextView和5个EditText以及2个按钮,每行中的TextView和EditText采用线性布局,赋给每个线性布局id,用android:layout_below=”@+id/线性布局id分开每个线性布局。整体背景色为android:background=”#e7e7e7e7”,EditText背景色为android:background=”ffffff”。如下图所示。12月17日(1)用ListView完成我的收入和我的支出界面的布局设计。我的收入和我的支出界面相同,整体采用线性布局,在线性布局中添加ListView控件。ListView是一个列表视图,由很多Item(条目)组成,每个Item的布局都是一样的。创建好ListView界面之后接下来需要创建ListView的条目,在res目录下创建一个item.xml文件,指定Item的布局。Item的布局整体采用相对布局,其上有五个TextView,第一个TextView内容为“我的收入”;后四个TextView使用线性布局,第二个TextView内容为序号,权重weight设为1;第三个TextView内容为收入的名字,权重weight设为2;第四个TextView内容为金额,权重weight设为3;第五个TextView内容为日期,权重weight设为3。如下图所示。(2)完成新增便签界面的布局设计。界面整体采用相对布局,布局中有两个TextView,一个EditText和两个按钮,第二个TextView内容为“请输入便签,最多输入200字”,颜色用”#900000”设为红色,与EditText组成线性布局,将线性布局的一个属性android:orientation设为vertical(垂直),使其垂直显示。EditText颜色设为白色,textSize为150dp。整体背景依然设为”#e7e7e7”。如下图所示。12月18日(1)完成“设置密码”按钮的代码编写,使其从FinancialMenagerActivity跳转到PasswordActivity。在布局文件activity_financial_manager_main.xml中为按钮“设置密码”设置onClick属性指定点击方法名android:onClick=click。(2)编写“保存”按钮和“取消”按钮的代码。创建一个内部类实现OnClickListener接口并重写onClick()方法,在方法中写入点击事件的逻辑。这里比较重要的一点,要为按钮设置点击事件前要先获取到该控件的引用,需要在布局文件password.xml中为按钮“保存”设置id,android:id=@+id/zc_button1,在代码中使用findViewById(R.id.zc_button1)方法获得该控件的View对象,最后通过强制类型转换得到该控件。12月21日(4)修改代码过程中,不知道什么原因导致布局也无法显示。再次修改时,不小心activity.java文件,所幸布局文件还能用。重新建立工程,重新命名工程为FM,applicationname为理财猫,将布局文件和图片复制进去。并且出于有Back建的考虑,我将保存密码布局、新增收入布局、新增支出布局和新增便签布局中的“取消”按钮全部删除,以减少工作量。(5)编写“设置密码”按钮的代码,以实现登录界面和保存密码界面的跳转。(6)编写“保存”按钮的代码,实现将密码保存到data/data/hnust.zsz.fm/files/password.txt的功能。(7)完成“登录”按钮的代码编写,以实现从登录界面跳转到菜单界面。如果密码输入错误,则会弹出“密码错误”;密码正确才能登录。在编写按钮的代码过程中,我在布局文件activity_fm.xml布局文件中为button1定义了onClick属性,它的作用就是为按钮设置点击事件,以onClick属性的值为方法名创建了一个方法,在参数中传人View对象。我还使用直接创建OnClickListener的匿名内部类的方法实现按钮。12月22日(1)编写菜单界面上7个按钮的代码,以实现从菜单跳转到新增收入、收入、便签等各个界面。在主类中实现OnClickListener借口,然后重写onClick()方法,并通过switch语句判断是哪个按钮被点击,然后执行相应操作,部分代码如下:其中启动下一个activity时,我使用的是显示意图。显示意图,即在通过Intent启动Activity时,需要明确指定激活组件的名称。(2)创建一个新增收入的数据库。创建数据库属于数据操作,因此需要在hnust.zsz.fm的包下创建一个名为dao的包。并在该包下定义一个MyHelper类继承自SQLiteOpenHelper。(3)创建Accoutn类。在操作数据库是将数据存放至一个JavaBean对象中操作起来会比较方便。因此,需要在hnust.zsz.fm包下创建一个bean包用于存放JavaBean类,然后在hnust.zsz.fm.bean包下定义一个类Account。12月23日(1)完成新增收入模块的编写,实现了能将新增收入保存到数据库的功能。编写数据逻辑操作类,在hnust.zsz.fm.dao包下创建一个AccountDao类用于操作数据,该类创建了对数据进行增、删、改、查操作的方法。(2)完成编写界面与数据库进行交互的代码,用于实现将数据库中的数据以ListView的形式展示在界面上。ListView的setOnItemClicListener():该方法用于监听Item的点击事件,在使用该方法时需要传入一个OnItemClickListener的实现类对象,并且需要实现onItemClick方法。当点击ListView的Item时就会触发Item的点击事件然后会回调onItemClick()方法。Adapter的notifyDataChange()方法:该方法是用于重新适配数据,当需要适配的数据内容发生变化时,可以调用此方法重新适配数据,会重新执行BaseAdapter中gerView()的方法。(3)编写了与新增收入类似的新增支出模块的代码,但点击保存按钮时,并没有保存数据,原因还未找到。12月24日(1)完成了新增支出模块的编写,实现了能将新增支出保存到数据库的功能,并能对保存的新增支出进行查询、删除操作。(2)我原先的登录时,比对的是代码中的固定密码,而且设置的密码是以文件的形式保存的,但不能调出比对。我将它改成将密码保存在数据库中,并能调出比对。我在主要的数据库中使用SQLiteDatabase的insert()、update()、delete()、query()方法实现增、删、改、查的功能,而在登录模块的数据库中我是用exeSQL()和rawQuety()方法来实现增、删、改、查的功能。(3)完成了便签模块中将便签保存到数据库中的代码编写。(4)补了一个数据管理的布局。布局整体采用线性布局,使用了ListView控件。三、遇到的问题及解决方法(1)ThemethodsetOnClickListener(View.OnClickListener)inthetypeViewisnotapplicableforthearguments(Menu),原因是publicclassMenuextendsActivity没有implementsOnClickListener,加上即可。(2)Multiplemarkersatthisline-Thevalueofthelocalvariablebutton1isnotused-Syntaxerror,insert}tocompleteMethodBody一个花括号}位置放错了,导致publicvoidclick1包含在protectedvoidonCreate中,只需将}放在正确位置即可。(3)在新增收入、收入、便签等界面按Back键后,直接跳转到登录界面,应跳转到上一界面才对。原因是我在每个case中break前加了finish(),删去即可。(4)运行app后,出现invalidresourcedirectoryname,在res文件下生成一个crunch文件导致运行出错。原因可能是我用两个android版本去编程,将这个文件删除即可。(5)设计菜单界面布局时,添加图片为按钮的背景后,图片相互重叠。需要去挑战图片的height和width,我将二者设为75dp就解决了这个问题。还出现了按钮有的能单独点击,有的不能的问题。这是由于线性布局互相重叠,只需给每个线性布局一个id,再利用android:layout_below将布局分开。四、经验总结首先,编程过程中一定要非常认真仔细,任何一点差错都会使程序出错。比如一符号打成中文字符也会报错,再比如一个字母打错也不行。其次,我从这次课程设计中学到了很多。熟悉了相对布局和线性布局,掌握了Intent显示意图和隐式意图的使用。进一步理解了activity的生命
本文标题:湖南科技大学智能终端系统开发及应用课程设计报告
链接地址:https://www.777doc.com/doc-2247222 .html