当前位置:文档之家› 面向对象程序设计课程设计报告

面向对象程序设计课程设计报告

面向对象程序设计课程设计报告
面向对象程序设计课程设计报告

福建农林大学计算机与信息学院

计算机类

课程设计报告

课程名称:面向对象程序设计课程设计

课程设计题目:高校学生宿舍信息管理系统

姓名:苏永权

系:计算机科学与技术

专业:计算机科学与技术

年级:

学号:102260013066

指导教师:李丽珊

职称:讲师

2011年5月28 日

福建农林大学计算机与信息学院计算机类

课程设计结果评定

目录

1.设计目的 (4)

2.设计要求 (4)

2.1功能需求 (4)

2.2性能需求 (5)

2.3数据库选择 (6)

2.4环境 (6)

3.设计方案 (6)

3.1系统功能模块图 (7)

4.设计内容 (9)

4.1系统主界面的设计 (9)

4.2对程序中用到的SQL Sever相关操作方法进行封装 (10)

4.3实现对相关信息的快速查看 (13)

4.4显示学生信息(用户信息) (16)

4.5学生管理模块 (17)

5.总结 (20)

参考文献 (21)

高校学生宿舍信息管理系统

1.设计目的

学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。

2.设计要求

目前,我们学校的宿舍管理采用的还是人工来进行管理的, 面对目前学校发展的实际状况,我们通过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。

2.1功能需求

2.1.1 基本功能需求

本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能:

1.系统要求用户必须输入正确的用户名和密码才能进入系统。

2.系统应该提供学生住宿情况的基本登记。

3.系统应提供学生每学期学生的离校处理。

4.系统应提供宿舍楼报修的详细登记。

5.系统应提供宿舍楼违规详细情况登记。

6.系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种

条件的查询)。

7.系统应提供增加、删除、修改用户帐户的功能。

8.系统还应具有添加、修改、删除学生基本信息的功能。

2.1.2 报表需求

学生宿舍管理系统的某些信息应当能够以报表形式打印出来。基本上应该能够实现扣分统计、和卫生评比的报表打印功能。(由于时间问题,改功能尚未实现)

2.1.3 用户界面需求

学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的录入、查询等功能操作提供方便。快捷按钮的创建也是非常需要的,以方便用户操作。

2.2性能需求

2.2.1系统安全性

学生宿舍管理系统中的增加用户、学生毕业离校等的某些模块都是相联系在一起的,所以在系统的管理权限上应当进行严格控制,具体思想如下:

1.要想对该学生宿舍管理系统进行操作就应当具有某些操作权限。没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。

2.在上述要求基础上可以为该系统设定三种登录方式,程序开始运行所有功能将是不可使用的,只有系统管理员登录、普通用户登录和只读用户三个窗口可

以使用,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统进行操作。

3.在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于大部分的很关键的模块是无权使用的。只读用户只能观看数据对任何模块都无权修改。

2.3数据库选择

数据库是数据管理的最新技术,是计算机科学的重要分支。十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。我们选用的是SQL Server 2005。

2.4环境

本系统是以Windows系统为操作平台,用C#编程语言和SQL Server 2005数据库来实现高校学生宿舍管理系统所需功能的。

3.设计方案

【设计题目】高校学生宿舍信息管理系统

我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。

【系统特点】

本系统主要特点是根据面向对象程序设计的思想:封装,继承,多态来实现。如:对Sql Sever操作方法的封装,对窗体设计代码的封装,对主窗体的继承以及实现多态。在整体设计中,我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。每个模块将实现不同的功能。

下面将具体进行介绍,括号里面是小组成员的名字,代表分工负责完成的模块。

3.1系统功能模块图

系统功能模块图

3.1.1系统管理模块(黄莹)

系统分支(管理员帐号模块)功能模块图

系统管理模块包括:管理员注册,管理员更新,退出系统三个部分。

1. 管理员注册:实现系统管理人员信息的注册。

2. 管理员更新:实现系统管理人员以及其他人员信息的修改与更新。

3. 退出系统:实现正常退出宿舍管理系统。

3.1.2资源管理模块(陈清兰)

