學(xué)生信息管理Java軟件工程_第1頁(yè)
學(xué)生信息管理Java軟件工程_第2頁(yè)
學(xué)生信息管理Java軟件工程_第3頁(yè)
學(xué)生信息管理Java軟件工程_第4頁(yè)
學(xué)生信息管理Java軟件工程_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱:軟件工程題 目:學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與開發(fā)系 名:信息工程系專業(yè)班級(jí):計(jì)算機(jī)1121班姓 名:劉明學(xué) 號(hào):指導(dǎo)教師:錢小紅2015年7月9日課程設(shè)計(jì)任務(wù)書學(xué)生姓名:劉 明 專業(yè)班級(jí): 計(jì)算機(jī)1121班指導(dǎo)教師:錢小紅工作單位:信息工程系設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與開發(fā)課程設(shè)計(jì)的目的與任務(wù):軟件工程課程設(shè)計(jì)是軟件工程課程的后續(xù)實(shí)踐課程,本課程設(shè)計(jì)的目的是通過一周的實(shí)踐訓(xùn)練,開發(fā)一個(gè)學(xué)生信息管理系統(tǒng),使同學(xué)們經(jīng)歷一個(gè)軟件從問題定義、分析、設(shè)計(jì)到開發(fā)的全過程和受到一次軟件系統(tǒng)開發(fā)的綜合訓(xùn)練,以便能熟練掌握軟件開發(fā)的完整生命周期過程及較全面地理解、掌

2、握和綜合運(yùn)用所學(xué)的軟件工程的知識(shí)。結(jié)合具體的學(xué)生信息管理選題開發(fā)項(xiàng)目,理解并掌握系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施的主要環(huán)節(jié)和步驟以及軟件 文檔的制作能力,進(jìn)一步提高學(xué)生分析問題、解決問題,進(jìn)行一個(gè)完整系統(tǒng)開發(fā)的能力。課程設(shè)計(jì)的內(nèi)容與主要要求:要求學(xué)生根據(jù)所學(xué)的軟件工程的知識(shí),利用所學(xué)的Java語言/C+語言/Vb語言+Mysql/SQL知識(shí)實(shí)現(xiàn)一個(gè)學(xué)生信息管理系統(tǒng),并對(duì)實(shí)現(xiàn)后的軟件進(jìn)行測(cè)試。學(xué)生信息管理 是學(xué)校管理中一項(xiàng)煩瑣的工作,各類人員都可能需要借助學(xué)生信息管理系統(tǒng)完成一些統(tǒng)計(jì)、 查詢、匯總等工作。例如:系統(tǒng)管理員需要建立新的角色和用戶;對(duì)現(xiàn)有專業(yè)、班級(jí)、班級(jí)學(xué)生信息、老師信息及課程信息進(jìn)行查

