大学《数据库系统》课程设计报告
二話不說,先懟源碼:
gitHub源碼地址
題 目: 教學管理系統 專 業:計算機科學與技術
作 者: 馬志成
完成時間:2019年1月3日
一.實驗目的
數據庫系統課程設計是為了配合數據庫原理及應用開發而設置的,是計算機科學與技術、 網絡工程、信息安全、物聯網工程、軟件工程等專業集中實踐的教學環節,是將關系數據庫 理論知識轉化為解決實際問題能力的重要環節。數據庫系統課程設計目的在于加深對關系數 據庫理論知識的理解,通過使用具體的 DBMS,掌握一種實際的數據庫管理系統并掌握其 操作技術,熟練掌握使用數據庫前端開發工具(如 VB、C++、Java、Delphi、PowerBuilder 等),進一步提高同學們運用數據庫技術解決實際問題的能力。
二.實驗平臺
數據庫:Mysql
頁面及朱語句:java(),開發工具eclipse。
三.實驗內容
目前市面上流行的數據庫管理系統有:適合大型企業的Oracle,適合中小型企業的SQL SERCER,以及開源的Mysql。考慮到數據庫管理系統的易操作性以及實驗的實際情況,本次課程設計使用的是開源的Mysql。使用的數據庫操作語言是java。將數據庫操作SQL語言嵌入java語句中完成數據庫各項增刪改查等操作。同時用戶操作界面也是使用java實現。Java加載MySQL的驅動,實現利用java操作數據庫。利用兩周的時間完成有關數據庫的各項原型設計以及有關數據庫的模型設計和實現。同時完成前端界面的編寫,數據庫與java的連接,數據庫的安全性的測試,java操作數據庫的測試和改善。在完成了對數據庫中數據的基本增刪改查的功能之后利用多余的時間完成其他操作,包括模糊查詢等。本次課程設計的前端界面的編寫可以使用任意的工具。可以使用安卓的AS,也可以使用eclipse的windoubuilder插件等等的各種工具。設計的界面采用菜單或對話框的形式,根據自己所選的課程設計題目給出系統分析,設計出概念模型,以及實現最后的運營以及維護。
四.實驗要求
經典的桌面數據庫應用開發是典型的 C/S 計算模式,即應用數據庫前端開發工具編寫客 戶端程序,通過客戶端程序來連接和訪問后臺數據庫。考慮到同學們都學習過 Java,因此, 本次選用 Java 作為前臺數據庫開發工具(也可以選用 VB、Delphi、C/C++等)。 兩周的課程設計要求同學們開發一個小型數據庫管理信息系統。所設計的小型管理信息 系統應包含查詢、插入、刪除、修改、統計、用戶權限管理等基本功能,界面采用菜單或對 話框的形式。根據同學們所選的設計課題,給出系統需求分析,設計出系統的概念模型、邏 輯模型,用 SQL 語言實現數據庫的建立、應用和維護,最后寫出詳細的設計說明書。 本次課程設計要求同學們充分認識數據庫系統課程設計對培養自己動手能力的重要性, 認真做好設計前的各項準備工作。虛心接受老師的指導,充分發揮自學能力和查找資料的能 力。結合課題,獨立思考,努力鉆研,勤于實踐,勇于創新。獨立完成規定的工作任務,不 得弄虛作假,不準抄襲他人內容,否則成績以不及格計。嚴格要求自己,按時、按質、按量 完成每天的課程設計任務。
五.實驗步驟
1.系統需求分析
1系統功能分析本系統主要有以下功能要求:課程設置,包括:增加、刪除、查詢和修改課程信息。 課程時間和教室的安排,以及課程清單打印輸出。 l學生選課和學生課表的打印輸出。 l課程學生名單的打印輸出和期末成績輸入。 l成績查詢、報表。
1.2系統功能模塊設計系統各功能模塊的關系如圖 1 所示。 圖 1、教學管理信息系統功能模塊圖 因為使用這套系統的人員不光是教務管理人員,還包括教師和學生。不同的身份對數據 庫的操作權限也不同。為了避免管理的混亂,需要針對不同的角色分別設計客戶端應用程序, 對同一個數據庫進行合理的修改。頁面流程圖:
1.3 與其他系統的關系教學管理信息系統同樣是校園信息管理系統的一個有機組成部分。需要從學生信息管理 系統獲取學生的個人信息,從教師信息管理系統獲取任課教師的相關信息。同時,提供的成 績單為其他系統提供必要的參考。
1.4數據流程圖教學信息管理系統的數據流程如圖
2.數據庫設計
2.1數據庫需求分析根據我們前面的分析,教學信息管理系統需要以下數據項:課程:課程號、課程名稱、講課教師、學分、學時、上課時間、上課地點、簡介、 課程狀態。 l選課結果:記錄編號、選課人、所選課程。成績單:記錄編號、學生、課程、成績。所需的外部數據支持: l 學生:學號、姓名、班級。 l教師:員工號、姓名、課程院系。
2.2數據庫概念結構設計本系統所需數據的 E-R 模型圖:
2.3數據庫邏輯結構設計需要3個基本信息表:教師信息、學生信息、課程信息。其中, 教師信息和學生信息在實際系統中是從其它信息管理系統的數據表中直接讀取。學生的選課 信息需要用 1 個表來單獨保存。由于每學期期末前都要進行選課,因此選課結束后要將這個 表的內容及時保存到成績單數據表中。使用本系統的不光是教務處的管理人員和教師,每個 學生都需要登錄到選課系統進行課程的選擇。因此,需要對不同的登錄人員進行密碼認證和 權限的限制,防止出現越權行為。用戶名、密碼和權限單獨保存在 1 個數據表中。另外需要 一個課程狀態代碼表,這 7 個數據表的結構如表 1 到表 7 所示(請設計者完成這 7 個數據表 的邏輯結構)。
3.各個功能模塊的設計與實現
3.1功能說明本系統需要按照不同的用戶分別創建 3 個工程:教師課程管理應用程序、教務課程調度 應用程序和學生選課應用程序。 首先,三個模塊的用戶的權限是有很大的差異的,教務處的用戶的權限大于教師的用戶權限,教師的用戶權限大于學生的用戶權限。所以登錄不同的模塊對于數據的操作的允許范圍是不同的。
一.教務課程調度應用程序功能說明。
登錄教務處權限的模塊,可以對所有數據進行操作,包括學生的各項學習的查詢。學生的課程的查詢,教授的信息查詢,教師設置課程的查詢以及教師和學生的學習的的增刪改查等等。同時此用戶權限擁有對所有數據的掌握。二.教師課程管理應用程序功能說明。
教師登錄模塊主要進行的是對于教師信息的修改查詢以及對學生信息的查詢和學生成績的設置與查詢。以及開設課程。
三.學生選課應用程序功能說明。
學生用戶的權限較低,他只有對自己的信息的修改以及查詢成績,查詢教師所開設課程和選課的去權利。四.實現了用戶數據的導入導出。在實現了基本的增刪改查的基礎上對于自己完成的教務管理系統,新增加了數據導出為Excel格式和從Excel中讀取數據至數據庫中的新功能。
3.2用戶界面設計根據權限的不同,用戶界面分為三類,登錄選項也為三類,各模塊的界面視圖如圖所示:
1.教務管理系統用戶權限界面如圖,用戶可以在界面內選擇相應的群像進行登錄。
2.教務處用戶登錄界面,選擇相應的用戶權限之后進入相應的用戶的登錄界面。其它兩個用戶權限的登錄界面與之類似,以下只展示一個登錄界面。輸入密碼或者賬號錯誤會有相應的提示框。
3.教務處用戶的登錄后主操作界面。教務處用戶登錄后進行相應數據的操作。左側為一個樹目錄結構,點擊各個子節點可以進行各個表之間的轉換。右面為各個子操作界面的展示,在子界面內進行各個數據的查看與操作。
4.教師權限用戶的主界面如圖所示,教師可以在主界面完成相應的操作,包括學生信息的查詢,成績的添加修改,課程的設置與修改等。
5.學生用戶的登錄主界面,進行查課,選課和成績查詢及個人信息修改等操作。教師登錄后查詢學生的成績哥信息等,同時可以查詢和修改自己的信息。同時在界面內設置和修改自己要開設的課程。
6.數據庫的建立。
7.數據以Excel的形式導入導出。連接數據庫之后可以實現數據的導入和導出為Excel形式。實現數據的導入導出要在java的驅動文件中加載。建立相應的導入導出數據的類,并進行定義,再鏈接數據庫進行定義,就實現數據的導入導出。 導入導出的連接數據庫的部分代碼如圖所示。其主要能容為建立一個workbook的工作部,在工作簿中完成導入導出的各項操作。
8.代碼目錄結構的展示,基本文件的分類為是按照各個頁面的分類來進行的,即一個頁面為一個java文件,其它的輔助文件和數據庫連接文件為一個java文件。
4.1實驗中的錯誤一、 寫界面遇到的錯誤
1、表格的表頭無法顯示 我一開始用的String類型的數組儲存的表頭,表格也是用的數組,表頭無法顯示;然后我百度發現,表格要先放入一個容器才能顯示表頭。我按照例子改用vctor類型儲存我的表頭,但是我一開始是用的add方法把表格加入容器的,所以表頭還是無法顯示,通過百度我才知道表頭的數組顯示方法才能讓表頭顯示,而且容器的布局不能為null。然后表格就正常了2、登陸界面(不管我是否輸入了信息,都可以正常地登陸)我一開始是用
user.equals("")||user==null來判斷的,沒有去掉字符串前后的空格,所以不管怎么判斷字符串其實是有空格的,所以不管怎么都可以成功登陸,二、寫數據庫的錯誤1、我的數據庫一開始不能輸入中文安裝的時候沒有注意Mysql的語言類型,默認的語言不是中文,所以不能輸入中文,把每個表改成了utf8,改了之后雖然在navicat可以輸入中文,但是如果在mysql里面打開后,發現全部用?替代了。然后就百度,根據百度的方法,我打開mysql查看發現除了一部分的字符屬性改成了utf8,其余都沒有變,然后把全部都改了以后,還是會亂碼。后來我發現是我eclipes這邊的代碼還是之前的語言類型,然后就把全部都改了,就可以輸入了中文。
六.實驗心得
為期兩周的數據庫課程設計馬上結束,在這兩周里面收獲頗豐。從課設開始的第一天,我們在老師的指導和閱讀指導書的前提下自主完成了一個簡單的數據庫系統的編寫。從系統的分析,到整體的設計,再到數據庫的建立,以及java前端頁面的編寫。數據庫驅動的加載。可以說整個的項目開發都是由一個人完成。這是在本學期學習了java課程和數據庫課程之后的第一次也是在校的一次很寶貴的實戰經驗總結。之前對兩門課程的學習只是簡單的基礎學習,沒有設計到整個系統的開發。但是在這次的實踐中對于整個系統開發有了更深的認識。從專業知識學習的角度說,首先我學會了作為一個系統的整個數據庫的建立和完善。學會將SQL語句嵌入java中,對數據庫進行操作。也學會了如何利用java的Mysql驅動連接數據庫,這為之后的java的其他開發奠定了堅實的基礎。其次數據庫可課程設計更是提升了java的實戰能力。在本次課設中,通過主函數中對其他各個累的調用和 其他設計,更深層次的了解或者說是掌握了java的面向對象這一概念。此次開發總共涉及了自己編寫的大大小小的十幾個java文件,但正是由于面向對象的思想,對于java的操作卻沒有想象的那么復雜。系統的維護和改動也只需要在相應的子文件里面做改動。本次實戰中具有突出的是在java的主界面的編寫中,為了對于各個子文件(子頁面)的操作更加的簡便,也為了主菜單格式的統一,我使用了樹目錄結構的方式,使得主界面的操作靈活方便。也使得各個操作在主界面的顯示樣式更加的統一方便好看。總體來說本次的數據庫課程設計從整體上獨立完成了一個系統的開發。為之后多項專業課的學習打下了堅實的基礎,也是一個檢驗自己java與數據庫知識掌握程度的機會,在此次課程設計中收獲頗豐,再次有類似的學習事件機會。
以下為本人的數據庫課設的頁面展示。希望對讀者有所啟迪。
總結
以上是生活随笔為你收集整理的大学《数据库系统》课程设计报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人的博客搭建(持续更新)
- 下一篇: 4款开源的中文分词系统