薛林莉 鄭紅霞
(鶴壁市機電信息工程學校,河南 鶴壁 458030)
基于NET的學生信息管理系統的研究
薛林莉 鄭紅霞
(鶴壁市機電信息工程學校,河南 鶴壁 458030)
針對當前職業類院校學生信息管理辦公自動化落后的現狀,本文設計了學生信息管理系統來解決該問題。本文首先對系統的功能需求和可行性進行了分析;其次對系統的數據庫進行了詳細描述,并給出了相關的數據表內容;最后分析了學生管理模塊和成績管理模塊。本文對于學校教輔人員和專業老師都具有積極的意義。
NET;學生學籍;數據庫
隨著學校辦學規模的不斷擴大,各個專業的招生人數不斷增加,傳統的人工學生信息管理模式已經無法滿足實際工作的需求,而大型的校園OA系統開發成本較高,對于很多職業院校來說是一種浪費。本文所設計的單機版的學生信息管理系統,可以極大地提高辦事效率,不浪費資源,另外開發成本低廉,具有較強的可推廣性。
2.1 功能需求
對于學生的信息管理,主要涉及到學生的基本信息、課程、教師的基本信息、班級選課、成績管理等內容。每一個學校的情況不同,但對于大部分學校來說,一般需要滿足以下的要求:
(1)實現學生基本信息的添加、修改、刪除和查詢(包括姓名、學號、班級等)等基本操作。
(2)實現學生課程信息的添加、修改、刪除和查詢等基本操作。
(3)實現教師基本信息的添加、修改、刪除和查詢等基本操作。
(4)完成一個班級的學期選課功能。
(5)實現學生成績的錄入、修改、刪除和查詢等基本操作;成績信息可生成報表;能方便地對學生的各學期成績進行查詢;具有學期成績統計、排名等功能;有成績統計的餅狀圖,更直觀地查看某學科成績分數段的分布情況。
(6)完成數據備份與數據恢復的功能。
(7)完成對課程信息、學生信息、教師信息、成績信息的導入與導出功能,其彼此之間的關系如圖1所示:

圖1 流程分析圖
對于整個系統的設計,傳統的過程設計不能隨著規模的擴大而進行有效的擴展,對系統進行模塊化編程,將每個功能形成一個個小模塊,模塊之間既相互聯系又彼此獨立。
2.2 可行性分析
(1)經濟上可行性
隨著IT行業的迅猛發展,計算機的價格已經十分低廉,性能卻有了長足的進步。本系統可以在安裝有Windows平臺的任一臺電腦上運行,提升了工作效率,節省了大量的人工勞動。
(2)技術上可行性
本系統的開發工具采用Visual Studio 2010,數據庫采用Microsoft SQL Server2005,成熟的技術完全可以滿足該系統的開發。
一般來說,學校的學生人數一般都在十萬人以下,采用SQL 2005數據庫系統,可以滿足當前學校的需求,又可以隨著功能的增加而滿足未來的需求。
3.1 E-R圖
在進行數據庫設計以前,首先要對系統的數據進行分析,設計出E-R圖,即現實世界的模型,描述其相關實體之間的聯系和自身的屬性。完善的E-R圖可以使得系統實現的過程避免很多彎路。學生信息管理系統各實體之間的E-R圖如圖2所示:

