心理健康调查_第1页
心理健康调查_第2页
心理健康调查_第3页
心理健康调查_第4页
心理健康调查_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳航空航天大学北方科技学院

软件综合课程设计

课程名称软件综合课程设计

专业计算机科学与技术

班级B841102

学号B84110209

姓名程铭

指导教师刘峰

2011年n月

沈航北方科技学院

课程设计任务书

教学部工学一部专业计算机科学与技术

课程设计题目大学生心理健康测试程序设计

班级B841102学号B84110209姓名程铭

课程设计时间:2011年11月7日至2011年11月亟日

课程设计的内容及要求:

(―)主要内容

设计一个简单的大学生心理健康测试程序,实现如下功能:

1.建立心理健康测试题目,并将之录入到数据库系统中,可以实现增删改;

2.用户回答题目;

3.根据用户回答的题目给出结论,并提出忠告;

4.统计各个学生答题情况,给出学生心理健康总体情况总结;

5.统计分析各年级、性别等因素对学生心理健康的影响;

(二)基本要求

1.系统利用MFC实现。

2.完成系统的设计、编码和调试,通过指导教师当场验收。

3.交出完整的课程设计报告。

(三)主要参考书

(四)评语

(五)成绩

参考文献

[1]萨师炮,王珊.数据库系统概论(第四版).北京:高等教育出版社,2006.5

[2]孔凡航.Oracle9i中文版基础教程(第二版).北京:清华大学出版社,

2007.2

[3]孔鹏等.VisualC++完全学手册.北京:机械工业出版社,2007.1

[4]杨继平,吴华.SQLServer2000自学教程.北京:清华大学出版社,2000.H

[5]张海藩.软件工程导论[M].北京:清华大学出版社.2003

心理健康调查问卷

目录

摘要.............................................................1

1.绪论...........................................................1

2.系统分析.......................................................2

2.1可行性分析....................................................2

2.1.1技术可行性分析....................................................2

2.1.2经济可行性分析....................................................2

2.1.3操作可行性分析....................................................2

2.2需求分析......................................................2

2.2.1功能需求...........................................................2

2.2.2数据需求..........................................................2

2.2.3性能需求...........................................................2

2.3数据流图.....................................................2

2.4数据字典.....................................................3

2.5E-R图........................................................5

3.总体设计.......................................................6

3.1系统结构......................................................6

3.2功能模块设计..................................................6

3.4数据库详细设计................................................7

4.详细设计.......................................................8

4.1数据库连接....................................................8

4.2各功能模块设计与实现.........................................10

4.2.1用户登录及答题模块...............................................10

4.2.2管理员登陆及管理模块.............................................11

4.2.3成绩管理及结果显示模块...........................................12

5.调试与测试....................................................13

5.1调试.........................................................13

5.2测试.........................................................14

6.结论..........................................................14

结束语............................................................14

参考文献..........................................................14

附录1—用户手册...................................................16

附录2一源程序.....................................................18

0

摘要

当代大学生的心理素质不仅影响到他们自身的发展,而且也关系到全民族素

质的提高,更关系到跨世纪人才的培养,大量调查表明,目前我国大学生发病率

高的主要原因是心理障碍,精神疾病已成为大学生的主要疾病。具体表现为恐怖、

焦虑、强迫、抑郁和情感危机、神经衰弱等。当代大学生心理问题不容忽视。

本系统前台使用面向对象的可视化编程工具微软基础类

(MicrosoftFoundationClasses)作为界面设计,后台使用Access数据库进行

对数据的统计。本系统实现了学生上机考试的分数统计,学生通过本系统可以对

学生心理健康情况有初步的认识和及时的调整。

本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分

析、概要设计、详细设计、软件测试等各个方面详细介绍了系统的设计与实现过

程,最后对系统的完成情况进行了总结。

关键词:数据库;问卷调查;MFC

1.绪论

当代大学生的身心健康问题是一个全社会的问题,也是家长都很担心和

关注的问题。大学生健康状况如何,必将对社会有极其深远的影响。因为他

