安卓课程设计报告

目录

1.需求分析

1.1 UML用户需求用例图

1.2 用户用例分析说明

1.3 UML管理者需求用例图

1.4 管理者用例分析说明

2.系统设计

2.1 系统模块及功能图

2.2 UML时序图

2.3 UML类图

2.4 UML模块关系图

2.4 数据库设计

3.系统测试

3.1 功能模块测试用例

3.2  测试结果

4.系统实现

4.1 核心模块界面及关键代码

5.技术说明

5.1应用技术与主要代码

6.项目总结

一、需求分析

需求的编写是为了研究影院售票系统软件的开发途径和应用方法。同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。本需求的购票人是与影院售票系统软件开发有联系的决策人,开发组成人员,扶助开发者以及软件校验者!

1.1 UML用户需求用例

顾客用例图

1.2 用户用例分析说明

1.简要说明:

本用例描述用户在影院系统查询电影与信息的过程

2.基本流:

1)购票者查看电影信息来确认电影的名字,封面,电影简介。

2)购票者查看自己的优惠券与优惠码。

3)购票者查看自己的订单与钱包。

4)购票者查看自己的商城、电影票、活动。

5)购票者在我的页面向客服中心投诉等

6)用户在设置里退出登录

3.备选流:无

4.特殊要求:无

5.前置条件:执行“登录”用例

6.扩展点:无

7.相关数据:电影信息

1.3 UML管理者需求用例图

1.4 管理人员用例分析说明  

1.简要说明 

本用例描述管理人员管理电影院的过程 

2.基本流:  

1.管理人员在数据服务器上管理电影信息(修改,添加,删除)

2.将管理人员所做的改动返回数据服务器            

3.系统保存管理人员所做改动,并备份原数据 

3.备选流:无

4.特殊要求:无

5.前置条件:执行“登录”用例

6.扩展点:无

7.相关数据:电影信息

二、系统设计

2.1系统模块及功能图

总体系统模块图

2.2 UML时序图

2.3 UML类图

系统类图

2.4 数据库设计

package com.example.film;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;

public class DbDataBase extends SQLiteOpenHelper implements BaseColumns{
    static String DB_NAME = "itcase.db";
    static int DB_VERSION = 1;
    static String TABLE_NAME = "mysql";
    static  String _NAME = "name";
    static String _PHONE= "phone";

public DbDataBase(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
    }

@Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

}

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

二、系统测试

3.1 功能测试用例

1、登录

· 使用合法的用户登录系统

· 系统是否允许多次非法的登录,是否有次数限制

· 使用已经登录的账号登录系统是否正确处理

· 用户名、口令(密码)错误或漏填时能否登陆

· 登陆后,页面中登录信息

2、忘记密码

·忘记密码按钮是否可用

·点击按钮后是否可以正常跳转页面

·发送短信是否可以正常调用

3、电影列表展示页面

1)页面能否正常跳转

2)电影信息能否正常展示

3)能否滑动查看

4、底部导航按钮

1)按钮是否可以点击

2)是否可以正确跳转页面

5、票夹

1)能否正常展示页面

2)能否使用数据库进行增删改查

3)增删改查按钮是否可行

4)能否正常运行

6、我的页面

1)我的订单页面跳转测试

2)我的钱包页面跳转测试

3)客服中心页面跳转测试

4)设置页面跳转测试

7、退出登录

1)能否正确运行退出按钮

2)能否正确退回登录页面

3.2 测试结果

1、登录

2、忘记密码

3、电影列表展示页面

4、底部导航按钮

5、票夹

6、我的页面

7、退出登录

二、系统实现

核心模块界面关键代码

1)登录页面

