薛林莉 鄭紅霞
(鶴壁市機(jī)電信息工程學(xué)校,河南 鶴壁 458030)
基于NET的學(xué)生信息管理系統(tǒng)的研究
薛林莉 鄭紅霞
(鶴壁市機(jī)電信息工程學(xué)校,河南 鶴壁 458030)
針對當(dāng)前職業(yè)類院校學(xué)生信息管理辦公自動化落后的現(xiàn)狀,本文設(shè)計(jì)了學(xué)生信息管理系統(tǒng)來解決該問題。本文首先對系統(tǒng)的功能需求和可行性進(jìn)行了分析;其次對系統(tǒng)的數(shù)據(jù)庫進(jìn)行了詳細(xì)描述,并給出了相關(guān)的數(shù)據(jù)表內(nèi)容;最后分析了學(xué)生管理模塊和成績管理模塊。本文對于學(xué)校教輔人員和專業(yè)老師都具有積極的意義。
NET;學(xué)生學(xué)籍;數(shù)據(jù)庫
隨著學(xué)校辦學(xué)規(guī)模的不斷擴(kuò)大,各個(gè)專業(yè)的招生人數(shù)不斷增加,傳統(tǒng)的人工學(xué)生信息管理模式已經(jīng)無法滿足實(shí)際工作的需求,而大型的校園OA系統(tǒng)開發(fā)成本較高,對于很多職業(yè)院校來說是一種浪費(fèi)。本文所設(shè)計(jì)的單機(jī)版的學(xué)生信息管理系統(tǒng),可以極大地提高辦事效率,不浪費(fèi)資源,另外開發(fā)成本低廉,具有較強(qiáng)的可推廣性。
2.1 功能需求
對于學(xué)生的信息管理,主要涉及到學(xué)生的基本信息、課程、教師的基本信息、班級選課、成績管理等內(nèi)容。每一個(gè)學(xué)校的情況不同,但對于大部分學(xué)校來說,一般需要滿足以下的要求:
(1)實(shí)現(xiàn)學(xué)生基本信息的添加、修改、刪除和查詢(包括姓名、學(xué)號、班級等)等基本操作。
(2)實(shí)現(xiàn)學(xué)生課程信息的添加、修改、刪除和查詢等基本操作。
(3)實(shí)現(xiàn)教師基本信息的添加、修改、刪除和查詢等基本操作。
(4)完成一個(gè)班級的學(xué)期選課功能。
(5)實(shí)現(xiàn)學(xué)生成績的錄入、修改、刪除和查詢等基本操作;成績信息可生成報(bào)表;能方便地對學(xué)生的各學(xué)期成績進(jìn)行查詢;具有學(xué)期成績統(tǒng)計(jì)、排名等功能;有成績統(tǒng)計(jì)的餅狀圖,更直觀地查看某學(xué)科成績分?jǐn)?shù)段的分布情況。
(6)完成數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)的功能。
(7)完成對課程信息、學(xué)生信息、教師信息、成績信息的導(dǎo)入與導(dǎo)出功能,其彼此之間的關(guān)系如圖1所示:
圖1 流程分析圖
對于整個(gè)系統(tǒng)的設(shè)計(jì),傳統(tǒng)的過程設(shè)計(jì)不能隨著規(guī)模的擴(kuò)大而進(jìn)行有效的擴(kuò)展,對系統(tǒng)進(jìn)行模塊化編程,將每個(gè)功能形成一個(gè)個(gè)小模塊,模塊之間既相互聯(lián)系又彼此獨(dú)立。
2.2 可行性分析
(1)經(jīng)濟(jì)上可行性
隨著IT行業(yè)的迅猛發(fā)展,計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。本系統(tǒng)可以在安裝有Windows平臺的任一臺電腦上運(yùn)行,提升了工作效率,節(jié)省了大量的人工勞動。
(2)技術(shù)上可行性
本系統(tǒng)的開發(fā)工具采用Visual Studio 2010,數(shù)據(jù)庫采用Microsoft SQL Server2005,成熟的技術(shù)完全可以滿足該系統(tǒng)的開發(fā)。
一般來說,學(xué)校的學(xué)生人數(shù)一般都在十萬人以下,采用SQL 2005數(shù)據(jù)庫系統(tǒng),可以滿足當(dāng)前學(xué)校的需求,又可以隨著功能的增加而滿足未來的需求。
3.1 E-R圖
在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)以前,首先要對系統(tǒng)的數(shù)據(jù)進(jìn)行分析,設(shè)計(jì)出E-R圖,即現(xiàn)實(shí)世界的模型,描述其相關(guān)實(shí)體之間的聯(lián)系和自身的屬性。完善的E-R圖可以使得系統(tǒng)實(shí)現(xiàn)的過程避免很多彎路。學(xué)生信息管理系統(tǒng)各實(shí)體之間的E-R圖如圖2所示:
圖2 實(shí)體E-R圖
3.2 數(shù)據(jù)表
數(shù)據(jù)庫中包含了若干數(shù)據(jù)表,數(shù)據(jù)表是具體數(shù)據(jù)存放的位置。在學(xué)生信息管理系統(tǒng)中,主要包含的數(shù)據(jù)表有:
(1)系統(tǒng)用戶表:用于存放用戶信息。其包含的字段主要有用戶名、密碼和用戶權(quán)限等信息。
(2)學(xué)生信息表:用于存放學(xué)生的基本信息,其字段主要有學(xué)號、姓名、性別、年齡、入學(xué)時(shí)間、所屬專業(yè)等信息,設(shè)置學(xué)號為主鍵,不能改變。
(3)教師信息表:用于存放教師的基本信息,其字段主要有教師編號、姓名、性別、民族、出生年月、所屬專業(yè)等信息,設(shè)置教師編號為主鍵,不能改變。
(4)班級信息表:用于存放班級的基本信息,其字段主要有除了班級號、班級名、班主任、專業(yè)等信息,班級號為主鍵,不能改變。
(5)課程信息表:用于存放課程的基本信息,其字段主要課程號、課程名、學(xué)分、學(xué)時(shí)、任課老師編號等信息。
(6)選課信息表:用于存放班級選課信息。設(shè)置了班級號和課程號等信息。
(7)成績信息表:用于存放單獨(dú)每個(gè)學(xué)生的成績。其字段主要有學(xué)號、課程號、成績等信息。
系統(tǒng)由若干模塊組成,在此,將對核心的模塊進(jìn)行詳細(xì)的分析介紹。
4.1學(xué)生基本信息管理模塊
學(xué)生信息管理模塊是實(shí)現(xiàn)學(xué)生基本信息的添加、修改、刪除、查詢(包括姓名、學(xué)號、班級等)基本操作。實(shí)現(xiàn)原理:依靠ADO.NET提供的四個(gè)核心對象,SQLConnection,SQLCommand,SQLDataAdapt,SQLDataReader來實(shí)現(xiàn)對數(shù)據(jù)的操作,使用C#語言對控件進(jìn)行代碼編寫,讓系統(tǒng)通過控件完成對數(shù)據(jù)庫的操作并達(dá)到預(yù)期目標(biāo)。
其刪除學(xué)生基本信息的核心代碼如下:
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 成績模塊
成績模塊可以實(shí)現(xiàn)學(xué)生成績的錄入、修改、刪除和查詢等基本操作。在查詢中,可以選擇某一學(xué)科查詢該學(xué)科所有考生成績;可選擇某一學(xué)科,再選擇統(tǒng)計(jì)條件中的某一分?jǐn)?shù)段統(tǒng)計(jì)某學(xué)科某個(gè)分?jǐn)?shù)段的成績;可選擇某一學(xué)科,查詢該學(xué)科成績的圖形統(tǒng)計(jì)餅狀圖,顯示該學(xué)科各個(gè)分?jǐn)?shù)段所占百分比和人數(shù)。
其實(shí)有關(guān)成績信息的查詢與選課管理,同樣是使用多表查詢的思路來進(jìn)行操作,具體過程也大同小異,最關(guān)鍵的地方就是弄懂內(nèi)連接查詢的方法。
邏輯解釋說明:
從學(xué)生信息表中找到第一條記錄,然后從頭開始掃描成績表,從中找到與學(xué)生學(xué)號相同的記錄,再與學(xué)生信息表中的第一條記錄拼接起來,形成查詢結(jié)果中的第一條,繼續(xù)掃描成績表,組合記錄直到掃描結(jié)束。
從學(xué)生信息表中找到第二條記錄,然后從頭開始掃描成績表,從中找到與學(xué)生表中學(xué)號相同的記錄,再與成績表中的第一條記錄拼接起來,形成查詢結(jié)果中的第二條,繼續(xù)掃描成績表,組合記錄直到掃描結(jié)束。
以此類推直到學(xué)生信息表中所有查詢記錄被處理完。當(dāng)學(xué)生信息表被處理完后,按照select形成了一個(gè)新的表,再從這個(gè)新表中同成績表進(jìn)行匹配。
為了使用戶更直觀地查詢學(xué)生成績信息,用VS 2010里的chartlet圖表控件制作了查詢某個(gè)學(xué)科的成績段分布的餅狀圖,用來對成績進(jìn)行分析。其分析的餅狀圖如圖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分?jǐn)?shù)段,count(*)as數(shù)量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);
本文對學(xué)生信息管理系統(tǒng)進(jìn)行研究,解決了當(dāng)前職業(yè)院校學(xué)生信息管理混亂的問題。本文雖然將整個(gè)系統(tǒng)進(jìn)行了全面的分析,但由于篇幅所限,系統(tǒng)的具體實(shí)現(xiàn)沒有全部給出,在數(shù)據(jù)庫的設(shè)計(jì)方面,每個(gè)學(xué)校的具體情況也不盡相同,希望讀者在設(shè)計(jì)系統(tǒng)的時(shí)候,根據(jù)實(shí)際情況進(jìn)行分析研究。
[1]毛應(yīng)爽,趙慧玲,孟憲穎.SQL Server2005程序設(shè)計(jì)與管理基礎(chǔ)同步實(shí)訓(xùn)教材[M].北京:清華大學(xué)出版社,2009.
[2]丁寶康.?dāng)?shù)據(jù)庫實(shí)用教程[M].北京:清華大學(xué)出版社,2004.
[3]汪詩林等.?dāng)?shù)據(jù)結(jié)構(gòu)算法與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.
[4]馮博琴等.面向?qū)ο蠓治雠c設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,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
薛林莉,女,河南鶴壁人,講師,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。