安卓课程表课程设计报告

时间:2024.4.7

【移动开发应用框架】

课程设计报告

《课程表的设计与实现》

所在院(系):信息工程学院

学    号  : 13139173

学生姓名  : 陈倡

年级专业  : 软件工程

指导教师  : 李青  

提交日期  : 20## 年 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() {

    publicvoid 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);

publicvoid onCreateContextMenu(ContextMenu menu, View v,

            ContextMenuInfo menuInfo) {

            menu.add(0, 1,0, "删除");

           

    }

    publicboolean 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 = newSimpleCursorAdapter(this, R.layout.notes_layout, cs,

                    new String[]{"writetime","notesname"},

                    newint[]{R.id.tv_showwritetime,R.id.tv_shownotesname});

            lv_notes.setAdapter(adapter);

            //adapter.notifyDataSetChanged();

        }

        returnfalse;

    }

(4)新建了一个DBHelper辅助类继承SQLiteOpenHelper,新建数据库,新建表格,并对数据进行增删改查。onCreate()方法是建立表格,只进行一次。

还可以根据版本号进行数据库的更新,在其他类中调用查询方法,并返回所查询的值。

publicclass DBHelper extends SQLiteOpenHelper{

    privatestaticfinalintVersion = 1 ;

    privatestaticfinal String DBNAME = "cc";

    privatestaticfinal String sql_createschedule =  "create table schedule(_id integer primary key autoincrement,"+" couesename text,"+" room text,"+"week text," +

            "day text,"+"time text,"+"teachername text)";

    privatestaticfinal String sql_createuserinformation = "create table userinformation(_id integer primary key autoincrement,"+" name text,"+" password text,"+"imageid integer)";

    privatestaticfinal 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);

    }

    publicvoid onCreate(SQLiteDatabase db) {

        db.execSQL(sql_createschedule);

        db.execSQL(sql_createuserinformation);

        db.execSQL(sql_createnotes);

    }

    publicvoid 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;

    }

    publicvoid 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();

        Cursor cscheckname = db.query("userinformation", new String[]{"name"}, "name = '"+newname+"'", null, null, null, null, null);

        return cscheckname;

    }

    public Cursor queryschedule(){

        SQLiteDatabase db = this.getReadableDatabase();

        Cursor csschedule = db.query("schedule", null, null, null, null, null, null);

        return csschedule;

    }

    publicvoid addcosuses(String couesename,String room,String week,String day,String timeclass,String teachername){

        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);

    }

    publicvoid writenotes(String writetime,String notesname,String notes){

        SQLiteDatabase 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"}, null, null, null, null, null, null);

        return cs;

    }

}

四、调试过程 (测试结果分析 )

1. 若无用户点击注册,进行注册,注册界面需要输入两次密码,进行密码确认。

2.注册后进入登录界面,经过用户名和密码验证过后进行登录进去菜单界面

3.进入菜单界面,选择相应的功能

4.选择课表后,进去课表界面,可以查看已有的课程,课程表可以滑动,点击新增,进入新增界面进行增加

5.进入新增后输入课程名教室等,若无冲突,点击勾就保存进入课表界面,查看课表

6.进入笔记列表界面,若点击笔记,则可以查看该篇详细笔记,若长按,通过上下文菜单的方法进行删除,点击笔记按钮,则可进入写笔记界面

7.进入新增笔记界面,获取当前的时间,并记录,方便查询。

8.点击笔记查看详细的笔记。

五、总结

1 .设计中遇到的问题及解决过程

    遇到了一些方法使用错误,通过网上的查找和询问高手解决的。

2 .设计中产生的错误及原因分析

界面跳转是出现问题,经过排查后发现传递的参数有错。

3 .设计体会和收获。

深深的感觉自己的知识经验匮乏。虽然经常会报错,但是要慢慢的细心的排查,而且每天都要坚持写下去。要不断的学习,遇到难题,不会的,要咬着牙把它啃下了。

六、附录

1、原代码节略

2、参考文献


第二篇:河北工程安卓课程设计报告


Android应用设计

实验报告

学 院:

专 业: 通信工程 班 级: 姓 名: 学 号: 100312107 指导教师:

20xx年x月x日

天气查询

1. 关键步骤简介

1.1 创建新工程 1.2 导入jar包 1.3 UI设计 1.4 添加权限

1.5 在模拟器上运行 2. 步骤详细说明

2.1 创建新工程

在Eclipse主界面下,选择菜单选项“文件”?“新建”?“其他”,选择Android Project后点“下一步”,在新项目属性界面填写: Project name : QueyrWeather。 Application name : 查询天气。 Package name: com.querrweather。 选择安卓2.2。

Min SDK version:8。

点击“完成”按钮后,得到新工程结构如下:

2.2 导入jar包

1.在上面的项目结构中右键点击项目名称,在弹出的功能菜单中选择“属性”,进入属性设置界面;

点击“Java构建路径”选项,显示出对应界面; 在右边的按钮中点击“添加库”; 选择“用户库”,点击“下一步”; 点击“用户库”按钮;

在出现的界面中点击“新建”按钮;

在弹出的界面中起一个名字,比如叫“weatherjar”,点击“确定”;

点击“添加Jar..”按钮选择weather.jar包,点击一系列“确定”或“完成”按钮完成“Java构建路径”中的设置;

2.在项目根目录下新建一个lib文件夹; 把weather.jar文件复制进lib文件夹中;

在lib文件目录上点右键,选择“构建路径”?“用作源文件夹”。 2.3 UI设计

选择res文件夹?layout?main.xml

