资源描述
学生信息管理系统
1 引言
1.1 项目背景
伴随信息技术在管理上越来越深入而广泛应用,管理信息系统实施在技术上已逐步成熟。管理信息系统是一个不停发展新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必需建立和本身特点相适应管理信息系统。现在,在学校里,伴随高校规模不停扩大和招生人数不停增加,需要处理大量学生数据信息。怎样愈加好组织学生信息,愈加紧捷管理学生信息显得尤为关键。
作为计算机应用一部分,使用计算机对学生信息进行管理,有着手工管理所无法比拟优点.比如:检索快速、查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升学生信息管理效率,也是学校科学化、正规化管理,和世界接轨关键条件。
我们为此开发了一套学生信息管理系统,本系统面向学校教务人员,目标是为学校办公管理提供一个快速、简单规范管理平台,使学院在学生信息管理方面愈加规范化,快捷化。
1.2 项目目标
本章以学校学生信息管理为依靠,结合教务教学管理,设计并开发一个学生信息管理系统,提供一个信息更新快捷、管理方便、功效设置合理学生信息管了处理方案。针对学校大量学生信息,就学生管理多个方面,提供一个互动式学生管理平台。系统目标以下:
Ø 经过学生信息管理系统实现,使学校学生信息管理愈加科学化。
Ø 提供灵活、方便操作。
Ø 节省学生信息管理成本,提升学校管理效率。
Ø 对系统提供必需权限管理。
Ø 为学校考评学生综合素质提供必需数据支持。
2 需求分析
2.1 系统需求
在各大中专院校,学校教务管理关键内容包含学生信息管理和老师排课,学生信息管理传统手工管理关键包含学生档案管理,学生成绩管理。其中学生信息管理对大数据量要求较高,而老师排课系统因为需要十分专业算法而且系统需求不停改变,所以在实际应用时,往往会碰到很大问题,需要深入研究,现在通常学校管理系统全部包含了学生信息管理功效。本系统不包含老师排课管理和老师管理具体业务,只提供学生相关信息信息查询。
2.2 功效需求
依据上述信息管理系统业务步骤、要求和所要实现目标,我们能够拟出以下需求目标:
(1)建立学生档案管理和维护。实现计算机自动化管理体制。
(2)建立学生成绩管理机制,在计算机支持下快速完成学生成绩查询和修改。
(3)建立课程设置管理,在计算机支持下实现课程添加、删除、修改。
(4)建立班级设置管理,在计算机支持下实现班级添加、删除和修改。
(5)实现系统权限设置管理,确保系统安全性。
依据系统需求分析,得到本系统功效要求以下:
(1)班级、课程设置管理:学校教务秘书能够依据本校具体情况在每学期开始时设置所需班级数量和人数。并设置本学期课程。
(2)权限管理:为了很好确保系统安全性,学校相关责任人能够设置不一样类型人员权限。
(3)学生档案管理:学生档案数量十分庞大,教务管理人员进行新生入学档案录入及更改。其中包含学生个人信息修改。
(4)学生成绩管理:教务管理人员能够查询和修改学生历年考试成绩,掌握学生学习情况,作为评定学生素质数据依据。
2.3 性能需求
系统运行对于运行环境要求是;
1.硬件环境
现在,我们所开发系统关键是应用在中小规模学校内部,所以,通常配置计算机硬件就能够满足系统需求。考虑到学校规模扩大和硬件价格降低,为本系统配置在较优异服务器硬件,能够充足发挥本系统性能。
l 处理器: Intel Pentium 4 3.06 GX 或更高
l 内存: 256M(推荐)
l 硬盘空间:40GB
l 显卡: SVGA显示适配器
2.软件环境
l 操作系统:Windows /XP
l 开发软件:Microsoft Visual Studio .NET
l 数据库:Microsoft SQL Server
3 总体设计
3.1 设计思想和处理步骤
本系统采取面向对象方法进行分析和设计,在SQL Server 数据库上实现数据操作。使用纯面向对象C#语言作为开发语言,使用Windows作为开发平台,能够很好实现系统开发及测试。
系统基础步骤是:用户登陆→主界面→选择各项子系统。
3.2 系统层次模块图
“学生信息管理系统”关键分为登录、新生信息录入、学生信息查询、更新学生信息、学生成绩录入、学生成绩查询、权限管理、密码管理、班级管理、课程管理等10个模块。系统主模块功效树图2-1所表示:
学生信息管理系统
更新学生信息
学生成绩录入
学生成绩查询
登录
密码管理
权限管理
班级管理
课程管理
新生信息录入
学生信息查询
图2-1 “学生信息管理系统”系统主模块功效树
3.3 模块设计
1.登录模块:输入用户名称和密码,假如用户名、密码正确,进入主控制平台;不然给犯错误信息提醒。
2.系统维护模块:
Ø 权限管理子模块:系统管理员进行用户权限设置和初始密码设置。
Ø 密码修改子模块:登陆系统用户能够随时修改自己密码,确保密码有效性和保密性。
Ø 班级管理子模块:在新学期开始或每学期中间需要开设新课程时能够在本模块进行班级设置和维护。
Ø 课程设置子模块:在每学期开始需要进行本学期需要开设课程设置。在某一课程发生变动时能够进行课程维护,包含修改课程名称、学分等,也能够删除某一课程。
3.学生信息管理模块:
Ø 新生信息录入子模块:在每年开始或中间能够进行学生信息录入,包含学生基础信息等。
Ø 学生信息查询子模块:方便教务管理人员快速查找某一学生。分为根据学生姓名进行查找和根据学生所在班级名进行查找。利于管理人员随时掌握学生信息。
Ø 更新学生信息子模块:教务管理人员能够随时更改学生一些信息,包含学生姓名、身份证号、班级等信息更改。
4.学生成绩管理模块:
Ø 学生成绩录入子模块:根据学生考试时间和课程录入学生考试成绩。
Ø 学生成绩查询子模块:方便教务管理人员快速查找某一学生成绩。分为根据学生姓名进行查找和根据学生所在班级名进行查找。利于管理人员随时掌握学生考试信息。
5.帮助信息模块:显示系统开发版本和系统说明信息。
4 数据库设计
1.SQL Server数据库建立过程
首先把SQL Server “服务管理器”打开,鼠标左键单击“开始/继续”按钮,然后在“开始”→“程序”内选择“Microsoft SQL Server” →“企业管理器”。展开左边程序树,图2-2所表示。
图2-2 打开企业管理器
在“数据库”文件夹图标上单击鼠标右键,选择“新建数据库”,弹出新建数据库窗体,图2-3所表示。
图2-3 新建数据库窗体
在“名称”文本框内,输入新建数据库名称,在此输入“StuMagSys”,新建学生信息管理数据库。其它选项默认即可。
然后,开始建立本系统需要数据库表,方法以下:
首先,在新建数据库上单击鼠标右键,选择“新建”→“表”,图2-4所表示。
图2-4 新建表
然后,在弹出窗体内输入表字段和类型和长度和是否许可空等信息,图2-5所表示。
图2-5 新建表窗体
输入完表字段后,为表字段添加主键、约束和关系等,方法是在添加约束或关系字段上单击鼠标右键,选择“设置主键”或“关系”等。图2-6所表示。
图2-6 创建主键
保留该表,命名为Student。接下来在建立本章需要其它表,在此不再详述了。
接下来就是怎样向已经建立好数据表内输入数据了,方法以下,首先在建立好表上单击鼠标右键,选择“打开表”→“返回全部行”,图2-7所表示。
图2-7 打开表
然后在弹出窗体内输入数据,输入结束后,鼠标左键单击工具栏上运行图标,保留数据,图2-8所表示。
图2-8 为表添加数据窗体
2.表结构实现
依据系统功效设计要求和功效模块划分,对于系统用户信息数据库,能够列出以下数据项和数据结构:
(1)、名称:学生信息表
表名称标识:Student表
数据起源:新生信息录入模块进行录入。
表2-1学生信息表(Student)
字段名
字段类型
长度
主/外键
字段值约束
对应汉字名
Student_id
int
4
P
Not null
学号
Student_name
nvarchar
10
Not null
姓名
Sex
char
2
性别
Birth
smalldatatime
4
出生年月
Nation
char
8
民族
Class_id
int
4
Not null
班级号
Entrance_date
smalldatetime
Not null
入课时间
home
nvarchar
40
家庭地址
politic
char
10
政治面貌
ID
nvarchar
18
身份证号
Job
nvarchar
20
职位
specialty
nvarchar
20
所学专业
(2)、名称:学生成绩表
表名称标识:Student_course表
数据起源:学生成绩录入模块进行录入。
表2-2学生成绩表(Student_course)
字段名
字段类型
长度
主/外键
字段值约束
对应汉字名
Course_id
int
4
P
Not null
课程号
Student_id
int
4
P
Not null
学号
Grade
float
8
Not null
成绩
SC_semester
Smallint
2
Not null
学期
School_year
Smallint
2
Not null
年
(3)、名称:班级表
表名称标识:class表
数据起源:班级管理模块进行录入
表2-3班级表(class)
字段名
字段类型
长度
主/外键
字段值约束
对应汉字名
Class_id
Int
4
p
Not null
班级号
Grade
char
10
年级
Class_name
nvarchar
40
Not null
班级名称
SumStu
Int
4
班级人数
MaxNum
int
4
最大人数
(4)、名称:课程表
表名称标识:course表
数据起源:课程管理模块进行录入
表2-4课程表(course)
字段名
字段类型
长度
主/外键
字段值约束
对应汉字名
Course_id
Int
4
P
Not null
课程号
Course_name
Credit
20
Not null
课程名
Credit
Smallint
2
学分
(5)、名称:用户表
表名称标识:Syuser表
数据起源:权限管理模块进行录入
表2-5用户表(Syuser)
字段名
字段类型
长度
主/外键
字段值约束
对应汉字名
User_id
char
10
P
Not null
用户编号
User_name
10
Not null
用户名
User_role
10
用户角色
Password
8
密码
5 具体设计
本系统关键实现学生信息浏览、查询、编辑、添加和删除,同时对班级和课程进行管理,增加权限管理。依据已经有需求分析和总体设计,我们在此基础上来进行系统具体设计和实现,为此,我们建立了一个C#.NET项目。在“开始”菜单中找到“MircoSoft Visual Studio.Net ”,开启应用程序,鼠标单击“文件” → “新建” →“项目”,单击“Visual C#项目”,建立一个“Windows 应用程序”,命名为“StudentManagementSystem”,位置默认。图2-9所表示。
图2-9新建C#项目窗体
然后我们把这个项目生成默认窗体作为本系统主窗体,我们再向这个项目中添加一个窗体,鼠标单击“项目”→“添加Windows窗体”,输入窗体名称为“Login”把新添加窗体作为登陆窗体,调整窗体大小到适宜值。修改该窗体name属性为“Login”,text属性为“用户登陆”,StartPosition属性为“CenterScreen”,其它属性默认。我们接下来全部窗体文件全部是使用这种方法在这个项目中添加。
5.1登录模块设计和实现
1.用户身份验证IPO图
输入:用户名和密码。
处理:
(1) 用户登录窗体开启。
(2) 输入用户名和密码。
(3) 从用户信息表中检验是否有对应用户名和密码。
(4) 假如用户名或密码为空或错误,进行提醒。
(5) 假如输入用户名和密码正确,则许可该用户进入系统。
(6) 进入主控制平台。
输出:主控制平台。
2.用户登录模块窗体设计,图2-10所表示:
图2-10用户登录模块窗体效果
3.用户登录模块关键代码
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace StudentManagementsystem
{
public class Login : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button login_butt;
private System.Windows.Forms.Button Logout_butt;
private System.Windows.Forms.TextBox User_name;
private System.Windows.Forms.TextBox Passwords;
public static String Username="";//保留用户登陆名,方便以后使用。
public static bool loginOrnot;//判定用户登陆成功是否。
private string strconn;//查询更新数据库字符串。
private string connstr="workstation id=localhost;Integrated Security=SSPI;database=StuMagSys";//连接数据库字符串。
private SqlDataAdapter sqlda;//查询数据库时使用适配器。
private DataSet dset =new DataSet();//保留查询结果数据集。
private SqlConnection myconn;//数据库连接。
private DataTable mytable;//查询返回数据表。
private DataRow Userrows;//表中行。
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.ComponentModel.Container components = null;
/*此处省略程序自动生成代码*/
private void login_butt_Click(object sender, System.EventArgs e)
{
try
{
strconn="select * from syuser where Use_name="+"'"+this.User_name.Text.ToString().Trim()+"'";//依据用户输入用户名和密码初始化查询更新数据库字符串
myconn=new SqlConnection(connstr);
sqlda=new SqlDataAdapter(strconn,myconn);
dset.Clear();
sqlda.Fill(dset,"syuser");
mytable=dset.Tables[0];//查询结果在Tables[0]中。
for(int j=0;j<mytable.Rows.Count;j++)
{
Userrows=mytable.Rows[j]; if(Userrows[1].ToString().Trim()==this.User_name.Text.ToString().Trim()&&
Userrows[3].ToString().Trim()==this.Passwords.Text.ToString().Trim()) {
loginOrnot=true;
Username=Userrows[1].ToString().Trim();
this.Close();
}
else
{
MessageBox.Show("用户名/密码错误!请重试!","确定",MessageBoxButtons.OK);
loginOrnot=false;
this.User_name.Text="";
this.Passwords.Text="";
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString(),"确定",MessageBoxButtons.YesNoCancel);
}
return;
}
private void Logout_butt_Click(object sender, System.EventArgs e)
{
loginOrnot=false;
this.Close();
}
}
}
5.2 主操作页面效果
1.主控制平台窗体设计,图2-11所表示:
图2-11 用户登录模块窗体效果
2.窗体和控件特殊属性设置:
控件
控件名称
MainMenu
StuMenu
StatusBar
MainstatusBar
3.主控制平台关键代码
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace StudentManagementsystem
{
public class MainFrm : System.Windows.Forms.Form
{
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.StatusBar MainstatusBar;
private System.Windows.Forms.MainMenu StuMenu;
private System.Windows.Forms.MenuItem Newstu;
private System.Windows.Forms.MenuItem QueryStu;
private System.Windows.Forms.MenuItem InputGrade;
private System.Windows.Forms.MenuItem QueryStuGrade;
private System.Windows.Forms.MenuItem UpdateRole;
private System.Windows.Forms.MenuItem ExitSys;
private System.Windows.Forms.MenuItem UpdateStu;
private System.Windows.Forms.MenuItem AddClass;
private System.Windows.Forms.MenuItem ChgPsw;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.MenuItem Stu_JC;
private System.Windows.Forms.MenuItem menuItem4;
private System.ComponentModel.Container components = null;
public MainFrm()
{
InitializeComponent();
this.MainFrm_Load();
}
/*此处省略程序自动生成代码*/
static void Main()
{
Login log=new Login();
log.ShowDialog();
if(Login.loginOrnot==true) Application.Run(new MainFrm());
}
//依据登陆用户名设置窗体状态。
private void MainFrm_Load()
{
this.MainstatusBar.Text="欢迎使用学生信息管理系统:"+Login.Username;
}
//-----------显示学生信息查询窗体---------
private void QueryStu_Click(object sender, System.EventArgs e)
{
QueryStu QryStu=new QueryStu();
QryStu.Show();
}
//-----------显示更新学生信息窗体---------
private void UpdateStu_Click(object sender, System.EventArgs e)
{
UpdateStu updstu=new UpdateStu();
updstu.Show();
}
//-----------显示学生成绩录入窗体---------
private void InputGrade_Click(object sender, System.EventArgs e)
{
InputGrade inptgrade=new InputGrade();
inptgrade.Show();
}
//-----------显示学生成绩查询窗体---------
private void QueryStuGrade_Click(object sender, System.EventArgs e)
{
QueryStuGrade qrystu=new QueryStuGrade();
qrystu.Show();
}
//-----------显示权限管理窗体---------
private void UpdateRole_Click(object sender, System.EventArgs e)
{
UpdateRole updrole=new UpdateRole();
updrole.Show();
}
//-----------显示新生信息录入窗体---------
private void Newstu_Click(object sender, System.EventArgs e)
{
NewStu nfrm=new NewStu();
nfrm.Show();
}
//-----------退出主界面---------
private void ExitSys_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("您确定要退出本系统?","确定",MessageBoxButtons.YesNoCancel)==DialogResult.Yes)
this.Close();
}
//-----------显示密码修改窗体---------
private void ChgPsw_Click(object sender, System.EventArgs e)
{
ChgPsw ChangePsw=new ChgPsw();
ChangePsw.Show();
}
//-----------显示班级管理窗体---------
private void AddClass_Click(object sender, System.EventArgs e)
{
NewClass NewC=new NewClass();
NewC.Show();
}
//-----------显示课程管理窗体---------
private void Addcour_Click(object sender, System.EventArgs e)
{
AddCourse AdCour=new AddCourse();
AdCour.Show();
}
//-----------显示帮助窗体---------
private void SysHlp_Click(object sender, System.EventArgs e)
{
SysHelp hp=new SysHelp();
hp.Show();
}
}
}
5.3系统维护模块模块设计和实现
1.权限管理模块设计和实现
权限管理模块负责整个系统安全性,只能增加新用户而不能修改、删除用户,这么确保了系统恶意操作、误删除等情况出现。
(1).权限管理模块实现功效
权限管理模块关键实现增加新用户和并设定该用户权限和设置初始密码。
(2).权限管理模块实现效果
权限设置模块窗体设计效果图2-12所表示。
图2-12 权限管理模块窗体效果
(3).权限管理模块IPO图
功效:从对话框中取得新用户名和密码和对应职务,写入到数据库内Syuser表中。
输入:用户名、初始密码和职务
处理:
1) 权限管理窗体开启。
2) 在用户名、密码输入对话框中取得用户名和密码,在数据库StuMagSys内Syuser表内查找该用户名假如已存在该用户名,则提醒错误信息,不然在Syuser表内添加一条新统计
输出:对用户表Syuser进行统计添加
(4).权限管理模块关键代码
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace StudentManagementsystem
{
public class UpdateRole : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox UserName;
private System.Windows.Forms.TextBox Psw;
private System.Windows.Forms.Button NewUserOk;
private System.Windows.Forms.Button NewUserCanl;
private System.Windows.Forms.ComboBox RoleItem;
private string NewRoleStrConn;
private SqlConnection NewRoleConn;
private SqlCommand NewRoleComd;
/*此处省略程序自动生成代码*/
private void NewUserCanl_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("您确定要退出?","确定",MessageBoxButtons.YesNo)==DialogResult.Yes)
this.Close();
}
private void NewUserOk_Click(object sender, System.EventArgs e)
{
try
{
string SqlStr="insert into syuser(Use_name,Password,Use_role)values"+"( "+"'"+this.UserName.Text.ToString().Trim()+"'"+","+"'"+this.Psw.Text.ToString().Trim()+"'"+","+"'"+this.RoleItem.SelectedItem.ToString().Trim()+"'"+")";
NewRoleStrConn="workstation id=localhost;Integrated Security=SSPI;database=StuMagSys";
NewRoleConn=new SqlConnection(NewRoleStrConn);
NewRoleConn.Open();
NewRoleComd=new SqlCommand(SqlStr,NewRoleConn);
int Succnum=NewRoleComd.ExecuteNonQuery();
if(Succnum>0) MessageBox.Show("录入成功");
}
catch(Exception Ex)
{
MessageBox.Show("必需选择一个角色!","错误");
}
}
}
}
2.密码修改模块设计和实现
密码修改模块负责登陆用户随时修改密码,确保密码安全性。
(1)密码修改模块实现功效
密码修改模块关键实现修改登陆用户密码。
(2)密码修改模块实现效果
密码修改模块窗体设计效果图2-13所表示。
图2-13 密码修改模块窗体效果
(3)密码修改模块IPO图
功效:从登陆窗体中取得登陆成功用户名,在数据库Syuser表内查找该用户,并据此把输入新密码写入到数据库内Syuser表中。
输入:新密码和确定密码
处理:
1)密码修改窗体开启。
2)首先从登陆对话框Login内取得登陆系统登陆用户登陆用户名。
2)依据已经取得登陆用户名在数据库StuMagSysSyuser表内查找该用户,然后比较用户输入新密码和确定密码,假如比较结果相同,则把新密码写入到对应统计内,假如两次输入不一致,则提醒错误信息。
3)把用户新密码统计到数据库内。
输出:对用户表进行统计修改
(4).密码修改模块关键代码
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
namespace StudentManagementsystem
{
public class ChgPsw : System.Windows.Forms.Form
{
private System.Windows.Forms.Button ChgPswCanl;
private System.Windows.Forms.Button ChgPswOk;
private System.Windows.Forms.TextBox ConfPsw;
private System.Windows.Forms.TextBox NewPsw;
private string PswStrCon;
private SqlConnection PswConn;
private String PswStrComd;
private SqlCommand PswComd;
/*此处省略程序自动生成代码*/
private void ChgPswCanl_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("您确定要退出?","确定",MessageBoxButtons.YesNo)==DialogResult.Yes)
this.Close();
}
private void ChgPswOk_Click(object sender, System.EventArgs e)
{
if(NewPsw.Text.ToString().
展开阅读全文