董夢雨 王格靈 張彪
摘要:隨著信息技術在管理上逐漸深入而廣泛的應用,管理信息系統(tǒng)在技術上已逐步成熟。學生成績管理系統(tǒng)是現代化管理的重要組成部分,是推動學生學分管理走向科學化、規(guī)范化的必要條件。各大高校都有著龐大的學生源,科學地管理學生的成績是必要的。因此,開發(fā)學生成績管理系統(tǒng)勢在必行。使用Visual Studio 2013,SQL Server 2014實現了學生成績管理系統(tǒng),系統(tǒng)分為三個模塊:管理員信息管理模塊、教師管理模塊、學生管理模塊。其中教師管理模塊可以修改成績,添加成績和查詢信息。還包括三種權限:管理員、教師、學生。其中管理員擁有最高權限,可以對教師和學生信息進行操作。
Abstract: With the gradual and extensive application of information technology in management, management information systems have gradually matured in technology. The management system of student grade is an important part of modern management, and it is a necessary condition for the promotion of student credit management to be scientific and standardized. Universities and colleges all have huge student resources and it is necessary to manage scientifically to the students' grade. Therefore, it is imperative to develop a management system of student grade. Using Visual Studio 2013, SQL Server 2014 implements a management system of student grade. The system consists of three modules: management module of administrator information, teacher management module, and student management module. The teacher management module can modify the grades, add grades and query information. It also includes three types of permissions: administrators, teachers, and students. Among them, the administrator has the highest authority and can operate on teacher and student information.
關鍵詞:Windows窗體;Visual Studio2013;SQL Server 2014;學生成績管理
Key words: Windows Form;Visual Studio2013;SQL Server2014;student management
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1006-4311(2018)32-0171-06
0 引言
隨著信息技術在管理上深入廣泛的應用,管理信息系統(tǒng)技術也逐步走向成熟。管理信息系統(tǒng)是一個不斷發(fā)展的學科,任何一個要生存發(fā)展的單位,都必須構建與自身特點相符合的管理信息系統(tǒng)。目前,學校辦學規(guī)模的擴大和招生人數的增加,給學校對于學生成績管理維護造成了壓力。因此及時建立一個學生成績管理系統(tǒng)是學校管理工作中異常重要的一個環(huán)節(jié)[1],學生成績管理的計算機化是整個學校教務管理中的必要部分,并占著越來越重要的份量。而且利用學生成績管理維護系統(tǒng)可以減少學院教學人員的工作量,縮小開支,節(jié)省時間,提高工作效率,學生也能夠及時查詢到自己的考試成績,以便于及時總結自己在某門課程中學習的不足,從而投入到更好的學習計劃。因此,針對這一狀況開發(fā)出一套學生成績管理系統(tǒng)非常必要。
美國麻省理工學院最早在20世紀70年代提出了數字化校園的概念,并且經過了多年的努力,建立了一個較成熟的數字化校園平臺[2]。目前美國已經有85%的高??梢詾閷W生提供數字化信息管理服務。在歐洲地區(qū),各大高校也陸續(xù)建立了信息化管理系統(tǒng)平臺。管理信息系統(tǒng)一般采用的模式是集中統(tǒng)一管理全局數據信息的中央數據庫模型,軟件開發(fā)的系統(tǒng)架構也是以C/S,或者B/S模式設計為主的[3],它們從全局的角度統(tǒng)籌管理整個學校的教學資源,用集中數據平臺的方式提高學校的管理效率,加快數據流通速度[4]。經過多年的努力嘗試,目前國外高校的這種數字化管理模式平臺已逐步走向成熟,其運行狀況也處于一種比較穩(wěn)定的階段。
在我國,隨著教育事業(yè)的發(fā)展,各學校在信息化建設的過程中經歷了多年的努力探索,且取得了一些成績[5]。目前,國內一些學校在吸收借鑒國內外先進的信息管理模式的同時,結合本校的實際情況,設計開發(fā)符合自己條件的現代化信息管理系統(tǒng),譬如學生成績管理系統(tǒng)等[6]。縱觀目前我國信息管理系統(tǒng)的研究現狀,在用戶信息安全維護和信息更新化方面還存在一定的不足。由于計算機網絡的形式多樣性、分布不均勻性等特征,易受病毒、黑客等攻擊的現象時常發(fā)生,因此,加強高校教務管理系統(tǒng)的安全維護措施就顯得尤為重要。
在信息技術高度發(fā)達的今天,應用先進的IT技術實現學生信息管理系統(tǒng)的工作已相繼開展。實現高校學生成績管理的信息化,不僅可以提高效率,而且通過對課程及成績的相關數據進行深入挖掘和分析,能夠提高教務管理工作水平。另外,實現學生成績信息管理系統(tǒng)[7],具有以下優(yōu)點:①大量的數據存儲,可以方便存儲歷屆學生的檔案信息;②檢索速度快,學生可以通過上網及時地查到各科成績;③節(jié)約勞動力,只需幾名信息錄入員就可以實現成績的錄入、統(tǒng)計,提高了工作效率;④通過學校信息化的探索,在研發(fā)過程中既可積累經驗,也可以為將來學校教務管理信息化做好準備。
1 開發(fā)平臺及環(huán)境簡介
1.1 Windows應用程序開發(fā)
Windows窗體是一個應用于Microsoft Windows應用程序開發(fā)基于.NET框架的新平臺[8]。此框架可以向用戶提供一個有條理的、面向對象的類集,使其能夠開發(fā)出一個方便高效的Windows應用程序。Windows應用程序中包括如下幾個主要文件:①Program.cs主程序文件,是程序的入口:它是一個程序運行時最先運行的地方,這里包含Main()函數,不管是Win form程序還是控制臺,都會涉及到這個程序。②Form.cs:窗體文件,是用戶對窗體的代碼操作,里面通常有窗體事件,在這里設立窗體的操作代碼。③Form.Designer.cs:窗體設計文件,其中的代碼是Visual Studio自動生成的,里面有對窗體的操作代碼,以及窗體的系統(tǒng)規(guī)劃代碼。
1.2 ADO.NET數據庫訪問技術
數據庫系統(tǒng)是在編程中必不可少的應用領域[9]。早在ADO.NET以前,多數的應用程序都是通過ADO提供的軟件對象來訪問數據庫。本系統(tǒng)分析比較了ADO.NET與ADO技術中的差別,得出了使用ADO.NET進行訪問具有更顯著的優(yōu)越性的結論。因此,本系統(tǒng)采用了ADO.NET對數據庫進行訪問。
1.3 開發(fā)工具
①Visual Studio 2013[10]。Visual Studio 2013是在以前版本的基礎上,根據后續(xù)的更新進展過程構建而成的,它為開發(fā)團隊提供相應的解決方案,同時在Microsoft平臺上支持多種設備和服務。Visual Studio 2013可以幫助開發(fā)團隊創(chuàng)造新式應用程序,而且可以將現有的應用程序轉變?yōu)樾率綉贸绦?,使得用戶在多種設備上能夠享受到較好的體驗。②SQL Server 2014[11]。通過內置的突破式內存駐留技術,能為要求最高的數據庫應用提供關鍵業(yè)務所需的性能內存駐留技術,性能最高提升30倍。開發(fā)團隊通過使用多樣化的工作負載進行全新的性能測試,證明了采用開創(chuàng)性內存計算技術的SQL Server 2014可以為那些對數據庫有極高要求的應用程序提供符合需求的數據平臺。
2 需求分析
2.1 可行性分析
由于學生成績管理系統(tǒng)的對象單一,針對在校學生,教務系統(tǒng)的數據量也不斷上漲,且每個數據具有較強的關聯性,但涉及的計算過程不是很復雜[11]。因此,比較適合采用數據庫管理。學校用于學生管理的計算機在存儲量、運行速度等方面都不能滿足數據庫查詢等相關程序運行的要求。在技術難度方面,由于此項目具有普遍性,可以適用于眾多學校,因此技術上完全可以實現。
由于本學生成績管理系統(tǒng)設計的對象權限分明,功能明確,且系統(tǒng)建成后可以直接進行相關信息的查詢和修改,所以通過對本系統(tǒng)的使用,可以減少相當一部分的人力和物力的使用,因此可以帶來一定的經濟效益。從經濟上分析,本系統(tǒng)是可行的。此外本系統(tǒng)可以提升工作效率,使用時準確方便,可大大改善數據處理速度。而且在其他方面,也可以帶來一定的經濟效益。
2.2 功能模塊需求分析
該系統(tǒng)的目的是實現學校成績管理優(yōu)化。隨著管理系統(tǒng)信息化的發(fā)展,各個學校學生的人數不斷增多,對于按照以前的傳統(tǒng)方式處理學生成績的管理已經不能滿足現在的要求。因此,構建一個便于學生查詢成績,便于教師成績管理、便于學生管理個人基本信息的管理系統(tǒng)勢在必行。通過本學生成績管理系統(tǒng),學??梢愿佑行У倪M行管理工作,包括基本信息,成績信息等。具體模塊功能介紹如下所示:①管理員管理模塊:學生成績管理系統(tǒng)主要用來管理學生成績,因此系統(tǒng)的運行環(huán)境和安全性都顯得非常重要。為了實現該目的,本系統(tǒng)需要一個管理員來系統(tǒng)管理教師以及學生的信息。其任務是對教師以及學生的基本信息進行編輯處理以及維護系統(tǒng)的正常運行和安全性設置。②教師管理模塊:學校的實際情況是老師所任教的科目及相關的個人信息需要自己及時更新,學生的成績需要老師及時上傳,對出現輸入錯誤的學生成績,需要及時修改,所以本系統(tǒng)要做到具有教師權限的管理項目,從而實現對教師相關數據的及時更新。所以本系統(tǒng)需要一個管理教師的模塊。③學生管理模塊:為了方便學校對學生的個人信息情況的管理工作,提高管理效率,因此需要對學生的信息進行管理。同時,學生也可以修改自己的個人信息。并且當學生符合登錄本系統(tǒng)后,可以查詢自己的成績。因此本系統(tǒng)需要一個學生權限的管理模塊。
3 系統(tǒng)概要設計
基于對于系統(tǒng)需求的分析,本系統(tǒng)確定分為三個模塊:管理員管理模塊、教師管理模塊、學生管理模塊。(圖1)
3.1 系統(tǒng)功能模塊設計
①管理員管理模塊:該模塊的功能是管理教師以及學生的信息,并且維護系統(tǒng)的正常運行和安全性設置,包括添加用戶、修改用戶信息、安全登錄等等。②教師管理模塊:該模塊的主要任務是實現對教師的信息管理工作以及學生成績的管理工作,包括:教師信息添加、信息修改,學生成績添加、成績修改。這兩個功能模塊各自獨立,共同完成教師的管理工作。③學生管理模塊:該模塊的功能是實現對學生的個人信息的管理工作和學生成績的查詢工作。包括學生個人信息添加、信息查詢、信息修改、成績查詢等功能,從而方便學校管理部門快速查詢和了解學生的基本信息。
3.2 數據庫設計
①數據表分析。數據庫中各表數據分析:首先做出學生成績管理系統(tǒng)的整體分析,考慮到系統(tǒng)的實體,學生的成績是由任課教師按照課程給出的,因此學生、課程成績、教師組成了這個系統(tǒng)的三個實體。然后再具體分析三個實體之間的關系。首先,三個實體之間存在著相應的聯系,學生成績與教師沒有直接聯系,教師必須通過任教科目即課程編號才能和學生建立聯系。其次,課程與學生兩個實體之間是多對多的關系;一名學生要學習多門課程,一門課程也會有多名學生共同學習。而學習成績是這兩個實體(“學生”和“課程成績”)共有的屬性,因此學生與成績表之間通過課程編號以及學號共同關聯。最后,教師與課程兩個實體之間是一對多的關系;一位教師可以任教多門課程,而一門課程對于學生成績來說只能由一位教師給出。另外,管理員用戶登錄時,需要建立一個管理員的用戶表。
②主要實體數據表(表1~表4)。loginID表示用戶登錄編號、name表示用戶名、pwd表示密碼。nvarchar是一種用于表示字符數據的數據類型。name表示用戶名、pwd表示密碼、renjiaokemu表示該老師任教科目、kemuID表示課程編號、email表示該教師的郵箱。ID表示學號、name表示學生姓名、pwd表示密碼、gender表示性別、class表示班級、grade表示年級。studnet ID表示學生學號、name表示學生姓名、kemuID表示科目編號、kemu表示科目名稱、score表示成績。
4 系統(tǒng)詳細設計與實現
4.1 系統(tǒng)登錄界面
系統(tǒng)登錄頁面是本項目的第一個頁面,登錄用的用戶名和密碼是數據庫表中相應的數據。本系統(tǒng)根據不同用戶的登錄設置了不同的權限,即有管理員登錄、教師登錄和學生登錄。
實現該功能的主要代碼如下所示:
private void btnLogin_Click(object sender, EventArgs e) {
if (CheckInput())
{
string message = string.Empty;
if (CheckUser(ref message))
{
if (cmbType.Text.Equals("管理員"))
{
FrmAdmin frmAdmin = new FrmAdmin();
frmAdmin.Show();
}
else if (cmbType.Text.Equals("學生"))
{
FrmStudent frmStudent = new FrmStudent();
frmStudent.Show();
}
else
{
FrmTeacher frmTeahcer = new FrmTeacher(); frmTeahcer.Show();
}
}
登錄模塊流程為:開始登錄→輸入用戶名和密碼→用戶名是否存在→進行相應的權限操作→結束。
結果測試:非空驗證:如果登錄時漏填某項,會出現“請輸入XXX”的系統(tǒng)提示;若用戶名在數據庫中不存在,則登錄不成功;最后,通過登錄類型的選擇,賦予用戶相應權限,從而進入相應的界面,即登陸成功。
4.2 管理員管理系統(tǒng)
本界面是本系統(tǒng)的管理員登錄后界面,在本界面上顯示了管理員作為最高權限本的所有功能,通過一個菜單欄控件(Menu Strip控件)及相應的子菜單項,從而實現了本系統(tǒng)的教師信息管理、學生信息管理等具體的功能,同時,在管理員管理模塊中可以完成對本系統(tǒng)的安全性管理。
①新增學生功能。管理員登錄后,點擊地址欄中的“學生信息”管理選項,進入如圖3所示的界面。點擊“新增學生”子菜單項,進入添加學生信息的頁面,相應信息填寫完畢后,點擊“提交”按鈕,顯示“插入成功!”信息提示。
實現該功能的主要代碼如下所示:
StringBuilder sb = new StringBuilder();
sb.AppendLine("insert into [student]
([ID],[name],[pwd],[gender],[class],[grade]) ");
sb.AppendFormat("
values({0},'{1}','{2}','{3}','{4}','{5}')",
studentId, studentName, pwd, gender, studentClass,
grade);
SqlCommand command = new
SqlCommand(sb.ToString(), dbhelper.Connection);
Console.WriteLine(sb.ToString());
dbhelper.OpenConnection();
int result = command.ExecuteNonQuery();
結果測試:非空驗證:如果登錄時漏填某項,會出現“請輸入XXX”的系統(tǒng)提示;兩次密碼輸入不同時,出現“兩次密碼不一致”的系統(tǒng)提示;若運行中數據類型與數據庫表中的字段類型不匹配等問題,會出現“插入失敗”的系統(tǒng)提示;若各項符合,則操作成功。
②查詢學生信息功能。點擊“查詢學生信息”子菜單項,進入查詢學生信息頁面。該頁面支持模糊查詢功能。點擊“查找”按鈕,將查詢到的相應的學生信息包括成績顯示在頁面下方的ListView中。實現從數據庫中查詢到的信息添加到ListView中的功能的主要代碼如下所示:
while (reader.Read()) {
string studentNo = reader["ID"].ToString(); string studentName = reader["name"].ToString(); string gender = reader["gender"].ToString();
string kemu = reader["kemu"].ToString();
string score = reader["score"].ToString();
ListViewItem item = new ListViewItem(studentNo); item.SubItems.Add(studentName);
item.SubItems.Add(gender);
item.SubItems.Add(kemu);
item.SubItems.Add(score);
lvStudent.Items.Add(item);
reader.Close();
}
測試結果:查詢過程中,若出現體統(tǒng)錯誤,則提示相應的錯誤信息;若操作成功,則顯示學生的相應信息。(圖5)
③修改學生信息功能。點擊“修改學生信息”子菜單欄,進入修改信息頁面。將需要改的項在此頁面上修改后,點擊“修改”按鈕,出現“更新學生成功!”的信息提示,則數據更新成功。測試結果如圖6。
④教師信息管理功能。教師信息管理中各個子菜單項的實現與學生信息管理模塊功能相似。故不再詳細介紹。另外,點擊“退出”菜單,退出該應用程序。
4.3 教師管理模塊
本模塊是擁有教師權限的教師登錄后的界面,從而實現教師自身信息的添加、修改功能,并且能夠實現教師對學生所對應的任教科目的成績的管理功能,包括成績添加、成績修改等功能。(圖7)
①教師信息管理。該功能與上一節(jié)中管理員管理教師信息的功能相同。即擁有教師權限的用戶進入教師管理頁面后,實現查詢信息、增加信息、修改信息等功能。
②添加學生成績功能。點擊“添加學生成績”子菜單欄,進入添加成績頁面。正確填寫完相應的信息后,點擊“添加”按鈕,出現“添加成功!”的系統(tǒng)提示信息,并將該學生的成績更新后顯示在頁面下方的DataGridView中。
實現該功能的關鍵代碼如下:
StringBuilder sb = new StringBuilder();
sb.AppendLine("select [name],[kemu],[score] from [score] ");
sb.AppendFormat(" where [studentID]={0}", Convert.ToInt32(this.txtStudentID.Text.Trim()));
this.ds = new DataSet();
SqlDataAdapter adapterResult = new
SqlDataAdapter(sb.ToString(),
dbhelper.Connection);
if (ds.Tables["score"] != null)
{
ds.Tables["score"].Clear();
}
adapterResult.Fill(ds, "score");
this.dgvResult.DataSource = ds.Tables["score"];
測試結果:(圖8~圖9)
③刪除學生成績功能。點擊“刪除學生成績”子菜單欄,進入刪除成績頁面。輸入學生姓名,點擊“查找”按鈕,顯示該學生各科的成績。在DataGridView中選中要刪除的行,點擊“刪除”按鈕,會出現“是否刪除該行數據?”的信息提示,點擊“確定”,若出現“刪除成功!”的系統(tǒng)提示信息,則操作成功。
實現該功能的主要代碼如下所示:
string kemu =
Convert.ToString(dgbScore.SelectedRows[0].Cells["kemu"].Value);
DBHelper dbHelper = new DBHelper();
try
{
dbHelper.OpenConnection();
string sql = string.Format("delete from score
where kemu='{0}'", kemu);
SqlCommand command = new SqlCommand(sql, dbHelper.Connection);
int result = command.ExecuteNonQuery();
if (result >0)
{
MessageBox.Show("刪除成功!", "操作提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
SearchScore();
}
測試結果:(圖10~圖11)
④修改學生成績功能。點擊“修改學生成績”子菜單欄,進入成績列表頁面。輸入要修改的學生姓名,選中在DataView中顯示的該生的整行信息,點擊“修改”按鈕,進入修改成績頁面,該生的所有信息都顯示在該頁中。編輯成績項的Textbox,填好后點擊“修改”按鈕,出現“修改成功!”的系統(tǒng)提示,點擊“確定”按鈕,頁面返回到成績列表的頁面,再次查詢,顯示更新后的信息,則操作成功。
實現該功能的主要代碼如下所示:
string sql = string.Format("update score set score='{0}' where
kemu='{1}' and
studentID={2}",nowResult, stuScore.Kemu,
stuScore.StuID);
SqlCommand command = new SqlCommand(sql, dbHelper.Connection);
int result = command.ExecuteNonQuery();
if (result > 0)
{
DialogResult r= MessageBox.Show("修改成功!", "操作提示",
MessageBoxButtons.YesNo,
MessageBoxIcon.Information);
if (r == DialogResult.Yes)
{
FrmScoreList fmScoreList = new
FrmScoreList();
fmScoreList.Show();
this.Hide();
}
}
測試結果:(圖12)
4.4 學生管理模塊
為了方便學校管理工作的開展,學生登錄成功后,若發(fā)現自己的基本信息不正確,可以及時修改。對于成績管理方面,學生只有查詢自己成績的功能,既不能修改,也不能刪除。(圖13)
學生成績查詢功能。進入學生登錄后的界面,點擊“查詢成績”子菜單項,進入學生成績查詢頁面。從登錄頁面將用戶名的值傳入到查詢頁面,點擊“查找”按鈕,若輸入的姓名與登錄用戶名一致,則學生信息將顯示在頁面下方的DataGridView中,點擊“返回”,返回上圖。點擊“退出”子菜單欄,退出應用程序。
實現該功能的主要代碼如下所示:
FrmShowScore frmShowScore = new
FrmShowScore();
frmShowScore.student = this.student;
frmShowScore.Show();
StringBuilder sb = new StringBuilder();
sb.AppendLine("select
[studentID],[name],[kemu],[score]");
sb.AppendLine("from [score]");
sb.AppendFormat("where [name] = '{0}'",
student.StuName);
sb.AppendLine("order by [studentId]");
SqlDataAdapte ataAdapter = new
SqlDataAdapter(sb.ToString(),
dbhelper.Connection);
if (ds.Tables["score"] != null)
{
ds.Tables["score"].Clear();
}
dataAdapter.Fill(ds, "score");
this.dgbScore.DataSource = ds.Tables["score"];
測試結果:圖14~圖15。
若輸入的學生姓名與登錄用戶名不一致,則出現“對不起,您沒有訪問權限!”的系統(tǒng)提示信息。即一個學生只能查詢自己的成績。
5 全文總結
本文首先對學生成績管理系統(tǒng)進行了準確的需求分析,明確了不同權限對象的主要功能。其次,針對不同對象的管理權限,在數據庫設計過程中建立表連接,分析數據庫表中的各個字段的關系。另外,在程序設計上,利用相應的函數方法,準確調用函數,實現具體功能,給出了實現某些功能的主要代碼。從程序設計和功能需求分析上來看,本文認為在權限維護和個人隱私設計上仍有待完善,以便在實際操作中減少保密性問題。
參考文獻:
[1]李慧文.計算機信息系統(tǒng)及當代信息資源規(guī)劃[J].北京工業(yè)大學出版社,2001.
[2]李蘭友,楊曉光.Visual C#.NET程序設計[M].北京:北方交通大學出版社,2004.
[3]曹衍龍.ASP/ASP.NET數據庫開發(fā)實用工程案例精選[M].北京:人民郵電出版社,2006.
[4]薛秀琴.B/S模式下學生信息管理系統(tǒng)的設計及安全分析[J].電腦開發(fā)與應用,2013,26(12):41-44.
[5]王昊亮,李剛.Visual C#程序設計教程[M].北京:清華大學出版社,2003.
[6]烏日其木格,馬恒宇.淺談高校教務管理系統(tǒng)現狀與改進建議[J].內蒙古師范大學學報(教育科學版),2007(09):77-78.
[7]武蒼林,羅晃.Web數據庫的ASP開發(fā)方案[J].計算機工程與科學,1999:21(1):65-68.
[8]張建成,李春青.基于.NET環(huán)境下ADO.NET訪問數據庫技術的研究[J].電腦知識與技術,2009,5(22):6102-6104.
[9]劉志成.SQL Server數據庫技術與實訓[M].北京:科學出版社,2006.
[10]薩師煊.數據庫系統(tǒng)概論[M].北京:高等教育出版社,2006.
[11]張龍.教務管理信息系統(tǒng)的設計與實現[J].電子設計工程,2016,24(20):36-38,42.