学生信息管理系统C版
学生信息管理系统
1.需求分析
为了提高系统开发水平和应用效果,系统应符合中国计量学院信息管理规定,满足对学校学生信息管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,便于系统功能的组合和修改,以及扩充和维护。
根据需求分析,本系统要实现以下基本功能。
(1)学生信息查询功能:查询学生姓名、学号、年龄、性别、身份证、出生日期、宿舍、入学时间、政治面貌、所在学
院、所学专业等信息。查询功能相当强大,按专业查询,
可以查出该专业的全部学生;按身份证查询,可以查出的
特定的学生;按学院查询,可以查出所属学院的全部学生。
同时也可以按姓名,学号查询
(2)添加功能:对数据库中的数据进行添加,系统可以避免重复信息。
(3)修改功能:对数据库中的信息进行修改。系统能够通过用户给出的条件查找出所要修改的信息,对修改后的信息进
行保存,并自动查找是否是重复信息。
(4)删除功能:对数据进行删除操作。系统能够通过用户给出的条件查找出所要删除的信息并删除。
2.系统功能设计
学生信息管理系统主要实现学生信息的增、删、改、查询等功能。
E-R图
3数据分析与数据库设计
3.1数据字典
该系统中共需要创建四个数据表:学生信息表、学院信息表、专业信息表、寝室信息。
1.学生信息表student
2.
3.学院信息表 college
4.
5.专业信息表 profession
6.
7.寝室信息表dorm
8.
3.2数据录入
1学生信息录入
2学院信息录入
3专业信息录入
4寝室信息录入
建立关系图
建立学生基本信息视图
4 C#界面设计
具体代码如下:
protected void btnloginclick(object sender,eventargs e) {
String identity =rblidentity.Selectedvalue;
Object objentity;
Switch(identity)
{
Case”admin”:
Objentity=Blladminuser.login(user,pwd);
Break;
Case”profession”:
Objentity=Bllprofession.login(user,pwd);
Break;
Case”classmit”:
Objentity=Bllclassmit.login(user,pwd);
Break;
Case”student”:
Objentity=Bllstudent.login(user,pwd);
Break;
Default:
Objentity=null;
Break;
}
If(objentity==null){
//提示登陆失败
}
}
查看学生信息
代码如下:
public partial class admin_student_DetailShow : System.Web.UI.Page
{
protected Entity_Student insStu;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//检查权限:班主任和学生可浏览此页面,所以登录者可能是班主任,也可能是学生
Entity_Classes insClass =
Session["loginUser_Entity"] as Entity_Classes;
insStu = Session["loginUser_Entity"] as Entity_Student;
if (insClass == null && insStu == null) {
CommonFuncs.ShowMsgAndJump(this.Page, "请登录!", "../user_login.aspx", Target._top);
return;
}
//班主任登录,则一定要传一个snum过来,并且能够找到学生
if (insClass != null)
{
if (Request["snum"] == null)
{
CommonFuncs.ShowMsgAndJump(this.Page, "参数错误,请重新操作!", "main_main.aspx", Target._self);
return;
}
string snum =
Request["snum"].ToString();
insStu =
BLL_Student.SelectOne(snum);
if (insStu == null)
{
CommonFuncs.ShowMsgAndJump(this.Page, "参数错误,请重新操作!", "main_main.aspx", Target._self);
return;
}
}
//学生登录,则通过学生找到班级信息
else
{
insClass =
BLL_Classes.SelectOneByID(insStu.pronum);
if (insClass == null)
{
CommonFuncs.ShowMsgAndJump(this.Page, "参数错误,请重新操作!", "main_main.aspx", Target._self);
return;
}
}
lblMajorName.Text = insClass.majorName; lblClassName.Text = insClass.className;
lblSnum.Text = insStu.snum;
lblName.Text = https://www.360docs.net/doc/d618649685.html,;
lblGender.Text = insStu.gender ? "男" : "女";
lblBirthday.Text =
insStu.birthday.ToShortDateString();
lblIDCard.Text = insStu.idCard;
lblEnrolDate.Text =
insStu.enrolDate.ToShortDateString();
lblPhone.Text = insStu.phone;
lblQQ.Text = insStu.qq;
lblEmail.Text = insStu.email;
lblMemo.Text = insStu.memo.Replace("\r", "
");
lblLogNum.Text =
insStu.logNum.ToString();
lblLastLog.Text =
https://www.360docs.net/doc/d618649685.html,stLog.ToString();
Page.DataBind();
排序代码:
protected void gvStudents_Sorting(object sender, GridViewSortEventArgs e)
{
//如果选择不了不同的列,则按新列排序
if (ViewState["sortName"].ToString() !=
e.SortExpression)
{
ViewState["sortName"] =
e.SortExpression;
}
//如果选择相同的列,则改变该列的排序方向
else
{
ViewState["sortDir"] =
ViewState["sortDir"].ToString() == "asc" ? "desc" : "asc";
}
BindStudents(); //重新绑定数据
}
新增学生信息
代码如下:
protected void btnAdd_Click(object sender, EventArgs e)
{
Entity_Classes insClass =
Session["loginUser_Entity"] as Entity_Classes;
//检查权限:只有班级管理员具有此权限
if (insClass == null)
{
CommonFuncs.ShowMsgAndJump(this.Page, "请登录!", "../user_login.aspx", Target._top);
return;
}
(BLL_Student.SelectOne(txtSnum.Text.Trim()) != null) {
CommonFuncs.ShowMsg(this.Page, "该学号已经存在,请重新输入新的学号!");
txtSnum.Focus();
return;
}
DateTime dtBirthday = new DateTime(1900, 1, 1);
if (txtBirthday.Text.Trim() != "")
{
if
(!DateTime.TryParse(txtBirthday.Text.Trim(), out dtBirthday))
{
CommonFuncs.ShowMsg(this.Page, "出生日期格式不正确,请更正!");
txtBirthday.Focus();
return;
}
DateTime dtEnrol;
if
(!DateTime.TryParse(txtEnrolDate.Text.Trim(), out dtEnrol))
{
CommonFuncs.ShowMsg(this.Page, "入学日期格式不正确,请更正!");
txtEnrolDate.Focus();
return;
}
string fileName = "default.jpg"; //图片文件名
string fileExt = ""; //图片文件的扩展名 if (upPhoto.HasFile)
{
fileName = upPhoto.FileName.ToLower(); if (fileName.IndexOf(".") <= 0)
{
CommonFuncs.ShowMsg(this.Page, "照片
文件错误!请重新选择!");
return;
}
fileExt =
System.IO.Path.GetExtension(fileName);
List
lstExt.Add(".jpeg");
lstExt.Add(".gif");
if (lstExt.IndexOf(fileExt) < 0)
{
CommonFuncs.ShowMsg(this.Page, "请选择 JGP 或 GIF 格式的文件!请重新选择!");
return;
}
//重命名照片为:学号.扩展名
fileName = txtSnum.Text.Trim() + fileExt; try
{
upPhoto.SaveAs(Server.MapPath("~/photos") + "/" + fileName);
}
catch (Exception ex)
{
BLL_Logs.WriteLog(ex.Message);
CommonFuncs.ShowMsg(this.Page, "照片上传失败,详细原因请管理员检查事务日志。");
return;
}
//限制上传照片的尺寸大小<150*200
System.Drawing.Image img =
System.Drawing.Image.FromFile(Server.MapPath("~/pho tos") + "/" + fileName);
if (img.Width > 150 || img.Height > 200) {
CommonFuncs.ShowMsg(this.Page, "照片的宽*高不得超过 150*200 像素!");
return;
}
}
Entity_Student insStu = new Entity_Student(); insStu.pronum = insClass.pronum;
insStu.snum = txtSnum.Text.Trim();
insStu.pwd =
CommonFuncs.MD5_Encode(txtPWD.Text.Trim());
https://www.360docs.net/doc/d618649685.html, = txtName.Text.Trim();
insStu.gender = (rblGender.SelectedIndex == 0) ? true : false;
insStu.birthday = dtBirthday;
insStu.idCard = txtIDCard.Text.Trim();
insStu.photo = fileName;
insStu.enrolDate = dtEnrol;
insStu.phone = txtPhone.Text.Trim();
insStu.qq = txtQQ.Text.Trim();
insStu.email = txtEmail.Text.Trim();
insStu.memo = txtMemo.Text.Trim();
if (BLL_Student.Insert(insStu))
{
CommonFuncs.ShowMsg(this.Page, "新增学生成功!");
}
else
{
CommonFuncs.ShowMsg(this.Page, "新增学生失败!\\n\\n请检查各个输入是否合法,\\n学生ID是否已经存在,\\n或者请管理员查看系统日志。");
}
}
}
删除学生信息按钮实现代码:
protected void imgbDelSelected_Click(object sender, ImageClickEventArgs e)
{
//泛型列表
List
GridViewRow row;
for (int i = 0; i < gvStudents.Rows.Count; i++) {
row = gvStudents.Rows[i];