3月10日总结

今天Web学习了JavaSrcipt的输出、数据类型、函数、json等知识并在VS上练习了,并且我把上次课的CSS知识又总结练习了一下。
假期把课堂测试补上了。

学习进度表

学习进度表

第6天 第7天 第8天 第9天 第10天
所花时间(包括上课) 3
代码量(行) 300+
博客量(篇) 1
了解到的知识点 CSS以及JavaSrcipt的知识

个人作业03

源程序代码:

package com.example.myapplication;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private EditText courseNameEditText, teacherEditText, locationEditText;
    private Button saveButton;
    private MyDatabaseHelper dbHelper;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        courseNameEditText = findViewById(R.id.courseNameEditText);
        teacherEditText = findViewById(R.id.teacherEditText);
        locationEditText = findViewById(R.id.locationEditText);
        saveButton = findViewById(R.id.saveButton);
        dbHelper = new MyDatabaseHelper(this);

        saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String courseName = courseNameEditText.getText().toString();
                String teacher = teacherEditText.getText().toString();
                String location = locationEditText.getText().toString();

                if (isCourseNameUnique(courseName)) {
                    if (isValidTeacher(teacher)) {
                        if (isValidLocation(location)) {
                            saveCourse(courseName, teacher, location);
                        } else {
                            Toast.makeText(MainActivity.this, "上课地点无效", Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        Toast.makeText(MainActivity.this, "无效的任课教师", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(MainActivity.this, "课程名称重复,请重新输入", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    private boolean isCourseNameUnique(String courseName) {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.query("courses", new String[]{"name"}, "name=?", new String[]{courseName}, null, null, null);
        boolean isUnique = !cursor.moveToFirst();
        cursor.close();
        return isUnique;
    }

    private boolean isValidTeacher(String teacher) {
        String[] validTeachers = {"王建民", "刘立嘉", "刘丹", "杨子光", "张云霞", "武永亮", "高飞", "孙静", "黄荣峰"};
        for (String validTeacher : validTeachers) {
            if (validTeacher.equals(teacher)) {
                return true;
            }
        }
        return false;
    }

    private boolean isValidLocation(String location) {
        return location.startsWith("一教") || location.startsWith("二教") || location.startsWith("三教") || location.startsWith("基教");
    }

    private void saveCourse(String courseName, String teacher, String location) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", courseName);
        values.put("teacher", teacher);
        values.put("location", location);
        db.insert("courses", null, values);
        db.close();
        Toast.makeText(this, "课程添加成功", Toast.LENGTH_SHORT).show();
    }
}
package com.example.myapplication;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "courses.db";
    private static final int DATABASE_VERSION = 1;

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_COURSES_TABLE = "CREATE TABLE courses (" +
                "id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "name TEXT," +
                "teacher TEXT," +
                "location TEXT" +
                ")";
        db.execSQL(CREATE_COURSES_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS courses");
        onCreate(db);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/courseNameEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入课程名称" />

    <EditText
        android:id="@+id/teacherEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入任课教师" />

    <EditText
        android:id="@+id/locationEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入上课地点" />

    <Button
        android:id="@+id/saveButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存" />

</LinearLayout>

运行结果:

设计思想

用户界面设计:创建一个简单的用户界面,包括课程名称、任课教师和上课地点的输入框,提供一个“保存”按钮,用于提交新课程信息。
数据验证:验证课程名称是否唯一,如果重复则提示用户重新输入;验证任课教师是否在指定的教师列表中;验证上课地点是否以指定的前缀开头。
数据存储:将新课程信息添加到本地数据库。
错误处理:提供错误提示,指导用户正确输入数据。

编程总结分析

代码结构:代码结构清晰,分为用户界面处理、数据验证、数据库操作三个主要部分。
可维护性:通过将数据库操作封装为MyDatabaseHelper类,提高了代码的可维护性。
扩展性:可以轻松添加新的功能,如编辑或删除课程。

时间记录日志:

开始时间 结束时间 活动描述
09:00 09:30 需求分析
09:30 10:00 设计和编写代码
10:00 10:20 测试和调试
10:20 10:50 文档编写和总结
posted @ 2025-03-10 19:59  阿伟·  阅读(5)  评论(0)    收藏  举报