一、需求分析
由於大學上課教室分散,學生經常會忘記自己的課程或是上課的教室。這在一定程度上促進學生課表軟件的開發。使其可以幫助學生記錄自己的課程和對自己課程的掌握。因為手機相對筆記本電腦更加具有便攜性,可以隨時隨地的打開並使用它。相對於筆記本電腦的開機並打開軟件所用的時間,其需要的時間更短,所以手機端的學生課表備受學生用戶的青睞。通過手機管理課表也是目前比較流行的方式,該款軟件是基於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 |
實現選擇周類 |