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