3、詢以及增加、修改;學(xué)生完成一門課程的學(xué)習(xí)后,教師需要錄入學(xué)生的考試成績(jī),計(jì)算平均成績(jī)、查看最 高最低分;學(xué)生需要查詢已結(jié)業(yè)的各門課程的成績(jī);系統(tǒng)主要實(shí)現(xiàn)用戶管理、班級(jí)管理、課 程管理、成績(jī)管理、學(xué)生管理、教師管理、用戶登陸、修改密碼等功能,詳見下表。表1.1學(xué)生信息管理系統(tǒng)主要功能表編號(hào)功能名稱功能說明1系統(tǒng)管理添加用戶、角色2班級(jí)管理創(chuàng)建、瀏覽班級(jí)信息(班級(jí)ID、班級(jí)名稱、專業(yè)名稱、班級(jí)、年制、教師、教室、備注)3學(xué)生管理登記學(xué)生的基本信息(學(xué)生ID、學(xué)生編號(hào)、姓名、性別、名族、籍貫、電話、政治面貌等),提供查詢功能。4課程管理登記課程基本情況(課程ID、班級(jí)ID、課程名稱、開設(shè)學(xué)期、教師編

4、號(hào)、教師名稱),提供查詢5教師管理登記教師基本情況(姓名、年齡、性別、學(xué)歷等),提供查詢統(tǒng)計(jì)6成績(jī)管理登記學(xué)生各門課程的考試成績(jī)、提供查詢、統(tǒng)計(jì)功能7授課管理登記教師講授課程、授課地點(diǎn)、授課學(xué)期,提供查詢功能8用戶操作修改密碼,重新登錄,退出系統(tǒng)等課程設(shè)計(jì)的步驟及時(shí)間進(jìn)度、場(chǎng)地安排本課程設(shè)計(jì)將安排在第 19周,教育技術(shù)中心211。具體安排如下:7月6日上午:下發(fā)任務(wù),學(xué)生查找資料、確定實(shí)訓(xùn)項(xiàng)目;理清整理軟件工程實(shí)驗(yàn)課所完成的學(xué)生信息管理系統(tǒng)需求分析、系統(tǒng)設(shè)計(jì)及相關(guān)模型的建立(通過visio/rationalrose/powerdesigner建立系統(tǒng)的需求模型、數(shù)據(jù)模型及設(shè)計(jì)模型,具體包括數(shù)據(jù)

5、流圖、軟件結(jié)構(gòu)圖、程序流程圖、ER圖、用例圖、類圖、時(shí)序圖、活動(dòng)圖、狀態(tài)圖等);7月7日-7月9日:完成學(xué)生信息管理系統(tǒng)的開發(fā)及測(cè)試;7月10日:完成答辯驗(yàn)收、報(bào)告的寫作,并將以上工作整理成為課程設(shè)計(jì)報(bào)告,于7月10日中午前提交課程設(shè)計(jì)報(bào)告。課程設(shè)計(jì)場(chǎng)地安排-周次-星期一星期二星期三星期四星期五第19周第1-4節(jié)第1-4節(jié)第5-7節(jié)第1-4節(jié)第1-4節(jié)地點(diǎn)現(xiàn)教211現(xiàn)教211現(xiàn)教211現(xiàn)教211現(xiàn)教211課程設(shè)計(jì)報(bào)告撰寫格式要求:1設(shè)計(jì)題目與要求2設(shè)計(jì)思想3系統(tǒng)結(jié)構(gòu)4數(shù)據(jù)結(jié)構(gòu)的說明和模塊的算法流程圖5 使用說明書(即用戶手冊(cè))、運(yùn)行結(jié)果、關(guān)鍵界面截圖6測(cè)試計(jì)劃說明書、測(cè)試用例規(guī)格說明、缺陷報(bào)告

6、7自我評(píng)價(jià)與總結(jié)8附錄:程序清單,注意加注釋(包括關(guān)鍵字、方法、變量等),在每個(gè)模塊前加 注釋;要求層次清楚、整潔規(guī)范、不得相互抄襲,凡正文內(nèi)容有整段完全相同者一律以抄襲論處。設(shè)計(jì)報(bào)告正文字?jǐn)?shù)不少于0.2萬字(不包括附錄)。第1級(jí)(章)題序和題名用黑體三號(hào)字;第 2 級(jí)(目)題序和題名用黑體小四號(hào)字;第3 級(jí)(條)題序和題名用黑體小四號(hào)字;正文內(nèi)容用宋體五號(hào)字(英文用新羅馬體),多倍行距1.25。報(bào)告內(nèi)容一律使用 A4 打印紙計(jì)算機(jī)打印,頁(yè)碼在頁(yè)下居中標(biāo)明。必須使用國(guó)家公布的規(guī)范字。頁(yè)面設(shè)置:上空2.5 cm,下空2.0 cm,左空2.5 cm,右空2.0cm (左裝訂)。插圖圖面要整齊、美觀

7、,插圖應(yīng)與正文呼應(yīng),不能脫節(jié)。每幅插圖應(yīng)有圖序與圖題,圖序編號(hào)要連續(xù),圖序與圖題間空一格且要放在插圖下方居中處。課程設(shè)計(jì)考核及評(píng)分標(biāo)準(zhǔn)課程設(shè)計(jì)考核將綜合考慮學(xué)生考勤和參與度, 系統(tǒng)設(shè)計(jì)方案正確性, 系統(tǒng)設(shè)計(jì)和開發(fā)效果以及課程設(shè)計(jì)報(bào)告書的質(zhì)量。總分按五級(jí)記分法記載最后成績(jī):優(yōu)秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)指 導(dǎo) 教師簽字: 錢小紅2015年 7 月9 日系 主 任簽字: 邱珊2015年 7 月9 日1 .系統(tǒng)概述 11.1 社會(huì)背景 11.2 研究中出現(xiàn)的主要問題 11.3 研究目的 11.4 開發(fā)環(huán)境和軟件 22 .系統(tǒng)需求分

