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