package com.example.film;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    private Button but;//创建一个按钮对象,导入包
    private Button btn;
    private EditText et1;
    private EditText et2;
    @Override

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //对but进行实例化
        but=(Button)findViewById(R.id.button1);
        btn=(Button)findViewById(R.id.button2);
        //创建but的单击事件,参数要传匿名内部类
        et1=(EditText)findViewById(R.id.editText1);
        et2=(EditText)findViewById(R.id.editText2);
        but.setOnClickListener(new OnClickListener(){

@Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //测试使用System.out.println("hello..........");
                //要成功进行跳转到intent这个对象
                //第一个参数是原来的类,出发站以.this结尾
                //第二个参数是要跳转的类,结束站以class结尾
                //Intent in=new Intent(MainActivity.this,SecActivity.class);
                //startActivity(in);
                String  username=et1.getText().toString();
                String  pwd=et2.getText().toString();
                if(username.equals("djp")&&pwd.equals("3692369")){
                    //密码确认
                    Intent in=new Intent(MainActivity.this,FilmActivity.class);
                    startActivity(in);}
            }

});
        btn.setOnClickListener(new OnClickListener(){

@Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent in2=new Intent();//创建意图对象
    /* 打电话
            in2.setAction(Intent.ACTION_CALL);指定意图动作
            in2.setData(Uri.parse("tel:5556"));
            startActivity(in2);启动意图*/
                //发短信
                in2.setAction(Intent.ACTION_SENDTO);
                in2.setData(Uri.parse("smsto:10086"));
                in2.putExtra("sms_body", "password");
                startActivity(in2);//=MainActivity.this.startActivity(in2)


            }

});
    }//onCreat.


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

2)退出登录

package com.example.film;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main9Activity extends AppCompatActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main9);
        Button btn11 = (Button) findViewById(R.id.btn11);
        btn11.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(Main9Activity.this, MainActivity.class);
                startActivity(i);
            }
        });
    }
}

3)电影展示页面

package com.example.film;

import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import com.example.film.adpter.FilmAdpter;
import com.example.film.entity.Film;

import java.util.ArrayList;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    private List<Film> consList = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initData();
        Toast.makeText(this,consList.size()+"",0).show();

FilmAdpter adapter = new FilmAdpter(Main2Activity.this, R.layout.list_item, consList);
        //获取ListView
        ListView listView = (ListView) findViewById(R.id.listView);
        //给ListView设置适配器
        listView.setAdapter(adapter);
    }

private void initData(){
        Film yewen4 = new Film(1,"《叶问4》","该片讲述了因故来到美国唐人街的叶问,意外卷入一场当地军方势力与华人武馆的纠纷,叶问挺身而出,向世界证明了中国功夫。", R.drawable.yewen);
        consList.add(yewen4);

}

}

4)首页

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夹");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };

5)票夹

public class Main5Activity extends Activity implements View.OnClickListener  {

private ContactDao mContactDao;
    private Button mBtnadd;
    private Button mBtnupdata;
    private Button mBtnquery;
    private Button mBtndelete;
    private EditText mName;
    private EditText mPhone;
    private TextView mTv;
    private String name="";
    private String phone="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContactDao = new ContactDao(this);
        init();
        mTv.setText(mContactDao.Select(name));

}
    private void init() {
        mName = (EditText) findViewById(R.id.name);
        mPhone = (EditText) findViewById(R.id.phone);
        mBtnadd =(Button) findViewById(R.id.btn_add);
        mTv = (TextView) findViewById(R.id.tv);
        mBtnupdata =(Button) findViewById(R.id.btn_updata);
        mBtnquery =(Button) findViewById(R.id.btn_query);
        mBtndelete =(Button) findViewById(R.id.btn_delete);
        mBtnadd.setOnClickListener(this);
        mBtnupdata.setOnClickListener(this);
        mBtnquery.setOnClickListener(this);
        mBtndelete.setOnClickListener(this);
    }

