zgl个人情感助理Word文档下载推荐.docx
- 文档编号:18719199
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:37
- 大小:29.05KB
zgl个人情感助理Word文档下载推荐.docx
《zgl个人情感助理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《zgl个人情感助理Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
WindowXP
●数据库:
MicrosoftAccess2000
3总体设计
个人情感助理工具是为单个用户提供管理功能,因此需要将本系统设计成一个相对封闭的单机运行系统。
作为大众化的应用软件,其用户界面往往是决定软件质量的首要条件,所以界面设计是开发与设计的重点,应充分贯彻简单易用、美观大方的基本原则。
系统采用结构化的设计方法进行设计,采用快速开发平台JBuilderX进行开发。
依据需求分析的结果,个人情感助理应设计成一个能够运行于普通个人电脑上,并且适合于大众需求的简单实用的助理工具,下面从软件的整体结构设计、接口设计等方面来阐述一下系统的总体设计。
依据需求分析结果,个人情感助理可以分为四个模块:
1)信息管理:
对用户基本信息进行管理;
2)情绪管理:
对用户情绪进行管理;
3)情感交流:
计算机对用户情感进行识别并给出适当反馈;
4)查询:
按情绪类型、出现频率和产生的效果进行查询;
5)统计:
对用户基本信息和情绪进行统计。
3.1界面设计
界面设计应遵循简洁美观、方便易用的基本原则。
3.1.1系统主控平台界面设计
系统主体界面使用简单和直观的布局设计,通过工具栏方式为用户提供各项系统功能。
具体设计效果如图所示
3.1.2数据库设计
根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构。
该系统包括用户基本信息表和用户情绪信息表。
表1用户基本信息
名称
字段名称
数据类型
主键
非空
标识
ID
自动编号
Yes
姓名
name
文本
No
性别
Sex
民族
Ethnic
籍贯
Home
表2用户情绪信息表
编号
Num
数字
高兴
happy
悲伤
sad
惊讶
surprise
愤怒
anger
厌恶
disgust
恐惧
fear
3.2详细设计
基于系统需求分析与系统总体设计的结论,本系统采用JBuilderX实现各模块的功能,下面按照模块的划分来分别阐述系统的详细设计和实现过程。
首先建立一个名为“Peas”的工程文件,再在其中建立一个名为mainApp的应用程序,然后开始以下操作。
3.2.1主界面设计
1模块设计
主界面负责应用程序的主界面,由它调用其他模块。
因此应该具有操作性好、界面清晰的特点,使用户能够方便地找到所需功能。
根据功能需求和总体设计的结果,主模块应该包括信息管理、情绪管理、情感交流、查询和统计。
可以通过点击界面中的菜单项进入相应的功能界面。
其中系统管理和帮助为保留项,为以后系统的升级打下基础。
主界面如图所示。
主模块的建立方法:
建立一个新的应用程序,并将其主窗口命名为menuClass。
修改窗体布局为XYLayout.在此窗体上添加菜单mainMenu,其内容如表所示。
2程序代码
主程序Peas.java
//首先要定义所有用到的对象,代码如下
//定义内容面板
JPanelcontentPane
//定义布局格式
XYLayoutxYLayout1=newXYLayout();
//定义菜单栏
JMenuBarmainMenu=newJMenuBar();
//定义系统管理菜单及其菜单项
JMenumenuSystem=newJMenu();
JMenuItemitemExit=newJMenuItem();
//定义信息管理菜单菜单及其菜单项
JMenumenuInfo=newJMenu();
JMenuItemitemShow=newJMenuItem();
JMenuItemitemAdd=newJMenuItem();
JMenuItemitemEdit=newJMenuItem();
JMenuItemitemDelete=newJMenuItem();
//定义情绪管理菜单菜单及其菜单项
JMenumenuEmotion=newJMenu();
//定义情感交流菜单及其菜单项
JMenumenuCom=newJMenu();
JMenuItemitemShowC=newJMenuItem();
JMenuItemitemAddC=newJMenuItem();
JMenuItemitemRecyleC=newJMenuItem();
//定义查询菜单及其菜单项
JMenumenuSearchAll=newJMenu():
//查询菜单是查询下的一个二级菜单
JMenumenuSearch=newJMenu():
JMenuItemitemSearchByTime=newJMenuItem();
JMenuItemitemSearchByEvent=newJMenuItem();
JMenuItemitemSearchByEmotion=newJMenuItem();
//定义统计菜单及其菜单项
JMenumenuSum=newJMenu();
JMenuItemitemSumPeople=newJMenuItem():
JMenuItemitemSumEmotion=newJMenuItem():
//定义帮助菜单及其菜单项
JMenumenuHelp=newJMenu();
JMenuItemitemAbout=newJMenuItem();
//由于在mainClass类中对emotion进行排序时会涉及到数据库操作,所以预先定义数据库操作所需的对象,以便于根据不同的事件排序时直接调用,避免了代码的重复
Stringsql=newString();
DatabaseDB=newDatabase();
//在mainClass类中还定义用于显示人员情感信息和对应事件信息的公共静态对象变量,关于起作用将在后面做详细的说明
publicstaticemoInfoSIFall=newemoInfo();
publicstaticeditEmoInfoeditInfo=neweditEmoInfo();
publicstaticdelEmoInfodelInfo=newdelEmoInfo();
publicstaticeventInfoeveInfo=neweventInfo();
//在类的构造函数中将调用jbInit过程,所以对象的初始化工作一般都放在此过程中进行。
一下是初始化代码
//设定contentPane
contentPane=(JPanel)this.getContentPane();
//设定contenPane布局为xYLayout1
contentPane.setLayout(xYLayout1);
//设定窗体的大小
this.setSize(newDimension(400,300));
//设置窗体的大小
this.setTitle("
个人情感助理系统"
);
//设置各菜单及菜单项的名称(Text属性)
menuSystem.setText("
系统管理"
);
menuInfo.setText("
信息管理"
menuEmotion.setText("
情绪管理"
menuCommution.setTextI("
情感交流"
menuSearchAll.setText("
查询"
menuSearch.setText("
查询事件"
menuSum.setText("
统计"
menuHelp.setText("
帮助"
itemShow.setText("
信息综合管理"
itemAdd.setText("
添加信息"
itemEdit.setText("
修改信息"
itemDelete.setText("
删除信息"
itemExit.setText("
退出"
itemShowC.setText("
情感综合管理"
itemAddC.setText("
添加情绪"
menuOrder.setText("
排序"
itemByTime.setText("
按时间"
itemByEvent.setText("
按事件"
itemByEmotion.setText("
按情绪"
itemSearchEmotion.setText("
查询情绪"
itemSumEvent.setText("
事件统计"
itemSumEmotion.setText("
情绪统计"
//设置主窗体的菜单栏为mainMenu
thia.setMenuBar(mainMenu);
//以上代码生成主窗体的可视部分,由于各个菜单项的时间监听器已添加,剩下的工作就是编写各个菜单项的事件监听动作,以使其可以完成我们所需的功能,
//将菜单项对点击事件的响应动作写在菜单项的ActionPerformes事件中。
//窗体关闭按钮的响应动作
protectedvoidprocessWindowEvent(WindowEvente){
super.processWindowEvent(e);
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
//退出应用程序
voiditemExit_actionPerformed(ActionEvente){
System.exit(0);
//人员信息综合管理。
由于在mainClass的对象定义部分已定义了类emoInfo的对象SIFall,所以这里直接调用即可
voiditemShow_actionPerformed(ActionEvente){
SIFall.setLocation(200,160);
SIFall.pack();
SIFall.show();
SIFall.setNull();
SIFall.setAbled(false);
SIFall.setButton(true,false,false,false,false);
//添加人员信息(便于交流)
voiditemAdd_actionPerformed(ActionEvente){
addEmoInfodlg=newaddEmoInfo();
DimensionfrmSize=getSize();
Pointloc=getLocation();
dlg.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height=dlgSize.height)/2+loc.y);
dlg.pack();
dlg.show();
//addEmoInfo类继承自emoInfo类中保存数据时需根据不同的操作类型进行不同的数据库操作,此处为添加信息,所以设置操作类型为添加(addnew)
dlg.setExeType("
addnew"
//修改人员信息
,直接调用预先定义的eitInfo
voiditemEdit_actionPerformed(ActionEvente){
DimensiondlgSize=editInfo.getPreferredSize();
Pointloc=getLocation();
editInfo.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
editInfo.pack();
editinfo.show();
//删除人员信息,直接调用预先定义的delInfo
voiditemDelete_actionPerformed(ActionEvente){
DimensiondlgSize=delInfo.getPreferredSize();
delInfo.setLocation(frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
delInfo.pack();
delInfo.show();
//显示情感综合管理,直接调用预先定义的emoInfo
voiditemShowC_actionPerformed(ActionEvente){
comInfo.setLocation(200,160);
comInfo.pack();
comInfo.show();
comInfo.setAbled(false);
cominfo.setButton(true,false,false,false,false);
//添加情绪
voiditermAddC_actionPerformed(ActionEvente){
addComaddC=newaddCom();
DimensiondlgSize=getSize();
addC.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
addC.pack();
addC.show();
//按时间排序,定义一个emoShow雷对象shareFrame,用于显示排序结果
voiditemByTime_actionPerformed(ActionEvente){
emoShowshareFrame=newemoShow();
shareFrame.createFrame(shareFrame);
sql="
select*fromemoTableorderbyTime"
;
rs=DB.getResult(sql);
shareFrame.redultShow(rs);
//按情绪事件排序
voiditemByEvent_actionPerformed(ActionEvente){
//显示按情绪类型查询
voiditemSearchByEmotion_actionPerformed(ActionEvente){
//从类search中级车一个类searchByEmotion,重新设置各空间的可见性,以实现仅能按情绪类型查询
classsearchByEmotionextendssearch{
publicsearchByEmotion(){
jRByEmotion.setVisible(false);
jRByNum.setVisible(false);
jRByEnd.setVisible(false);
xYLayout1.setHeight(110);
}
searchByEmotionbyEmotion=newsearchByEmotion();
DimensiondlgSize=byEmotion.getPerferredSize();
byEmotion.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
byEmotion.pack();
//重设标签文字
byEmotion.setLabelText("
请输入要查询情绪的类型:
"
//设置查询类型为情绪,以实现按情绪查询
byEmotion.setType("
Emotion"
byEmotion.show();
//显示按事件类型查询
voiditemSearchByNum_actionPerformed(ActionEvente){
classsearchByNumextendssearch{
publicsearchByNum(){
searchByNumbyNum=newsearchByNum();
byNum.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
byNum.pack();
byNum.setLabelText("
请输入要查询情绪出现频率:
byNum.setType("
Num"
byNum.show();
//显示按产生的效果查询
voiditemSearchByEnd_actionPerformed(ActionEvente){
classsearchByEndextendssearch{
publicsearchByEnd(){
searchByEndbyEnd=newsearchByNum();
byEnd.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
byEnd.pack();
byEnd.setLabelText("
请输入要查询产生的效果类型:
byEnd.setType("
End"
byEnd.show();
//人员统计,定义sunPeople类的一个对象实例people,以显示统计结果
voiditemSumPeople_actionPerformed(ActionEvente){
sumPeoplepeople=newsumPeople();
DimensiondlgSize=people.getPreferredSize();
people.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
people.pack();
people.show();
//情绪统计,定义sunEmotion类的一个对象实例emotion,以显示统计结果
voiditemSumEmotion_actionPerformed(ActionEvente){
sumCommutioncom=newsumcommution();
2
D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zgl 个人 情感 助理