软件设计java毕业设计论文安卓app软件开发设计与实现爱记账.docx
- 文档编号:17058074
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:21
- 大小:178.29KB
软件设计java毕业设计论文安卓app软件开发设计与实现爱记账.docx
《软件设计java毕业设计论文安卓app软件开发设计与实现爱记账.docx》由会员分享,可在线阅读,更多相关《软件设计java毕业设计论文安卓app软件开发设计与实现爱记账.docx(21页珍藏版)》请在冰点文库上搜索。
软件设计java毕业设计论文安卓app软件开发设计与实现爱记账
第一部分设计任务
1.1 设计背景及目的
随着经济社会的高速发展,人们的生活水平也在飞速的提高,同时人们的收入和消费水平也得到了很大的提升,也从过去的单一输入和消费变成了今天的多元化收入和消费模式。
尤其是我们青年人,对现在新型消费有非常高的热情,但是这样给在高速发展的消费经济情况下的我们带来了一些意想不到的负面影响,比较突出的一点就是当前80、90后的一代年轻人只懂得消费和挣钱,不能很好的理财,这给我们的物质生活带来了不少的麻烦。
所以不同功能的个人理财系统便由此产生了,不论是PC版还是手持设备版都有。
在这几年中,飞速的发展,现在已经超过了过去看似很完美的塞班系统,成为全球最大的手机及手持设备系统之一。
Android操作系统凭借着自己开放的平台允许任何移动终端厂商加入到Android联盟中,从而使得越来越多的用户倾向于选择操作系统为Android的终端设备。
1.2设计和解决方法
在android系统应用如此火热的情况下,开发一款基于android系统的个人记账系统,不仅能很好的应用android系统的优势,可以在不同的小型手持设备上安装该软件。
同时,手持设备的便于携带性也大大提高了软件的使用价值,不仅可以随时随地记账,还能从另一方面解决人们不善于管理个人财务的习惯,帮助大家实现自主理财。
基于Android系统手机的个人记账系统,设计清新,使用简单,管理功能强,在当前的高速发展的社会经济条件下,为帮助我们这一代不会理财的年轻人轻松实现自主理财,设计这样一款个人记账系统是非常有意义和利用价值的。
根据个人理财实现的实际需求,本系统的设计解决方法如下:
1.设计语言与结构:
本系统选用当前主流的开语言Java语言作为开发语言,结合当前最为流行的移动开发技术,基于android系统下的软件开发技术,开发本系统,设计选在在android平台上实现可以很好的发挥该软件系统的用处。
2.功能解决:
本系统设计主要为帮助不会自主理财的人们能很容易的学会自主理财,通过软件中的各个功能,实现在电子系统上记录个人理财信息,提醒以及帮助用户实现自主理财。
3.性能解决:
对于一个系统不仅要考虑功能的实用性,还要考虑系统的性能可靠。
本系统通过使用oracle作为数据库存储数据。
oracle数据库是一款轻量级数据库,便于移植。
同时,配合android系统,可以设计一款清凉级的基于android系统应用软件。
1.3设计流程图
第二部分设计说明
2.1系统需求分析
本系统具有如下功能模块
1.系统管理模块:
收入信息和支出信息查询。
支出信息以表格的形式展现,输入要查询的时间段,就会显示该时间段的支出信息,收入信息查询跟支出信息查询类似。
2.基本信息管理模块:
对支出、收入信息进行管理。
3.收支统计模块:
对收支信息进行管理,可记录这时间段的收入和支出,同时可以计算出余额。
2.1.1 运行环境
1) 设备
具备Android系统的手机或者其他手持设备
2) 支持软件
(1)用户基础软件配置
Android1.6及其以上版本
相关软件工具:
(2)开发工具
IDE:
Eclipse+AndroidADT+androidSDK
平台:
WindowsXP
(3)测试环境
不同厂商以及不同android系统版本的智能手机
2.2用户的特点
本系统针对的用户为所有使用操作系统为Android的智能手机用户。
客户应具备基础的手机操作以及手机键盘打字基础。
2.3 测试案例
用例名:
系统记账
行为者:
用户
目的:
用户根据每天的收入和消费情况进行详细的记录,以便日后查看。
级别:
一级
过程描述:
a. 进入andorid系统菜单界面,点击爱记账图表进入系统;
b. 进入系统主界面后选择“记一笔”进入系统记账页面;
c. 选择记账类型,输入金额,选择好收入或者支出类型,同时选择好指定账户进行记录;d. 设置完毕,用户数据保存成功。
与其它用例的关联:
无
异常处理:
无
第三部分设计成果
设计成果:
主菜单主界面
点击记一笔进入该页面,该页面功能有类型选择
记录支出,收入、类型选择和时间!
记录支出数据记录收入数据
保存数据选择日期年月
本人在整个软件开发设计过程中主要是做记录的类型和日期这模块一块的功能,在这块模块的开发过程中,我查阅了大量有关这方面的资料。
这模块主要是记录人们在哪方面支出和收入的情况,还有某年某月某日支出和收入的情况!
方便人们记录和查询某天的支出情况。
具体如下图:
类型选择日期选择
产品特点:
爱记账的特点在于灵活,简洁,方便,易于操作。
爱记账能够清清楚楚的记录你每一天的消费情况,爱记账主要突出爱和记账二字。
爱:
是指网站的用户体验,在用户体验上要让网友用起来舒服,喜欢,只有这样他们才会爱;记账:
是帮助大家理财,让大家能够方便清晰地管理自己的财富。
程序代码:
R.drawable.baojianpin};
ListViewlv_result;
AccountAdapteradapter;
TextViewtv_all_date;
TextViewtv_income_result;
TextViewtv_pay_result;
TextViewtv_balance_result;
//菜单按键处理
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
//TODOAuto-generatedmethodstub
switch(item.getItemId()){
caseR.id.action_record:
record(null);
break;publicclassMainActivityextendsActivity{
AccountDateBaseHelpermDbHelper;
AccountDaoaccount;
publicstaticString[]indexLists={"吃饭","购物","学习用品","工资","其他"};
publicstaticint[]indexPicLists={R.drawable.lingshi,R.drawable.fushi,
R.drawable.xuezafei,R.drawable.gongzi,
caseR.id.action_search:
search(null);
break;
}
returnsuper.onOptionsItemSelected(item);
}
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//getActionBar().hide();
//
//getActionBar().setDisplayShowTitleEnabled(false);
//getActionBar().setDisplayUseLogoEnabled(false);
//getActionBar().setDisplayShowHomeEnabled(false);
//
mDbHelper=newAccountDateBaseHelper(this);
account=newAccountDao(mDbHelper.getDatabase());
lv_result=(ListView)findViewById(R.id.lv_result);
tv_all_date=(TextView)findViewById(R.id.tv_all_date);
tv_income_result=(TextView)findViewById(R.id.tv_income_result);
tv_pay_result=(TextView)findViewById(R.id.tv_pay_result);
tv_balance_result=(TextView)findViewById(R.id.tv_balance_result);
setTime();
refrashList(null);
//设置触摸事件
lv_result.setOnTouchListener(newOnTouchListener(){
@Override
publicbooleanonTouch(Viewarg0,MotionEventev){
//TODOAuto-generatedmethodstub
//判断是否点击在空的位置
switch(ev.getAction()){
caseMotionEvent.ACTION_MOVE:
//手指一定解除在屏幕上
caseMotionEvent.ACTION_DOWN:
//按下的时候
caseMotionEvent.ACTION_UP:
break;
}
intmotionPosition=lv_result.pointToPosition((int)ev.getX(),
(int)ev.getY());
if(motionPosition==lv_result.INVALID_POSITION){
Toast.makeText(MainActivity.this,"11",0).show();
}
returnfalse;
}
});
}
@SuppressLint("NewApi")
publicvoidsearch(Viewv){
DatePickerDialogdpd=newDatePickerDialog(MainActivity.this,
newOnDateSetListener(){
@Override
publicvoidonDateSet(DatePickerarg0,intarg1,intarg2,
intarg3){
//TODOAuto-generatedmethodstub
year=arg1;
month=arg2+1;
day=arg3;
//刷新界面
refrashList(null);
}
},year,month-1,1);
DatePickerdp=dpd.getDatePicker();
((LinearLayout)((ViewGroup)dp.getChildAt(0)).getChildAt(0))
.getChildAt
(2).setVisibility(View.GONE);
dpd.show();
}
publicvoidrefrashList(StringorderBy){
tv_all_date.setText(year+"年"+month+"月");
adapter=newAccountAdapter(account.getBeanList(AccountTable.COL_YEAR
+"=?
and"+AccountTable.COL_MONTH+"=?
",newString[]{
year+"",month+""},orderBy),this);
lv_result.setAdapter(adapter);
doubleincome=account.getIncomeAll();
tv_income_result.setText(income+"");
doublepay=account.getPayAll();
tv_pay_result.setText(pay+"");
doublebalance=income-pay;
tv_balance_result.setText(balance+"");
}
doublemoney;
intyear;
intday;
intmonth;
publicvoidsetTime(){
Calendarc=Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
year=c.get(Calendar.YEAR);
day=c.get(Calendar.DAY_OF_MONTH);
month=c.get(Calendar.MONTH)+1;
}
Buttonbtn_setTime;
Buttonbtn_setIndex;
EditTextet_input_money;
EditTextet_input_detail;
RadioGrouprg_type;
intindex;//消费类比
Builderbuilder;
publicvoidrecord(Viewv){
builder=newBuilder(this);
Viewview=LayoutInflater.from(this).inflate(R.layout.record_layout,
null);
et_input_money=(EditText)view.findViewById(R.id.et_input_money);
et_input_money.setTextColor(Color.RED);
btn_setTime=(Button)view.findViewById(R.id.btn_gettime);
//setTime();
btn_setTime.setText(year+"-"+month+"-"+day);
et_input_detail=(EditText)view.findViewById(R.id.et_input_detail);
rg_type=(RadioGroup)view.findViewById(R.id.rg_type);
rg_type.setOnCheckedChangeListener(newOnCheckedChangeListener(){
@Override
publicvoidonCheckedChanged(RadioGrouparg0,intarg1){
//TODOAuto-generatedmethodstub
if(arg1==R.id.rd_pay){
et_input_money.setTextColor(Color.RED);
}else{
et_input_money.setTextColor(Color.GREEN);
}
}
});
builder.setOnKeyListener(newOnKeyListener(){
@Override
publicbooleanonKey(DialogInterfacearg0,
intarg1,//keycode
KeyEventarg2){
//TODOAuto-generatedmethodstub
switch(arg1){
caseKeyEvent.KEYCODE_BACK:
arg0.dismiss();
break;
}
returnfalse;
}
});
btn_setIndex=(Button)view.findViewById(R.id.btn_setindex);
btn_setIndex.setText(indexLists[index]);
btn_setIndex.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
Builderbuilder=newBuilder(MainActivity.this);
builder.setItems(indexLists,newOnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
index=arg1;
btn_setIndex.setText(indexLists[index]);
}
});
builder.show();
}
});
btn_setTime.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
DatePickerDialogdpd=newDatePickerDialog(MainActivity.this,
newOnDateSetListener(){
@Override
publicvoidonDateSet(DatePickerarg0,intarg1,
intarg2,intarg3){
//TODOAuto-generatedmethodstub
year=arg1;
month=arg2+1;
day=arg3;
btn_setTime.setText(year+"-"+month+"-"
+day);
}
},year,month-1,day);
dpd.show();
}
});
builder.setTitle("记一笔");
builder.setView(view);
builder.setCancelable(false);
builder.setPositiveButton("保存",newOnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
Stringstr_money=et_input_money.getText().toString();
if(str_money.equals("")){
money=0;
}else{
money=Double.parseDouble(str_money);
}
AccountBeanbean=newAccountBean();
bean.setYear(year);
bean.setDay(day);
bean.setMonth(month);
bean.setDetail(et_input_detail.getText().toString());
bean.setMoney(money);
bean.setIndex(index);
intid=rg_type.getCheckedRadioButtonId();
if(id==R.id.rd_pay)//支出
{
bean.setType(0);
}else{
bean.setType
(1);
}
bean.setIndex(index);//设置类别
account.insert(bean);
Toast.makeText(MainActivity.this,"保存成功",0).show();
//刷新界面
refrashList(null);
}
});
builder.setNegativeButton("放弃",null);
builder.show();
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
@Override
protectedvoidonDestroy(){
//TODOAuto-generatedmethodstub
mDbHelper.close();
super.onDestroy();
}
第四部分结束语
毕业设计的实现过程中,由于在知识,经验方面存在不足,因此,该软件仍然存在一些缺陷和不足。
另外在需求分析时未能完全满足用户的需求。
在系统功能上,统计查询功能和清除用户数据方面还不能实现,当然还有一些问题没有考虑周到。
该软件目前只是小型的,比较适合家庭用户进行个人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 java 毕业设计 论文 app 软件 开发 设计 实现 记账