課程表課程設計


一、需求分析

由於大學上課教室分散,學生經常會忘記自己的課程或是上課的教室。這在一定程度上促進學生課表軟件的開發。使其可以幫助學生記錄自己的課程和對自己課程的掌握。因為手機相對筆記本電腦更加具有便攜性,可以隨時隨地的打開並使用它。相對於筆記本電腦的開機並打開軟件所用的時間,其需要的時間更短,所以手機端的學生課表備受學生用戶的青睞。通過手機管理課表也是目前比較流行的方式,該款軟件是基於Android Studio平台與SQLite數據庫開發的一款學生課表軟件。

UML需求用例圖

 

 

二、系統設計

通過對Android技術的相關研究,了解Android源碼實現原理以及過程,從而設計出一款能夠使用的課程表。

這款課程表實現的相關內容如下:

 簡潔、實用的操作界面

 課程的增加

 課程的刪除

 課程的修改

 課程的查看

 

 

 

三、系統測試

1、課程的增加

添加課程時,數據由用戶輸入,點擊確定按鈕,判斷數據是否合法(及用戶名是否為空),合法則插入到數據庫;不合法,提示課程信息有誤,讓用戶重新輸入。

 

 

 

 

2、課程的刪除

當用戶選定一個課程時,單擊課程菜單,點擊刪除按鈕,則從數據庫中刪除此條記錄。數據刪除流程

 

 

 

 

3、課程的修改

編輯課程時,輸入修改后的數據,點擊確定按鈕,判斷數據是否合法,合法,則更新數據庫;不合法,則返回錯誤信息。

 

 

 

 

4、課程的查看

 

四、系統實現

連立數據庫,在數據庫中創建表用來存儲課程數據,其中包括課程名,星期幾,課程開始結束時間,教師和教室。

 

 

 

數據庫有關代碼

//從數據庫加載數據
private void loadData() {
    //ArrayList<Course> coursesList = new ArrayList<>(); //課程列表
    DbHelper helper = new DbHelper(this);
    try {
        Dao<Course,Integer> sdao = helper.getDao(Course.class);
        List<Course> sl = sdao.queryForAll();
        //使用從數據庫讀取出來的課程信息來加載課程表視圖
        for (Course course : sl) {
            createCourseView(course);
        }


    } catch (SQLException e) {
        e.printStackTrace();
    }
}

//保存數據到數據庫
private void saveData(Course course) {
    try {
        Dao<Course,Integer> sdao = helper.getDao(Course.class);
        sdao.create(course);
    } catch (SQLException e) {
        e.printStackTrace();
    }


}

//更新數據到數據庫
private void updataData(Course course) {
    try {
        Dao<Course,Integer> sdao = helper.getDao(Course.class);
        sdao.updateId(course,Integer.valueOf(course.getId()));
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

//刪除數據到數據庫
private void delData(Course course) {
    try {
        Dao<Course,Integer> sdao = helper.getDao(Course.class);
        sdao.deleteById(Integer.valueOf(course.getId()));
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

 

 

 

 

 

 

五、總結

對於安卓,由於平時對手機這方面很感興趣,所以在學習的時候,帶着興趣去學習的。當然,對一門新的android開發領域,在學習過程中,比想象要困難。為了在短時間內投入到開發,完成項目。需要花大量的時間去學習,動手編程。以最快的速度學習Android,掌握開發中的各種控件的使用,理解了Android開發框架,學習SQLite數據庫的使用。

這次綜合課程設計是對自己的一個挑戰,對於安卓,在經過努力,最終一步步都解決了。完成綜合課程設計設計,讓我受益匪淺,我相信它會對我以后的人生和工作起到很好的促進。

附件1

課設題目  基於Android的課程表應用軟件

技術說明

技術名稱

分類

 

應用與實現

1

UI設計

課程表布局,以及菜單界面,多種布局的嵌套及控件的使用,

2

SQLite數據庫

課表添加與刪除修改

3

Activity組件的應用

添加課表單周雙周課表添加與跳轉

4

ListView的使用

使用listview加載數據庫課表信息進行顯示

 

 

UML類圖

 

 

 

 

代碼

清單文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.lcu_kcb">
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/tb"
        android:label="阿健課程表"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">

        <activity android:name="com.example.lcu_kcb.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:label="新建課程"
            android:name="com.example.lcu_kcb.AddCourseActivity"
            android:theme="@style/Theme.AppCompat.Light.Dialog"/>

        <activity
            android:name="com.example.lcu_kcb.Alter_Course"
            android:label="修改課程"
            android:theme="@style/Theme.AppCompat.Light.Dialog"/>


        <activity
            android:name="com.example.lcu_kcb.AboutActivity"
            android:label="關於"
            android:theme="@style/Theme.AppCompat.Light.Dialog"/>



        <activity
            android:label="課程詳細信息"
            android:name="com.example.lcu_kcb.MessageCourseActivity"
            android:theme="@style/Theme.AppCompat.Light.Dialog"/>
        <activity
            android:name="com.example.lcu_kcb.SingleWeek"
            android:label="單周課程"
            />
        <activity
            android:name="com.example.lcu_kcb.DoubleWeek"
            android:label="雙周課程"
            />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.example.write.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>
    </application>
</manifest>

 

布局文件:

 

1. 截圖  如上:

Java原碼

......

類說明

類名

說明

AboutActivity

實現關於頁面類

AddcourseActivity

實現增加課程類

Alter-course

實現增加單周課程類

Course

實現課程類

DbHelper

數據庫實現類

Doubleweek

實現增加雙周課程類

MainActivity

實現主要頁面類

MessageCourseActivity

實現課程信息類

Singleweek

實現課程視圖類

SpinnerActivity

實現選擇周類

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM