毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx

上传人:b****7 文档编号:11236696 上传时间:2023-02-26 格式:DOCX 页数:40 大小:1.26MB
下载 相关 举报
毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx_第1页
第1页 / 共40页
毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx_第2页
第2页 / 共40页
毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx_第3页
第3页 / 共40页
毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx_第4页
第4页 / 共40页
毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx

《毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx(40页珍藏版)》请在冰豆网上搜索。

毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现.docx

毕业论文设计大学生宿舍管理系统聊天室等模块设计与实现

分类号:

TP311.5UDC:

D10621-408-(2012)3079-0

密级:

公开编号:

2010081199

 

成都信息工程学院

学位论文

 

大学生宿舍管理系统(聊天室等模块)设计与实现

 

论文作者姓名:

申请学位专业:

软件工程

申请学位类别:

工学学士

指导教师姓名(职称):

甘(讲师)

论文提交日期:

2014年05月25日

大学生宿舍管理系统(聊天室等模块)设计与实现

摘要

大学生宿舍管理是高校教育管理中极其重要的一部分,良好的宿舍管理对加强校风校纪建设,创造整洁、宁静、清新的学习生活环境,保证教学活动的顺利进行有着十分积极的影响。

随着科学技术不断提高,计算机技术成熟,其强大的功能已为人们深刻认识,使用计算机对高校宿舍信息,宿舍内的学生档案信息以及水电费、纪律评分等信息进行管理,具有手工操作无法比拟的优点。

它有着检索迅速,查找方便,存储量大,保密性好,成本低等诸多特点。

一个优秀的宿舍管理系统能够满足各种对宿舍的管理需求,给高校学生宿舍管理工作带来极大的便利。

LINUX操作系统沿袭了UNIX的系统架构,有着安全与稳定的特点,在这方面非WINDOWS操作系统可比拟,所以将宿舍管理系统的服务器架设在LINUX系统下无疑是最优的选择。

另外,LINUX作为自由和开放源码的计算机操作系统,适合大学生和高校管理人员进行学习和使用,制作一个可在LINUX操作系统下运行的图形界面应用程序能让用户在使用管理系统时更加方便。

本系统选择了QT这一跨平台的C++图形界面应用程序框架,来开发宿舍管理系统的客户端程序,并调用LINUX系统库实现在LINUX操作系统下的高效运行。

关键词:

宿舍管理系统;LINUX;数据库;QT

Collegestudentsdormitorymanagementsystem(Chatroomsandothermodules)designandimplementation

Abstract

Universitystudents’dormitorymanagementisaveryimportantpartofthehighereducationmanagement,gooddormitorymanagementhasapositiveimpacttostrengthenethosanddisciplinesconstruction;aswellasbuildtheclean,quiet,freshstudyenvironmentandmakesuretheteachingactivitiescarriedoutsuccessfully.Withthedevelopmentofthescienceandtechnology,computertechnologybecomemoreandmoremature,anditspowerfulfeaturesarealreadywellknownbymostpeople,usingcomputerstoorganizethedormitoryinformation,dormitorystudentinformationaswellasutilitiescostanddisciplinescorehasalotofadvantagesthatthemanualoperationsdon'thave.Usingcomputershasseveralfeaturesincludingretrievalfast,easytosearch,largememorycapacity,security,lowcost,etc.Anexcellentdormitorymanagementsystemcanmeetvarietyneedsforthedormitorymanagement,andbringagreatconveniencetothedormitorymanagement.

LINUXoperationsystemextendsthestructureofUNIX,itssafetyandreliabilityaremuchadvancedthantheWindowssystem.SosettinguptheserverofdormitorymanagementsystemonLINUXsystemisthebeastchoice.What’smore,asafreeandopen-sourceoperationsystem,itisalsotheoptimaloneforuniversitystudentsandmanagerstolearnanduse.BuildingaGraphicUserInterface(GUI)forthedormitorymanagementsystemunderLINUXcanfacilitatetheuseroperation.

Thissystemadoptsamulti-platformC++GUIapplicationframework--QTtodeveloptheclients’sideofdormitorymanagementsystem,andcallsfortheLINUX’ssystemlibrarytoachievethehighefficiencyunderLINUX.

Keywords:

Dormitorymanagementsystem;Linux;Database;Qt

论文总页数:

31页

1引言

1.1课题背景

学生宿舍管理对于一个学校来说是必不可少的组成部分。

目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说勉强还可以接受,但对于学生人数比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。

而且当查找某条记录时,由于数据量庞大,还只能靠人工去逐条查找,这样不但麻烦还浪费了许多时间,效率也比较低。

当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰,计算机化管理正是适应时代的产物。

世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并且取而代之。

21世纪,电子科学技术在世界占着主流地位,计算机在各行各业中的运用已经得到普及,自动化的管理越来越广泛应用于各个领域。

我们针对如此,设计了一套学生宿舍管理系统。

学生宿舍管理系统采用的是计算机化管理,系统做得尽量人性化,使用者会感到操作方便,需要做的就是将数据输入到系统的数据库中去。

由于数据库存储容量比较大,而且比较稳定,适合长时间的保存,也不容易丢失。

这无疑是为存储量比较大的学校提供了一个方便、快捷的操作方式。

本系统具有运行快、安全性高、稳定性好的优点,并且具备录入、查询、修改、删除等功能,能够快速的查询某栋宿舍楼的一系列信息。

除了对各类信息进行管理,通过此系统,同一宿舍楼的学生与学生,学生与宿舍管理之间也能及时的进行交流。

对于宿舍的管理,人际之间的沟通,也有着事半功倍的效果与积极的意义。

1.2本课题研究的意义

在学校中,管理是学校运行的重要环节。

学校应该采取最有效的管理模式来管理好学生,通过对学生的信息采集将学生的信息输入到数据库中,可以方便地查询学生的信息,这样比传统的手工查找学生档案方式要方便多了。

作为计算机应用的一部分,使用计算机对学校公寓进行管理,有着手工管理无法比拟的优势,例如:

使管理工作更为轻松便捷,高效精确;方便管理人员对学生信息的添加、修改、查看等操作;简化了管理人员的日常事务,例如更新公告、对寝室卫生评分等。

同时,我们也希望在宿舍管理、宿舍活动方面并不是由学校和宿舍管理人员单方面的参与,而是在宿舍中学习生活的学生也能参与于其中。

学校的通知能够让每一名学生及时收到,而学生的申请能够及时得到处理,不同宿舍的学生彼此之间有着较密联系,学生和宿舍管理人员对宿舍管理和活动进行讨论,给宿舍建设、管理方式提出好的建议。

使得学生宿舍有着更好的氛围,宿舍的管理也更加灵活、体贴。

1.3研究方法

系统使用C/S结构,使用Oracle10g数据库来存储各类信息。

由于不希望客户端能够直接访问数据库,将编写一个服务器程序,并使用Socket通信机制,让客户端与服务器进行通信,从而将客户端对数据库的访问操作由服务器代为进行,并将获得的数据信息转发给客户端。

服务器:

使用C语言编写,无图形界面。

其中聊天室模块的服务器和宿舍管理模块的服务器各自独立,绑定不同的端口,并使用LINUX的多线程方式为不同客户提供服务。

涉及对数据库进行访问的部分,使用PRO*C编程嵌入SQL语句,实现对数据库的访问。

客户端:

使用QTCreator制作图形界面,C++语言编写控制代码,涉及LINUX系统函数调用的操作封装在一个控制类中。

其中聊天室程序使用了QT的多线程方式,使得信息显示和信息发送能并发进行。

1.4QT与QTCreator简介

Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。

它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。

Qt是面向对象语言,易于扩展,并且允许组件编程。

QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。

此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。

QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。

1.5Oracle10g与Pro*c简介

Oracle是目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、Internet、电子商务网站等领域作为应用数据的后台处理系统。

此前流行的版本为Oracle9i。

Oracle公司在Oracle9i基础上,推出了代表数据库最新技术的数据库系统Oracle10g。

在Oracle10g中,第一次提出数据自动镜像存储、数据闪回功能以及功能强大的数据导出工具、大文件表空间以及表空间组管理等概念。

通过在过程化编程语言中嵌入SQL语句而开发出的应用程序称为Pro程序,在通用编程语言中使用的SQL称为嵌入式SQL。

在SQL标准中定义了多种语言的嵌入式SQL,各个厂商对嵌入式SQL的具体实现不同。

宿主语言Pro程序

C/C++Pro*C/C++

FORTRANPro*FORTRAN

PASCALPro*PASCAL

2系统的需求分析

2.1总体功能分析

LINUX下的大学生宿舍管理系统,由两部分组成:

一个是服务器,一个客户端。

其中服务器程序使用C语言编写,没有任何图形界面以求获得最大的运行效率;而客户端程序则是由C++语言编写,使用QT制作图形界面,便于用户进行使用。

宿舍管理系统的功能结构如图1所示:

图1系统功能结构图

宿舍管理模块基本功能说明:

Ø学生管理:

包括学生信息的增加、删除、修改、查看及维护功能。

Ø寝室管理:

包括学生住宿信息的增加、删除、修改、查看及维护功能 。

Ø公告管理:

包括公告设置和公告查看功能。

Ø财务管理:

每个月交纳水费用、电费、物品维修信息的查询及维护功能。

Ø账户管理:

包括用户信息的增加、删除、修改、查看及维护功能。

Ø学生申请:

包括学生申请内容的添加。

公告聊天室模块基本功能说明:

Ø设置昵称:

支持用户设置聊天昵称。

Ø设置字体与颜色:

支持用户设置聊天内容中文字的字体和颜色。

Ø设置表情:

支持用户发送各种表情图片。

Ø显示在线用户:

动态的显示当前在线用户信息和在线人数。

2.2服务器端分析

服务器运行于RedHatEnterpriseLinux5操作系统下。

考虑到服务器程序的执行效率,服务器使用C语言编写,通过调用Linux的系统库函数,实现与客户端的网络通信,同时使用Pro*c嵌入SQL语句,访问数据库,从而将用户和数据信息联系起来,并且避免了用户直接对数据进行访问,使得数据的传输、保存与分析更加安全。

同时由于C语言的高效,加之RedHatEnterpriseLinux5操作系统的稳定和快速,采用以上方法开发出的服务器程序为用户服务时,用户所获得的体验,并不会比使用其他客户端直接访问数据库的应用程序获得的体验有太大的差异。

RedHatEnterpriseLinux5操作系统界面如图2所示:

图2RedHatEnterpriseLinux5界面

2.3客户端分析

客户端应可运行于支持图形界面的主流LINUX操作系统上,比如Ubuntu、Fedora、OpenSUSE等,本文中客户端程序运行于为Fedora13系统下,该操作系统界面如图3所示:

图3Fedora13操作系统界面

客户端使用QT4的类库,制作图形界面。

QT做为一个成熟的多平台C++图形用户界面应用程序框架,它可以满足一个图形用户应用程序所需的所有功能。

使用其制作的Linux桌面应用程序,拥有同Windows下的桌面应用相媲美的图形效果。

同样客户端程序也要调用Linux的系统库函数来实现动态分配内存、网络通信等这些功能,使得客户端在Linux操作系统下有着更高的运行效率。

客户端主要由两个大的功能模块组成:

宿舍管理模块与公共聊天室模块。

宿舍管理模块包含:

学生管理、账户管理、寝室管理、公告管理、财务管理、学生申请。

而公共聊天室模块支持多人聊天,自定义昵称,设置字体、颜色、表情和显示当前在线用户信息。

客户端界面如图4所示:

图4客户端程序界面

3宿舍管理模块-服务器的设计与实现

在大学生宿舍管理系统中,宿舍管理模块无疑是最重要的组成部分,它通过对账户、学生、宿舍等信息的操作,实现了宿舍管理系统所需的各个功能。

由于服务器程序与数据库运行于同一台的电脑上,显然对这些数据的获取与保存由服务器程序来处理是最高效的。

同时服务器程序也将对各个数据进行简单的匹配、整合和计算,所以客户端只需要发送和接受预先定义好格式的数据消息便可以实现对所有数据的正确获取与管理,降低了客户端与服务器通信中数据信息出错的概率。

整个第三章将对宿舍管理模块的服务器总体设计、数据库设计和各个功能模块的设计与实现进行详细的描述。

3.1服务器总体设计

系统采用的是C/S结构,对服务器和客户端进行了适当的任务分配。

服务器并不需要太多过于复杂的操作,主要负责在客户端与数据库之间进行数据的转接,使得客户端能及时的获取到所需要的数据,同时客户端发送给服务器的数据也能被及时的存入数据库中。

服务器应当稳定、并发与高效率,为了实现这三个目的服务器采用了多线程模式,即服务器程序为每一个客户创建一个线程进行服务,各个线程之间互不干扰。

而主线程负责对各个子线程进行管理。

3.1.1主线程设计

主线程主要负责初始化网络,创建客户链表,接受客户连接、创建子线程、管理所有线程五个功能。

其具体设计如下:

1.服务器启动后,主线程为服务器绑定IP地址与端口,进行初始化网络操作,如果初始化网络失败,则关闭服务器。

2.初始化网络成功后,主线程创建客户链表,并对客户链表进行初始化,然后进入接受用户连接的循环中。

3.每当有一个用户连接到服务器,服务器将创建一个子线程为客户进行服务,线程创建完毕后返回接受用户连接循环。

4.当服务器进程接受到SIGINT信号(2号信号)时,关闭所有正在与客户进行通信的套接字,关闭所有子线程,初始化客户链表,关闭服务器进程。

主线程的程序流程如图5所示:

图5主线程程序流程图

3.1.2子线程设计

子线程负责为每个申请连接的客户进行服务,包含了:

添加客户到客户链表,从客户链表删除客户,判断用户名密码是否正确,判断用户的需求并提供对应的服务,向用户返回服务是否成功的消息。

具体设计如下:

1.子线程创建成功后,进入判断用户账号密码的循环,接受客户端传来的账号与密码,若账号密码正确,则将客户信息添加到客户链表上,并退出循环。

否则给客户端发送错误信息,并返回判断用户账号密码的循环。

2.添加客户到客户链表后,进入为用户服务循环,接收到客户端的一个服务请求后,判断其请求类型,并为客户端进行对应的服务操作。

服务完成后给客户发送服务是否成功信息,然后返回服务循环。

3.在判断用户账户密码期间,如果用户退出或者断开连接,将关闭与用户通信的套接字,并关闭线程。

4.在为客户进行服务期间,如果用户退出或者断开连接,用关闭与用户通信的套接字,并从客户链表中将客户删除,然后释放资源关闭线程。

5.由于涉及多个线程对临界资源(客户链表)的访问,需要设计线程同步的方式。

使用互斥锁机制,每当一个线程访问客户链表时,别的线程将不能对客户链表进行访问。

6.由于客户要求的服务有多种,所以需要一种统一格式的请求服务消息,供服务器判断用户的要求。

本系统设计了由类型(chartype[3])和数据(chartype[1000])组成的消息结构体,所有服务消息如表1所示:

表1系统所有服务消息

消息类型

消息类型功能说明

数据类型

CU

检查用户是否存在

用户类型结构体

AU

增加用户

用户类型结构体

DU

删除用户

用户类型结构体

SU

查看所有用户

用户类型结构体

MU

修改用户信息

用户类型结构体

SR

查看某栋所有宿舍

宿舍类型结构体

ER

查看未满宿舍

宿舍类型结构体

TR

查看有人的宿舍

宿舍类型结构体

AR

为某楼增加宿舍

宿舍类型结构体

AD

增加宿舍纪律信息

纪律类型结构体

SD

查看某月所有宿舍纪律信息

纪律类型结构体

AI

增加一条公告

通知类型结构体

SI

查看某日所有公告

通知类型结构体

SM

查看某月水电费

水电费类型结构体

SS

查看某楼所有学生

学生类型结构体

ES

查看没有宿舍的学生

学生类型结构体

US

查看单个学生信息

学生类型结构体

CS

查看学生是否存在

学生类型结构体

RS

查看有宿舍的学生

学生类型结构体

AS

为某栋楼增加一个学生

学生类型结构体

DS

为某栋楼删除一个学生

