标签:个学生 star 设计 根据 finish OLE 增删改 rate das
目录
学生信息存储系统的设计与实现 1
一、摘要: 1
二、 需求分析 2
2.1可行性分析 2
2.1.1 2
2.1.2 2
2.2 需求分析 2
2.2.1 2
2.2.2 2
三、 总体设计 2
3.1系统功能结构图 3
3.2UI设计图 4
3.3数据库存储 5
3.3.1添加信息(学生信息和账号密码) 5
3.3.2删除信息 6
3.3.3修改信息 6
四、 系统测试 7
4.1登录注册(可存储账号密码) 7
4.2添加信息 8
4.3删除信息 9
4.4修改信息 9
4.5查询信息 11
五、 系统实现 11
5.1代码 11
5.1.1类代码 11
5.1.2布局代码 11
5.1.3类说明 12
5.1.4关键代码 17
六、 心得与体会 23
随着互联网时代的迅速发展,人们的生活质量越来越高,工作越来越便利,生活方式和思想方式都发生了巨大的变化。
信息技术的飞速发展不仅为人类的生活提供了便利,也为我们的各种日常工作提供了更加快捷、有效的途径。如今,教育成为国家的发展之根本,学校成为了我们生活中的第二个家,随着人口的不断增长和对国家对于教育事业的重视,学生数量与日俱增,使得对学生信息的管理越来越难,也正因为这样,创建一个学生信息存储系统成为了当代学校的必要部分,可以更有效的提高工作效率。本文介绍了一个基于Android自主研发的学生信息系统,该系统可在移动平台上使用,也就是我们的生活必需品——手机,因此更加便捷。
该系统可以存储学生的信息,并对学生的信息进行增加、删除、修改、查寻信息等管理操作,每个学生用户都可以建立自己的账号,非常的便捷、安全和稳定。
2.1.1技术可行性分析:合理的开发一个学生信息存储系统,对学生信息进行合理的管理操作在技术上是可行的
2.1.2 经济可行性分析:个人研究技术与开发Android平台是免费的,经济可行
2.2.1特性需求分析
1)容易操作,简单便捷
2)功能俱全
3)软件易维护
2.2.2功能需求分析
1)用户可以对对信息进行增加、删除、修改、查询的功能
2)设立自己的账号密码
1)用户通过登录自己的用户名进入学生信息系统,没有的话进去注册页面,注册成功直接进入添加页面。
2)学生用户可以在添加页面,添加自己的名字、性别、年龄、专业、大学和添加信息的时间。
3)添加成功后进去到菜单页面,菜单页面会显示学生的信息,学生的信息可以随时删除,修改,当信息量多的时候,可以根据你输入搜索框的关键字搜索到学生信息,并显示条数
);
删除了一条信息
学校全部改成沈阳科技学院
注册了一个用户名为 郭少锋
密码为123456的账号
登录用户名密码直接登陆成功,经过测试注册成功
经过测试,可以添加信息
经过测试,可以修改信息
经测试可以查询信息
图片在上述UI设计图中
1.第一个类是登录类 定义两个Button和两个EditText,给Button按钮设置监听,利用swich case 实施对两个Button的功能定义,并使用intent使得跳转注册页面。
2.第二个类是注册类,同上定义空间,使用if else进行功能定义,使用intent跳转添加页面。 DBop dBop = new DBop(); dBop.test(zhuce.this);
定义新对象调用text完成注册并存储。
3.这里用user类对用户名和密码进行定义和获取,package com.example.tian;
//获取用户名和密码
public class User {
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
private String userName;
private String passWord;
}
4.添加类,定义学生信息并定义数据库以及对listview的使用,DBop dbop = new DBop();
List<student> studentlist = new ArrayList<student>();//ListView适配器 设置Adapter
SQLite mySQLite = new SQLite(tianjia.this, 1); //定义数据库
并用swich case 定义功能并跳转菜单
5.菜单类 swich case 定义查询跳转类 DBop dbOperate=new DBop();
6.查询类 if else 定义功能跳转返回菜单
7.SQLite类 public class SQLite extends SQLiteOpenHelper {
public SQLite(Context context,int version) {
super(context, "stu2.db", null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table students(\n"+
"id integer primary key autoincrement,\n"+
"name text,\n"+
"sex text,\n"+
"age integer,\n"+
"academy text,\n"+
"major text\n,"+
"date text\n"+
");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//数据库的创建 stu.db
//建表格式 students 名字 性别 年龄 大学 专业 日期
//数
8. student类同user一样定义获取学生信息
//获取学生信息 编号 名字 专业 年龄 大学 日期
public int getId()
{return id;}
public void setId(int id)
{
this.id=id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getAge() {
return age;
}
public void setAge(String sex) {
this.age = sex;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAcademy() {
return academy;
}
public void setAcademy(String academy) {
this.academy = academy;
}
public void setDate(String date) {
this.date = date;
}
public String getDate() {
return date;
}
public student(String n, String s, String a, String aca,String m, String t) {
name = n;
major = m;
age = a;
sex = s;
academy = aca;
date = t;
}
public student(int i, String n, String s, String a, String aca,String m, String t) {
id=i;
name = n;
major = m;
age = a;
sex = s;
academy = aca;
date = t;
}
public student(String n, String s, String a) {
name = n;
sex = s;
age = a;
}
}
并对其他类的listview显示提供
数据库操作类,public void insert(student s){
int age=Integer.parseInt(s.getAge());
database.execSQL("insert into students values(?,?,?,?,?,?,?" +
")",new Object[] {null,s.getName(),s.getSex(),age,s.getAcademy(),s.getMajor(),s.getDate()});
System.out.println("插入数据成功");
}
public void insertUser(User user){
String stu_table="create table if not exists user(id integer primary key autoincrement,username text,password text)";
database.execSQL(stu_table);
database.execSQL("insert into user values(?,?,?" +
")",new Object[] {null,user.getUserName(),user.getPassWord()});
System.out.println("插入数据成功");
}//插入学生信息和用户名密码
public Boolean queryUser(User user){
String stu_table="create table if not exists user(id integer primary key autoincrement,username text,password text)";
database.execSQL(stu_table);
Cursor cursor=database.rawQuery("select * from user where username = ? and password= ?",new String[]{user.getUserName(),user.getPassWord()});
return cursor.getCount() > 0?true:false;
}
//判定格式对错
public void update(student s){
Integer I=new Integer(s.getId());
ContentValues values = new ContentValues();
values.put("name",s.getName());
values.put("major",s.getMajor());
values.put("age",s.getAge());
values.put("sex",s.getSex());
values.put("academy", s.getAcademy());
values.put("date",s.getDate());
String whereClause = "id=?";
String[] whereArgs={String.valueOf(I)};
database.update("students",values,whereClause,whereArgs);
}
public void update(student s){
Integer I=new Integer(s.getId());
ContentValues values = new ContentValues();
values.put("name",s.getName());
values.put("major",s.getMajor());
values.put("age",s.getAge());
values.put("sex",s.getSex());
values.put("academy", s.getAcademy());
values.put("date",s.getDate());
String whereClause = "id=?";
String[] whereArgs={String.valueOf(I)};
database.update("students",values,whereClause,whereArgs);
}
//数据库更新
等一系列操作判定
10.修改类 同添加类用swich case完成功能定义
if (altStu != null) {
altStu.setName(name);
altStu.setSex(sex);
altStu.setAge(age);
altStu.setMajor(major);
altStu.setDate(date);
altStu.setAcademy(aca);
dBop.update(altStu);
}
并进行数据更新
跳转:
Intent intent2 = new Intent(this,zhuce.class);
startActivity(intent2);
break;
//登录界面点击注册按钮实现到注册页面的转换
Toast.makeText(zhuce.this,"注册成功",Toast.LENGTH_SHORT).show();
Intent intent1 = new Intent(zhuce.this, tianjia.class);
startActivity(intent1);
//注册成功跳转添加学生信息页面
intent.putExtra("students", (Serializable) studentlist);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(tianjia.this, caidan.class);
startActivity(intent);//跳转到列表页面
intent.setClass(this, chaxun.class);
intent.putExtra("searchKey", search);
startActivity(intent);//跳转到查询类
Intent intent=new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(this,caidan.class);
startActivity(intent);//查询到的结果返回到菜单页面
intent.setClass(this, caidan.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();//修改信息跳转菜单
学生信息和用户名账号信息的的定义和获取:
//获取学生信息 编号 名字 专业 年龄 大学 日期
public int getId()
{return id;}
public void setId(int id)
{
this.id=id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getAge() {
return age;
}
public void setAge(String sex) {
this.age = sex;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAcademy() {
return academy;
}
public void setAcademy(String academy) {
this.academy = academy;
}
public void setDate(String date) {
this.date = date;
}
public String getDate() {
return date;
}
public class User {
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
SQLite数据库:
public class SQLite extends SQLiteOpenHelper {
public SQLite(Context context,int version) {
super(context, "stu2.db", null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table students(\n"+
"id integer primary key autoincrement,\n"+
"name text,\n"+
"sex text,\n"+
"age integer,\n"+
"academy text,\n"+
"major text\n,"+
"date text\n"+
");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//数据库的创建 stu.db
//建表格式 students 名字 性别 年龄 大学 专业 日期
//数据库更新
DBop dBop = new DBop();
dBop.test(denglu.this);
DBop dBop = new DBop();
dBop.test(zhuce.this);
SQLite mySQLite = new SQLite(tianjia.this, 1); //定义数据库
private void test() {
SQLite mySQLiteAccess = new SQLite(this, 1);
mySQLiteAccess.getReadableDatabase();
}
DBop dbOperate=new DBop();
public class DBop {
private SQLite mySQLiteAccess;
private SQLiteDatabase database;
public void test(Context context){
mySQLiteAccess=new SQLite(context,3);
database=mySQLiteAccess.getReadableDatabase();
}
public void insert(student s){
int age=Integer.parseInt(s.getAge());
database.execSQL("insert into students values(?,?,?,?,?,?,?" +
")",new Object[] {null,s.getName(),s.getSex(),age,s.getAcademy(),s.getMajor(),s.getDate()});
System.out.println("插入数据成功");
}
public void insertUser(User user){
String stu_table="create table if not exists user(id integer primary key autoincrement,username text,password text)";
database.execSQL(stu_table);
database.execSQL("insert into user values(?,?,?" +
")",new Object[] {null,user.getUserName(),user.getPassWord()});
System.out.println("插入数据成功");
}
public Boolean queryUser(User user){
String stu_table="create table if not exists user(id integer primary key autoincrement,username text,password text)";
database.execSQL(stu_table);
Cursor cursor=database.rawQuery("select * from user where username = ? and password= ?",new String[]{user.getUserName(),user.getPassWord()});
return cursor.getCount() > 0?true:false;
}
//用户名和密码
public void update(student s){
Integer I=new Integer(s.getId());
ContentValues values = new ContentValues();
values.put("name",s.getName());
values.put("major",s.getMajor());
values.put("age",s.getAge());
values.put("sex",s.getSex());
values.put("academy", s.getAcademy());
values.put("date",s.getDate());
String whereClause = "id=?";
String[] whereArgs={String.valueOf(I)};
database.update("students",values,whereClause,whereArgs);
}
//建表,插入数据,更新数据库
ListView的使用(适配器的使用):
ListView studentlist;
private List<student> list = new ArrayList<student>();
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListView list = (ListView) parent;
student s = (student) list.getItemAtPosition(position);
String info = (String) s.getName() + "\n\n" + s.getAcademy();
Toast.makeText(caidan.this, info, Toast.LENGTH_SHORT).show();
}
private void showList(List<student> stus) {
Adapter studentAdapter = new Adapter(this, stus);
studentlist.setAdapter(studentAdapter);
}
}
List<student> searchList= dbOperate.searchByAll(searchKey);
if (!searchList.isEmpty()){
Adapter myAdapter=new Adapter(this,searchList);
lv_searchlist.setAdapter(myAdapter);
}
else
{
Toast.makeText(this,"无结果",Toast.LENGTH_SHORT);
}
}略
六、心得与体会
在本次课程设计的完成中,让我再次复习了一遍所学过的内容,也学会了很多课上忽略掉的一些知识和一些课上没有学到过的。课程设计非常锻炼一个学生的专业能力,可以培养我们的自我动手能力,不管是独立思考能力还是自学能力,总能收获许多。本次课设让我熟悉了SQLite增删改查的使用和ListView绑定适配器等很多知识,也大大提升了我对代码进行改错的能力,学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作,但也发现了一些自己的问题,例如查错效率低等问题都是要在以后需要改进的。
标签:个学生 star 设计 根据 finish OLE 增删改 rate das
原文地址:https://www.cnblogs.com/gsfwxj1820/p/12079545.html