1、安卓课程表课程设计报告南 京 晓 庄 学 院【移动开发应用框架】课程设计报告课程表的设计与实现所在院(系):信息工程学院学 号 : 13139173学生姓名 : 陈倡年级专业 : 软件工程指导教师 : 李青 提交日期 : 2015 年 12 月课程设计实验报告班级 13软工4姓名 陈倡学号 13139173任课教师李青实验日期 2015.12成绩一、目的(本次课程设计的概要以及所涉及的知识点.)1.课程表课程的添加与实现2.记录笔记并可以查看设计知识点:数据库的数据的新增,查询,删除等,辅助类,上下文菜单的使用;二、使用环境 (本次实践所使用的平台和相关软件。 ) SDK:(software
2、development kit)软件开发工具包.被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合.因此,Android SDK 指的是Android专属的软件开发工具包。 使用Eclipse进行android应用开发需要给Eclipse装ADT插件,这样Eclipse就可以和android ADT建立连接,可以在Eclipse中启动android模拟器进行程序调试等.三、内容与设计思想 (1 设计思路 2 主要功能说明 3 主要的模块结构 4 主要代码分析 。 )1。课程与笔记是私有的,所以设置用户名与密码登陆,在课程表中应有一个显示界面,用于显示
3、已添加的课程,点击新增按钮进入新增界面,用于增加新的课程,需添加上课的星期和课的节次,并检查当前是否有课,并提示。保存后进入课表显示界面,查看课表。笔记中有一笔记列表,显示创建笔记的时间和标题。点开笔记可以查看详细内容。也可以进行笔记的新增。若长按笔记。则可以进行删除操作。2.登录进入菜单,若无用户,可以注册.课程表,查看已经有课程,新增课程并保存.笔记,查看已有笔记,查看详细笔记,新增笔记,删除笔记。3。整个程序包含两个大的模块:课程表模块和笔记模块;课程表中包含显示和新增两个模块;笔记中有显示列表模块,新增模块,和查看模块4.(1)用户登录时,根据用户名与密码进入数据库中查询,若有返回值为
4、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 =
5、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)新增课程时,查询这一天的所有课程,
6、若已有的课程和添加的课程节次相同则冲突,则提示这节已经有课,若无可进行添加,并跳转会课程表界面查看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 = T
7、oast。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)通过上下文菜单的方法,长按笔记列表,会出
8、现设置好删除菜单,通过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 onContextItemSele
9、cted(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
10、。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 intR.id.tv_showwritetime,R.id.tv_shownotesname); lv_notes。setAdapter(adap
11、ter); /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
12、; 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 pri
13、mary 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); p
14、ublic 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.getReadableDatabas
15、e(); 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(
16、name,password,imageid) + values(+newname+,”+newpassword+”,”+imageid+); db.execSQL(sql); public Cursor checkname(String newname) SQLiteDatabase db = this.getReadableDatabase(); Cursor cscheckname = db.query(”userinformation”, new String”name, ”name = ”+newname+”, null, null, null, null, null); return
17、 cscheckname; public Cursor queryschedule() SQLiteDatabase db = this.getReadableDatabase(); Cursor csschedule = db。query(schedule”, null, null, null, null, null, null); return csschedule; public void addcosuses(String couesename,String room,String week,String day,String timeclass,String teachername)
18、 SQLiteDatabase db = this。getReadableDatabase(); String sql = ”insert into schedule(couesename,room,week,day,time,teachername) + values(”+couesename+,+room+,+week+”,+day+,+timeclass+,”+teachername+); db。execSQL(sql); public void writenotes(String writetime,String notesname,String notes) SQLiteDataba
19、se db = this.getReadableDatabase(); String sql = ”insert into notes(writetime,notesname,notes) values(”+writetime+”,”+notesname+,+notes+”)”; db.execSQL(sql); public Cursor querynotes() SQLiteDatabase db = this。getReadableDatabase(); Cursor cs = db。query(”notes”, new String_id”,writetime,”notesname,
20、null, null, null, null, null, null); return cs; 四、调试过程 (测试结果分析 )1。 若无用户点击注册,进行注册,注册界面需要输入两次密码,进行密码确认.2。注册后进入登录界面,经过用户名和密码验证过后进行登录进去菜单界面3.进入菜单界面,选择相应的功能4.选择课表后,进去课表界面,可以查看已有的课程,课程表可以滑动,点击新增,进入新增界面进行增加5.进入新增后输入课程名教室等,若无冲突,点击勾就保存进入课表界面,查看课表6。进入笔记列表界面,若点击笔记,则可以查看该篇详细笔记,若长按,通过上下文菜单的方法进行删除,点击笔记按钮,则可进入写笔记界面7。进入新增笔记界面,获取当前的时间,并记录,方便查询。8.点击笔记查看详细的笔记。五、总结 1 设计中遇到的问题及解决过程 遇到了一些方法使用错误,通过网上的查找和询问高手解决的。2 设计中产生的错误及原因分析 界面跳转是出现问题,经过排查后发现传递的参数有错。3 设计体会和收获.深深的感觉自己的知识经验匮乏。虽然经常会报错,但是要慢慢的细心的排查,而且每天都要坚持写下去.要不断的学习,遇到难题,不会的,要咬着牙把它啃下了。六、附录 1、原代码节略 2、参考文献
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1