们是祖国的未来,肩负着建设国家的重任。很多人生活不规律、就业压力大、

失眠等等。造成精神状况不佳,学习、生活质量不高,直接影响到他们身心

健康的发展

根据课程设计任务书要求,本系统开发主要完成以下功能和性能。

(1)心理健康测试题目管理:包括建立心理健康测试题目,并将之录入到数

据库系统中,可以实现对题目的增删改;

(2)学生回答问题管理:根据用户回答的题目给出结论,并提出忠告

(3)学生健康情况统计:统计各个学生答题情况,给出学生心理健康总体情

况总结

(4)学生健康影响因素:统计分析各年级、性别等因素对学生心理健康的影

2.系统分析

2.1可行性分析

2.1.1技术可行性分析

现在有很多程序语言和相应的开发工具都可以适用于本系统的开发,例如

MFC、VC、JSP^PHP等,数据库有AccessOracleInformix>SQLServer

mysql等,现在基本所有的软件程序都是用这些工具开发的,并且本人对这些语

言和数据库的创建、连接、管理都有过了解和实际的开发经验。

2.1.2经济可行性分析

作为开发系统的一般配置,根据个人情况和资金情况,选择一台性能稳定、

效率较高的计算机,现在的费用不会超过3000元。操作系统采用Windowsxp,

数据库采用功能强大并且操作灵活的Access,开发工具选用MFC做界面操作

2.1.3操作可行性分析

本系统的操作对象是学生。对于他们,不需要其他复杂的操作,只需要在

网上以问卷的形式答题即可,大体得出的结果和提示是由程序自己进行给出结果

和提示

2.2需求分析

2.2.1功能需求

本系统主要是大学生心理健康测试程序的系统。

本系统需要对心理健康测试题目录入数据库中且对题目有添加,删除,修改,

用户上题答题,能够对学生的答题进行统计,利用数据库对学生答题情况惊醒分

数统计,将结果显示出来。数据要求有自动更新功能,显示最新的结果。

2.2.2数据需求

学生的账号(学号,密码),对问卷的答题的分数

2.2.3性能需求

该系统对数据要求严格,数据信息真实可靠

2.3数据流图

数据流图是结构化系统分析的工具。它既可以表达数据在系统内部的逻辑流

向及存储,又可以表达系统的逻辑功能和数据的逻辑变换。数据流图既能表达现

行人工系统的数据流程和逻辑处理功能,也能表达自动化系统的数据流程和逻辑

处理功能。数据流程有五种基本符号:外部项、数据流、处理逻辑(加工)、数

据元素和数据存储。本课设的数据流图如下

(1)学生考试数据流图

账号卜_____________________________

►登陆界面-►答题界面t限时考试"结束

密码-

(2)管理员出题界面

(3)统计结果输出界面

2.4数据字典

数据字典(Datadictionary)是一种用户可以访问的记录数据库和应

用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行

修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改

时必须手工更新其内容的数据字典。

(1)数据项

1.名称:sname

别名:用户名

简述:账号

数据类型:可变字符型

长度:15

2.名称:password

别名:登录密码

简述:密码

数据类型:可变字符型

长度:10

3.名称:manager

别名:管理员

数据类型:可变字符型

长度:2

4.名称:question

别名:网上问卷调查

简述:问卷调查

数据类型:数字类型

长度:11

⑵数据流

1.数据流名称:运动员信息管理

简述:管理运动员信息

数据流组成:管理结果=运动员基本信息

2.数据流名称:运动会比赛成绩管理

简述:管理比赛成绩

数据流组成:管理结果=比赛成绩

⑶数据存储

1.数据存储器名称:用户基本信息

简述:记录用户的账号,密码等信息

数据存储结构:用户账号、用户密码。

关键字:用户信息

2.数据存储器名称:管理员基本信息

简述:记录管理员的账号,密码等信息

数据存储结构:管理员账号、管理员密码。

关键字:管理员信息

3.数据存储器名称:问卷调查

简述:记录调查的问题

数据存储结构:调查问题及各个答案。

关键字:问题调查

(4)处理过程

1.处理逻辑名称:查询用户答题情况信息

输入的数据流:查询的条件

处理:查询用户答题情况信息

输出的数据流:输出查询的结果

2.处理逻辑名称:班级班号

简述:输出班级成绩

输入的数据流:班号

处理:根据学号和班号查找班级成绩

输出的数据流:输出该班级的答题成绩

2.5E-R图

系统E-R图

3.总体设计

3.1系统结构

经过对任务书的分析,本系统采用C/S结构。C/S(Client/server)结构,

即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利

用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了

系统的通讯开销。采用C/S结构时,客户端和服务器都承担部分工作,有效利用

了客户端和服务器端的资源,使用户不必在硬件上有更多的投入。另外,浏览器

页面不便于修改,这为用户定制自己的文件时带来了不便。在系统的开发方面,

C/S结构的开发对开发者提出了较高的要求,整个开发过程比较复杂。系统升级

方面。C/S结构中若有某一模块发生改变,可能要关联到其它模块的变动,使系

统升级的成本较大。

3.2功能模块设计

根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。数

据管理中实现对心理健康问卷调查问卷的查询、添加、删除和修改、用户登记、

用户注册功能、管理员的登记。功能模块图如图1所示。

心理健康问卷调杳

图1功能模块图

⑴用户登录及答题模块

该模块分为

①用户注册子模块,实现数据库录入用户的基本信息的功能

②考试答题子模块,实现限时考试及把其答题结果录入数据库中的功能

⑵管理员登陆管理子模块

该模块是管理员建立心理健康测试题目,并将之录入到数据库系统中,

可以实现增删改的功能。

(3)成绩子模块

该模块是对各个学生答题情况进行统计,给出学生心理健康总体情况总

结的功能;。

(4)显示结果及给出建议子模块

该模块是统计分析各年级、性别等因素对学生心理健康的影响的功能;

3.4数据库详细设计

本节主要介绍后台数据库的结构设计。结构设计是重要阶段,是数据库设计

的重要组成部分。下面给出下列表基本的数据结构。

(1)users表

主要记载用户的相关信息(如:用户名称,用户密码等)。用户登录表由表1

所示。

表1users表

字段名称数据类型长度允许空说明

uidchar10NotNull用户的编号(主键)

pswchar10NotNull用户密码

namechar20NotNull用户姓名

提示问题char20NotNull用户密码提示问题

提示答案char20NotNull用户密码提示答案

本表说明如下:

本表的主要作用是实现用户进入系统时的身份验证、记录注册个人信息、

密码找回。装载系统用户名称和密码。其中uid是唯一标识用户的,是该表的主

码。

(2)管理员表

主要记载管理员的相关信息(如:管理员名称,管理员密码等)。管理员登录

表由表1所示。

表1users表

字段名称数据类型长度允许空说明

uidchar10NotNull管理员的编号(主键)

pswchar10NotNull管理员密码

namechar20NotNull管理员姓名

提示问题char20NotNull管理员密码提示问题

提示答案char20NotNull管理员密码提示答案

(3)问题表

主要记载管理员所出的题目及选项,其表如下

表2question表

调查的问题答案1答案2

1.你认为一个心理健康的人最典型的特征什么A.处事乐观B.吃得下,睡的香

2.你对你的大学生活满意么A.满意B.不满意

3.照成你生活困绕的原因是什么A.思想上有困难B.不适应大学生活

4.你认为大学生的心里问题主要是由什么引起A.人际交往的压力问题B.对周围环境不适应

5.你是如何对待面临的压力A.相知心朋友诉说B.憋在心里

4,详细设计

4.1数据库连接

1导入ADO动态链接库

在工程的stdafx.h中加入如下语句:

#import"c:\programfiles\commonfiles\system\ado\msado15.dll"

no_namespace\

rename("EOF","adoEOF")

这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候

系统会为我们生成msadol5.tlh和msadol5.tli两个C++头文件来定义ADO库,