8、析 22.1 系統(tǒng)設(shè)計(jì) 22.2 系統(tǒng)功能分析 22.3 可行性分析 23 .系統(tǒng)詳細(xì)設(shè)計(jì) 33.1 系統(tǒng)概述 33.2 系統(tǒng)總體設(shè)計(jì) 33.3 系統(tǒng)詳細(xì)設(shè)計(jì) 43.3.1 用戶信息管理模塊 43.3.2 學(xué)生信息管理模塊 43.3.3 課程信息管理模塊 53.3.4 選課信息管理模塊 53.3.5 成績(jī)信息管理模塊 54 .系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 64.1 建立數(shù)據(jù)庫(kù) 64.2 建立數(shù)據(jù)表 65 .系統(tǒng)測(cè)試 75.1 學(xué)生信息管理系統(tǒng)的登錄 75.2 管理員登錄 75.2.1 管理員對(duì)學(xué)生信息的添加 85.2.2 管理員對(duì)學(xué)生信息的修改 85.2.3 管理員對(duì)學(xué)生信息的查詢 85.2.4 管理員對(duì)學(xué)

9、生信息的刪除 95.2.5 管理員顯示學(xué)生信息 96 .總結(jié) 5參考文獻(xiàn) 5附錄:部分源代碼 錯(cuò)誤 !未定義書簽。1 .系統(tǒng)概述1.1 社會(huì)背景學(xué)生管理工作是每個(gè)學(xué)校必須面對(duì)的, 它是一項(xiàng)傳統(tǒng)且繁瑣的教育基礎(chǔ)管理工作, 極為耗費(fèi)人力、 物力。 往常, 各學(xué)校采用人工管理形式每學(xué)期開學(xué)時(shí)相關(guān)人員分別統(tǒng)計(jì)各個(gè)學(xué)生的情況,到了期末又要對(duì)相關(guān)信息進(jìn)行處理, 比如考試情況、 學(xué)生課程調(diào)動(dòng)等,面對(duì)如此不斷反復(fù)、繁雜的變化,各學(xué)校都要耗費(fèi)大量的人力、物力。同時(shí),這種傳統(tǒng)人工的方式來管理學(xué)生工作,還存在著很多缺點(diǎn),如效率低、保密性差,另外時(shí)間長(zhǎng),將產(chǎn)生大量的冗余文件和數(shù)據(jù),這給數(shù)據(jù)的查找、更新和維護(hù)工作帶來了

10、很大的困難。隨著科學(xué)技術(shù)的不斷提高, 特別是計(jì)算機(jī)、 網(wǎng)絡(luò)等相關(guān)技術(shù)的日漸成熟, 其強(qiáng)大的功能已被人們深刻認(rèn)識(shí), 它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用, 特別是它具有的手工管理所無法比擬的優(yōu)點(diǎn), 使得各個(gè)學(xué)校都相繼采用了信息技術(shù)對(duì)學(xué)生的有關(guān)信息進(jìn)行管理。通過使用計(jì)算機(jī)技術(shù)等手段,將工作人員從重復(fù)、繁雜的手工處理中解脫出來,提高了工作效率, 而且減少了人工處理產(chǎn)生的錯(cuò)誤。 使得教育基礎(chǔ)管理工作邁上了一個(gè)新的臺(tái)階,從而實(shí)現(xiàn)了教育基礎(chǔ)管理的信息化、科學(xué)化、現(xiàn)代化。1.2 研究中出現(xiàn)的主要問題本文主要基于 Java 的學(xué)生信息管理系統(tǒng)為應(yīng)用背景,主要研究以下兩個(gè)方面的問題:(1) 采用比

11、 C 語言更先進(jìn)的 Java 技術(shù)建立系統(tǒng)模型和劃分模塊,采用基于SQL 技術(shù)訪問數(shù)據(jù)庫(kù)并構(gòu)建一個(gè)完整的學(xué)生信息管理系統(tǒng)。(2) 改進(jìn) Java 技術(shù)的安全性,對(duì)系統(tǒng)進(jìn)行全面綜合的評(píng)測(cè)。分析測(cè)評(píng)結(jié)果,并就java 的安全機(jī)制的研究與實(shí)現(xiàn)提出了幾個(gè)觀點(diǎn)及改進(jìn)建議。1.3 研究目的本統(tǒng)提供了學(xué)生信息管理中常見的基本功能, 主要包括管理員和學(xué)生兩大模塊。 管理員的主要功能有對(duì)學(xué)生信息和課程信息進(jìn)行增加、刪除、修改、 查找等操作,對(duì)選課信息進(jìn)行管理, 對(duì)成績(jī)信息和用戶信息進(jìn)行修改、 查找等操作。 學(xué)生的主要功能有對(duì)學(xué)生信息和成績(jī)信息進(jìn)行查看,對(duì)個(gè)人的密碼信息進(jìn)行修改等。1.4 開發(fā)環(huán)境和軟件操作系統(tǒng):