圖2 實體E-R圖
3.2 數據表
數據庫中包含了若干數據表,數據表是具體數據存放的位置。在學生信息管理系統中,主要包含的數據表有:
(1)系統用戶表:用于存放用戶信息。其包含的字段主要有用戶名、密碼和用戶權限等信息。
(2)學生信息表:用于存放學生的基本信息,其字段主要有學號、姓名、性別、年齡、入學時間、所屬專業等信息,設置學號為主鍵,不能改變。
(3)教師信息表:用于存放教師的基本信息,其字段主要有教師編號、姓名、性別、民族、出生年月、所屬專業等信息,設置教師編號為主鍵,不能改變。
(4)班級信息表:用于存放班級的基本信息,其字段主要有除了班級號、班級名、班主任、專業等信息,班級號為主鍵,不能改變。
(5)課程信息表:用于存放課程的基本信息,其字段主要課程號、課程名、學分、學時、任課老師編號等信息。
(6)選課信息表:用于存放班級選課信息。設置了班級號和課程號等信息。
(7)成績信息表:用于存放單獨每個學生的成績。其字段主要有學號、課程號、成績等信息。
系統由若干模塊組成,在此,將對核心的模塊進行詳細的分析介紹。
4.1學生基本信息管理模塊
學生信息管理模塊是實現學生基本信息的添加、修改、刪除、查詢(包括姓名、學號、班級等)基本操作。實現原理:依靠ADO.NET提供的四個核心對象,SQLConnection,SQLCommand,SQLDataAdapt,SQLDataReader來實現對數據的操作,使用C#語言對控件進行代碼編寫,讓系統通過控件完成對數據庫的操作并達到預期目標。
其刪除學生基本信息的核心代碼如下:
try
{
if(txtNo.Text.Trim()=="")
{
MessageBox.Show("沒有可刪除的記錄","提示");
return;
}
else if(MessageBox.Show("確定要刪除“"+txtName.Text.Trim()+"”的資料嗎?","提示",MessageBoxButtons.YesNo,
MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.Yes)
{
string sqlStr="delete from tb_student where Sno='"+ txtNo.Text.Trim()+"'";
CDataBase.UpdateDB(sqlStr);
int n=dgrdvStudent.CurrentCell.RowIndex;
dgrdvStudent.Rows.RemoveAt(n);
if(dgrdvStudent.Rows.Count==1)
{
ClearAll();
dgrdvStudent.DataSource=null;
}
else
{
dgrdvStudent_RowHeaderMouseClick(null,null);
}
}
}
catch(Exception ex)
{
CDataBase.conn.Close();
MessageBox.Show(ex.Message);
}
4.2 成績模塊
成績模塊可以實現學生成績的錄入、修改、刪除和查詢等基本操作。在查詢中,可以選擇某一學科查詢該學科所有考生成績;可選擇某一學科,再選擇統計條件中的某一分數段統計某學科某個分數段的成績;可選擇某一學科,查詢該學科成績的圖形統計餅狀圖,顯示該學科各個分數段所占百分比和人數。
其實有關成績信息的查詢與選課管理,同樣是使用多表查詢的思路來進行操作,具體過程也大同小異,最關鍵的地方就是弄懂內連接查詢的方法。
邏輯解釋說明:
從學生信息表中找到第一條記錄,然后從頭開始掃描成績表,從中找到與學生學號相同的記錄,再與學生信息表中的第一條記錄拼接起來,形成查詢結果中的第一條,繼續掃描成績表,組合記錄直到掃描結束。
從學生信息表中找到第二條記錄,然后從頭開始掃描成績表,從中找到與學生表中學號相同的記錄,再與成績表中的第一條記錄拼接起來,形成查詢結果中的第二條,繼續掃描成績表,組合記錄直到掃描結束。
以此類推直到學生信息表中所有查詢記錄被處理完。當學生信息表被處理完后,按照select形成了一個新的表,再從這個新表中同成績表進行匹配。
為了使用戶更直觀地查詢學生成績信息,用VS 2010里的chartlet圖表控件制作了查詢某個學科的成績段分布的餅狀圖,用來對成績進行分析。其分析的餅狀圖如圖3所示:

圖3 成績餅狀圖
其成績模塊的核心代碼如下所示:
chartlet1.ChartTitle.Text=name1;
chartlet1.AppearanceStyle=FanG.Chartlet.AppearanceStyles.Pie_3D_Aurora_FlatCrystal_NoGlow_NoBorder;
chartlet1.Background.Paper=Color.FromArgb(0,0,0,0);
string strsql="select Cno from tb_Course where Cname='" +name1+"'";
DataSet ds1=new DataSet();
ds1=CDataBase.GetDataFromDB(strsql);
string cno=ds1.Tables[0].Rows[0]["Cno"].ToString();
StringBuilder str=new StringBuilder();
str.Append("select");
str.Append("case when grade>90 and grade<=100 then'90-100'");
str.Append("when grade>=80 and grade<=90 then'80-89'");
str.Append("when grade>=60 and grade<80 then'60-79' ");
str.Append("when grade<60 then'0-59'");
str.Append("end as分數段,count(*)as數量from dbo.tb_grade where Cno='"+cno+"'group by ");
str.Append("case when grade>90 and grade<=100 then' 90-100'");
str.Append("when grade>=80 and grade<=90 then'80-89'");
str.Append("when grade>=60 and grade<80 then'60-79' ");
str.Append("when grade<60 then'0-59'");str.Append(" end");
DataSet ds=new DataSet();
ds=CDataBase.GetDataFromDB(str.ToString());chartlet1.BindChartData(ds);
本文對學生信息管理系統進行研究,解決了當前職業院校學生信息管理混亂的問題。本文雖然將整個系統進行了全面的分析,但由于篇幅所限,系統的具體實現沒有全部給出,在數據庫的設計方面,每個學校的具體情況也不盡相同,希望讀者在設計系統的時候,根據實際情況進行分析研究。
[1]毛應爽,趙慧玲,孟憲穎.SQL Server2005程序設計與管理基礎同步實訓教材[M].北京:清華大學出版社,2009.
[2]丁寶康.數據庫實用教程[M].北京:清華大學出版社,2004.
[3]汪詩林等.數據結構算法與應用[M].北京:機械工業出版社,2005.
[4]馮博琴等.面向對象分析與設計[M].北京:機械工業出版社,2003.
Research on Student Information Management System Based on NET
Xue LinliZheng Hongxia
(Hebi Electrical Information Engineering School,Hebi 458030,Henan)
Aiming at the backwardness of automation of student information management,this paper designs a student information management system to solve the problem.Firstly,the functional requirement and feasibility of the system is analyzed;secondly, a detailed description of the database is given,and the related data of the datasheet as well;finally,the student management module and performance management module are analyzed.This paper has a positive significance for teachers.
NET;student;database
薛林莉,女,河南鶴壁人,講師,研究方向:計算機科學與技術。