版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕 业 论 文学生姓名学 号学院 计算机科学与技术学院专 业软件工程题 目基于文字水印的谈判系统设计与实现指导教师 (姓 名) (专业技术职称/学位) (姓 名) (专业技术职称/学位)年月摘 要:随着社会节奏越来越快,各种信息化网络工具越来越多,例如:腾讯qq。鉴于网络的流行,社会的生活节奏加快,人们的矛盾日益趋于突显,但限于地域和时间的紧迫,一些谈判和协商及相互沟通更加需要网络软件的支持。因此,网络谈判系统势在必行,本系统基于文字水印的谈判系统设计与实现,主要采用c/s模式开发,采用mvc三层架构:model view controller,是模型(model)视图(view)控制器(co
2、ntroller)。1.模型层:数据的存储主要使用的是sql server 2005,以数据库的形式存储数据,以便于数据的增删查改和后期维护。2.视图层:采用的是java swing技术来开发并以命名以ui结尾。3.控制器:用java代码来实现,主要用于业务和数据处理的函数实现。采用mvc之后,可以使编程条理更加清晰,各个层之间相互独立并相互合作,有利于系统的健壮性和后期维护扩展。开发语言java;开发工具为myeclipse,数据库sql server 2005。主要的技术为:接口技术(interface),多态技术,类的封装和继承以及重写和重载技术,并且使用文字水印来维护版权信息。关键字:
3、网络谈判,文字水印,聊天谈判,java,c/s,sql server 2005abstract:along with the social rhythm faster and faster, all kinds of information networking tools more and more, such as tencent qq. given the popularity of network, the social life rhythm speeding up, the contradictions of people increasingly tend to highligh
4、t, but limited by geographical and time urgent, some negotiation and consultation, and communicate with each other more need the support of network software. network negotiation system is imperative, therefore, this system based on system design and implementation of text watermark in the negotiatio
5、ns, mainly uses the c/s model development, uses the mvc three-tier architecture: the model view controller, is the model (the model) - view (view) controller (the controller). layer: 1. the model of data storage is mainly used in sql server 2005 is, in the form of a database to store data, in order
6、to add or delete of data check and later maintenance. 2. the view layer, using a java swing technique to develop and to name the end with the ui. 3. controller: using java code, mainly for the business and data processing function. after using mvc, programming method can be more clear, between each
7、layer are independent of each other and mutual cooperation, is advantageous to the system robustness, and later maintenance extension. the java development language; for myeclipse development tools, database sql server 2005. main technology is: interface technology (interface), polymorphism technolo
8、gy, encapsulation and inheritance of class and override and overloading technology,and use text watermark to maintain the copyright information.keyword:chat online negotiations, text watermark, negotiations, java, c/s, sql server 2005目 录摘要abstract1 前言.41.1系统简介.41.2系统需求分析及目标.51.3业务流程分析.51.4功能需求分析.62
9、系统概念模型描述.72.1用户信息实体e-r图.72.2部门信息实体e-r图.73 系统设计.73.1系统数据库的物理结构设计和逻辑结构描述.73.2系统数据库转化为关系数据模型.83.3数据库表的结构.83.3.1表dbo_td_userinfo用于保存用户信息.83.3.2表dbo_td_department用于保存部门信息.84 系统运行平台.94.1系统运行环境.94.2系统开发平台.95 系统实现和核心模块的描述.95.1登陆界面及代码实现.95.2 聊天界面及聊天接口代码.155.3数据库操作函数及代码实现.165.4文字水印代码实现.25总结.25参考文献.25致谢.251 前言
10、 在当今信息化爆炸的时代,互联网的作用越来越大,将人们联系成一体,人们可以足不出户的进行信息的交流和共享。计算机的用应普及了各行各业,这就使得人们和计算机的联系愈来愈广泛而密切,网络交流可以是人们足不出户的解决问题,大大削弱了地域和时间的紧迫性,各种交流软件应运而生,网络谈判系统就是专门用来解决人际关系,使人们进行协商,交流,解决问题。本文下面将具体的介绍基于文字水印的谈判系统设计与实现。1.1 系统简介基于文字水印的谈判系统设计与实现,主要用于用户双方在聊天软件上实现互相沟通,协商,洽谈。由注册页面:用于用户的注册功能,使用户添加进入数据库sql server 2005,登录页面:用于检验登
11、录账号是否合法,是否账号存在 ,主界面:用于显示好友及在线好友的通讯录,聊天界面:用于通信的双方互相聊天沟通,谈判等。采用mvc三层建构模式,m -model模型层也是实体层,一般与数据库的一个表对应;v-view,视图层,主要用java swing 实现;c-control,控制层,一般是把页面提交的信息进行处理,或者是与数据库建立的连接操作都放在这里。这样使各个层之间互不干扰,又相互合作,便于后期维护和扩展。最后采用文字水印的功能实现版权的维护功能,以防止盗用。基于文字水印的谈判系统设计与实现,主要采用的技术:接口技术,类的封装继承以及多态技术,重载和重写等。基于文字水印的谈判系统的设计与
12、实现总体设计图如下:1.2 系统需求分析及目标a. 良好的界面管理及人际交互b. 实现用户的注册,登录,退出c. 实现系统对用户的增删改查d. 方便迅速的信息传递和流通e.实现超级管理员的功能f.接口技术实现后期系统升级与维护1.3 业务流程分析业务流程图能更好的反映业务情况:1.4 功能需求分析2 系统概念模型描述2.1用户信息实体e-r图2.2部门信息实体e-r图 部门号部门信息表 部门名 部门职责3 系统设计3.1 系统数据库的物理结构设计和逻辑结构描述物理结构:数据结构在计算机中的表示(映像)称为数据的物理(存储)结构,系统搭建在win7系统下,采用java语言进行编写,它包括数据元素
13、的表示和关系的表示。逻辑结构:是对数据之间关系的描述,有时就把逻辑结构简称为数据结构。逻辑结构形式地定义为(k,r)(或(d,s),其中,k是数据元素的有限集,r是k上的关系的有限集, 并采用sql server 2005来进行数据的管理支配,逻辑设计阶段的主要任务,是把e-r图转化为所选用dbms产品支持的数据模型。由于该系统采用sql server关系型数据库系统,因此,应将概念设计的e-r模型转化为关系数据模型。3.2 系统数据库转化为关系数据模型用户(账号,密码,昵称,性别,年龄,部门号,电话,邮箱,姓名)部门(部门号,部门名,部门职责)3.3 数据库表的结构通过以上得出关系数据模型之
14、后,设计数据库如下:3.3.1表dbo_td_userinfo用于保存用户信息字段名称数据类型字段大小说明useridint4用户账号nicknamevarchar20昵称passwordvarchar50密码sexvarchar2性别ageint4年龄departidint4部门号photoint4电话emailvarchar50邮箱地址namevarchar50姓名3.3.2表dbo_td_department用于保存部门信息字段名称数据类型字段大小说明departidint4部门号departnamevarchar50部门名称departmemovarchar100部门职责具体数据库内容
15、展示:4 系统运行平台4.1 系统运行环境系统运行平台:操作系统winall/winxp,数据库:安装了sql server 20054.2 系统开发平台系统采用myeclipse开发,而后台数据的存储采用数据可sql server 20055 系统实现和核心模块的描述5.1登陆界面及代码实现 登陆界面用户名格式必须正确且必须注册过,登陆界面如图所示:代码实现:/* * (#)client.jqclient.java 2013-2-26 * copy right information: 淮阴师范学院 计算机科学与技术学院(软件工程) * author : 刘 超(计科0903 学号:2109
16、10018) * project: 基于文字水印谈判系统的设计与实现 * jdk version used: jdk1.6.0 * comments: java类 * environment :win7/win8/win xp * version: 1.0.1 * srdate modified by : * null * *日本語版* * (#)client.jqclient.java 2013-2-26 * copy right information: 淮陰師範学院科学技術学院(工程) * author : ( 計科0903 番号210910018) * project: 文字基透交渉設
17、計実現 * jdk version used: jdk1.6.0 * comments: java類 * environment :win7/win8/win xp * version: 1.0.1 * srdate modified by : * null */package client.ui;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.util.vector;import java.util.regex.pattern;import java.awt.*;import
18、 java.io.bufferedreader;import java.io.filereader;import javax.swing.*;import javax.swing.text.attributeset;import javax.swing.text.badlocationexception;import javax.swing.text.plaindocument;import erfaces.ilogindao;/* * 登陆界面类 * author 刘 超 * */public class loginui extends jframeprivate sta
19、tic final long serialversionuid = 1l;private jcombobox cbuserid;private jpasswordfield passwordfield;private jbutton loginbtn;private jbutton cancelbtn;private double screenwidth;/当前屏幕的宽度private double srceenheight;/当前屏幕的高度private static final int width=360,height=280;private ilogindao loginhandle;p
20、rivate vector userid; /* * 登陆界面有参构造函数 * param logindao */public loginui(ilogindao logindao)super(用户登录界面);this.loginhandle = logindao;userid = new vector();userid = readuseridfromfile();cbuserid = new jcombobox(userid);cbuserid.seteditable(true);jtextfield txtfield = (jtextfield)cbuserid.geteditor().
21、geteditorcomponent();mydocument document = new mydocument();document.setaccpetpattern(d+);document.setmaxsize(10);txtfield.setdocument(document);cbuserid.settooltiptext(请在这里输入用户号码用户号码只能输入数字,最多输入10位);passwordfield = new jpasswordfield(10);passwordfield.setechochar();passwordfield.settooltiptext(请在这里密
22、码密码必须是字符和数字);mydocument documents = new mydocument();documents.setaccpetpattern(palnum);documents.setmaxsize(8);passwordfield.setdocument(documents);loginbtn = new jbutton();cancelbtn = new jbutton(退出);cancelbtn.setactioncommand(cancel);cancelbtn.addactionlistener(new actionlistener()public void act
23、ionperformed(actionevent e) system.exit(1););action loginmessage = new abstractaction() /发送消息actionprivate static final long serialversionuid = 1l;public void actionperformed(actionevent e)sendloginmessage(); /更新消息显示框;passwordfield.getinputmap().put(keystroke.getkeystroke(enter),login); /键盘事件处理,接受回车
24、事件passwordfield.getactionmap().put(login,loginmessage); /回车时的处理(调用发送消息action)loginbtn.setaction(loginmessage);loginbtn.settext(登录);loginbtn.setactioncommand(login);/* * 登陆界面的布局设置函数 */public void setlayout()jpanel contentpane = (jpanel)getcontentpane();contentpane.setborder(borderfactory.createlinebo
25、rder(color.orange, 2);gridbaglayout gridbag = new gridbaglayout();contentpane.setlayout(gridbag);contentpane.add(new jlabel(new imageicon(imagelogin.gif),new gridbagconstraints(0,0,3,1,0.0,0.0,gridbagconstraints.center,gridbagconstraints.both,new insets(0,0,20,0),0,0);contentpane.add(new jlabel(用户名:
26、),new gridbagconstraints(0,1,1,1,0.0,0.0,gridbagconstraints.center,gridbagconstraints.horizontal,new insets(15,50,0,5),0,0);contentpane.add(cbuserid,new gridbagconstraints(1,1,2,1,1.0,0.0,gridbagconstraints.west,gridbagconstraints.horizontal,new insets(15,5,0,40),0,0);contentpane.add(new jlabel(密 码:
27、),new gridbagconstraints(0,2,1,1,0.0,0.0,gridbagconstraints.center,gridbagconstraints.horizontal,new insets(10,50,0,5),0,0);contentpane.add(passwordfield,new gridbagconstraints(1,2,2,1,0.0,0.0,gridbagconstraints.west,gridbagconstraints.horizontal,new insets(10,5,0,40),0,0);contentpane.add(loginbtn,n
28、ew gridbagconstraints(1,3,1,1,0.0,0.0,gridbagconstraints.center,gridbagconstraints.none,new insets(15,4,50,50),0,0);contentpane.add(cancelbtn,new gridbagconstraints(2,3,1,1,0.0,0.0,gridbagconstraints.northwest,gridbagconstraints.none,new insets(15,35,50,40),0,0);setsize(width, height);dimension dime
29、nsion = toolkit.getdefaulttoolkit().getscreensize();screenwidth = dimension.getwidth();srceenheight = dimension.getheight();super.setlocation(int)screenwidth/2-width/2, (int)srceenheight/2-height/2);setvisible(true);setresizable(false);setdefaultcloseoperation(jframe.exit_on_close);/* * 自定义文档模型 * au
30、thor 刘 超 * */public class mydocument extends plaindocumentprivate static final long serialversionuid = 1l;pattern pattern;int maxsize = 10;public void setaccpetpattern(string pattern)this.pattern = ppile(pattern);public void setmaxsize(int size)maxsize = size;public void insertstring(int offs,string
31、 str,attributeset a) throws badlocationexceptionif(getlength() = maxsize)return;if(getlength() + str.length() maxsize)int i = maxsize - getlength();str = str.substring(0, i);if(pattern.matcher(str).matches()super.insertstring(offs, str, a); /* * 发送登陆信息 */private void sendloginmessage()char pw = pass
32、wordfield.getpassword();string userid= (string)cbuserid.getselecteditem();string password = new string(pw);if (!userid.equals()& !password.equals()if(loginhandle != null)loginhandle.login(integer.valueof(userid).intvalue(), password); else this.setvisible(false);joptionpane.showmessagedialog(this, 用
33、户号码和密码不能为空用户号码只能是1-10位数字密码必须是字符和数字,登录消息, joptionpane.information_message);this.cleartextcontent();this.setvisible(true); /* * 清除文本内容 */public void cleartextcontent()cbuserid.setselectedindex(-1);passwordfield.settext();/* * 从txt文本文档中读取历史登陆的账号信息 * return */public vector readuseridfromfile()try buffer
34、edreader br=new bufferedreader(new filereader(info/user.txt);string msg = null;while(msg = br.readline() != null)string temp = msg.trim();if (!temp.equals()if ( !userid.contains(temp)userid.add(temp); catch (exception e) e.printstacktrace();return userid;5.2 聊天界面及聊天接口代码/* * (#)client.jqclient.java 2
35、013-2-26 * copy right information: 淮阴师范学院 计算机科学与技术学院(软件工程) * author : 刘 超(计科0903 学号:210910018) * project: 基于文字水印谈判系统的设计与实现 * jdk version used: jdk1.6.0 * comments: java类 * environment :win7/win8/win xp * version: 1.0.1 * srdate modified by : * null */package erfaces;import resource.*;/* *
36、客户端的接口 2013-2-7 * * author 刘 超 * version 1.0.1 * since jdk1.6(建议) */public interface iclient /* * 发送信息包 * param packet */public void sendchatmessage(messagepacket packet); /* * 清空函数 */public void clear();5.3 数据库操作函数及代码实现/* * (#)client.jqclient.java 2013-2-26 * copy right information: 淮阴师范学院 计算机科学与技术
37、学院(软件工程) * author : 刘 超(计科0903 学号:210910018) * project: 基于文字水印谈判系统的设计与实现 * jdk version used: jdk1.6.0 * comments: java类 * environment :win7/win8/win xp * version: 1.0.1 * srdate modified by : * null */package server;import java.sql.callablestatement;import java.sql.connection;import java.sql.driverm
38、anager;import java.sql.preparedstatement;import java.sql.resultset;import java.sql.sqlexception;import java.sql.statement;import java.util.vector;import resource.*;/* * 数据库操作类 * author 刘 超 * */public class basedaoapp implements ibasedao private connection con = null;public static final string driver
39、=net.sourceforge.jtds.jdbc.driver;public static final string url=jdbc:jtds:sqlserver:/localhost:1433;databasename=chatsystem;public static final string user_name=sa;public static final string user_pass=123;private connection getconnection() tryclass.forname(driver);con=drivermanager.getconnection(ur
40、l,user_name,user_pass);catch(exception e)e.printstacktrace();return con; public void closeall(connection con,statement st,resultset rs) try if(con!=null)con.close(); if(st!=null)st.close(); if(rs!=null)rs.close(); catch(exception e) e.printstacktrace(); public userinfo login(userinfo user) int useri
41、d = user.getuserid();string password = user.getpassword();string querystring = select * from t_userinfo where userid =? and password=?;connection con = this.getconnection();resultset rs;userinfo userinfo = null;try preparedstatement ps = con.preparestatement(querystring);ps.setint(1, userid);ps.sets
42、tring(2, password);rs = ps.executequery();while (rs.next() int id = rs.getint(1);string nickname = rs.getstring(2);string pwd = rs.getstring(3);string sex = rs.getstring(4);int age = rs.getint(5);int departid = rs.getint(6);string phone = rs.getstring(7);string email = rs.getstring(8);string name =
43、rs.getstring(9);string iconpath = rs.getstring(10);string address = rs.getstring(11);userinfo = new userinfo(id, nickname, pwd, sex, age, departid,phone, email, name, iconpath, address);return userinfo; catch (sqlexception e) e.printstacktrace();return null;public vector getdepartments() string quer
44、ystr = select * from t_department;connection con = this.getconnection();resultset rs;vector department = new vector();try preparedstatement ps = con.preparestatement(querystr);rs = ps.executequery();while (rs.next() int departid = rs.getint(1);string departname = rs.getstring(2);string departdepict
45、= rs.getstring(3);department depart = new department();depart.setdepartmentid(departid);depart.setdepartmentname(departname);depart.setdepartmentdipct(departdepict);department.add(depart);return department; catch (sqlexception e) e.printstacktrace();return null;public vector onlineusers(vector useri
46、d) int size = userid.size();system.out.println(onlineusers count + size);connection con = this.getconnection();resultset rs;preparedstatement ps;vector onlineusers = new vector();int index = 0;while (size 0) string querystring = select * from t_userinfo where userid = ?;try ps = con.preparestatement
47、(querystring);ps.setint(1, userid.get(index);rs = ps.executequery();while (rs.next() int id = rs.getint(1);string nickname = rs.getstring(2);string pwd = rs.getstring(3);string sex = rs.getstring(4);int age = rs.getint(5);int departid = rs.getint(6);string phone = rs.getstring(7);string email = rs.getstring(8);string name = rs.getstring(9);string iconpath = rs.getstring(10);string address = rs.getstring(11);userinfo userinfo = new userinfo(id, nickname, pwd, sex,age, departid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高校教师职业道德全真模拟考试试卷A卷含答案
- 2024年xx村年度脱贫户、监测户增收工作总结
- 牛津译林版英语高三上学期期末试题及答案指导
- 机电工程师招聘面试题与参考回答(某大型国企)
- 新修订《疫苗流通和预防接种管理条例》培训试题及答案
- 2024年简化货品采购协议格式
- 2024年限定区域分销商协议条款
- 2024年度工程领域劳务协议范本
- 2024年新汽车租赁经营协议样本
- 2024全新保健品商业合作协议样本
- 山东省济南市历下区2023-2024学年八年级上学期期中语文试题
- 图神经网络在生物医学影像分析中的应用
- 浅谈管理者的自我管理
- 第一章 结构及其设计 课件-2023-2024学年高中通用技术苏教版(2019)必修《技术与设计2》
- 语文教学常规检查表
- “思政”课社会实践
- 临时用电漏电保护器运行检测记录表
- 复杂性尿路感染
- 重度残疾儿童送教上门
- 膀胱癌综合治疗新进展
- 音乐ppt课件《小小的船》
评论
0/150
提交评论