鮑 倩
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安710071)
隨著高校學(xué)生數(shù)量增多,學(xué)生信息數(shù)劇量也日益龐大。使用學(xué)生成績管理系統(tǒng)可以方便高效地管理學(xué)生在校期間所修課程的成績。學(xué)校檔案館的數(shù)據(jù)庫不僅要存儲在校學(xué)生的信息,還必須存儲在一定年限內(nèi)畢業(yè)學(xué)生的信息[1]。文中學(xué)生成績管理系統(tǒng)采用MySQL數(shù)據(jù)庫,該數(shù)據(jù)庫體積小、容量大,解決了學(xué)生數(shù)據(jù)信息日益龐大的難題。管理系統(tǒng)的用戶界面采用Java語言編寫,之所以采用Java語言,是因為它具有簡單、面向?qū)ο?、穩(wěn)定、跨平臺、多線程等特點。Java的用戶界面開發(fā)工具包Swing,包含了豐富的用戶組件,以及對事件以及事件響應(yīng)的支持,允許開發(fā)人員使用簡短的代碼寫出美觀的用戶界面[2]。
設(shè)計了一款適合高校使用的C/S模式的學(xué)生成績管理系統(tǒng),該管理系統(tǒng)的特點是,在數(shù)據(jù)庫中將課程信息按照院系和專業(yè)分類,在界面中輸入學(xué)生所屬專業(yè)的名稱,用戶界面就會顯示該專業(yè)的課程清單,管理員只需按照學(xué)生選修的課程在課程清單中選擇課程名字,就會在用戶界面的另一個區(qū)域顯示學(xué)生所修課程清單,即可輸入每門課程的成績,這樣做的好處是減輕了管理員的工作量,因為一個班的學(xué)生所修課程基本相同,將所修課程歸納在一起,可省去管理員輸入課程名稱的工作,同時降低了錯誤發(fā)生率。根據(jù)以上分析,設(shè)計的功能模塊如圖1所示。
圖1 學(xué)生成績管理系統(tǒng)的功能模塊
(1)院系信息管理模塊。這個模塊主要用來添加、刪除、更新、查詢院系名稱和編號。
(2)專業(yè)信息管理模塊。這個模塊主要用來添加、刪除、更新、查詢專業(yè)名稱和編號,并將每個專業(yè)關(guān)聯(lián)到對應(yīng)的學(xué)院中。
(3)課程信息管理模塊。主要用來輸入存儲課程名稱和編號,并將課程名稱按照專業(yè)歸納好。
(4)學(xué)生信息管理模塊。主要用來存儲學(xué)生的基本信息和課程成績信息。
按照用戶需求和功能模塊設(shè)計來設(shè)計用戶界面,可以滿足系統(tǒng)的要求。采用Java語言編寫界面程序,主窗口如圖2所示。
圖2 學(xué)生成績管理系統(tǒng)的主界面
主界面由Java Swing的組件和事件構(gòu)成,用Border Layout[3]布局將界面分為上、中、下3部分,分別容納上述3個功能區(qū),使用Boder類將這3個功能區(qū)的物理位置分隔開。在第一功能區(qū)內(nèi),使用GridBagConstraints[4]布局將JLable組件和JTextField組件平均分布在各行各列,隨著窗口大小的變化,這些組件的相對位置不變。第二功能區(qū)進一步利用BorderLayout布局,分成Center部分和East部分,Center部分是JTable組件,該組件的表頭由JTable的表頭拆分和合并得到,是整個主界面編寫代碼最難的部分。East部分是一個刪除按鈕,可以刪除學(xué)生的一門或多門課程。第三功能類似于第二功能區(qū),利用BorderLayout布局分成Center和East部分,Center部分是JTable組件,East部分盛放的是一個選課按鈕。
院系信息模塊的管理窗口如圖3(a)所示,點擊主界面中菜單欄的系統(tǒng)→院系,就會彈出“院系管理”窗體,輸入院系的中英文名稱,點擊添加按鈕,就會將院系名稱和編號保存在數(shù)據(jù)庫中,完成院系信息的添加。選中文本區(qū)域的院系名稱,點擊刪除按鈕,就會將院系名稱從數(shù)據(jù)庫中刪除,完成院系信息的刪除。選中文本區(qū)域的院系名稱,點擊重置按鈕,就可以在編輯區(qū)域的文本框中修改院系名稱和顯示順序,完成院系信息的更新。
專業(yè)管理模塊的設(shè)計和院系管理模塊基本相同,如圖3(b)所示。課程信息模塊的管理窗口如圖3(c),點擊菜單欄的系統(tǒng)→課程,彈出“課程管理”窗體,在窗體的左邊區(qū)域選擇院系和專業(yè),然后輸入課程的中文名稱和英文名稱,就點擊添加按鈕,完成專業(yè)課程信息的添加。在文本區(qū)選擇課程名稱,然后點擊刪除按鈕,就可以完成專業(yè)課程信息的刪除。
圖3 3個模塊管理窗口
數(shù)據(jù)庫使用MySQL數(shù)據(jù)庫[5],一共設(shè)計了6張表,分別是學(xué)生表、院系表、專業(yè)表、課程表、專業(yè)課程表、分?jǐn)?shù)表,它們之間的關(guān)系如圖4所示。
系統(tǒng)設(shè)計的主要工作就是用戶界面的設(shè)計和數(shù)據(jù)庫的設(shè)計,以及通過用戶界面訪問數(shù)據(jù)庫代碼的編寫。最后將此管理系統(tǒng)的每個功能進行了都驗證,基本達到了預(yù)期的效果。
圖4 數(shù)據(jù)庫E-R圖
[1] 李舒,陳麗君.高校學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)[J].遼寧大學(xué)學(xué)報:自然科學(xué)版,2006,3(3):283-285.
[2] 李鐘尉,周小彤,陳丹丹,等.Java從入門到精通[M].2版.北京:清華大學(xué)出版社,2010.
[3] 王鵬,何昀峰.Java Swing圖形界面開發(fā)與案例詳解[M].北京:清華大學(xué)出版社,2008.
[4] 達爾文.Java經(jīng)典實例[M].張麗榮,張曉坤,譯.北京:中國電力出版社,2009.
[5] 錢雪忠,王燕玲,張平.MySQL數(shù)據(jù)庫技術(shù)與實驗指導(dǎo)[M].北京:清華大學(xué)出版社,2012.
[6] 楊璐,李隱峰,閆蕾.基于Web電子作業(yè)提交系統(tǒng)設(shè)計[J].電子科技,2012,25(7):53,54,57.
[7] 曲蘊慧,白新國.基于SOA的畢業(yè)信息管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2011,19(19):37-39.