双击main.xml或是右键点main.xml选择“打开方式”?“Android Layout Editor”进入布局编辑器界面:

1.清除无用组件,点击“Hello World,QueryActivity!”这行字,右键弹出菜单,选择“删除”。

2.右键点击布局编辑器中黑屏位置(其实是一个布局组件),选择“Edit ID”。 在弹出对话框中,给刚才选的布局组件起一个名字,比如叫“layout”。

3.从编辑器左侧导航栏中选择EditText组件拖到黑屏中,如果拖错了组件,可以在黑屏中选中组件,按键盘上的del键删除掉。

选择黑屏中的EditText组件,右键点击,选择Edit Text。 在弹出的对话框中选择“New String”,定义一个字符串常量,以便后面给EditText引用: 在弹出的下图对话框中定义一个字符串常量,比如常量的名称为“str1”,内容为“城市名称”。

定义好后点击“确定”返回上个对话框,再点击“确定”为EditText组件设置上面显示的文字。

4.同样的操作再在黑屏上添加一个Button组件,为了美观,将其宽度设置为“Match Parent”以占据整个屏幕宽度。

上面也定义出显示文字,比如“查询”: 5.按Ctrl+S键保存UI设计结果。 2.4 添加权限

1.双击项目结构中的“AndroidManifest.xml”文件或右键点击它选择“打开方式”?“Android Manifest Editor”,显示项目配置文件界面:

单击上图中的“Permissions”进入权限编辑界面: 点击“Add…”按钮,选择“Uses Permission”,点击“OK”,即为添加一项权限。 在界面右侧下拉框中选择“android.permission.INTERNET”项,添加了此项权限才能在程序中使用互联网。

2.按Ctrl+S键保存添加权限结果。 2.5 在模拟器上运行 选中项目结构中的“QueryWeather”项目名称,右键点击,选择“运行方式”?“Android Application”。

点击EditText输入框,会弹出软键盘,使用退格键可以删除里面预设的文字,输入城市名称或汉语拼音的全拼字母(比如:“邯郸”或“handan”都可以)后,点击“查询”按

钮进行查询。 显示结果如下:

如果输入框中输入错误字符,则点击查询按钮后会弹出对话框提示错误,点击对话框的按钮后可以重新输入:

更多相关推荐:
安卓课程设计报告

安卓课程设计班级09级计算机二班学号20xx7923姓名郭丹1目录第1章安卓应用程序开发背景311开发背景312开发环境4第2章第3章313233第4章安卓应用程序开发理论与方法4计算器应用程序的设计与实现6拟...

Android课程设计报告模板

移动互联网开发课程设计报告学生姓名学号专业计算机科学与技术班级设计题目学年学期季学期指导教师张华目录示例一二三1234四五设计题目1设计目的1设计原理及方案1使用的软件工具和环境1需求分析与概要设计1数据库设计...

安卓贪吃蛇课程设计报告

辽宁科技大学新技术专题报告设计题目学院系专业班级学生姓名指导教师成绩安卓手机游戏贪吃蛇电信学院计算机科学与技术计算机091刘帅龙艳彬滕薇20xx年7月1日目录第一章绪论311开发背景3111安卓系统简介3112...

安卓android课程设计报告

湘潭大学课程设计报告课程课题指导名称手机安卓开发名称天气预报APP老师周唯姓名黄柳学号20xx600719班级12计2班小组棒棒糖时间20xx年1月26日一需求分析一引言1编写目的11为用户提供一个显示天气预报...

Android课程设计报告

移动应用技术课程设计报告题目基于Android的金源书店库存管理系统的开发与设计学生姓名专业信息管理与信息系统班级指导教师信息管理与工程系20xx年5月28日信息管理与工程系课程设计基于Android的金源书店...

安卓课程设计报告

安卓学生姓名学号专业班级设计题目学年学期指导教师课程设计简易计算器20xx20xx学年第一学期日期1签名目录第1章安卓应用程序开发背景错误未定义书签11开发背景错误未定义书签12开发环境错误未定义书签第2章安卓...

Android课程设计报告

目录1系统概述22系统功能分析221主页222文件管理323分类管理43主要模块实现431快速进入432文件管理533分类管理94系统测试1041按钮和checkbox关系的测试1142expandableli...

安卓课程设计

移动通信课程设计题目联系人管理姓名学号院系专业指导教师二一二年六月五日1联系人管理1概述11设计平台介绍Android是Google推出的开源手机操作系统它基于Linux平台由操作系统中间件用户界面和应用软件组...

安卓课程设计

黑龙江科技大学计算机与信息工程学院JAVA网络编程课程报告班级软件131学号20xx02526207姓名刘凯强授课教师马晓梅实验成绩1一设计内容一个简单的音乐播放app这个app实现了点击本地音乐跳转到播放界面...

安卓课程设计报告

安卓课程设计报告设计题目五子棋目录一需求分析2二功能模块2三界面设计3四分工说明5五所遇到的问题5六代码注释6一需求分析网络技术的日新月异让世界惊叹高速发展的网络技术和日渐成熟的3G网络让越来越多的用户沉浸在手...

Android课程设计报告

Android课程设计报告仿微信学号120xx45131姓名陈红飞班级B12计信指导老师刘云玉老师目录第一章概述111课题背景2第二章设计项目与实现421欢迎界面5211界面布局6212功能实现722登录界面9...

android课程设计报告

目录1概述12项目设计与实现121欢迎界面1211界面布局1212功能实现222登陆界面2221界面布局2222功能实现223微信显示界面4231界面布局4232功能实现424主界面5241界面布局5242功能...

安卓课程设计报告(35篇)