6)我的页面

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_other);
    Button btn5 = (Button) findViewById(R.id.btn5);
    Button btn6 = (Button) findViewById(R.id.btn6);
    Button btn7 = (Button) findViewById(R.id.btn7);
    Button btn8 = (Button) findViewById(R.id.btn8);
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main7Activity.class);
            startActivity(i);
        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main4Activity.class);
            startActivity(i);
        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main8Activity.class);
            startActivity(i);
        }
    });

btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(otherActivity.this, Main9Activity.class);
            startActivity(i);
        }
    });

7)我的钱包

<Button
    android:id="@+id/btn9"
    android:layout_width="0dp"
    android:layout_height="61dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="65dp"
    android:layout_marginRight="65dp"
    android:text="优惠券"
    app:layout_constraintEnd_toStartOf="@+id/btn10"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/imageView9"
    android:layout_width="414dp"
    android:layout_height="721dp"
    android:layout_marginStart="1dp"
    android:layout_marginLeft="1dp"
    android:layout_marginTop="15dp"
    android:layout_marginEnd="1dp"
    android:layout_marginRight="1dp"
    android:layout_marginBottom="15dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.545"
    app:srcCompat="@drawable/qian" />
<Button
    android:id="@+id/btn10"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="会员卡"
    app:layout_constraintBottom_toBottomOf="@id/btn9"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/btn9"
    app:layout_constraintTop_toTopOf="@+id/btn9" />

8)我的订单

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);
    Button btn2 = (Button) findViewById(R.id.btn2);
    Button btn3 = (Button) findViewById(R.id.btn3);
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Main4Activity.this, Main3Activity.class);
            startActivity(i);
        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Main4Activity.this, Main6Activity.class);
            startActivity(i);
        }
    });

9)客服中心

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="91dp"
    android:text="顾客满意度调查" />

<Button
    android:id="@+id/button3"
    android:layout_width="match_parent"
    android:layout_height="78dp"
    android:text="智能客服" />

<Button
    android:id="@+id/button4"
    android:layout_width="match_parent"
    android:layout_height="82dp"
    android:text="投诉建议" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="match_parent"
    android:layout_height="38dp"
    android:text="  院线客服统一热线     400-080-6060"
    android:textAppearance="@style/TextAppearance.AppCompat.Large" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="match_parent"
    android:layout_height="41dp"
    android:text="  全国统一投诉热线     400-009-5066"
    android:textAppearance="@style/TextAppearance.AppCompat.Large" />

五.技术说明

1、UI设计

主要代码:

package com.example.film;

import android.os.Bundle;
import android.content.Intent;
import com.google.android.material.bottomnavigation.BottomNavigationView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.annotation.NonNull;

import android.view.MenuItem;
import android.widget.TextView;

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夹");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_film);
        BottomNavigationView navView = findViewById(R.id.nav_view);
        mTextMessage = findViewById(R.id.message);
        navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
    }

2、Activity组件的应用

 

主要代码

public class FilmActivity extends AppCompatActivity {
    private TextView mTextMessage;

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText(R.string.title_home);
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText(R.string.title_dashboard);
                    intent = new Intent(FilmActivity.this,Main2Activity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_piaojia:
                    mTextMessage.setText("票夹");
                    intent = new Intent(FilmActivity.this,Main5Activity.class);
                    startActivity(intent);
                    return true;

case R.id.navigation_notifications:
                    mTextMessage.setText(R.string.title_notifications);
                    intent = new Intent(FilmActivity.this,otherActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }
    };

3、ListView的使用

主要代码:

public class Main2Activity extends AppCompatActivity {
    private List<Film> consList = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initData();
        Toast.makeText(this,consList.size()+"",0).show();

FilmAdpter adapter = new FilmAdpter(Main2Activity.this, R.layout.list_item, consList);
        //获取ListView
        ListView listView = (ListView) findViewById(R.id.listView);
        //给ListView设置适配器
        listView.setAdapter(adapter);
    }

private void initData(){
        Film yewen4 = new Film(1,"《叶问4》","该片讲述了因故来到美国唐人街的叶问,意外卷入一场当地军方势力与华人武馆的纠纷,叶问挺身而出,向世界证明了中国功夫。", R.drawable.yewen);
        consList.add(yewen4);

}

}

