资源描述
学生信息管理系统
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().Trim()==ConfPsw.T
展开阅读全文