12、 winXP數(shù)據(jù)庫(kù)軟件: SQL Server 2005Java 開發(fā)工具: Eclipse2 .系統(tǒng)需求分析2.1 系統(tǒng)設(shè)計(jì)學(xué)生信息管理系統(tǒng), 可用于學(xué)校等機(jī)構(gòu)的學(xué)生信息管理, 查詢,更新與維護(hù), 使用方便,易用性強(qiáng),圖形界面清晰明了。該軟件用 java 語言編寫,用 SQLServer2005 數(shù)據(jù)庫(kù)作為后臺(tái)的數(shù)據(jù)庫(kù)進(jìn)行信息的存儲(chǔ),用SQL語句完成學(xué)生學(xué)籍信息的添加,查詢,修改,刪除的操作以及成績(jī)的錄入,修改,刪除等。用ODB®動(dòng)實(shí)現(xiàn)前臺(tái)Java與后臺(tái)SQL數(shù)據(jù)庫(kù)的連接。Java語言跨平臺(tái)性強(qiáng),可以在 windows, linux , ubuntu等系統(tǒng)下使用,方便簡(jiǎn)單,安全性好

13、。 SQLServer2005 數(shù)據(jù)庫(kù)高效安全,兩者結(jié)合可相互利用各自的優(yōu)勢(shì)。2.2 系統(tǒng)功能分析傳統(tǒng)的學(xué)習(xí)信息管理處理方式主要是手工處理, 一般只是打印一些學(xué)生的主要信息, 譬如:學(xué)生個(gè)人信息、 學(xué)生各科分?jǐn)?shù)、 學(xué)生各學(xué)期課程。本學(xué)生信息管理系統(tǒng)遠(yuǎn)遠(yuǎn)超越了傳統(tǒng)的手工處理方式,本系統(tǒng)的大致功能有:1 用戶登陸界面。該界面可以選擇使用者的身份, “管理員,學(xué)生” 。不同的身份有不同的操作界面和功能權(quán)限, ID 號(hào)和密碼輸入正確即可登錄。2 學(xué)生管理界面:提供了學(xué)生個(gè)人信息、班級(jí)信息、專業(yè)信息、院級(jí)信息以及相關(guān)科 目的成績(jī)查詢,修改登錄密碼等功能。3 管理員管理界面:提供了對(duì)學(xué)生學(xué)籍信息的查詢、添

14、加、修改、刪除,學(xué)生成績(jī)的 錄入、修改、刪除,查詢班級(jí)排名、修改密碼等功能。4 管理員管理界面:擁有最高的權(quán)限,可以管理人員的登錄和退出,通過學(xué)號(hào)查詢學(xué) 生的信息,添加學(xué)生信息,修改學(xué)生的信息,刪除學(xué)生的信息。5 .信息分別存儲(chǔ)在SQL數(shù)據(jù)庫(kù)的“學(xué)生信息表”、“課程信息表”、“選課信息表”和用戶信息表中,如果信息這四張表中不存在,將會(huì)無權(quán)利登錄本管理系統(tǒng)。2.3 可行性分析對(duì)于學(xué)生信息管理, 現(xiàn)在需要用計(jì)算機(jī)進(jìn)行對(duì)這種龐大數(shù)據(jù)的處理, 本系統(tǒng)主要提供給高校的老師和學(xué)生,對(duì)于他們來說,基于JAVA系統(tǒng)的學(xué)生信息管理系統(tǒng)是非常簡(jiǎn)單且實(shí)用,學(xué)生可以隨時(shí)查看自己的個(gè)人信息, 如果有需要可以修改自己的個(gè)

15、人信息。 對(duì)于管理者或者說是老師而言, 他們可以在家就對(duì)學(xué)生進(jìn)行有效的管理, 做到快捷,方便。所以從這幾個(gè)角度出發(fā)我們不難發(fā)現(xiàn)該系統(tǒng)的可操作性是完全可行的。3 .系統(tǒng)詳細(xì)設(shè)計(jì)3.1 系統(tǒng)概述對(duì)于學(xué)生信息管理系統(tǒng)而言, 會(huì)存在很多的實(shí)體對(duì)象, 這些對(duì)象之間的關(guān)系處理非常的重要, 因此在最開始的時(shí)候首先想到的是設(shè)計(jì)數(shù)據(jù)庫(kù)里的表結(jié)構(gòu)以及表字段。 即想好了需求 中需要哪些表,表與表之間的關(guān)聯(lián)是通過哪些字段。以及這樣設(shè)計(jì)的話它的可行性。3.2 系統(tǒng)總體設(shè)計(jì)學(xué)生信息管理系統(tǒng)主要包括管理員和學(xué)生兩大模塊。管理員模塊包括:學(xué)生信息管理、課程信息管理、選課信息管理、成績(jī)信息管理、用戶信息管理等。用戶模塊包括:學(xué)