4、ListView适配器的使用:

主要代码:

package com.example.film.adpter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.film.entity.Film;

import java.util.List;

import com.example.film.R;
public class FilmAdpter extends ArrayAdapter{
    private int resourceId;
    //参数1:当前Activity,参数2:layout文件的id,参数3:业务数据(List)
    public FilmAdpter(Context context, int resource, List objects) {
        super(context, resource, objects);
        resourceId = resource;
    }

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //获取当前项的实体类对象
        Film cons= (Film) this.getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceId,null);
        //获取布局内的控件
        ImageView consImage = (ImageView)view.findViewById(R.id.itemImage);
        TextView consName = (TextView)view.findViewById(R.id.itemName);
        TextView content = (TextView)view.findViewById(R.id.itemContent);
        //为布局内的控件设置实体对象中的数据
        consImage.setImageResource(cons.getImgId());
        consName.setText(cons.getConName());
        content.setText(cons.getContent());
        //将适配好的ListView返回
        return view;
    }
}

2、File存储

主要代码:

private ContactDao mContactDao;
private Button mBtnadd;
private Button mBtnupdata;
private Button mBtnquery;
private Button mBtndelete;
private EditText mName;
private EditText mPhone;
private TextView mTv;
private String name="";
private String phone="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mContactDao = new ContactDao(this);
    init();
    mTv.setText(mContactDao.Select(name));

}
private void init() {
    mName = (EditText) findViewById(R.id.name);
    mPhone = (EditText) findViewById(R.id.phone);
    mBtnadd =(Button) findViewById(R.id.btn_add);
    mTv = (TextView) findViewById(R.id.tv);
    mBtnupdata =(Button) findViewById(R.id.btn_updata);
    mBtnquery =(Button) findViewById(R.id.btn_query);
    mBtndelete =(Button) findViewById(R.id.btn_delete);
    mBtnadd.setOnClickListener(this);
    mBtnupdata.setOnClickListener(this);
    mBtnquery.setOnClickListener(this);
    mBtndelete.setOnClickListener(this);
}

static String DB_NAME = "itcase.db";
static int DB_VERSION = 1;
static String TABLE_NAME = "mysql";
static  String _NAME = "name";
static String _PHONE= "phone";