系统分支(宿舍管理模块)功能模块图

宿舍管理模块包括:宿舍楼管理、宿舍管理两个大的部分。

1.宿舍楼管理:管理学校的宿舍楼信息(地理区域,宿舍楼号)。

2.宿舍管理:管理学生宿舍的住宿情况(地理区域,宿舍楼号,床位数,性别)。

3.1.3学生管理模块(苏永权)

系统分支(学生管理模块)功能模块图

信息查询模块基本上包括:信息登记,入住登记(要实现按多种条件的查询)。

1. 信息登记:实现每个学生基本信息情况的录入功能。

2. 入住登记:实现每个学生宿舍的分配功能。

3.1.4报修管理模块(林满堂)

系统分支(报修管理模块)功能模块图

报修模块基本上包括:报修登记,维修反馈。

1.报修登记:纪录宿舍楼的报修情况

2.维修反馈:对报修记录进行跟踪并记录反馈情况。

3.1.5违规管理模块(林志龙)

系统分支(违规管理模块)功能模块图

出入登记模块包括:违规登记、处理意见、两个功能模块。

1.违规登记:详细登记宿舍楼的违规情况。

2.处理意见:对违规情况进行处理并登记情况。

4.设计内容

在系统功能模块介绍时,我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。

下面是我负责的功能模块:

4.1系统主界面的设计

具体实现:

根据功能模块图对主界面进行相关菜单,按钮的,及主窗体的设计。并在窗体底部添加状态工具栏,调用TIMER控件来实现实时显示系统时间功能。整个窗体按照面向对象的封装思想将窗体设计类跟功能实现类进行了分离。这样就使得整个程序更容易维护。

4.2对程序中用到的SQL Sever相关操作方法进行封装

设计思想:

我希望把程序中对SQL Sever的增、删、查、改的所有方法都整合到一个类中,然后当使用到某个方法的时候可以直接从该类中调用。所以,我封装了一个DBHelper类来实现这个思想。

当然以下很多代码中都会引用到这个DBHelper类,所以经常会看到如:DBHelper.GetResult(sql);DBHelper.connection.Close();

DBHelper.GetDsqlResult(sql);等调用语句。

DBHelper类的主要实现代码:

class DBHelper

{

private static SqlCommand cmd = null;

private static SqlDataReader dr = null;

//数据库连接字符串

private static string connectionString = "Data Source =.\\SQL2005; Initial Catalog = Virgo; Integrated Security=SSPI";

//数据库连接Connection对象

public static SqlConnection connection = new SqlConnection(connectionString);

public DBHelper()

{ }

#region返回结果集

public static SqlDataReader GetResult(string sql)

{

try

{

cmd = new SqlCommand();

https://www.doczj.com/doc/501944818.html,mandText = sql;

cmd.Connection = connection;

cmd.Connection.Open();

dr = cmd.ExecuteReader();

return dr;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

return null;

}

finally

{

//dr.Close();

//cmd.Connection.Close();

}

}

#endregion

#region对Select语句,返回int型结果集

public static int GetSqlResult(string sql)

{

try

{

cmd = new SqlCommand();

https://www.doczj.com/doc/501944818.html,mandText = sql;

cmd.Connection = connection;

cmd.Connection.Open();

int a = (int)cmd.ExecuteScalar();

return a;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

return -1;

}

finally

{

cmd.Connection.Close();

}

}

#endregion

#region对Update,Insert和Delete语句,返回该命令所影响的行数

public static int GetDsqlResult(string sql)

{

try

{

cmd = new SqlCommand();

https://www.doczj.com/doc/501944818.html,mandText = sql;

cmd.Connection = connection;

cmd.Connection.Open();

cmd.ExecuteNonQuery();

return 1;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

return -1;

}

finally

{

cmd.Connection.Close();

}

}

#endregion

}

4.3实现对相关信息的快速查看

设计思想:

我希望通过点击主窗口的一个菜单按钮可以快速的浏览相关常用信息如:学生住宿信息,宿舍维修记录,违规记录以及正在处理的业务等等

学生信息查询(快速查询):

具体实现:

在窗口初始化的时候,查询数据库中DB_StuInfo ,DB_DormRegister两张表,通过stuNo字段进行连接,把相关记录显示在窗体中ListView控件中。

主要代码:

dCboBuildNo.Enabled = false;

dCboDormNo.Enabled = false;

dCboBuildArea.SelectedIndex = -1;

lvStuInfoSearch.Items.Clear();

string sql = @"select

b.buildArea,b.buildNo,b.dormNo,a.stuNo,a.stuName,a.stuSex,Convert(var char(10),a.stuTime,120) as stuTime,a.stuDepart,a.stuPro,a.stuElse from DB_StuInfo a,DB_DormRegister b

where a.stuNo = b.stuNo";

dataReader = DBHelper.GetResult(sql);

while (dataReader.Read())

{

ListViewItem lviStuInfoSearch = new ListViewItem(); lviStuInfoSearch.SubItems.Clear();

lviStuInfoSearch.SubItems[0].Text =

dataReader[0].ToString();

lviStuInfoSearch.SubItems.Add(dataReader[1].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[2].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[3].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[4].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[5].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[6].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[7].ToString()); lviStuInfoSearch.SubItems.Add(dataReader[8].ToString());

lviStuInfoSearch.SubItems.Add(dataReader[9].ToString()); lvStuInfoSearch.Items.Add(lviStuInfoSearch);}

dataReader.Close();

DBHelper.connection.Close();

4.4显示学生信息(用户信息)

具体实现:根据功能模块图对主界面进行相关菜单,按钮的,及主窗体的设计。在窗体底部添加状态工具栏,并调用TIMER空间实时显示系统时间。

4.5学生管理模块

1.入住登记、个人信息修改、删除记录

入住登记管理是对每栋宿舍楼的每个学生的基本信息进行录入,具体实现:

(1)由于需要和数据库表相关联,所以也添加了数据窗口控件实现两者之间的关联,将学生信息中的学生信息显示在数据窗口中。

(2)在具体实现时需要设置像楼房号这样的具有唯一确定性的字段是不能为空的。其他字段在输入时没有太大限制,录入人员在录入时需根据宿舍安排情况再对下拉框进行选择添加。

学生基本信息登记功能:

主要代码:

string sql = String.Format(@"insert into DB_StuInfo(stuNo, stuName, stuSex, stuTime, stuDepart, stuPro, stuElse)

values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')",txtStuNo.Text.Trim (),txtStuName.Text.Trim(),cboStuSex.Text,dtpStuTime.Text,cboStuDepart .Text,cboStuPro.Text,txtStuElse.Text.Trim());

try

{

int result = DBHelper.GetDsqlResult(sql);

if (result == 1)

{

MessageBox.Show("添加记录成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

else

{

MessageBox.Show("添加记录失败!", "操作提示",

MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

}

学生入住登记功能:

主要代码:

if (lvDormRegister.SelectedItems.Count == 0)

{

MessageBox.Show("请选择要为其分配宿舍的学生信息!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

return;

}else

{

if (IsValidataInput())

{

DialogResult result = MessageBox.Show("您确定该生要入住该宿舍吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

if (result == DialogResult.OK)

{

string sql = String.Format(@"insert into

DB_DormRegister(stuNo,buildArea,buildNo,dormNo)

values('{0}','{1}',{2},{3})", dLblStuNo.Text, cboBuildArea.Text, Convert.ToInt32(cboBuildNo.Text), Convert.ToInt32(cboDormNo.Text));

try

{

int count = DBHelper.GetDsqlResult(sql);

if (count == 1)

{

MessageBox.Show("该生信息登记成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

else

{

MessageBox.Show("该生信息登记失败,请重新操作!", "操作提示", MessageBoxButtons.OK,

MessageBoxIcon.Asterisk);

}

}

5.总结

我们这次程序设计的任务是建立一个学生宿舍管理系统,它用到的开发工具是C#语言,SQL Server 2005数据库。

在设计的开始阶段为了尽快获得学生宿舍管理系统的需求,我大量的在网上

相关主题
文本预览
相关文档 最新文档