学生类型结构体

MS

为宿舍增加学生

学生类型结构体

ZS

为宿舍减少学生

学生类型结构体

7.当子线程对用户的一次服务请求进行了操作后,将向客户端发送一条信息,用于表示操作是否成功。

子线程流程图如图6所示:

图6子线程流程图

3.2数据库设计

LINUX下的大学生宿舍管理系统使用Oracle10g数据库用来存储各类数据信息,从而使得用户使用管理系统对数据信息的查看、增加、修改、删除、排序等操作更加便捷与安全。

系统的E-R图如图7所示:

图7系统E-R图

3.3账户管理功能—服务器端的设计与实现

账户管理模块主要负责对大学生宿舍管理系统的用户信息进行操作,能实现账号的增加、删除、修改、查看。

账户管理模块功能结构如图8所示:

图8账户管理功能结构图

3.3.1添加账户与删除账户

添加账户功能可以在用户表中添加一行账户信息,由于在用户表中设置了用户名字段为唯一键和非空约束,所以在添加账户时用户名不能与已经存在的账户的用户名相同。

另外由于设置了用户ID为用户表的主键,所以每添加一个用户需要为该用户自动生成一个用户表中不存在的用户ID。

添加账户程序流程如图9所示:

图9添加账户程序流程图

设置新添加账户的用户ID值的方法:

获取用户表中用户ID的最大值,将其进行加1操作后,赋值给新添加账户的用户ID。

设置新添加账户用户ID操作的Pro*c语句:

execsqlselectmax(userid)+1into:

ora_user2.uidfromsm_user;

删除账户功能可以从用户表中删除一行对应的用户信息。

和添加用户相似,删除用户同样需要先判断要删除的用户是否存在。

如果不存在,则向客户端发送用户不存在的信息,如果存在便从用户表中删除此用户。

删除账户Pro*c语句:

execsqldeletefromsm_userwhereuname=:

ora_user2.name;

3.3.2查看账户与修改账户

查看账户功能可以查看用户表中所有的用户信息,当服务器接收到客户端的查看账户请求后,便从用户表中读取所有的用户信息,并统计出用户的个数。

然后将所有获取的用户信息一条一条的发送给客户端。

查看账户Pro*c语句:

execsqldeclareuser_cursorcursorforselectuserid,uname,password,pemissonto_char(register_time,’yyyy-mm-dd’)fromsm_user;

修改账户功能可以修改用户表中的一行用户的密码与权限。

修改账户,同样需要预先判断所修改的用户是否存在,在进行对应的操作。

修改账户程序流程如图10所示:

图10修改账户流程图

修改账户Pro*c语句:

execsqlupdatesm_usersetpassword=:

ora_user2.passwd,pemisson=:

ora_user2.pemissonwhereuname=:

ora_user2.name;

3.4学生管理功能—服务器端的设计与实现

学生管理模块是宿舍管理系统的重要组成部分,它主要是负责对学生数据进行管理,实现对某一栋宿舍楼的学生进行增加、删除、修改和查看操作。

学生管理模块功能结构如图11所示:

图11学生管理模块功能结构图

3.4.1数据结构设计

根据学生表设计了结构体oracle_Student,用于保存学生信息。

结构体的成员变量说明如表2所示:

表2oracle_Student结构体成员变量说明

成员变量定义

成员变量说明

备注

intSID

学生学号

charSname[12]

学生姓名

中文字符串

charSsex[4]

学生性别

中文字符串

intSage

年龄

intSqq

QQ号

charSmphone[12]

手机号

数字字符串

charStphone[12]

座机号

数字字符串

charSemail[50]

邮箱

intSroomID

宿舍号

初始赋值为0

intSbuildingID

宿舍楼号

charaddr[128]

地址

charSvalue[598]

额外信息

用于描述别的信息

3.4.2添加学生与删除学生

添加学生功能可以在学生表中增加一行学生信息,由于学生表中设置了学号为主键,所以添加一行学生信息时其学号不能为表中已存在的学号。

故在添加学生要预先检查该学号的学生信息是否已经存在于学生表中。

添加学生方法:

首先接受客户端传入待添加学生信息,判断其

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1