public DbDataBase(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

 

3、SQLite数据库

主要代码:

package com.example.film;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class ContactDao {

private static DbDataBase mDbDataBase;

public ContactDao(Context c){
        mDbDataBase = new DbDataBase(c);
    }
    public static boolean Insert(String name ,String phone) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//       db.insert(table, nullColumnHack, values) 三个参数 分别是表名 返回的是一个 插入字段的id 但插入错误的时候 返回的时候-1
//         nullColumnHack 比如 放了 username 那么usename 就不得为空 如果为空 那么就有字段可以为空
//          valuse 是一个     ContentValues values = new ContentValues(); 一个对象 向里面填要填加的数据
        ContentValues values = new ContentValues();
        values.put(DbDataBase._NAME, name);
        values.put(DbDataBase._PHONE, phone);
        long InsertId = db.insert(DbDataBase.TABLE_NAME, null, values);
        return InsertId!=-1;
    }
    public static boolean Updata(String name,String phone) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//      db.update(table, values, whereClause, whereArgs); 四个参数  前两个同上 返回的是修改的那条数据的id 要是修改出错是 id=0
//         后两个whereClause 是sql语句中的where 语句   whereArgs是 where语句绑定值 where语句绑定值 new String[]{username}
        ContentValues values = new ContentValues();
        values.put(DbDataBase._PHONE, phone);
        int Uqdata =db.update(DbDataBase.TABLE_NAME, values, DbDataBase._NAME+"=?",  new String[]{name});
        return Uqdata>0;
    }
    public static boolean Delete(String name) {
        SQLiteDatabase db = mDbDataBase.getWritableDatabase();
//      db.delete(table, whereClause, whereArgs) 三个参数 同上; 返回的是删除的那个id 要是删除出错 返回 0
        int DeleteID =db.delete(DbDataBase.TABLE_NAME, DbDataBase._NAME+"=?", new String[]{name});
        return DeleteID>0;
    }
    public static String Select (String name) {
        SQLiteDatabase db=mDbDataBase.getReadableDatabase();
//      db.query(table, columns, selection, selectionArgs, null, null, null); 后三参数个为空
//         第一个是表名 第二个是 返回的数据 第三个 查询条件  第四个是查询条件的值
        Cursor cusor = null;
        String text ="";

cusor = db.query(DbDataBase.TABLE_NAME, null, null, null, null, null, null);

//          cusor = db.query(DbDataBase.TABLE_NAME, new String[] {DbDataBase._NAME,DbDataBase._PHONE},
//                  DbDataBase._NAME+"=?",new String[]{name}, null, null, null);

        while (cusor.moveToNext()){
            int nameIntdex = cusor.getColumnIndex(DbDataBase._NAME);
            text+=("name: "+cusor.getString(nameIntdex)+"\n");
            int phoneIndex = cusor.getColumnIndex(DbDataBase._PHONE);
            text+=("phone: "+cusor.getString(phoneIndex)+"\n");
        }
        return text;

}

public class DbDataBase extends SQLiteOpenHelper implements BaseColumns{

static String DB_NAME = "itcase.db";
    static int DB_VERSION = 1;
    static String TABLE_NAME = "mysql";
    static  String _NAME = "name";
    static String _PHONE= "phone";

public DbDataBase(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
    }

@Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table "+TABLE_NAME+"("+_ID+" integer primary key autoincrement,"+_NAME+" text ,"+_PHONE+" text)");

}

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

 六.项目总结

在课程设计的过程中,我遇到了很多问题,通过查阅参考书和老师的指导,都得到了解决。这不仅仅锻炼了我分析问题和解决问题的能力,也使我意识到自己对知识的了解程度远了,知识的缺乏也在很多方面。以后我一定会努力提高自己的理论水平,同时尽可能多地读一些科学书籍,提高自己的理论水平和动手实践能力。由于时间的限制,解决这个问题和本文不能被称为完美。在许多地方还有待阐述,修改和完善

附录:

一、清单文件

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.film">

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Main2Activity"></activity>
        <activity android:name=".Main10Activity" />
        <activity android:name=".Main9Activity" />
        <activity android:name=".Main8Activity" />
        <activity android:name=".Main7Activity" />
        <activity android:name=".Main5Activity" />
        <activity android:name=".Main6Activity" />
        <activity android:name=".Main4Activity" />
        <activity android:name=".Main3Activity" />
        <activity
            android:name=".FilmActivity"
            android:label="@string/title_activity_film" />
        <activity android:name=".otherActivity" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

、布局文件目录

 

 

原文地址:https://www.cnblogs.com/369236941jp/p/12000157.html

时间: 2024-08-07 16:08:19

安卓课程设计报告的相关文章

安卓课程设计:微课表

该程序为本人安卓课程设计实验. 包含四个Activity:启动页.登录页.课表页.添加页. 自带db文件,运行时自动复制到sdcard中. 程序布局不是原创,登录布局为仿微信界面,课表布局来源于网络,稍作改动. 本人一直认为,在不侵犯他人权益的情况下,使用网络资源是正确的做法. 需要源码的朋友,可以到我的GitHub下载. 直接上图: 1.启动页 2.登录页 3.课表页 4.添加页

