zgl个人情感助理.docx
- 文档编号:5732135
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:37
- 大小:29.05KB
zgl个人情感助理.docx
《zgl个人情感助理.docx》由会员分享,可在线阅读,更多相关《zgl个人情感助理.docx(37页珍藏版)》请在冰豆网上搜索。
zgl个人情感助理
个人情感助理工具
1引言
1.1项目背景
在现代信息社会里,人们越来越重视信息的交流与沟通,更加注重时间的有效利用,其中个人信息量也在高速增加,因此个人信息的管理在日常工作和生活中成为一项必不可少的内容,方便实用的个人信息管理对于提高信息利用效率具有重要意义。
随着个人电脑的普及,简单实用的个人情感助理工具成为人们日常个人信息管理的不错选择。
1.2项目目标
个人情感助理工具是能够运行在普通个人电脑上,为使用者提供日常信息情感管理的工具软件,使用者可以通过个人情感助理工具对日常工作、生活等方面进行更有效的管理,主要是为使用者提佛纳甘对个人更方便的记录和查询功能,为使用者在个人情感管理上带来更多的便利。
2需求分析
2.1功能需求
个人情感助理工具的总体目标是为使用者管理日益烦杂的个人日常情感信息提供一个方便有效的管理平台,提高日常生活和工作效率。
具体需要实现以下一些基本功能。
1)权限验证:
检验用户合法身份,保障个人信息安全;
2)口令维护:
用户可以定期或者不定期的更改登录口令,提高系统安全性;
3)日常记事:
记录日常生活或者工作事件,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
4)通讯薄:
记录朋友、亲属、同事等联系人的通信信息,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
5)数据库管理:
对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。
2.2性能需求
1硬件环境
●处理器:
Intelcentrino
●内存:
32M以上
●硬盘空间:
1GB以上
●显卡:
9300独立显卡
2软件环境
●操作系统:
WindowXP
●数据库:
MicrosoftAccess2000
3总体设计
个人情感助理工具是为单个用户提供管理功能,因此需要将本系统设计成一个相对封闭的单机运行系统。
作为大众化的应用软件,其用户界面往往是决定软件质量的首要条件,所以界面设计是开发与设计的重点,应充分贯彻简单易用、美观大方的基本原则。
系统采用结构化的设计方法进行设计,采用快速开发平台JBuilderX进行开发。
依据需求分析的结果,个人情感助理应设计成一个能够运行于普通个人电脑上,并且适合于大众需求的简单实用的助理工具,下面从软件的整体结构设计、接口设计等方面来阐述一下系统的总体设计。
依据需求分析结果,个人情感助理可以分为四个模块:
1)信息管理:
对用户基本信息进行管理;
2)情绪管理:
对用户情绪进行管理;
3)情感交流:
计算机对用户情感进行识别并给出适当反馈;
4)查询:
按情绪类型、出现频率和产生的效果进行查询;
5)统计:
对用户基本信息和情绪进行统计。
3.1界面设计
界面设计应遵循简洁美观、方便易用的基本原则。
3.1.1系统主控平台界面设计
系统主体界面使用简单和直观的布局设计,通过工具栏方式为用户提供各项系统功能。
具体设计效果如图所示
3.1.2数据库设计
根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构。
该系统包括用户基本信息表和用户情绪信息表。
表1用户基本信息
名称
字段名称
数据类型
主键
非空
标识
ID
自动编号
Yes
Yes
姓名
name
文本
No
Yes
性别
Sex
文本
No
No
民族
Ethnic
文本
No
No
籍贯
Home
文本
No
No
表2用户情绪信息表
名称
字段名称
数据类型
主键
非空
标识
ID
自动编号
Yes
Yes
编号
Num
数字
No
Yes
高兴
happy
数字
No
No
悲伤
sad
数字
No
No
惊讶
surprise
数字
No
No
愤怒
anger
数字
No
No
厌恶
disgust
数字
No
No
恐惧
fear
数字
No
No
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();
JMenuItemitemShow=newJMenuItem();
JMenuItemitemAdd=newJMenuItem();
JMenuItemitemEdit=newJMenuItem();
JMenuItemitemDelete=newJMenuItem();
//定义情感交流菜单及其菜单项
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();
DimensionfrmSize=getSize();
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();
DimensionfrmSize=getSize();
Pointloc=getLocation();
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();
Pointloc=getLocation();
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){
emoShowshareFrame=newemoShow();
shareFrame.createFrame(shareFrame);
sql="select*fromemoTableorderbyTime";
rs=DB.getResult(sql);
shareFrame.redultShow(rs);
}
//显示按情绪类型查询
voiditemSearchByEmotion_actionPerformed(ActionEvente){
//从类search中级车一个类searchByEmotion,重新设置各空间的可见性,以实现仅能按情绪类型查询
classsearchByEmotionextendssearch{
publicsearchByEmotion(){
jRByEmotion.setVisible(false);
jRByNum.setVisible(false);
jRByEnd.setVisible(false);
xYLayout1.setHeight(110);
}
}
searchByEmotionbyEmotion=newsearchByEmotion();
DimensiondlgSize=byEmotion.getPerferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
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(){
jRByEmotion.setVisible(false);
jRByNum.setVisible(false);
jRByEnd.setVisible(false);
xYLayout1.setHeight(110);
}
}
searchByNumbyNum=newsearchByNum();
DimensiondlgSize=byEmotion.getPerferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
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(){
jRByEmotion.setVisible(false);
jRByNum.setVisible(false);
jRByEnd.setVisible(false);
xYLayout1.setHeight(110);
}
}
searchByEndbyEnd=newsearchByNum();
DimensiondlgSize=byEmotion.getPerferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
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();
DimensionfrmSize=getSize();
Pointloc=getLocation();
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 个人 情感 助理
![提示](https://static.bdocx.com/images/bang_tan.gif)