在Androidstudio中设计一个简单学生选课系统并给出代码,在这个应用程序中有两个Activity界面,分别是对课程进行操作时的CourseActivity界面,以及对学生操作的PersonActivity界面。在CourseActivity界面可以对课程进行添加,删除以及跳转到PersonActivity功能,在PersonActivity中可以对person表数据进行增、删、改和查等操作,在这个工程中有两个实体类(Person.java、Course.java)和一个扩展类(Relation.java),Person.java类定义了学生的属性信息,Course.java类定义了课程的属性对象,而Relation.java类是学生和课程之间的关系类实现了学生和课程之间的多对多存储关系。三个类的属性定义如下,(1)person类的定义为:id(学生号),myname(学生名),myclass(学生班级),(2)Course类:id(课程号)、name(课程名)、obj(上课对象)、phone(班长电话),(3)Relation类:studentId(学生id)、courseId(课程Id)。定义三个数据表,表结构分别为:student表、course表、relations表,通过定义DBOpenHelper类继承SQLiteOpenHelper类来创建数据库,使用SQLite存储数据

时间: 2024-01-06 19:04:36 浏览: 30
在Android Studio中设计学生选课系统的步骤如下: 1. 创建新项目 在Android Studio中创建一个新项目,选择Empty Activity作为默认模板。 2. 定义实体类和扩展类 创建三个Java类:Person.java、Course.java和Relation.java,定义它们的属性和方法。其中,Person类包含id、myname和myclass三个属性,Course类包含id、name、obj和phone四个属性,Relation类包含studentId和courseId两个属性。 3. 创建数据库 在app包下创建一个名为DBOpenHelper.java的类,继承SQLiteOpenHelper类,并重写onCreate()和onUpgrade()方法。在onCreate()方法中创建student、course和relations三个表,并定义它们的字段。在onUpgrade()方法中更新表结构。 4. 创建CourseActivity和PersonActivity界面 在res/layout目录下创建两个XML布局文件:activity_course.xml和activity_person.xml,分别对应于CourseActivity和PersonActivity界面。在这两个布局文件中添加TextView、EditText、Button等控件,并设置它们的属性。 5. 编写Activity代码 创建CourseActivity和PersonActivity两个Java类,并继承AppCompatActivity类。在这两个类中,实现对数据库的增、删、改、查等操作,并将这些操作与界面上的控件进行绑定。在CourseActivity中,实现添加、删除课程和跳转到PersonActivity的功能,在PersonActivity中,实现对学生信息的增、删、改、查等操作。 最终的代码如下: Person.java ``` public class Person { private int id; private String myname; private String myclass; public Person(int id, String myname, String myclass) { this.id = id; this.myname = myname; this.myclass = myclass; } // getter and setter methods } ``` Course.java ``` public class Course { private int id; private String name; private String obj; private String phone; public Course(int id, String name, String obj, String phone) { this.id = id; this.name = name; this.obj = obj; this.phone = phone; } // getter and setter methods } ``` Relation.java ``` public class Relation { private int studentId; private int courseId; public Relation(int studentId, int courseId) { this.studentId = studentId; this.courseId = courseId; } // getter and setter methods } ``` DBOpenHelper.java ``` public class DBOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydb.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_STUDENT = "student"; private static final String COL_STUDENT_ID = "id"; private static final String COL_STUDENT_NAME = "myname"; private static final String COL_STUDENT_CLASS = "myclass"; private static final String TABLE_COURSE = "course"; private static final String COL_COURSE_ID = "id"; private static final String COL_COURSE_NAME = "name"; private static final String COL_COURSE_OBJ = "obj"; private static final String COL_COURSE_PHONE = "phone"; private static final String TABLE_RELATIONS = "relations"; private static final String COL_RELATIONS_STUDENT_ID = "studentId"; private static final String COL_RELATIONS_COURSE_ID = "courseId"; private static final String CREATE_TABLE_STUDENT = "CREATE TABLE " + TABLE_STUDENT + "(" + COL_STUDENT_ID + " INTEGER PRIMARY KEY," + COL_STUDENT_NAME + " TEXT," + COL_STUDENT_CLASS + " TEXT)"; private static final String CREATE_TABLE_COURSE = "CREATE TABLE " + TABLE_COURSE + "(" + COL_COURSE_ID + " INTEGER PRIMARY KEY," + COL_COURSE_NAME + " TEXT," + COL_COURSE_OBJ + " TEXT," + COL_COURSE_PHONE + " TEXT)"; private static final String CREATE_TABLE_RELATIONS = "CREATE TABLE " + TABLE_RELATIONS + "(" + COL_RELATIONS_STUDENT_ID + " INTEGER," + COL_RELATIONS_COURSE_ID + " INTEGER," + "PRIMARY KEY (" + COL_RELATIONS_STUDENT_ID + ", " + COL_RELATIONS_COURSE_ID + "))"; public DBOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_STUDENT); db.execSQL(CREATE_TABLE_COURSE); db.execSQL(CREATE_TABLE_RELATIONS); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO: update table structure } } ``` CourseActivity.java ``` public class CourseActivity extends AppCompatActivity { private EditText etId, etName, etObj, etPhone; private Button btnAdd, btnDel, btnPerson; private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_course); etId = findViewById(R.id.et_id); etName = findViewById(R.id.et_name); etObj = findViewById(R.id.et_obj); etPhone = findViewById(R.id.et_phone); btnAdd = findViewById(R.id.btn_add); btnDel = findViewById(R.id.btn_del); btnPerson = findViewById(R.id.btn_person); DBOpenHelper dbHelper = new DBOpenHelper(this); db = dbHelper.getWritableDatabase(); btnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); String name = etName.getText().toString(); String obj = etObj.getText().toString(); String phone = etPhone.getText().toString(); ContentValues values = new ContentValues(); values.put("id", id); values.put("name", name); values.put("obj", obj); values.put("phone", phone); db.insert("course", null, values); } }); btnDel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); db.delete("course", "id=?", new String[]{id}); } }); btnPerson.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(CourseActivity.this, PersonActivity.class); startActivity(intent); } }); } } ``` PersonActivity.java ``` public class PersonActivity extends AppCompatActivity { private EditText etId, etName, etClass; private Button btnAdd, btnDel, btnUpdate, btnQuery; private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_person); etId = findViewById(R.id.et_id); etName = findViewById(R.id.et_name); etClass = findViewById(R.id.et_class); btnAdd = findViewById(R.id.btn_add); btnDel = findViewById(R.id.btn_del); btnUpdate = findViewById(R.id.btn_update); btnQuery = findViewById(R.id.btn_query); DBOpenHelper dbHelper = new DBOpenHelper(this); db = dbHelper.getWritableDatabase(); btnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); String name = etName.getText().toString(); String myclass = etClass.getText().toString(); ContentValues values = new ContentValues(); values.put("id", id); values.put("myname", name); values.put("myclass", myclass); db.insert("student", null, values); } }); btnDel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); db.delete("student", "id=?", new String[]{id}); } }); btnUpdate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); String name = etName.getText().toString(); String myclass = etClass.getText().toString(); ContentValues values = new ContentValues(); values.put("myname", name); values.put("myclass", myclass); db.update("student", values, "id=?", new String[]{id}); } }); btnQuery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = etId.getText().toString(); Cursor cursor = db.query("student", null, "id=?", new String[]{id}, null, null, null); if (cursor.moveToFirst()) { String name = cursor.getString(cursor.getColumnIndex("myname")); String myclass = cursor.getString(cursor.getColumnIndex("myclass")); etName.setText(name); etClass.setText(myclass); } cursor.close(); } }); } } ```

相关推荐

最新推荐

recommend-type

android studio实现简单考试应用程序实例代码详解

主要介绍了android studio实现简单考试应用程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Android中使用Kotlin实现一个简单的登录界面

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。接下来本文通过实例代码给大家讲解Android中使用Kotlin实现一个简单的登录界面,一起看看吧
recommend-type

Android编程实现两个Activity相互切换而不使用onCreate()的方法

主要介绍了Android编程实现两个Activity相互切换而不使用onCreate()的方法,结合实例形式分析了多个Activity切换而不重新创建的操作技巧,需要的朋友可以参考下
recommend-type

在Android系统源码中预置APK的方法

今天小编就为大家分享一篇关于在Android系统源码中预置APK的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
recommend-type

直接可用的Android studio学生信息管理系统

主要为大家详细介绍了直接可用的Android studio学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。