计算机组成原理 课程设计报告

        计算机组成原理 课程设计报告      成员:许恺   2014011329          胡强勇  2014011315     时间:2016.12.20                 一.简要总结计算机组成原理实验 计算机组成原理实验总共五个实验,首先我们熟悉了教学机的使用方法,后面的实验我们分为运算器.存储器.控制器,控制器分为两次实验.紧接的第二次实验我们就进行了运算器的实验,对运算器的内部构造极其原理进行了验证理解,在这里我们学习了运算器ALU的8种运算功能,以

Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码

课程设计报告一:个人银行账户管理系统 此文档及源码仅供参考 不得直接复制使用 author: [xxxxxxxxx xx xxxx] date: "2019-04-12" 作 者:31415926535x 出 处:https://www.cnblogs.com/31415926535x/p/10697659.html 版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本. 不建议直接复制文档.源码,没意义,这东西还是自己手敲一下才能涨经验 项目所有的内容都已上

2019春 第三次课程设计报告

2019春 第三次课程设计报告 一,实验项目名称 利用easyX插件完成的时钟 二,实验项目功能描述 实现将时间显示为时钟 三,项目模块结构介绍 只有一个游戏主题,即时钟.cpp 四,实现界面展示 五,代码托管链接 https://gitee.com/zhuwanxing/zwxc 六,实验总结 这次是使用vs,用easyX插件来完成图像显示,在使用vs的时候出现了不少问题,但是都用百度搞定了,vs无法直接使用,要在调试-属性-c/c++-预处理器 输入 _CRT_SECURE_NO_WARNI

校园宿舍管理系统课程设计报告

课程设计报告 学    号   201610411418  /  2016104114122 姓    名   吴帝勇 /谢志良 班    级   16计科4班 题    目   校园宿舍管理系统 授课老师    袁飞 目录 第一章系统概述..............................................................................................................................1 1.

软件课程设计报告

南 京 理 工 大 学 课程设计说明书 组员 : 刘雨薇 学 号: 914106840606   张钰 914106840310   张欢欢 914106840509   彭姿容 914106840501 学院(系): 计算机科学与工程学院 专业 计算机科学与技术专业 题目 计算机网络课程测试系统       2016 年   11 月 目录 一.概述 ·················································3 二.需求分析···············

南理工14级第4组软件课程设计报告

南 京 理 工 大 学 课程设计说明书 作  者: 高明 学 号: 914106840518   刘建平   914106840526   王金   914106840234   王琪栋   914106840235   雷杨   914106840618 学院(系): 计算机科学与技术学院 专  业: 计算机科学与技术 题  目: 离散课程练习测验系统   2016年    10月 目录 一.概述 ················································

.NET课程设计报告

一.设计题目: 公司员工管理系统 二.设计意义: 通过此次课程设计,让我们进一步了解c#应用程序开发的过程,同时也让我们对前面所学的知识付出实践,达到熟练掌握.综合性应用的目的. 三.设计内容: 1.项目分析: 1) 员工信息管理 2) 员工考勤管理 2.项目设计 首先,我们必须建立一个登录系统和八个子系统. 登录系统:用户在登陆后可以进行权限操作管理. 员工信息管理系统:对员工信息进行查询.修改.添加.删除. 员工考勤管理系统:对员工考勤信息进行查询.修改.添加.删除. 使用SQL SERVE

在线抢购平台_课程设计报告

第1章 概述 1.1 课程设计的核心任务 需求分析.可行性分析.E-R图.关系图.系统架构图等的编写 总体设计.详细设计.代码实现 项目测试 本系统: 后端采用SSM(Spring+SpringMVC+MyBatis)的架构,实现RESTful API 接口,前端采用react进行前后端分离设计,完成商品在线系统. 1.2 课程设计工作进程 已经完成,用户登录注册,商品的添加,活动促销的添加,商品的查看与秒杀. 后续继续完成,订单页面的优化与完成,针对高并发下单任务的处理,针对用户重复秒杀商品的