16、生信息查看、成績(jī)信息查看、個(gè)人信息管理等。系統(tǒng)總體結(jié)構(gòu)如圖3-1所示,用戶驗(yàn)證流程圖如圖3-2所示。學(xué)生信息管理系統(tǒng)學(xué)生管理員查查查更查看看看新看個(gè)選各個(gè)課人課科人程信信成信信息息績(jī)息息修改登陸密碼圖3-1系統(tǒng)總體結(jié)構(gòu)圖登陸頁(yè)面學(xué)生管理界面3.3 系統(tǒng)詳細(xì)設(shè)計(jì)3.3.1 用戶信息管理模塊用戶信息管理模塊包括修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖3-3所示。圖3-3用戶信息管理模塊結(jié)構(gòu)圖3.3.2 學(xué)生信息管理模塊學(xué)生信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖3-4所示圖3-4學(xué)生信息管理模塊結(jié)構(gòu)圖3.3.3 課程信息管理模塊課程信息管理模塊包括增加、刪除、修改、查詢

17、、顯示全部等。具體的結(jié)構(gòu)圖如圖3-5所示圖3-5課程信息管理模塊結(jié)構(gòu)圖3.3.4 選課信息管理模塊選課信息管理模塊包括查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖3-6所示。圖3-6選課信息管理模塊結(jié)構(gòu)圖3.3.5 成績(jī)信息管理模塊成績(jī)信息管理模塊包括修改成績(jī)、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖3-7所示。圖3-7成績(jī)信息管理模塊結(jié)構(gòu)圖4 .系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 建立數(shù)據(jù)庫(kù)安裝好SQL Server 2005之后,連接數(shù)據(jù)庫(kù)在里面新建student數(shù)據(jù)庫(kù)文件4.2 建立數(shù)據(jù)表在數(shù)據(jù)庫(kù)student中共有4張數(shù)據(jù)表:s (學(xué)生信息表)、c (課程信息表)、sc (選課信 息表)、unpw (用戶信息表),

18、下面定義每張表的字段名稱和數(shù)據(jù)類型。s (學(xué)生信息表)字段名稱數(shù)據(jù)類型中文描述snochar (10)一學(xué)號(hào),關(guān)鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c (課程信息表)字段名稱數(shù)據(jù)類型E描述cnochar (10)課程號(hào),關(guān)鍵字cnchar(30)課程名pcnochar (10)先行課程號(hào)sc (選課信息表)字段名稱數(shù)據(jù)類型中文描述snochar (10)學(xué)號(hào),關(guān)鍵字cnochar (10)課程號(hào),關(guān)鍵字gint成績(jī)unpw (用戶信息表)字段名稱數(shù)據(jù)類型中文描述unchar (10)用戶名,關(guān)鍵字pwchar (10)密碼qxint角

19、色5 .系統(tǒng)測(cè)試5.1 學(xué)生信息管理系統(tǒng)的登錄學(xué)生信息管理系統(tǒng)可由管理員和學(xué)生兩種身份的人使用。管理員和學(xué)生身份登錄所能操作的功能有很大的區(qū)別。由于在后臺(tái)數(shù)據(jù)庫(kù)里面新建的用戶只有一個(gè)管理員(admin)和一個(gè)學(xué)生(xuesheng),所以登錄界面只有這種情況,如圖5-1所示圖5-1登錄界面5.2 管理員登錄管理員登錄之后就會(huì)出現(xiàn)如圖5-2所示的界面,管理員可以進(jìn)入學(xué)生信息管理、課程信息管理、選課信息管理、成績(jī)信息管理、用戶信息管理以及退出管理系統(tǒng)就行相應(yīng)的添加、 修改、查詢和刪除。圖5-2管理員登錄系統(tǒng)后的界面5.2.1 管理員對(duì)學(xué)生信息的添加點(diǎn)擊學(xué)生信息管理模塊之后,管理員就在學(xué)生信息管理模