即加载ADO动态库(msadol5.dll)0

其中,no_namespace表明不使用命名空间,rename("EOF","adoEOF")表明

把ADO中用到的EOF改为adoEOF,防止发生命名冲突。

注意:该代码需要在一行中完成,如果写成两行或者多行,行末要加上“\”

符号,表示把这几行看成一行,如本例。

2、初始化OLE/COM库环境

在基于MFC的应用里,初始化OLE/COM库环境的一个比较好的位置是在应

用类的Initlnstance成员函数中,而且直接使用AfxOlelnit,在退出应用时,

该函数也负责COM资源的释放,将此函数添加在Initlnstance中的如下位置:

BOOLCExpApp::Initlnstance()

AfxEnableControlContainer();

〃初始化OLEDLLs

if(!Afx01eInit())

AfxMessageBox("初始化OLEDLL失败!“);

ReturnFALSE;

说明:也可以在Initlnstance中使用::Colnitialize初始化OLE/COM库环

境,但须在ExitInitlnstance中使用::CoUninitialize释放占用的COM资源,

显然使用AfxOlelnit更为方便。

3、连接数据库

在Doc'View程序中,通常在应用类(App类)中进行数据库的链接。

声明——个Connection指针:_ConnectionPtrm_pConnection指针;

注:ADO最重要的三个对象有三个:连接对象(Connection),命令对象

(Command)和记录集对象(RecordSet)。在使用这三个对象的时候,需要定义

与之相应的智能指针,分别是ConnectionPtr,CommandPtr,RecordsetPtro

由上述ConnectionPtr指针的使用步骤可知,和C==中的类指针使用方法一

样,智能指针也要先定义指针变量,创建其实例(实例化),然后就可以调用它

的方法和属性。不同的是:该智能指针最后是自动进行内存释放的

所有的智能指针都是基于_com_ptr_t模板类的,该类封装了lUnknow接口

的3个方法:Queryinterface>Addref和Release。它具有自动计数的机制,即

在构造对象时,自动为该对象计数加1。析构对象时,自动调用Release方法(即

该类型的指针在使用后不需要手动释放内存)(但需要调用Close方法,关闭连

接或者记录集)所以智能指针会使代码更加简洁并且不易出错。_

4.2各功能模块设计与实现

4.2.1用户登录及答题模块

该模块主要是对用户的基本信息在数据库中的设备基本信息进行保存考试

成绩的保存。

建立用户登录及答题模块时,首先在MFC中建立一个登录窗体,界面按钮,

双击登录按钮写入代码。建立ADO控件,连接到数据库后选择相应的表格进行连

接,保存具体实现程序流程如图2所示。

图2用户登录及答题流程图

通过流程图可以看出用户登录一答题过程:输入密码,账号密码是否正确,

如果正确,进行答题否则从新输入账号密码,否则新申请账号

4.2.2管理员登陆及管理模块

该模块主要是对管理员的基本信息在数据库中的设备基本信息进行核对并

对写入的题目的保存。

建立管理员登陆及管理模块,首先在MFC中建立一个登录窗体,界面按钮,

双击登录按钮写入代码。建立ADO控件,连接到数据库后选择相应的表格进行连

接,保存具体实现程序流程如图3所示。

图3管理员登录及出题流程图

通过流程图可以看出管理员登录一出题过程:输入密码,账号密码是否正

确,如果正确,进行答题否则从新输入账号密码并进行出题,否则返回登陆界面

4.2.3成绩管理及结果显示模块

该模块主要是对学生的基本信息在数据库中的设备基本信息进行核对并对

答题是否正确进行核对,把相对分值进行相加保存保存在数据库中。

通过流程图可以看出:判断学号是否相同,如果学号相同,把相应的题目分

数相加,如果不同,再进行下一个学生学号的分数相加

5.调试与测试

5.1调试

调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说

也是最艰巨的任务。调试的任务是及时改正测试过程中发现的软件错误。具体地

说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确

定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究

推断代码以确定问题的原因,并设法改正。

调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到

相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍。

(1)窗口不能跳转

检查得知窗口跳转的ID和跳转的ID不相同

(2)输入的内容不能存到数据库中

原因是没有使用ADO进行数据库的链接

5.2测试

软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从

用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软

件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据

软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入

数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误

或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然

而付出了过高的代价。

测试方法:看看现有的功能是否满足用户需求

6.结论

课程设计顺利完成,题目所要求的功能也都一一实现,可以对数据库进行添

加修改,删除以及其他查询结果及报表的显示。不过这个程序还有些不够完善,

例如对数据的更新处理的不是很好以及报表的统计不是很详细。

结束语

为期两个礼拜的软件综合课程设计实习终于顺利完成,在这期间付出汗水,

辛劳可是一言难尽。对我来说这次课设对我来说收获很大

1.了解和学会应用mfc和数据库的连接的方法

2.对于软件的设计有了明确的设计思路

参考文献

(1)萨师帽,王珊.数据库系统概论(第四版).北京:高等教育出版社,2006.5

(2)孔凡航.Oracle9i中文版基础教程(第二版).北京:清华大学出版社,

2007.2

(3)孔鹏等.VisualC++完全学手册.北京:机械工业出版社,2007.1

(4)杨继平,吴华.SQLServer2000自学教程.北京:清华大学出版社,2000.11

(5)张海藩.软件工程导论[M].北京:清华大学出版社.2003

附录1—用户手册

(1)学生登陆界面

点击运行,首先出现的是登录界面,选择用户名称,正确的输入密码即可,

如图5所示。

图5登录界面

点击“确定”即进入到考试界面,如图6所示。

图6学生考试界面

在此界面可以实现限时的考试

(3)管理员登陆界面

图7管理员登陆界面

正确输入用户名及密码点击“确定”即进入到考试界面,如图8所示

后台管理

试题管理学生成绩查询数据库管理

附录2一源程序

主要模块源代码清单:

(1)用户注册界面

CRegister::CRegister(CWnd*pParent/*=NULL*/)

:CDialog(CRegister::IDD,pParent)

(

//{{AFX_DATA_INIT(CRegister)

m_Age=0;

m_Answer=_T("");

m_Passwd=_T(n");

m_PasswdRepeat=_T("");

m_Phone=0;

m_RealName=_T("");

m_UserName=_T("");

m_IDcard=_T("");

//}}AFX_DATA_INIT

)

(2)用户登陆界面

CLOGIN::CLOGIN(CWnd*pParent/*=NULL*/)

:CDialog(CLOGIN::IDD,pParent)

(

//{{AFX_DATA_INIT(CLOGIN)

m_UserName=_T(,,n);

m_UserPasswd=_T(nn);

//}}AFX_DATA_INIT

}setDeptlndex.DeptNo

txtPrice.Text=.ProductPrice

txtCost.Text=.ProductCost

dtPurchaseDate=.PurchaseDate

If.Status=0Then

IblStatus.Caption="该用户已注册“

Else

IblStatus.Caption="该用户未注册”

EndIf

IfLen(.RejectDate)=0Then

dtReject.Visible=False

Else

dtReject.value=.RejectDate

EndIf

IfLen(.DisCardDate)=0Then

dtDisCard.Visible=False

Else

dtDisCard.value=.DisCardDate

EndIf

EndWith

(3)学生答题界面

CExamOnlineDlg::CExamOnlineDlg(CWnd*pParent/*=NULL*/)

:CDialog(CExamOnlineDlg::IDD,pParent)

(

testnum=l;

num=0;

//{{AFX_DATA_INIT(CExamOnlineDlg)

//NOTE:theClassWizardwilladdmemberinitializationhere

//}}AFX_DATA_INIT

//NotethatLoadicondoesnotrequireasubsequentDestroylconinWin32

m_hlcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

)

4)教师出题界面

CAddTest::CAddTest(CWnd*pParent/*=NULL*/)

:CDialog(CAddTest::IDD,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论