79罗嘉明98郑裕胜《android应用开发》课程设计报告书软件142.docx
《79罗嘉明98郑裕胜《android应用开发》课程设计报告书软件142.docx》由会员分享,可在线阅读,更多相关《79罗嘉明98郑裕胜《android应用开发》课程设计报告书软件142.docx(16页珍藏版)》请在冰豆网上搜索。
79罗嘉明98郑裕胜《android应用开发》课程设计报告书软件142
广东职业技术学院
课程设计报告书
2015-2016学年第二学期
课程名称:
《Android应用项目开发》
设计题目:
裕嘉酒店管理系统
系别:
信息工程系
班级:
软件142
姓名:
罗嘉明79、郑裕胜98
起止日期:
2016.6.13---2016.6.17
指导教师:
黄旺华
摘要
随着社会日益的变化更新,酒店行业竞争越来越激烈,想取得成绩必须要在管理经营、产品服务方面改善管理方法。
传统的人工预订酒店管理,信息混乱,管理麻烦,低效繁琐的过程已经不适应快节奏的社会。
通过酒店管理系统,我们可以做到信息的规范化、系统化、自动化的管理和快速查询功能,即提高管理效率,信息的统计的准确性,也降低管理成本。
酒店管理系统是典型的信息管理系统,开发包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立数据一致性和完整性强、数据安全性好的数据库。
而后者则要求应用程序功能完备、易用性良好等特点。
结合要求,我们所设计的酒店管理系统可以添加、删除、修改和多种查询等功能,使用方便,画面简洁,基本满足了使用者的需求。
关键词:
酒店;快速;易用;系统化
目录
1、需求分析1
2、概要设计2
2.1用户界面设计2
2.2数据库设计5
2.3程序模块设计6
3、详细程序开发7
3.1登陆界面7
3.2注册界面8
3.3入住信息登记,查询,删除界面9
3.4数据库的创建与连接10
3.5APP图标与名称11
4、应用测试12
5、总结与体会13
6、致谢14
1、需求分析
基于酒店行业需要便利快捷的管理模式,计算机管理可以使酒店业运作的更加可靠、快捷和高效,不但节省了管理者的时间,更是对旅客的方便。
本系统提供给旅客以快捷、准确和可靠的服务,同时,也提高了酒店自身的管理水平。
本系统是针对酒店的具体业务而开发的。
业务管理以酒店前台管理为核心,为旅客提供高效的服务,减免手工处理的繁琐与误差,及时、准确的反映酒店的经营情况。
系统具体有以下特点:
·系统具有高可靠性、安全性、操作性。
·模块化结构,可根据业务需要,十分方便的进行添加、删除、修改和快速查询的功能。
·直观的图形用户界面,更加简便快捷。
·系统的实用性:
本系统的开发成本低,功能针对酒店前台管理功能,实用性强,可维护性好。
2、概要设计
2.1用户界面设计
本系统界面采用eclipse设计,eclipse设计安卓界面方便直观,内容强大。
2.1.1系统图标
2.1.2登录界面
2.1.3注册界面
2.1.4入住登记界面
2.1.5查询界面
2.1.6退房界面
2.2数据库设计
2.2.1数据表的设计
管理员表
列名
数据类型
是否允许为空
说明
username
varchar(20)
否
用户名
password
varchar(50)
否
密码
入住登记表
列名
数据类型
是否允许为空
说明
name
varchar(20))
否
姓名
roomNum
varchar(20)
否
房号
sex
varchar(4)
是
性别
idCard
varchar(50)
否
身份证号
timeIn
DataTime(40)
否
入住时间
timeSum
varchar(10)
否
入住天数
money
varchar(30)
是
金额
2.2.2E-R图
2.3程序模块设计
酒店管理系统主要分为两个模块:
系统维护模块、系统功能需求模块。
这两个模块设计主要是因为有了这两个模块管理者更容易发现该酒店的不足,还有就是容易看到酒店的入住情况。
2.3.1系统维护模块
1)密码设置:
每个酒店管理员均有自己的账号密码,可以防止非本系统人员进入本系统;
2)注册设置:
对于新加入的酒店管理员可以注册属于自己的账号密码。
2.1.3系统功能需求模块
(1)数据录入:
可以实时的录入客户的住宿等的情况。
(2)数据查询:
可以实时查询客房信息、客人账单信息等的具体情况。
(3)数据删除:
可以实时处理客户退房等的情况
3、详细程序开发
3.1登陆界面
登陆界面是整个酒店管理系统的前台,从这里可以连接到其他界面,如:
注册,预定
因为要跳转连接到其他界面或者一些功能,我们给Button按钮添加了相应的事件
如登陆按钮代码
privateButtonloginBtn;
loginBtn=(Button)findViewById(R.id.loginBtn);
loginBtn.setOnClickListener(newButton.OnClickListener(){
publicvoidonClick(Viewv){
login=(EditText)findViewById(R.id.usernameEditText);
pwd=(EditText)findViewById(R.id.pwdEditText);
Stringname=login.getText().toString();
Stringpassword=pwd.getText().toString();
Cursorquery=db.query("user",newString[]{"username","pwd"},"username=?
andpwd=?
",newString[]{name,password},null,null,null);
if(query.moveToFirst()){
Intentintent=newIntent();
intent.setClass(HotelSystemn.this,EnterIntoActivity.class);
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),"请正确输入登陆信息",Toast.LENGTH_SHORT).show();
}
}
});
3.2注册界面
如果用户没有用户名和密码,则可以点击注册一个用户名和密码。
主要代码如下所示:
register=(Button)findViewById(R.id.registerBtn);
register.setOnClickListener(newButton.OnClickListener(){
publicvoidonClick(Viewarg0){
username=(EditText)findViewById(R.id.usernameEditText);
pwd=(EditText)findViewById(R.id.pwdEditText);
Stringname=username.getText().toString();
Stringpassword=pwd.getText().toString();
Cursorquery=db.query("user",newString[]{"username","pwd"},"username=?
",newString[]{name},null,null,null);
if(!
query.moveToFirst()){
try{
db.execSQL("insertintouser(username,pwd)values(?
?
)",newString[]{name,password});
Toast.makeText(getApplicationContext(),"注册成功",Toast.LENGTH_SHORT).show();
}catch(SQLExceptione){
e.printStackTrace();
}
}else{
Toast.makeText(getApplicationContext(),"请正确输入注册信息",Toast.LENGTH_SHORT).show();
}
}});
3.3入住信息登记,查询,删除
在这里输入客户的信息,只要正确格式,点击提交,就保存到数据库中,关键代码:
//这是表头的切换。
TabHosttabHost=getTabHost();
LayoutInflater.from(this).inflate(R.layout.manage,tabHost.getTabContentView(),true);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("入住登记",null).setContent(R.id.tab1));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("查询",null).setContent(R.id.tab2));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("退房",null).setContent(R.id.tab3));
//这是提交信息到数据库代码
db=mySqliteHelper.getReadableDatabase();
Cursorquery=db.query("hotel",newString[]{"roomNum","name","sex","idCard","timeIn","timeSum","money"},"roomNum=?
",newString[]{roomNum},null,null,"_idasc");
if(!
query.moveToFirst()){
db.execSQL("insertintohotel(name,sex,idCard,timeIn,timeSum,roomNum,money)values(?
?
?
?
?
?
?
)",newString[]{name,sex,idCard,timeIn,timeSum,roomNum,money});
Toast.makeText(getApplicationContext(),"提交成功",Toast.LENGTH_SHORT).show();
clean();
}else{
Toast.makeText(getApplicationContext(),"提交失败,信息错误",Toast.LENGTH_SHORT).show();
}
//查询功能的实现,能随时查看已登记客户的信息,方便管理
publicvoidonClick(Viewv){
resultTextView=(TextView)findViewById(R.id.resultTestView);
searchEditText=(EditText)findViewById(R.id.searchEditText);
StringroomNum=searchEditText.getText().toString();
db=mySqliteHelper.getReadableDatabase();
Cursorquery01=db.query("hotel",newString[]{"roomNum","name","sex","idCard","timeIn","timeSum","money"},"roomNum=?
",newString[]{roomNum},null,null,"_idasc");
if(query01.moveToFirst()){
for(query01.moveToFirst();!
query01.isAfterLast();query01.moveToNext()){
SearchResult+="房号"+query01.getString(query01.getColumnIndex("roomNum"))+"\n";
SearchResult+="姓名"+query01.getString(query01.getColumnIndex("name"))+"\n";
SearchResult+="性别"+query01.getString(query01.getColumnIndex("sex"))+"\n";
SearchResult+="房号"+query01.getString(query01.getColumnIndex("roomNum"))+"\n";
}
}else{
Toast.makeText(getApplicationContext(),"查询无果",Toast.LENGTH_SHORT).show();
}
//退房功能的实现,客户退房,删除客户的入住信息
if(query.moveToFirst()){
db.delete("hotel","name=?
androomNum=?
",newString[]{username,roomNum});
Toast.makeText(getApplicationContext(),"退房成功",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(),"请输入正确的信息",Toast.LENGTH_SHORT).show();
}
----------------------------------------------------------------------------
3.4数据库的创建与连接
数据库的应用,记录已注册的用户名,密码,用于登陆。
还有就是记录客户的入住信息,方便查询管理,所以数据库很有必要,也是整个系统的关键。
主要代码如下:
publicclassMySqliteHelperextendsSQLiteOpenHelper{
publicMySqliteHelper(Contextcontext,Stringname,CursorFactoryfactory,
intversion){
super(context,name,factory,version);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
db.execSQL("createtablehotel(_idintegerprimarykeyautoincrement,"
+"namevarchar(50),"
+"sexvarchar(10),"
+"idCardvarchar(50),"
+"timeInvarchar(50),"
+"timeSumvarchar(50),"
+"roomNumvarchar(50),"
+"moneyvarchar(255))");
db.execSQL("createtableifnotexistsuser(idintegerprimarykeyautoincrement,"
+"usernamevarchar(20),"
+"pwdvarchar(50))");
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intarg1,intarg2){
onCreate(db);
}
}
3.5APP图标与名称、
名称修改代码
裕嘉酒店
5、应用测试
测试编号
1.1
测试项目
裕嘉酒店管理系统
测试目的
验证管理系统软件功能是否符合需求
预置条件
一部已经安装了裕嘉酒店管理系统软件的测试手机
测试步骤
1、用户点击手机的裕嘉酒店应用图标,进入裕嘉酒店应用;
2、用户在登录框输入用户名和密码;
3、点击登录按钮;
4、点击注册。
5、入住信息登记,查询,和退房。
预期结果
1、应用能进入,没有闪退;
2、用户用户名和密码正确,成功登录,不正确或不输入则提示错误;
3、点击注册按钮,给予相应的注册提示,并能成功注册。
4、入住信息登记、查询、和退房功能都能实现。
测试结果
应用能进入,没有报错,点击登录,没有用户名和密码,登录不成功,点击注册,按提示注册,能成功注册,用注册的并且正确的用户名和密码,能成功登录,登录进去之后,能进行相应的操作,入住信息登记、查询、和退房功能都能实现。
测试是否通过
■是□否
测试人员
罗嘉明
郑裕胜
测试日期
2016.06.17
5、总结与体会
由于知识掌握的不够,这次实训设计遇到的很多问题,印象最深的是对数据库这一方面还不太熟悉,当中遇到了一些问题影响了进度,幸好同学的相互帮助才得以解决,其中也学习到了很多知识。
从最开始的构思设计,到需求分析,概要设计,详细设计,数据库设计,再到编码,调试运行,测试等步骤,都遇到很多问题和争执,这恰恰是一个学习进步的过程,和合作伙伴的争执,到最后意见的统一,逐步意识到团队合作精神的重要性,这些都是极其有意义的。
总的来说,这次的实训,是我们理论知识的加强,更是理论知识到实践的一个重大飞跃。
6、感谢
1.传智博客高教产品研发部,Android移动应用基础教程2015
2.Android移动应用开发从入门到精通,刘帅旗2012
3.实训指导老师黄旺华老师,授课老师李海平老师
4.软件142班同学及宿友林丹荣,杨健辉。