20、塊上面選擇“添加”就可以添加學(xué)生信息了,如圖 5-3所示圖5-3添加學(xué)生信息5.2.2 管理員對(duì)學(xué)生信息的修改點(diǎn)擊學(xué)生信息管理模塊之后, 管理員就在學(xué)生信息管理模塊上面選擇 “修改” 就可以修改學(xué)生信息了,如圖 5-4 所示圖 5-4 修改學(xué)生信息5.2.3 管理員對(duì)學(xué)生信息的查詢點(diǎn)擊學(xué)生信息管理模塊之后, 管理員就在學(xué)生信息管理模塊上面選擇 “查詢” 就可以查詢學(xué)生信息了,如圖 5-5 所示圖 5-5 查詢學(xué)生信息5.2.4 管理員對(duì)學(xué)生信息的刪除點(diǎn)擊學(xué)生信息管理模塊之后, 管理員就在學(xué)生信息管理模塊上面選擇 “刪除” 就可以刪除學(xué)生信息了,如圖 5-6 所示圖 5-6 學(xué)生信息刪除5.2.

21、5 管理員顯示學(xué)生信息點(diǎn)擊學(xué)生信息管理模塊之后, 管理員就在學(xué)生信息管理模塊上面選擇 “顯示” 就可以顯示所有學(xué)生信息了,如圖 5-7 所示圖 5-7 顯示學(xué)生信息6.總結(jié)在這次課程設(shè)計(jì)的過程中, 在與代碼為伴的一個(gè)星期里, 我真的收獲了很多。 這次軟件工程的課程設(shè)計(jì), 讓我鞏固了這學(xué)期學(xué)的知識(shí), 又復(fù)習(xí)了關(guān)于數(shù)據(jù)庫(kù)的知識(shí), 更是學(xué)會(huì)了如何將所學(xué)的知識(shí)運(yùn)用到實(shí)際,真正的應(yīng)用軟件開發(fā),Java開發(fā)中來。并且,在設(shè)計(jì)過程中,通過上網(wǎng)搜索有關(guān)資料的同時(shí),也開闊了視野,豐富了自己的知識(shí)面。為期一個(gè)星期的課程設(shè)計(jì)已經(jīng)結(jié)束了, 在這個(gè)過程中我獲益匪淺, 比如說初步學(xué)會(huì)了用Java 開發(fā)界面, 雖然做出的網(wǎng)

22、頁(yè)不是特別美觀, 很多地方有瑕疵, 但是從一竅不通成長(zhǎng)到能逐漸能做出一個(gè)功能基本完善的簡(jiǎn)單的系統(tǒng), 一步步走來, 其中收獲的不僅是知識(shí), 還有動(dòng)手能力, 自學(xué)能力, 合作能力。 總體來說, 這次的軟件工程課程設(shè)計(jì)沒有我想象中的那么難,剛開始設(shè)計(jì)時(shí)就遇到了很多困難, 不過認(rèn)真聽過老師每天的講解后, 很多困難也就迎刃而解了。同時(shí)也要感謝老師和同學(xué)們的幫助,如果沒有他們的幫助,很難完成這次的課程設(shè)計(jì)。雖然我的設(shè)計(jì)其功能基本符合用戶需求, 能夠完成基本的業(yè)務(wù)操作流程, 并提供部分系統(tǒng)維護(hù)功能,使用戶方便進(jìn)行數(shù)據(jù)添加、修改、查詢和刪除。但是由于設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不盡如人意的地方, 比如說明

23、文檔比較少, 用戶界面不夠美觀, 出錯(cuò)處理不夠等多方面的問題。這些都有待進(jìn)一步改善,希望在以后的學(xué)習(xí)和工作中得以完善。參考文獻(xiàn)1 邱珊 主編, Java 語言程序設(shè)計(jì) ,科學(xué)出版社 2008.22 高金蘭,魯立, 數(shù)據(jù)庫(kù)原理與SQL Server 應(yīng)用 ,科學(xué)出版社2010.33 李春寶 主編, 數(shù)據(jù)庫(kù)原理與應(yīng)用 ,清華大學(xué)出版社, 2009.4附錄1 .程序類的設(shè)計(jì)SimpleStudentManager 主函數(shù)類DLFrame 登陸界面類ManagerFrane 管理員界面類StudentFrame 學(xué)生界面類SM學(xué)生信息管理的類SAdd用于學(xué)生信息管理中增加或修改某條記錄的界面的類SSe

24、lect用于學(xué)生基本信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類CM課程信息管理的類CAdd 用于課程信息管理中增加或修改某條記錄的界面的類CSelect 用于課程信息管理中查詢時(shí)輸入課程號(hào)的界面的類SCM 選課信息管理的類SCSelect 用于選課信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類GM 成績(jī)信息管理的類GAdd 用于成績(jī)信息管理中修改成績(jī)的界面的類GSelect 用于成績(jī)信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類PM 用戶信息管理的類UAdd 用于用戶信息管理中修改密碼的界面的類PSelect用于用戶信息管理中查詢時(shí)輸入用戶名的界面的類StudentS用于學(xué)生信息查看時(shí)輸入學(xué)號(hào)的界面的類StudentSele

