收藏 分销(赏)

移动应用软件开发课程设计-基于adroid教师管理系统.doc

上传人:丰**** 文档编号:4775743 上传时间:2024-10-12 格式:DOC 页数:52 大小:2.16MB
下载 相关 举报
移动应用软件开发课程设计-基于adroid教师管理系统.doc_第1页
第1页 / 共52页
移动应用软件开发课程设计-基于adroid教师管理系统.doc_第2页
第2页 / 共52页
点击查看更多>>
资源描述
课 程 设 计 报 告 课程设计名称 移动应用软件开发 (andriod)课程设计 专 业 班 级 学 号 姓 名 指导教师 郑凯梅 成 绩 2016年 7 月 5 日 50 目 录 目录 一、课程设计内容 1 二、开发环境及技术 1 三、系统需求分析 1 四、概要设计 1 1系统结构图(功能模块图) 1 2功能模块说明 1 3界面布局设计 2 4数据库设计 2 五、详细设计 2 1查找通讯录信息 2 2修改通讯录 3 3增加通讯录 3 4删除通讯录 3 5排序通讯录 3 6用户登录 3 六、运行及调试结果 3 1、程序调试 4 2、运行界面截图 4 七、收获及体会 4 八、参考文献 4 九、附录:源代码 5 一、课程设计内容 二、开发环境及技术 在无网络连接情况下,需要在线更新的两个软件SDK和Eclipse的ADT插件逍遥子已经在有网络的前提下先完成在线升级之后打包。现在属于绿色低碳无公害软件,将他们解压到开发机里做一些相应的设置就可以使用了。 1. 安装java开发的JDK到本机,配置好环境变量。 2. 解压Android SDK和Eclipse,配置Eclipse的SDK路径。 (android-sdkGOOD.zip 与eclipseOK.rar)。我们可以在D盘或者是E盘建立一个目录Android,然后解压配置好的SDK和配置好的Eclipse文件到这个文件夹下面。,解压完成后生成新的两个目录:比如我是在D:/盘所以…… 在解压完Eclipse首次运行他时,由于被搬家过来软件自动检查他的工作路径,需要用户设置它的默认工作路径,还需要用户选择SDK的一些配置路径。 系统默认的是在线安装新的SDK组件,我们不可能在没有网络连接的情形下升级应用组件!所以选取Use existing SDKs,然后点击下一步完成经一部的配置。完成配置到Windows里找到Android SDK Manager运行,检测是否可以正常启动。 三、系统需求分析 手机电子教师管理系统和在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由管理教师信息信息。经过对周边同学的调查研究,普遍认为这款软件方便实用。 本系统是用Android实现的一个教师管理软件,通过对教师需求的考察、分析,要求本软件具有以下功能: 1、简洁操作界面,能保证系统的易用性; 2、教师信息的查询、添加、删除、修改和排序; 3、教师工资的添加、系别的查询。 4、每位教师的信息预览。 四、概要设计 1系统结构图(功能模块图) 教师管理系统 管理员登入 打开 或创建数据库 新建教师信息表 查询模块 插入模块 修改模块 删除模块 排序模块 退出管理系统 图1-1教师管理功能模块图 2功能模块说明 1.打开或创建数据库 用于存放教师信息 2.新建教师信息表 建表用于创建教师信息各类元素 3.查询模块 查询教师信息 4.插入模块 插入教师信息 5.修改模块 用于修改教师信息 6.删除模块 用于删除教师信息 7.排序模块 对教师信息进行排序 8.退出模块 退出教师管理系统 3界面布局设计 3.1 首先是登录界面布局,登录界面我们采用绝对布局方式。组成元素主要是TextView、Button和EditText控件。界面跳转技术代码: SQLiteDatabase m_dbSQLiteDatabase=null; m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null); if(m_dbSQLiteDatabase!=null){ Cursor resultCursor=m_dbSQLiteDatabase.query("gl",new String[]{"gl_name","gl_mm"},null,null,null,null,null); if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ if(username.equals(resultCursor.getString(0))&& password.equals(resultCursor.getString(1))){ Toast.makeText(//创建Toast MainActivity.this,"恭喜您登陆成功!",Toast.LENGTH_SHORT).show();//显示Toast信息 Intent inttMainAct=new Intent (MainActivity.this,guanli.class); startActivityForResult(inttMainAct,INFORMATIONACT); }else{ Toast.makeText(MainActivity.this,"请输入正确的用户名或密码!",Toast.LENGTH_SHORT).show(); } } } resultCursor.moveToNext(); 3.2 主界面和子界面通过线性布局方式进行布局,这样可以显得思路清晰,明朗。主要元素由Button和TextView控件组成。跳转技术:使用Intent方式进行跳转。 4数据库设计 数据库设计我们建立了一个数据库,在这个数据库下新建了两张用于保存信息的表。 教师信息表: 序号 字段名称 中文说明 数据类型 是否为空 描述 1 User_Id 教师ID IET Not Null 主键自动增长 2 User_Name 教师姓名 TEXT Not Null 3 User_xb 系别 TEXT 4 User_zhic 职称 TEXT 5 User_gongz 工资 INT 表4-1 教师信息表 管理员表 序号 字段名字 中文说明 数据类型 是否为空 描述 1 gl_Id 管理员ID INT Not Null 用户管理员登陆 2 gl_mm 管理员密码 INT Not Null 密码 表4-2 管理员表 建数据库和建表的SQL语句:private SQLiteDatabase OpenOrCreateDB() { SQLiteDatabase dbSQLiteDatabase=null; try{ dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null); } catch(Exception ex){ return null; } return dbSQLiteDatabase; } private boolean CreateTable() { String sqlCreateTable ="CREATE TABLE JS " + "(User_Id INTEGER PRIMARY KEY,User_name TEXT NOT NULL,"+ "User_xb TEXT,"+ "User_zhic TEXT,"+ "User_gongz TEXT)"; if(m_dbSQLiteDatabase==null)return false; m_dbSQLiteDatabase.execSQL(sqlCreateTable); return true; } 首先第一张表是用来保存管理员登录信息,用来进行教师管理系统的登录。另一张表是用来管理教师信息,所用到的技术主要是增、删、改、查和排序。 增加sql语句:cvContextValues.put("User_Id", i);//插入数据字段 cvContextValues.put("User_name", strName); cvContextValues.put("User_xb", strxb); cvContextValues.put("User_zhic", strzc); cvContextValues.put("User_gongz", strgz); m_dbSQLiteDatabase.insert("JS", null, cvContextValues);//使用insert方法实现插入数据 删除SQL语句:String strWhereClause="User_Id=?";//删除条件 String[] strArrayWhereArg={String.valueOf(str)};//删除条件参数 m_dbSQLiteDatabase.delete("JS", strWhereClause, strArrayWhereArg);//调用delete方法删除 myResult.setText("删除成功");提示信息 修改SQL语句: ContentValues updateValues=new ContentValues();//对象实例化 updateValues.put("User_Id", strNew);//修改值 String strWhereClause="User_Id=?";//修改条件 String[] strArrayWhereArg={str};//修改条件参数 m_dbSQLiteDatabase.update("JS", updateValues, strWhereClause, strArrayWhereArg);//调用update方法更新 查询SQL语句:String strMsg="查到的数据:\n 编号 姓名 性别 职称 工资\n"; Cursor resultCursor=m_dbSQLiteDatabase.query("JS",new String[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null);//调用query方法查询数据 if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ strMsg+=" "+resultCursor.getString(0)+" "+resultCursor.getString(1)+" "+resultCursor.getString(2)+" "+resultCursor.getString(3)+" "+resultCursor.getString(4)+"\n";//依次获取查询到的字段 resultCursor.moveToNext(); 五、详细设计 1查找通讯录信息 该模块的设计思想为,按照查询关键字从数据库表中读取所有人的信息,并显示查找信息。 先打开数据库,利用SQLiteDatabase。Query()方法进行查询,将查询关键字设为null进行整体查询,然后用cursor类实现输出。 开始 输入查询的条件 KEY是否存在 输出 结束 否 是 图1 查询流程图 m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null);//打开数据库 if(m_dbSQLiteDatabase!=null){ String strMsg="查到的数据:\n 编号 姓名 性别 职称 工资\n"; //查询条件 Cursor resultCursor=m_dbSQLiteDatabase.query("JS",new String[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null); //将查询到的数据一次列出 if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ strMsg+=" "+resultCursor.getString(0)+" "+resultCursor.getString(1)+" "+resultCursor.getString(2)+" "+resultCursor.getString(3)+" "+resultCursor.getString(4)+"\n"; resultCursor.moveToNext(); } 2修改通讯录 该模块的设计思想为,按照修改关键字从数据库表中读取所有人的信息,并进行通过输入的修改关键词进行信息的个别修改。 修改流程图: 开始 输入修改的条件 输入条件是否存在 对应修改 结束 否 是 图2 修改流程图 修改姓名代码:SQLiteDatabase m_dbSQLiteDatabase=null; m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null);//打开数据库 String str=txtkey.getText().toString();//获取数据字符串 String strNew=txtNew.getText().toString(); if(m_dbSQLiteDatabase!=null){//判断数据库是否为空 String strMsg="查到的数据:\n 编号 姓名 性别 职称 工资\n"; Cursor resultCursor=m_dbSQLiteDatabase.query("JS",new String[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null,null);//查询所有教师信息 if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ strMsg+=" "+resultCursor.getString(0)+" "+resultCursor.getString(1)+" "+resultCursor.getString(2)+" "+resultCursor.getString(3)+" "+resultCursor.getString(4)+"\n"; resultCursor.moveToNext(); } ContentValues updateValues=new ContentValues(); updateValues.put("User_Name", strNew);//修改条件 String strWhereClause="User_Id=?"; String[] strArrayWhereArg={str}; m_dbSQLiteDatabase.update("JS", updateValues, strWhereClause, strArrayWhereArg);//进行更新 txtresult.setText(strMsg);//显示更新后的内容 Toast.makeText(xiugai.this, "修改成功", Toast.LENGTH_LONG).show(); } else{ txtresult.setText("未找到!"); } m_dbSQLiteDatabase.close(); }} 3增加通讯录 该模块的设计思想为,按照需要增加数据写入数据库中,并提示增加成功信息。 增加流程图: 开始 输入增加信息 输入添加成功 添加成功 结束 否 是 图3 增加流程图 增加部分代码://获得各个控件引用 EditText edtname = (EditText) findViewById(R.id.EditText02); EditText edtnum = (EditText) findViewById(R.id.EditText01); EditText edtxb = (EditText) findViewById(R.id.EditText03); EditText edtgz = (EditText) findViewById(R.id.EditText04); EditText edtyx = (EditText) findViewById(R.id.EditText05); SQLiteDatabase m_dbSQLiteDatabase = null; m_dbSQLiteDatabase = SQLiteDatabase.openOrCreateDatabase( "/data/data/com.example.jsgl/JSDB.db", null);//打开数据库 String strNum, strName, strxb, strzc, strgz;//定义字符串 //获取输入的字符串 strNum = edtnum.getText().toString(); strName = edtname.getText().toString(); strxb = edtxb.getText().toString(); strzc = edtgz.getText().toString(); strgz = edtyx.getText().toString(); int i=Integer.parseInt(strNum); /*Toast.makeText( add.this, strNum + "," + strName + "," + strTel + "," + strage + "," + stryx, Toast.LENGTH_LONG).show();*/ if (m_dbSQLiteDatabase != null) { //插入数据 ContentValues cvContextValues = new ContentValues(); cvContextValues.put("User_Id", i); cvContextValues.put("User_name", strName); cvContextValues.put("User_xb", strxb); cvContextValues.put("User_zhic", strzc); cvContextValues.put("User_gongz", strgz); m_dbSQLiteDatabase.insert("JS", null, cvContextValues); Toast.makeText(insert.this, "成功添加", Toast.LENGTH_LONG).show();//toast提示 } } 4删除通讯录 开始 输入删除关键字 是否删除 删除成功 结束 该模块的设计思想为,按照修改关键字从数据库表中读取所有人的信息,并进行通过输入的删除关键词进行信息的删除。 删除流程图: 否 是 图4 删除流程图 删除模块代码:SQLiteDatabase m_dbSQLiteDatabase=null; m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null); final String str=deleKey.getText().toString(); if (m_dbSQLiteDatabase != null){ // delete() if(rId.isChecked()){ String strMsg="查到的数据:\n 编号 姓名 性别 职称 工资\n"; Cursor resultCursor=m_dbSQLiteDatabase.query("JS",new String[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},"User_Id=?",new String[]{str},null,null,null); if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ strMsg+=" "+resultCursor.getString(0)+" "+resultCursor.getString(1)+" "+resultCursor.getString(2)+" "+resultCursor.getString(3)+" "+resultCursor.getString(4)+"\n"; resultCursor.moveToNext(); } Dialog dialog=new AlertDialog.Builder(shanchu.this)//设置Dialog提示 .setTitle("删除对话框") .setIcon(R.drawable.ic_launcher) .setMessage("确认删除吗?\n"+strMsg) .setPositiveButton("确认",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which){ SQLiteDatabase m_dbSQLiteDatabase=null; m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null); String strWhereClause="User_Id=?";//设置删除条件 String[] strArrayWhereArg={String.valueOf(str)}; m_dbSQLiteDatabase.delete("JS", strWhereClause, strArrayWhereArg);//进行删除操作 myResult.setText("删除成功"); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which){ myResult.setText("取消删除"); } }) .create(); dialog.show(); } }else{ //txtresult.setText("未找到!"); } 5排序通讯录 开始 点击降序排序 显示排序结果 结束 该模块的设计思想为,按照ID降序方式进行对数据库信息排序,并进行通过输出界面进行显示排序后的信息。 排序流程图: 图5 删除流程图 降序排序代码:btnpx.setOnClickListener(new OnClickListener(){//OnClickListener事件 public void onClick(View v){//重写Onclik方法 SQLiteDatabase m_dbSQLiteDatabase=null;//判断数据库是否为空 m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null);//打开数据库 if(m_dbSQLiteDatabase!=null){ String strMsg="查到的数据:\n 编号 姓名 性别 职称 工资\n"; Cursor resultCursor=m_dbSQLiteDatabase.query("JS",new String[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,"User_Id desc",null);//排序关键字 //将排序的数据一次列出 if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ strMsg+=" "+resultCursor.getString(0)+" "+resultCursor.getString(1)+" "+resultCursor.getString(2)+" "+resultCursor.getString(3)+" "+resultCursor.getString(4)+"\n"; resultCursor.moveToNext(); } } jieg.setText(strMsg);//检结果显示在界面 m_dbSQLiteDatabase.close();//关闭数据库 } } }); 6用户登录 该模块的设计思想为,按照数据库录入信息查找,将查到的信息与输入信息对比进行登入。 开始 输入等入信息 与数据库信息对比 登录成功 结束 登录流程图: 不存在 存在 图6 登录流程图 登录模块代码:String username=user.getText().toString();//得到user字符串 String password=pass.getText().toString();//得到pass字符串 SQLiteDatabase m_dbSQLiteDatabase=null; m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db", null); if(m_dbSQLiteDatabase!=null){ Cursor resultCursor=m_dbSQLiteDatabase.query("gl",new String[]{"gl_name","gl_mm"},null,null,null,null,null); if(resultCursor.moveToFirst()){ for(int i=0;i<resultCursor.getCount();i++){ if(username.equals(resultCursor.getString(0))&& password.equals(resultCursor.getString(1))){//将获取到的字符串与数据库信息比较 Toast.makeText(//创建Toast MainActivity.this,"恭喜您登陆成功!",Toast.LENGTH_SHORT).show();//显示Toast信息 Intent inttMainAct=new Intent (MainActivity.this,guanli.class); startActivityForResult(inttMainAct,INFORMATIONACT); }else{ Toast.makeText(MainActivity.this,"请输入正确的用户名或密码!",Toast.LENGTH_SHORT).show(); } } } resultCursor.mo
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服