当前位置:文档之家› 新安卓课程表课程设计报告

新安卓课程表课程设计报告

南 京 晓 庄 学 院 【移动开发应用框架】 课程设计报告

《课程表的设计与实现》

所在院(系):信息工程学院 学 号 : 13139173 学生姓名 : 陈倡 年级专业 : 软件工程 指导教师 : 李青 提交日期 : 2015 年 12 月

课程设计实验报告 班级 13软工4 姓名 陈倡 学号 13139173 任课教师 李青 实验日期 2015.12 成绩

一、 目的(本次课程设计的概要以及所涉及的知识点。) 1.课程表课程的添加与实现 2.记录笔记并可以查看 设计知识点:数据库的数据的新增,查询,删除等,辅助类,上下文菜单的使用;

二、使用环境 (本次实践所使用的平台和相关软件。 ) SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK 指的是Android专属的软件开发工具包。 使用Eclipse进行android应用开发需要给Eclipse装ADT插件,这样Eclipse就可以和android ADT建立连接,可以在Eclipse中启动android模拟器进行程序调试等。

三、内容与设计思想 (1 .设计思路 2 .主要功能说明 3 .主要的模块结构 4 .主要代码分析 。 ) 1.课程与笔记是私有的,所以设置用户名与密码登陆,在课程表中应有一个显示界面,用于显示已添加的课程,点击新增按钮进入新增界面,用于增加新的课程,需添加上课的星期和课的节次,并检查当前是否有课,并提示。保存后进入课表显示界面,查看课表。笔记中有一笔记列表,显示创建笔记的时间和标题。点开笔记可以查看详细内容。也可以进行笔记的新增。若长按笔记。则可以进行删除操作。

2.登录进入菜单,若无用户,可以注册。 课程表,查看已经有课程,新增课程并保存。 笔记,查看已有笔记,查看详细笔记,新增笔记,删除笔记。

3.整个程序包含两个大的模块:课程表模块和笔记模块;课程表中包含显示和新增两个模块;笔记中有显示列表模块,新增模块,和查看模块 4.(1)用户登录时,根据用户名与密码进入数据库中查询,若有返回值为1,表示有该用户,进行界面的跳转,进去菜单界面。若返回值为0 ,则表示用户名或密码错误,并提示。 but_login.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { String putname = edit_putname.getText().toString(); String putpassword = edit_putpassword.getText().toString(); Cursor cs = dbhelper.login(putname, putpassword); int m = cs.getCount(); if(m==0){ String tips = "你输入的用户名或密码有误"; Toast toast = Toast.makeText(getApplicationContext(), tips,20000); toast.show(); }else{ Intent intent = new Intent(MainActivity.this,MenuActivity.class); intent.putExtra("name", putname); MainActivity.this.startActivity(intent); } } });

(2)新增课程时,查询这一天的所有课程,若已有的课程和添加的课程节次相

同则冲突,则提示这节已经有课,若无可进行添加,并跳转会课程表界面查看 Cursor cs = db.query("schedule", new String[]{"time"}, "day='"+day+"'", null, null, null, null); cs.moveToFirst(); while(!cs.isAfterLast()){ String check = cs.getString(cs.getColumnIndex("time")); if(check.equals(timeclass)){ String tips = "这节已经有课"; Toast toast = Toast.makeText(getApplicationContext(), tips, 20000); toast.show(); return; } cs.moveToNext(); } cs.close(); String sql = "insert into schedule('couesename','room','week','day','time','teachername')" + " values('"+couesename+"','"+room+"','"+week+"','"+day+"','"+timeclass+"','"+teachername+"')"; db.execSQL(sql);

(3)通过上下文菜单的方法,长按笔记列表,会出现设置好删除菜单,通过onContextItemSelected响应菜单,并获得所选择的菜单。通过info.targetView 查找到长按的视图,并获得TextView里的时间字符串,根据字符串进入数据库进行查找并删除,再跟新listView; this.registerForContextMenu(lv_notes); public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, 1,0, "删除");

} public boolean onContextItemSelected(MenuItem item){ AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); if(item.getItemId()==1){ //获取当前的视图 TextView tv = (TextView)info.targetView.findViewById(R.id.tv_showwritetime); String str = tv.getText().toString(); String sql = "delete from notes where writetime='"+str+"'"; db.execSQL(sql); //通知更新显示ListV cs = db.query("notes", new String[]{"_id","writetime","notesname"}, null, null, null, null, null, null); adapter = new SimpleCursorAdapter(this, R.layout.notes_layout, cs, new String[]{"writetime","notesname"}, new int[]{R.id.tv_showwritetime,R.id.tv_shownotesname}); lv_notes.setAdapter(adapter); //adapter.notifyDataSetChanged(); } return false; }

(4)新建了一个DBHelper辅助类继承SQLiteOpenHelper,新建数据库,新建表 格,并对数据进行增删改查。onCreate()方法是建立表格,只进行一次。 还可以根据版本号进行数据库的更新,在其他类中调用查询方法,并返回所查询的值。 public class DBHelper extends SQLiteOpenHelper{ private static final int Version = 1 ; private static final String DBNAME = "cc"; private static final String sql_createschedule = "create table schedule(_id integer primary key autoincrement,"+" couesename text,"+" room text,"+"week text," + "day text,"+"time text,"+"teachername text)"; private static final String sql_createuserinformation = "create table userinformation(_id integer primary key autoincrement,"+" name text,"+" password text,"+"imageid integer)"; private static final String sql_createnotes = "create table notes(_id integer primary key autoincrement,"+"writetime text,"+"notesname text,"+"notes text)"; public DBHelper(Context context) { super(context, DBNAME, null, Version); } public void onCreate(SQLiteDatabase db) { db.execSQL(sql_createschedule); db.execSQL(sql_createuserinformation); db.execSQL(sql_createnotes); } public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } public Cursor login(String putname,String putpassword){ SQLiteDatabase db = this.getReadableDatabase(); Cursor cslogin = db.query("userinformation",null,"name='"+putname+"' and password ='"+putpassword+"'",null,null,null,null,null); return cslogin; } public void aegister(String newname,String newpassword,int imageid){ SQLiteDatabase db = this.getReadableDatabase(); String sql = "insert into userinformation('name','password','imageid')" + " values('"+newname+"','"+newpassword+"','"+imageid+"')"; db.execSQL(sql); } public Cursor checkname(String newname){ SQLiteDatabase db = this.getReadableDatabase();

相关主题