1引言
由于高等学院的迅速发展,高等学院的规模越来越大,学生的数量也在迅速的增长,管理上的手工操作不仅仅会耗费学生与工作人员的大量时间和精力,而且效率与准确性也较低,如何使效率变高,已经成为一个问题。
利用计算机进行学生信息的管理,不仅能够保证准确、无误、快速输入,而且还可以利用计算机对有关信息进行查询,检索迅速、检查方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分必要的。
2系统概述
2.1系统分析
教师功能:管理所有学生的基本信息,包括添加、修改、删除,可以根据学号查询到某个人的信息。
学生功能:可以在开学初期在这里进行新生注册,还可以查看到基本信息。
管理功能:学生火教师可以修改自己进入这个系统的密码。
2.2可行性分析
学生信息管理系统是各大院校的管理工作中给尤为重要的一项工作,它一直以来是学校管理的一项重要衡量指标。学生信息管理系统的应用,解决了学校日常学生信息管理工作中的信息工作量大、数据难以统计、数据更新困难等问题。应用计算机学生信息管理系统对日常学生信息管理工作进行管理,提高了院校学生信息管理工作的效率,更有利于学校及时掌握学生的学习成绩、个人细腻等一系列数据信息,通过这些实际的带护具信息,学校可以随时调整日常的学生管理工作。
3系统设计
3.1结构设计
根据对系通进行需求分析,本系统将分为3个模块:
教师管理:管理学生所有的信息,包括跟人信息的添加、修改、删除、以及查询。
学生管理:学生基本信息的查询,新生入校注册。
密码管理;可以修改进入系统的密码。
3.2数据库的设计
4详细设计
4.1学生管理系统主界面
4.2学生信息管理模块
private void btnOK_Click(object sender, EventArgs e)
{
if (!this.ValidateChildren())
{
this.DialogResult = DialogResult.None;
return;
}
if (this.Operator == OperatorType.Insert)
{
// Insert(this.EmployeeID); // 此处对原有插入代码进行了重构
Insert();
}
if (this.Operator == OperatorType.Update)
{
UpdateEmployee(this.EmployeeID);
}
}
private void Insert()
{
// 打开数据库连接,并给参数对象赋值
cmdInsertEmp.Connection.Open();
cmdInsertEmp.Parameters["@Name"].Value = tbName.Text;
cmdUpdateEmp.Parameters["@EmpID"].Value = empID.Text;
cmdInsertEmp.Parameters["@Password"].Value = tbPassword.Text;
cmdInsertEmp.Parameters["@Birthday"].Value
= Convert.ToDateTime(tbBirthday.Text);
cmdInsertEmp.Parameters["@Email"].Value = tbEmail.Text;
cmdInsertEmp.Parameters["@Deptid"].Value = cmbDepart.SelectedValue;
cmdInsertEmp.Parameters["@Title"].Value = tbTitle.Text;
cmdUpdateEmp.Parameters["@Password"].Value = tbPassword.Text;
cmdUpdateEmp.Parameters["@Sex"].Value = lblStuSex.Text;
cmdInsertEmp.Parameters["@Telephone"].Value = tbPhone.Text;
cmdInsertEmp.Parameters["@SelfINtro"].Value = tbSelfIntro.Text;
cmdUpdateEmp.Parameters["@Score"].Value = tbScore.Text;
cmdInsertEmp.Parameters["@OnboardDate"].Value = DateTime.Now;
cmdInsertEmp.Parameters["@VacationRemain"].Value = 0;
// 暂且不对照片列进行处理,设为空值,如果需要处理,用Code 4/5的代码代替
cmdInsertEmp.Parameters["@PhotoImage"].Value = Convert.DBNull;
cmdInsertEmp.Parameters["@Password"].Value
= GetMD5Password(tbPassword.Text.Trim());
// 处理照片数据
ImageConverter ic = new ImageConverter();
byte[] photoByteArray = ic.ConvertTo(pbPhoto.Image,
typeof(byte[])) as byte[];
if (photoByteArray != null)
{
cmdInsertEmp.Parameters["@PhotoImage"].Value
= photoByteArray;
}
else
{
cmdInsertEmp.Parameters["@PhotoImage"].Value
= Convert.DBNull;
}
try
{
cmdInsertEmp.ExecuteNonQuery();
MessageBox.Show("成功修改学生信息。", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (System.Data.SqlClient.SqlException sqlex)
{
//Sql Server错误号代表唯一约束冲突,说明登录名重复。
if (sqlex.Number == 2627)
MessageBox.Show("登录名不能重复。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show("读取数据库错误。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.DialogResult = DialogResult.None;
}
catch
{
MessageBox.Show("创建学生出错,请检查输入数据格式是否正确。",
"错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.DialogResult = DialogResult.None;
}
finally
{
cmdInsertEmp.Connection.Close();
}
}
4.3登陆界面
4.4密码界面
private void btnOK_Click(object sender, EventArgs e)
{
if (this.txtOldPassword.Text == "")
{
MessageBox.Show("请输入原密码!");
this.txtOldPassword.Focus();
}
else if (this.txtNewPassword.Text == "")
{
MessageBox.Show("请输入新密码!");
this.txtNewPassword.Focus();
}
else if (this.txtCfmPassword.Text == "")
{
MessageBox.Show("请输入确认密码!");
this.txtCfmPassword.Focus();
}
else if (txtNewPassword.Text != txtCfmPassword.Text)
{
MessageBox.Show("两次输入的密码不匹配,请重试!");
this.txtNewPassword.Focus();
}
else
{
AdministratorDB adminDB = new AdministratorDB();
bool result =
adminDB.ChangePassword(txtOldPassword.Text, txtNewPassword.Text, txtCfmPassword.Text);
if (result)
{
MessageBox.Show("密码修改成功,下次请使用新密码登陆!");
this.Close();
}
else
{
MessageBox.Show("操作失败,请确认您输入的原密码是否正确!");
this.Close();
}
}
}
5总结
在为期2周的的试训过程中,我熟练掌握了这学期所学的有关C#中一些主要知识点和应用点,如数据输入输出,修改。这次程序设计,具有极强的完整性,是我加强了灵活运用理论知识的能力以及面向对象C程序设计技能,此次,应用程序及设计和创建,经历了平时在课堂中绝不会有的重重难题和问题,这些问题,并不是我们平时只靠课本就可以轻易解决的,所以,锻炼了我们面对困难,自己思考,自己探索,自己查资料发现问题、解决问题的独断能力。当然,此次任务的完成,也体会到了资料的重要性,以及老师对我们帮助。实践是检验真理的唯一标准,理论的拥有并不能代表我们的实力和能力,一切的实践和成功却是理论
和实践的结合,总之,我们学习后掌握的知识,只有通过实际应用才能真正的理解后掌握,才能更好的去应用。