1、 东北大学秦皇岛分校毕业设计(论文) 第 22 页1 概述1。1 系统开发背景与现状随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。对于学校而言,学生宿舍管理是必不可少的组成部分.目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工
2、记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低.采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面: 首先,计算机可以代替人工进行许多繁杂的劳动; 其次,计算机可以节省许多资源; 第三,计算机可以大大的提高人们的工作效率; 第四,计算机可以使敏
3、感文档更加安全,等等.1.2 系统开发方法及目标以Microsoft SQL Server2000为后台数据库,以Visual studio 2008为前端开发工具,以高校的宿舍管理需求为应用背景,开发一个典型的宿舍管理系统.本系统既要满足用户的设计,也要满足设计员的设计目标。1、用户的观点看,要求系统能够达到以下目标 1) 对信息的收集和保存信息。例如:输入宿舍的基本信息,宿舍的卫生信息等。 2)快速的传递信息。对那些共享的数据要快速的传递。 3)提供准确的信息。要求比手工作业提供的更加准确和细致的数据,例如宿舍的所有卫生成绩。 2、设计员从技术观点看,要求系统能达到以下的目标:1) 用户使
4、用,具有较高的用户友好性。2) 系统具有灵活、严格的权限设定功能,确保宿舍各类资料的可靠性和保密性,防止错误和违规操作。系统管理:可修改管理员密码3) 能对基本信息进行插入、删除、修改等操作。完成宿舍的学生住宿分配,可以自动分配或手动分配.数据查询:按宿舍号、班级、学生等进行分类查询,能进行精确和模糊查询.4)具有较强的可维护性和扩充性,能够适应用户的业务要求变化。5)可退出系统,保证个人信息安全性。2 需求分析本系统的最终用户为宿舍楼管理员。根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户的下列实际要求:宿舍管理:添加、修改、删除宿舍学生管理:学生
5、入住、搬离来访管理:来访登记、查询水电管理:水电缴费、查询卫生管理:卫生检查、查询用户管理:用户注册、修改密码根据如上得到的用户需求,我们将完善以下几功能: 1、 整体设计中,宿舍管理分为七大模块:宿舍管理模块、学生管理模块、报修管理模块、水电缴费管理模块、卫生管理模块、来访管理模块、用户管理模块.每个模块将实现不同的功能。 2、 对学生、宿舍信息等进行维护,可对已存在的信息进行修改与删除操作,及时更改存储数据中存在的不足之处,便于对学校宿舍的管理。 3、 根据输入的查询条件可显示符合条件的学生、宿舍,拥有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低的优点,可以极大地提高学
6、生查宿舍的效率。系统运行流程图学生宿舍管理系统宿舍信息管理基本信息宿舍查询学生信息管理学生入住学生查询卫生信息管理添加检查检查查询水电收费管理水电收费添加水电收费查询来访人员管理来访登记来访查询报修管理报修登记报修查询3 数据库逻辑结构设计1。学生信息表该表用于存储学生基本信息字段名字段类型主键学号文本是姓名文本否性别文本否班级文本否宿舍号文本否2。宿舍信息表该表用于存储宿舍基本信息字段名字段类型字段大小主键宿舍号文本10是电话文本10否住宿费文本10否床位数数字10否桌子数数字10否椅子数数字10否备注文本300否3.卫生检查信息表该表用于存储卫生检查基本信息。字段名字段类型主键检查编号自动
7、编号是宿舍号文本否检查日期日期/时间否检查情况文本否备注文本否4。用户信息表该表用于存储用户基本信息 字段名字段类型主键用户名文本否密码文本否4 程序核心代码及控件描述4。1登录界面设计显示登陆界面,提示用户输入账号、密码,若错误给出提示。核心代码:staticvoid Main() Application。Run(newLogin());privatevoid btAdd_Click(object sender, System。EventArgs e)if(name.Text。Trim()=password。Text.Trim()=”)MessageBox。Show(请输入用户名和密码”,”
8、提示”);elseoleConnection1。Open();OleDbCommand cmd=newOleDbCommand(”,oleConnection1);string sql=”select * from userinfo where UName=”+name。Text。Trim()+” and PWD=”+password。Text。Trim()+”;cmd.CommandText=sql;if (null!=cmd.ExecuteScalar()/隐藏登录窗口this。Visible=false; /创建并打开主界面Main main=newMain();main。Tag=thi
9、s。FindForm();OleDbDataReader dr;cmd.CommandText=sql;dr=cmd。ExecuteReader();dr.Read();main.statusBarPanel2。Text=name。Text。Trim();main.ShowDialog(); elseMessageBox。Show(”用户名或密码错误”,”警告);oleConnection1。Close();privatevoid btClose_Click(object sender, System.EventArgs e)this.Close();privatevoid Login_Loa
10、d(object sender, EventArgs e) 4。2 主界面设计显示系统主界面,显示用户登录信息并给出各个功能模块的选项。核心代码:protectedoverridevoid Dispose( bool disposing )if( disposing )if(components != null)components。Dispose();base。Dispose( disposing );AddUser addUser;privatevoid menuItem9_Click(object sender, System。EventArgs e)addUser = newAddUs
11、er();for(int x=0;xthis。MdiChildren.Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addUser。MdiParent = this;addUser。WindowState = FormWindowState.Maximized;addUser。Show();ModifyCode modifyCode;privatevoid menuItem10_Click(object sender, System。EventArgs e)modifyCode = newModifyC
12、ode();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this.MdiChildrenx;tempChild。Close();modifyCode.MdiParent = this;modifyCode。Tag = this.statusBarPanel2。Text。Trim();modifyCode.WindowState = FormWindowState。Maximized;modifyCode.Show();privatevoid menuItem11_Click(object sender, Syst
13、em.EventArgs e)(System。Windows。Forms。Form)this.Tag).Visible=true;this.Close();privatevoid menuItem8_Click(object sender, System.EventArgs e)this.Close();AddDorm addDorm;privatevoid menuItem12_Click(object sender, System.EventArgs e)addDorm = newAddDorm();for(int x=0;xthis。MdiChildren。Length;x+)Form
14、tempChild = (Form)this。MdiChildrenx;tempChild。Close();addDorm。MdiParent = this;addDorm。WindowState = FormWindowState.Maximized;addDorm.Show();Dorm dorm;privatevoid menuItem13_Click(object sender, System。EventArgs e)dorm = newDorm();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this.
15、MdiChildrenx;tempChild.Close();dorm。MdiParent = this;dorm。WindowState = FormWindowState。Maximized;dorm。Show();AddStudent addStudent;privatevoid menuItem14_Click(object sender, System。EventArgs e)addStudent = newAddStudent();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChild
16、renx;tempChild.Close();addStudent.MdiParent = this;addStudent。WindowState = FormWindowState.Maximized;addStudent。Show();Student student;privatevoid menuItem15_Click(object sender, System.EventArgs e)student = newStudent();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildre
17、nx;tempChild.Close();student.MdiParent = this;student。WindowState = FormWindowState.Maximized;student。Show();AddCheck addCheck;privatevoid menuItem16_Click(object sender, System。EventArgs e)addCheck = newAddCheck();for(int x=0;xthis。MdiChildren.Length;x+)Form tempChild = (Form)this。MdiChildrenx;temp
18、Child.Close();addCheck。MdiParent = this;addCheck。WindowState = FormWindowState.Maximized;addCheck.Show();Check check;privatevoid menuItem17_Click(object sender, System。EventArgs e)check = newCheck();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();ch
19、eck。MdiParent = this;check.WindowState = FormWindowState。Maximized;check。Show();AddCharge addCharge;privatevoid menuItem18_Click(object sender, System。EventArgs e)addCharge = newAddCharge();for(int x=0;xthis。MdiChildren.Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addCharge。M
20、diParent = this;addCharge。WindowState = FormWindowState。Maximized;addCharge。Show();Charge charge;privatevoid menuItem19_Click(object sender, System。EventArgs e)charge = newCharge();for(int x=0;xthis。MdiChildren.Length;x+)Form tempChild = (Form)this.MdiChildrenx;tempChild.Close();charge。MdiParent = t
21、his;charge.WindowState = FormWindowState。Maximized;charge.Show();AddRepair addRepair;privatevoid menuItem20_Click(object sender, System。EventArgs e)addRepair = newAddRepair();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addRepair。MdiParent = this
22、;addRepair。WindowState = FormWindowState.Maximized;addRepair。Show();Repair repair;privatevoid menuItem21_Click(object sender, System。EventArgs e)repair = newRepair();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();repair。MdiParent = this;repair。Wind
23、owState = FormWindowState。Maximized;repair.Show();AddRegis addRegis;privatevoid menuItem22_Click(object sender, System.EventArgs e)addRegis = newAddRegis();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this.MdiChildrenx;tempChild。Close();addRegis.MdiParent = this;addRegis。WindowStat
24、e = FormWindowState.Maximized;addRegis。Show();Register register;privatevoid menuItem23_Click(object sender, System。EventArgs e)register = newRegister();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild.Close();register。MdiParent = this;register。WindowState =
25、FormWindowState.Maximized;register.Show();privatevoid toolBar1_ButtonClick(object sender, System。Windows.Forms.ToolBarButtonClickEventArgs e)switch(toolBar1。Buttons。IndexOf(e。Button))case 0:Form addDorm = newAddDorm();for(int x=0;xthis.MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;t
26、empChild。Close();addDorm。MdiParent = this;addDorm。WindowState = FormWindowState。Maximized;addDorm.Show();break;case 1:Form addStudent = newAddStudent();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addStudent。MdiParent = this;addStudent。WindowStat
27、e = FormWindowState.Maximized;addStudent.Show();break;case 2:Form addCheck = newAddCheck();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addCheck.MdiParent = this;addCheck。WindowState = FormWindowState.Maximized;addCheck。Show();break;case 3:Form a
28、ddCharge = newAddCharge();for(int x=0;xthis。MdiChildren。Length;x+)Form tempChild = (Form)this。MdiChildrenx;tempChild。Close();addCharge.MdiParent = this;addCharge.WindowState = FormWindowState。Maximized;addCharge.Show();break;case 4:Form addRepair = newAddRepair();for(int x=0;xMdiChildren。Length;x+)F
29、orm tempChild = (Form)MdiChildrenx;tempChild。Close();addRepair。MdiParent = this;addRepair。WindowState = FormWindowState.Maximized;addRepair。Show();break;case 5:Form addRegis = newAddRegis();for(int x=0;xMdiChildren。Length;x+)Form tempChild = (Form)MdiChildrenx;tempChild.Close();addRegis。MdiParent =
30、this;addRegis。WindowState = FormWindowState。Maximized;addRegis。Show();break;4。3 学生信息管理页面设计提示输入学生信息(宿舍号、学号、姓名、班级等),实现学生信息录入。核心代码:public AddStudent()/ Windows 窗体设计器支持所必需的/InitializeComponent();this。oleConnection1 = newOleDbConnection(DormMIS。database。dbConnection.connection);/ TODO: 在InitializeCompone
31、nt 调用后添加任何构造函数代码/summary/ 清理所有正在使用的资源。/=0dataGrid1dataGrid1.CurrentCell!=null)oleConnection1.Open();string sql=”delete * from student where SID=”+ds。Tables0。RowsdataGrid1。CurrentCell。RowNumber0.ToString().Trim()+;OleDbCommand cmd = newOleDbCommand(sql,oleConnection1);cmd.ExecuteNonQuery();MessageBox。Show(”删除+ds。Tables0。RowsdataGrid1。CurrentCell。RowNumber1.ToString().Trim()+同学成功,”提