25、ct 用于成績(jī)信息查看時(shí)輸入學(xué)號(hào)的界面的類PPM 個(gè)人信息管理的類PPSelect 用于個(gè)人信息管理查詢時(shí)輸入用戶名的界面的類2 . 源代碼import javax.swing.*;import java.awt.*;import java.sql.*;class CAdd extends JFrame implements ActionListener/ 用于課程信息管理中增加或修改 某條記錄的界面JLabel lcno = new JLabel(" 課程號(hào): ");JLabel lcname = new JLabel(" 課程名: ");JLabel

26、 lpcno = new JLabel(" 先行課程號(hào): ");JTextField tcno = new JTextField(10);JTextField tcname = new JTextField(10);JTextField tpcno = new JTextField(10);JButton btnOK = new JButton(" 確定 ");JButton btnCancel = new JButton(" 取消 ");JPanel p = new JPanel();Connection con = null;St

27、atement stmt = null;ResultSet rs = null;boolean isNewsm = true;/ 用于判斷是否顯示課程信息管理的界面public CAdd() / 構(gòu)造方法this.setTitle(" 增加 ");this.setBounds(200, 200, 146, 235);p.setLayout(new FlowLayout(FlowLayout.LEFT);p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btn

28、OK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();public void connDB() / 連接數(shù)據(jù)庫(kù)try catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getCo

29、nnection("sa", "123");stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接 try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void insertst() / 插入記錄String kch = null;String kcm = null;String xxkch=null;

30、kch = tcno.getText();kcm = tcname.getText();xxkch=tpcno.getText();if (this.getTitle() = " 修改 ") / 如果是修改記錄,先刪除再增加try this.connDB();int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'"); catch (SQLException e) e.printStackTrace();String str = "

31、insert into c values('" + kch + "','" + kcm + "','"+ xxkch + "')"this.connDB();/ 連接數(shù)據(jù)庫(kù)try stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + " 成功! "," 提 示 ", JOptionPane.INFORMA TION_MESSAGE, ne

32、w ImageIcon("menu4.gif");this.setVisible(false);catch (SQLException e) JOptionPane.showMessageDialog(null, " 課程號(hào)已存在! ");tcno.setText("");public void actionPerformed(ActionEvent e) if (e.getActionCommand() = " 確定 ") this.insertst();if (isNewsm) new CM(" 課程

33、信息管理").display();isNewsm = true;if (e.getActionCommand() = " 取消 ") this.setVisible(false);new CM(" 課程信息管理").display();import java.sql.*;import java.util.*;import javax.swing.*;class CM extends JFrame implements ActionListener / 課程信息管理JPanel p = new JPanel();JButton btnAdd =

34、new JButton(" 增加 ");JButton btnDelete = new JButton(" 刪除 ");JButton btnAlter = new JButton(" 修改 ");JButton btnSearch = new JButton(" 查詢 ");JButton btnDisplay = new JButton(" 顯示 ");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();JTable sTable;JS

35、crollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object playerInfo;CSelect cst;String mkch = null;boolean bstd = false;CM(String title) / 構(gòu)造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.a

36、dd(btnSearch);mb.add(btnDisplay);this.connDB();/ 連接數(shù)據(jù)庫(kù)this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseO

37、peration(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();CM(CSelect cst, String title) / 構(gòu)造方法super(title);this.cst = cst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();t

38、his.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false)

39、;show();public void display() / 顯示所有的課程信息int i = 0;int j = 0;int k = 0;List al = new ArrayList();try rs = stmt.executeQuery("select * from c");while (rs.next() / 找出表中的記錄數(shù)賦給ial.add(rs.getString("cno");al.add(rs.getString("cn");al.add(rs.getString("pcno"); i+; c

40、atch (SQLException e) e.printStackTrace();playerInfo = new Objecti3;String columnNames = " 課程號(hào) ", " 課程名 ", " 先行課程號(hào) " ; try rs = stmt.executeQuery("select * from c order by cno"); while (rs.next() playerInfoj0 = rs.getString("cno");playerInfoj1 = rs.g

41、etString("cn");playerInfoj2 = rs.getString("pcno"); j+; catch (SQLException e) e.printStackTrace();sTable = new JTable(playerInfo, columnNames);/ 創(chuàng)建網(wǎng)格 p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void connDB() / 連接數(shù)據(jù)庫(kù)try catch (ClassNotFoundException e)

42、 e.printStackTrace();try con = DriverManager.getConnection("sa", "123");stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void delete() / 刪除某個(gè)課程信息Str

43、ing kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) / 判斷要?jiǎng)h除的信息是否被選中");JOptionPane.showMessageDialog(null, " 請(qǐng)選擇要?jiǎng)h除的記錄! else if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果int j1 = 0;try rs = stmt.executeQuery("select * from c");while (rs.next

44、() && j1 <= row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫(kù)中 的對(duì)應(yīng)kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno"); j1+; catch (SQLException e) e.printStackTrace();int i1 = 0;try int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch +

45、 "'");/ 刪除數(shù)據(jù)庫(kù)中當(dāng)前被選中的記錄 JOptionPane.showMessageDialog(null, " 記錄刪除成功! "); this.dispose();new CM(" 課程信息管理").display(); catch (SQLException e) e.printStackTrace(); else try int rs1 = stmt.executeUpdate("delete from c where cno='"+ mkch + "'"

46、);/ 刪除數(shù)據(jù)庫(kù)中當(dāng)前被選中的記錄 JOptionPane.showMessageDialog(null, " 記錄刪除成功! "); this.dispose();new CM(" 課程信息管理").display(); catch (SQLException e) e.printStackTrace();public void update() / 修改某個(gè)課程記錄String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelected

47、Row();if (row = -1) JOptionPane.showMessageDialog(null, " 請(qǐng)選擇要修改的記錄! "); else int j1 = 0;try if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果rs = stmt.executeQuery("select * from c"); else rs = stmt.executeQuery("select * from c where cno='" + mkch + "'");while (rs.next()

48、&& j1 <= row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫(kù)中的對(duì)應(yīng)kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1+; catch (SQLException e) e.printStackTrace();CAdd cadd = new CAdd();cadd.setTitle(" 修改 ");this.dispose();public void select() / 顯示某個(gè)

49、查詢的結(jié)果mkch = cst.kch;playerInfo = new Object13;String columnNames = " 課程號(hào) ", " 課程名 ", " 先行課程號(hào) " ;try rs = stmt.executeQuery("select * from c where cno='" + mkch + "'");while (rs.next() playerInfo00 = rs.getString("cno");playerInfo01

50、= rs.getString("cn");playerInfo02 = rs.getString("pcno"); catch (SQLException e) e.printStackTrace();if (playerInfo01 = null) this.dispose();JOptionPane.showMessageDialog(null, " 課程號(hào)不存在! ");new CM(" 課程信息管理").display(); else sTable = new JTable(playerInfo, colu

51、mnNames);/ 創(chuàng)建網(wǎng)格 p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void actionPerformed(ActionEvent e) if (e.getActionCommand() = " 增加 ") new CAdd();this.dispose();if (e.getActionCommand() = " 刪除 ") this.delete();if (e.getActionCommand() = " 修改 ") t

52、his.update();if (e.getActionCommand() = " 查詢 ") cst = new CSelect();this.dispose();if (e.getActionCommand() = " 顯示 ") this.dispose();new CM(" 課程信息管理").display();import javax.swing.*;public class CSelect extends JFrame implements ActionListener / 用于課程信息管理中查 詢時(shí)輸入課程號(hào)的界面JLa

53、bel ltitle = new JLabel(" 課程號(hào): ");JTextField tcno = new JTextField(8);JButton btnOK = new JButton(" 確定 ");JPanel p = new JPanel();String kch = null;public CSelect() / 構(gòu)造方法p.add(ltitle);p.add(tcno);p.add(btnOK);add(p);this.setBounds(300, 280, 200, 160);btnOK.addActionListener(this

54、);this.setResizable(false);this.show();public void actionPerformed(ActionEvent e) kch = tcno.getText();/ 取得當(dāng)前輸入課程號(hào)的值if (kch.equals("") / 判斷是否輸入了課程號(hào)JOptionPane.showMessageDialog(null, " 課程號(hào)不能為空,請(qǐng)重新輸入! "); else this.dispose();new CM(this, " 課程信息管理").select();import javax.

55、swing.*;import java.awt.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener / 登錄界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(" 用戶: ");JTextField txtUser = new JTextField();JLabel password = new JLabel(" 密碼: &quo

56、t;);JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel(" 角色: ");JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(" 登錄 ");JButton btncz = new JButton(" 重置 ");JButton btnCancel = new JButton(" 取消 ");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() / 構(gòu)造方法super("登錄界面");p1 =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論