在Androidstudio中设计一个简单学生选课系统并给出代码以及XML代码,在这个应用程序中有两个Activity界面,分别是对课程进行操作时的CourseActivity界面,以及对学生操作的PersonActivity界面。在CourseActivity界面可以对课程进行添加,删除以及跳转到PersonActivity功能和通过ListView将所有课程显示在页面上,在PersonActivity中可以对person表数据进行增、删、改等操作和通过ListView将所有学生信息显示在页面上,在这个工程中有两个实体类(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-02-01 22:16:57 浏览: 21
XML布局代码如下: CourseActivity.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_add_course" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加课程" android:layout_gravity="center_horizontal"/> <ListView android:id="@+id/course_list_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp"/> </LinearLayout> ``` PersonActivity.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_add_person" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加学生" android:layout_gravity="center_horizontal"/> <ListView android:id="@+id/person_list_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp"/> </LinearLayout> ``` Java代码如下: 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; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMyname() { return myname; } public void setMyname(String myname) { this.myname = myname; } public String getMyclass() { return myclass; } public void setMyclass(String myclass) { this.myclass = myclass; } } ``` 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; } 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 getObj() { return obj; } public void setObj(String obj) { this.obj = obj; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } } ``` Relation.java ``` public class Relation { private int studentId; private int courseId; public Relation(int studentId, int courseId) { this.studentId = studentId; this.courseId = courseId; } public int getStudentId() { return studentId; } public void setStudentId(int studentId) { this.studentId = studentId; } public int getCourseId() { return courseId; } public void setCourseId(int courseId) { this.courseId = courseId; } } ``` DBOpenHelper.java ``` public class DBOpenHelper extends SQLiteOpenHelper { public static final String DB_NAME = "student_course.db"; public static final String STUDENT_TABLE = "student"; public static final String STUDENT_ID = "_id"; public static final String STUDENT_NAME = "myname"; public static final String STUDENT_CLASS = "myclass"; public static final String COURSE_TABLE = "course"; public static final String COURSE_ID = "_id"; public static final String COURSE_NAME = "name"; public static final String COURSE_OBJ = "obj"; public static final String COURSE_PHONE = "phone"; public static final String RELATIONS_TABLE = "relations"; public static final String RELATIONS_STUDENT_ID = "studentId"; public static final String RELATIONS_COURSE_ID = "courseId"; public DBOpenHelper(Context context) { super(context, DB_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_STUDENT_TABLE = "create table " + STUDENT_TABLE + " (" + STUDENT_ID + " integer primary key autoincrement," + STUDENT_NAME + " text," + STUDENT_CLASS + " text)"; db.execSQL(CREATE_STUDENT_TABLE); String CREATE_COURSE_TABLE = "create table " + COURSE_TABLE + " (" + COURSE_ID + " integer primary key autoincrement," + COURSE_NAME + " text," + COURSE_OBJ + " text," + COURSE_PHONE + " text)"; db.execSQL(CREATE_COURSE_TABLE); String CREATE_RELATIONS_TABLE = "create table " + RELATIONS_TABLE + " (" + RELATIONS_STUDENT_ID + " integer," + RELATIONS_COURSE_ID + " integer," + "primary key(" + RELATIONS_STUDENT_ID + "," + RELATIONS_COURSE_ID + "))"; db.execSQL(CREATE_RELATIONS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table if exists " + STUDENT_TABLE); db.execSQL("drop table if exists " + COURSE_TABLE); db.execSQL("drop table if exists " + RELATIONS_TABLE); onCreate(db); } } ``` CourseActivity.java ``` public class CourseActivity extends AppCompatActivity { private Button btnAddCourse; private ListView courseListView; private List<Course> courseList = new ArrayList<>(); private ArrayAdapter<Course> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_course); btnAddCourse = findViewById(R.id.btn_add_course); courseListView = findViewById(R.id.course_list_view); arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, courseList); courseListView.setAdapter(arrayAdapter); btnAddCourse.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 添加课程 // TODO } }); courseListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 跳转到PersonActivity界面 // TODO } }); } } ``` PersonActivity.java ``` public class PersonActivity extends AppCompatActivity { private Button btnAddPerson; private ListView personListView; private List<Person> personList = new ArrayList<>(); private ArrayAdapter<Person> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_person); btnAddPerson = findViewById(R.id.btn_add_person); personListView = findViewById(R.id.person_list_view); arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, personList); personListView.setAdapter(arrayAdapter); btnAddPerson.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 添加学生 // TODO } }); personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 修改或删除学生信息 // TODO } }); } } ```

相关推荐

最新推荐

recommend-type

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

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

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

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

详解Android Studio实现用户登陆界面demo(xml实现)

主要介绍了详解Android Studio实现用户登陆界面demo,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

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

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

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

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

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

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