1、 课程设计汇报 课程名称: C#.NET程序设计 设计题目: 宿舍管理系统 学生班级: 10计科(2)班 学生姓名: 章忠杰、胡劲松、林心炳 指导老师: 刘靖 讲师 完成日期: -1-17 数学和计算机系 课程设计项目研究汇报 目 录 第 1 章 项目介绍 1 1.1 项目名称 1 1.2 开发人员 1 1.3 指导老师 1 第 2 章 项目研究意义 1 2.1 课程设计概述 1 2.2 需
2、求分析及研究意义 1 2.3 研究意义 2 第 3 章 模块分析及设计 2 3.1 E-R图 2 3.2系统功效结构图 3 3.3 数据库实现 3 第4 章 课程设计项目进度表 5 第5 章 课程设计任务分配表 5 第6 章 达成效果 5 6.1 程序最终实现结果 5 第7 章 关键模块代码 9 第8 章 设计心得 15 第9 章 参考文件 15 第 1 章 项目介绍 1.1 项目名称 宿舍管理系统 1.2 开发人员 10计科(2) 章忠杰、胡劲松、林心炳 1.3 指导老师 刘靖 讲师 第 2 章 项目研究意义 2.1 课程
3、设计概述 宿舍管理系统是在Windows Xp/ Server为操作系统平台,Microsoft access 为RDBMS。系统它要求用户提供帐号/密码,经过验证后才能进入系统主页。宿舍系统设计能够使宿舍楼管理员能查询上面提到宿舍楼全部相关信息,包含某一学号学生在宿舍楼中住宿具体信息,夜归具体信息。以利于对整个宿舍楼全方面管理。 当学生基础信息发生改变时,宿舍楼管理员能对其进行修改。比如,一些同学搬到其它宿舍中去,她们在本宿舍楼中对应统计就应该删去;或学生转换专业,她们统计中院系信息也要作对应修改等等。 2.2 需求分析及研究意义 本系统最终用户为宿舍楼管理员,本宿舍楼学生。依
4、据我们日常生活中经验,结合对学校宿舍楼管理老师咨询和对同宿舍楼同学调查,得出用户下列实际要求: 1、宿舍楼基础情况 1)、学生基础信息: 入校时,每位同学全部有唯一学号,并被分配到指定宿舍楼和指定宿舍,也会有一个宿舍号,同时学生晚归不良统计也会被登记。 2)、宿舍基础信息 宿舍床位数是固定,因宿舍区不一样而不一样。宿舍目前人数统计,及是否还有可用床位。 4)、夜归基础信息 宿舍楼在指定时间关门,若有同学晚于关门时间后回宿舍,需通知宿舍管理员,同时应登记晚归学生姓名、宿舍号、时间和晚归原因,以利于学校管理。 2.3 研究意义 宿舍管理系统就是为了方便公寓管理人员在数据方面
5、管理,结合当今各学校舍务管理,为了能全方面、正确、有效地管理学生公寓多种信息而开发和研制一个系统应用软件。其关键功效是快速适应该代化会务管理水平和处理工作人员繁重而冗长工作量。使得她们在学生公寓各方面全部会达成事半功倍效果,减轻了人力负担,方便了数据存放,增加了安全性。 第 3 章 模块分析及设计 3.1 E-R图 学生基础信息E-R图 学生 姓名 学号 宿舍号 性别 班级 宿舍基础信息E-R图 宿舍 宿舍号 床位数 已用床位数 是否剩下床位 宿舍区 3.2系统功效结构图 宿舍管理系统 宿舍基础
6、信息 学生入住 晚归 依据条件查询 晚归数据查询 晚归登记 退学信息处理 学生信息查询 新生入学登记 3.3 数据库实现 1、 学生信息表 2、 宿舍表 3、 学生晚归记录表 4、 用户资料表
7、 第4 章 课程设计项目进度表 日期 完成工作 -1
8、14~1.15 项目可行性研究,研究汇报 -1.15~1.16 数据采集,确定表格,数据类型,系统开发技术,运行环境 -1.16~1.17 系统联合调试,撰写课程设计总结汇报 -1.17~1.18 交课程设计纸质和电子版材料 第5 章 课程设计任务分配表 组员 座号 项目内容 序号 章忠杰 6号 1、“查询”模块设计 2、数据库创建 3、调试程序 01 林心炳 7号 1、“添加”模块制作 2、数据测试 3、编写试验心得 02 胡劲松 32号 1、“删除”模块制作 2、编写任务分配表、进度表 3、编写试验汇报
9、 03 第6 章 达成效果 6.1 程序最终实现结果 界面设计应简单明了,一目了然。首先从用户应用需求出发,宿舍管理系统面正确最终用户是对计算机并不精通学校生活部管理员;其次友好、清楚界面也易学易用,易维护。 1、登录界面: 功效:对用户登陆进行身份验证;许可用户注册一个新账户,用户名是唯一,不许可相同用户名注册。 2、 系统主界面: 3、 新生注册 功效:实现对新生注册,给其安排宿舍。把新生资料插入到数据库中。若安排宿舍已住满,则不许可此操作。而且男生女生宿舍自动实现分开,杜绝因管理员失误而造成男女混住。 4、 查询操作 * 学生信
10、息查询 功效:可依据学号或姓名查询信息,用学号查询能得到唯一统计,用姓名查询可能出现多条统计(学生中可能重名)。 *宿舍信息查询 功效:依据宿舍区和楼号查询所对应信息内容,而且查询该宿舍已入住学生姓名。 *晚归学生查询 功效:和学生信息查询一致。 *学生毕业数据删除 功效:删除学生基础信息和晚归不良统计。同时更新宿舍信息表,空出床位。 第7 章 关键模块代码 1、登陆模块 private void button1_Click(object sender, Event
11、Args e) { if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("用户名和密码不能为空"); } else { DBClass.conn.Open(); DataSet dsMyDataBase = new DataSet(); Ol
12、eDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.CommandText = "Select username From denglu where username ='" + textBox1.Text + "'"; cmd.ExecuteNonQuery(); if (cmd.ExecuteSc
13、alar() == null) { MessageBox.Show("用户名不存在"); textBox1.Text = null; textBox2.Text = null; DBClass.conn.Close(); return; }
14、 else { cmd.CommandText = "Select password From denglu where username ='" + textBox1.Text + "'"; cmd.ExecuteNonQuery(); string y = (cmd.ExecuteScalar().ToString()); if (te
15、xtBox2.Text == y) { this.Hide(); Form2 f2 = new Form2(); f2.Show(); DBClass.conn.Close(); } else
16、 { MessageBox.Show("用户名或密码错误"); textBox1.Text = null; textBox2.Text = null; DBClass.conn.Close(); } }
17、 } } private void textBox2_TextChanged(object sender, EventArgs e) { textBox2.PasswordChar = '*'; } private void button2_Click(object sender, EventArgs e) { Application.Exit(); } private void
18、 button3_Click(object sender, EventArgs e) { try { DBClass.conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.CommandText = "Insert into denglu([username],[password]
19、) Values('" + textBox1.Text + "','" + textBox2.Text + "')"; cmd.ExecuteNonQuery(); MessageBox.Show("成功注册!"); textBox1.Text = null; textBox2.Text = null; DBClass.conn.Close(); } catch (Excep
20、tion ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); } } 2、新生信息插入模块 private void button1_Click(object sender, EventArgs e) { try { DBClass.
21、conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.CommandText = "Select available from hostel where Hno='" + comboBox2.Text + "' and address='" + comboBox3.Text + "'"; int x = Int32.Parse(cmd.Exe
22、cuteScalar().ToString()); if (x == 1) { cmd.CommandText = "Insert into student(Sname,Sno,class,Hno,Ssex,address) Values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + comboBox2.Text + "','" + comboBox1.Text + "','"
23、 comboBox3.Text + "')"; cmd.ExecuteNonQuery(); cmd.CommandText = "Select occupied from hostel where Hno='" + comboBox2.Text + "' and address='" + comboBox3.Text + "'"; int y = Int32.Parse(cmd.ExecuteScalar().ToString());
24、 y = y + 1; cmd.CommandText = "Update hostel set [occupied]= " + y.ToString() + " where Hno='" + comboBox2.Text + "' and address='" + comboBox3.Text + "'"; cmd.ExecuteNonQuery(); MessageBox.Show("成功添加统计!"); cmd.
25、CommandText = "Select bed from hostel where Hno='" + comboBox2.Text + "' and address='" + comboBox3.Text + "'"; int z = Int32.Parse(cmd.ExecuteScalar().ToString()); cmd.CommandText = "Select occupied from hostel where Hno='" + comboBox2.Text + "' and address
26、'" + comboBox3.Text + "'"; int h = Int32.Parse(cmd.ExecuteScalar().ToString()); if (z == h) { cmd.CommandText = "Update hostel set [available]= 0 where Hno='" + comboBox2.Text + "' and address='" + comboBox3.Tex
27、t + "'"; cmd.ExecuteNonQuery(); } DBClass.conn.Close(); } if (x == 0) { MessageBox.Show("宿舍已满"); DBClass.conn.Close(); }
28、 } catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); } } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) {
29、 try { DBClass.conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.CommandText = "Select Ssex from ss where num='" + comboBox2.Text + "'"; string y = (cmd.E
30、xecuteScalar().ToString()); comboBox1.Text = y; DBClass.conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); }
31、 } 3、 宿舍信息查询模块 private void button1_Click(object sender, EventArgs e) { try { DBClass.conn.Open(); DataSet dsMyDataBase = new DataSet(); OleDbDataAdapter dahostel1 = new OleDbDataAdapter("Select * From hostel w
32、here Hno ='" + comboBox2.Text + "' and address='" + comboBox1.Text + "'", DBClass.conn); OleDbDataAdapter dahostel2 = new OleDbDataAdapter("Select Sname From student where Hno ='" + comboBox2.Text + "' and address='" + comboBox1.Text + "'", DBClass.conn); dahostel1.
33、Fill(dsMyDataBase, "hostel"); dahostel2.Fill(dsMyDataBase, "student"); dataGridView1.DataSource = dsMyDataBase.Tables["hostel"]; dataGridView2.DataSource = dsMyDataBase.Tables["student"]; DBClass.conn.Close(); }
34、 catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); } } 4、删除模块 private void button1_Click(object sender, EventArgs e) { //textBox2.Visibl
35、e = true; //textBox3.Visible = true; try { DBClass.conn.Open(); DataSet dsMyDataBase = new DataSet(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.
36、CommandText = "Select Hno From student where Sno ='" + textBox1.Text + "'"; string y = (cmd.ExecuteScalar().ToString()); textBox2.Text = y; cmd.CommandText = "Select address From student where Sno ='" + textBox1.Text + "'"; string x
37、 = (cmd.ExecuteScalar().ToString()); textBox3.Text = x; OleDbDataAdapter dahostel1 = new OleDbDataAdapter("Select * From student where Sno ='" + textBox1.Text + "'", DBClass.conn); OleDbDataAdapter dahostel2 = new OleDbDataAdapter("Select * From lat
38、e where Sno='" + textBox1.Text + "'", DBClass.conn); dahostel1.Fill(dsMyDataBase, "student"); dahostel2.Fill(dsMyDataBase, "late"); dataGridView1.DataSource = dsMyDataBase.Tables["student"]; dataGridView2.DataSource = dsMyDataBase.
39、Tables["late"]; DBClass.conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); } } private void button2_Click(object
40、 sender, EventArgs e) { try { DBClass.conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBClass.conn; cmd.CommandText = "Delete From late where Sno='" + textBox1.Text + "'";
41、 cmd.ExecuteNonQuery(); cmd.CommandText = "Delete From student where Sno ='" + textBox1.Text + "'"; cmd.ExecuteNonQuery(); MessageBox.Show("成功删除该生统计!"); cmd.CommandText = "Select [occupied] from hostel where [Hno]='" +
42、textBox2.Text + "' and [address]='" + textBox3.Text + "'"; int y = Int32.Parse(cmd.ExecuteScalar().ToString()); y = y - 1; cmd.CommandText = "Update hostel set [occupied]= "+y.ToString()+" where [Hno]='" + textBox2.Text + "' and [address]='" + textB
43、ox3.Text + "'"; cmd.ExecuteNonQuery(); cmd.CommandText = "Update hostel set [available]= '1'where [Hno]='" + textBox2.Text + "' and [address]='" + textBox3.Text + "'"; cmd.ExecuteNonQuery(); MessageBox.Show("成功修改宿舍信息!");
44、 DBClass.conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + "打开数据库失败!"); DBClass.conn.Close(); } } private void textBox2_TextChanged(object sende
45、r, EventArgs e) { textBox2.Enabled = false; } private void textBox3_TextChanged(object sender, EventArgs e) { textBox3.Enabled = false; } 第8 章 设计心得 经过这次课程设计,不仅检验了我所学习知识,也培养了我怎样去把握一件事情,怎样去做一件事情,又怎样完成一件事情。在设计过程中,和同学分工设计,和同学们相互探讨,相互学习,相互
46、监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了了解,也学会了做人和处世。 课程设计是我们专业课程知识综合应用实践训练,着是我们迈向社会,从事职业工作前一个必不少过程.”千里之行始于足下”,经过这次课程设计,我深深体会到这句千古名言真正含义.我今天认真进行课程设计,学会脚扎实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实基础. 经过这次课程设计,本人在多方面全部有所提升。经过这次课程设计,综合利用本专业所学课程理论和实际知识,从而培养和提升学生独立工作能力,巩固和扩充了课程所学内容,掌握课程设计方法和步骤。提升了个人能力,熟悉了规范和标准,同时各科相关课程全部有了全方面复习,独立思索能力也有了提升。 在这次设计过程中,表现出自己单独能力和综合利用知识能力,体会了学以致用、突出自己劳动结果喜悦心情,从中发觉自己平时学习不足和微弱步骤,从而加以填补。 第9 章 参考文件 [1] 钱学忠、李京,数据库原理及应用,北京邮电大学出版社, [2] 汪维华、汪维清等,C#.NET程序设计实用教程,清华大学出版社,






