本人这次与大家分享的是我自己做的一个数据库课程设计,是学生信息管理系统,使用SQLite来实现。
首先,用户有三个类型:学生,老师,管理员。
他们各自的功能模是:
|
学生
修改登陆密码,修改查看个人信息,查看并可以选择可以选修的课程,查看选修课程的成绩
老师
修改登陆密码,修改查看个人信息,给自己所在班级所对应的选修课程的学生录入成绩
管理员
修改登陆密码,修改查看个人信息,查看自己管理学院的所有学生部分信息,查看自己管理所在学院的所有老师信息
界面设置:
登陆界面:
代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="首次登陆是学号或者是教师号或者是管理员编号"
android:textColor="#000000"
android:textSize="18sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/userName_manager"
android:textSize="16sp" />
<EditText
android:id="@+id/allFrame_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/userName_manager01"
android:inputType="number"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/password"
android:textSize="16sp" />
<EditText
android:id="@+id/allFrame_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/password_manager"
android:inputType="textPassword"
android:textSize="16sp" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="load_allFrame"
android:text="@string/button_student" />
<RadioGroup
android:id="@+id/allFrame_rg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/studentFrame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="学生" />
<RadioButton
android:id="@+id/teacherFrame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="老师" />
<RadioButton
android:id="@+id/managerFrame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="管理员" />
</RadioGroup>
</LinearLayout
依次是学生老师管理员
这里的界面代码比较简单,就不一一叙述了。
设计完界面之后是数据库的设计,这里需要用到一个SQLiteOpenHelper的子类来实现数据库文件和数据库表的建立。
一定需要注意的是所有的数据库表一定需要放在同一个数据库文件中
详情可见Android中内置数据库SQLite详解三——补充,在这类中实现数据库文件和表的初始化,把各种需要的表建立出来。
代码是:
public class DataBaSEOpenHelper extends SQLiteOpenHelper
{
public DataBaSEOpenHelper (Context context)
{
super(context,"database.db",null,1);
}
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table course(courseid integer primary key autoincrement,name varchar(8) UNIQUE,time varchar(8))");
db.execSQL("create table allmanagermessage(managerid integer primary key autoincrement,"
+ "Mno varchar(10) UNIQUE,"
+ "name varchar(10) NOT NULL,"
+ "sex varchar(10) check (sex IN ('男','女')),"
+ "age varchar(2) not NULL," + "control_step varchar(20))");
db.execSQL("CREATE TABLE managerMessage(managerid integer primary key autoincrement,"
+ "name varchar(8) UNIQUE," + "password varchar(8))");
db.execSQL("create table allstudentmessage(studentid integer primary key autoincrement,"
+ "age integer,"
+ "Sno varchar(8) UNIQUE,"
+ "name varchar(10),"
+ "classIn varchar(8),"
+ "sex varchar(4),"
+ "step varchar(20),"
+ "qq varchar(10),"
+ "tel varchar(11),"
+ "address varchar(11),"
+ "stepIN varchar(10))");
db.execSQL("CREATE TABLE userMessage(studentid integer primary key autoincrement," + "password varchar(8))");
db.execSQL("create table allteachermessage(teacherid integer primary key autoincrement,"
+ "Tno varchar(10) UNIQUE,"
+ "Tname varchar(10),"
+ "Tage varchar(2),"
+ "Tsex varchar(4) check (Tsex IN('男',"
+ "T_Class varchar(20),"
+ "T_Class_name varchar(20),stepIN varchar(10))");
db.execSQL("CREATE TABLE teacherMessage(teacherid integer primary key autoincrement," + "password varchar(8))");
db.execSQL("create table dbS_C(s_cid integer primary key autoincrement,s_name,c_name,score)");
// "计算机网络","2——16",// "高等数学","1——9",// "数据结构","4——18",// "嵌入式系统设计","3——9",// "操作系统","2——20",// "Android开发","1——13"
String[] courseName = {"数据库系统概论","计算机网络","高等数学","嵌入式系统设计","数据结构","操作系统","Android开发"};
String[] courseTime = {"1——9","1——13"};
for (int i = 0; i < courseName.length; i++)//初始化课程表
{
db.execSQL("insert into course(name,time) values(?,?);",new Object[]{courseName[i],courseTime[i]});
}
}
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
{
}
}
未完待续。。。
源码下载地址:SQLite数据库课程设计
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!