聊天软件开发计划书.docx
- 文档编号:3994415
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:36
- 大小:348.61KB
聊天软件开发计划书.docx
《聊天软件开发计划书.docx》由会员分享,可在线阅读,更多相关《聊天软件开发计划书.docx(36页珍藏版)》请在冰豆网上搜索。
聊天软件开发计划书
聊天软件开发计划书
学校:
中南林业科技大学
组员:
赵松,X彬,X天瑞,邝东凡,段建军,欧阳益湘,彭刚强,赵雨亭,巫腾飞
组长:
赵松
副组长:
X天瑞
年级:
2005级
指导老师:
辛动军
一、面向对象的分析
v需求陈述
二、系统建摸
1 用户服务模块介绍
2 管理服务模块
3 数据库服务模块
4 用户服务模块
5 成员管理模块
6 管理员服务模块
7 用户管理模块
三、UML系统建摸
1 建立用例
Ø角色的确定
Ø创建用例
1 建立时序图
2 协作图的建立
3 包图
ØUIpackage
ØBusinesspackage
2 系统的部署
Ø组件图
Ø配置图
四、源代码
五、软件截图
六、参考文献
七、组员学习心得
聊天软件软件工程计划书
一:
面向对象的分析
1.需求陈述(全组讨论,邝东凡,段建军写讨论结果的文档)
(1)能够通过注册,申请聊天软件的跟密码。
注册成功之后保存注册用户的,真实XX,所在学校,宿舍,班级,院系,性别,出生年月,入学年份,个性签名,
(2)下载一个客户端软件,输入XX跟密码,选择登陆状态(上线,隐身)登录。
登录框消失,显示主界面。
当用户上线时,提示你的好友,你加入的社团等。
并显示在线的好友。
当打开群,社团,学院聊天室对话框之后显示在线用户。
当上线的好友离开时,自动将好友变为离线状态。
当班级或群好友给你发送信息,你又不在的时候,服务器帮你保存资料,当你登陆的时候,将信息发送给你。
(3)主界面包好官方的超级,用软件的吉祥物显示。
主界面显示用户自己的头像,双击进入用户“我的世界”网叶
(4)主界面包含用户的好友框。
每个框包含有什么对我们说组件,双击该组件显示有什么对我们说对话框,可以发送消息给我们的服务器
双击好友框的用户,显示好友聊天对话框。
聊天对话框,用户可以输入信息,接受信息。
可以发送接受文件,支持语音视频聊天。
可以选择日常用语。
可以下载该好友的资料。
(5)主界面包含社团框
社团框包含该用户加入的社团,
双击一个社团将显示社团对话框,可以群聊,可以显示社团通知,可以显示社团所有的成员。
如果社团是你创的,该用户可以管理社团,删除或增加社团成员。
(6)主界面包含学院聊天框。
学院聊天室有若干个学院。
每个学院有10个聊天室,每个聊天室容纳100人。
双击一个聊天室,显示聊天室对话窗口。
可以发送文字和发送图片。
可以显示该聊天室正在聊天的成员。
可以推出聊天室,聊天室人满了可选择其他的聊天室
(7)主界面包含班级框
班级框包含该用户所属的班级
双击班级将显示一个班级对话框,可以群聊,可以显示班级成员,可以下载班级资料,可以发送日常用语。
如果班级由该用户创建,用户可以增加删除班级成员,可以上传班级资料。
(8)主界面包含查找按扭,
单击查找按扭显示查找对话框。
查找对话框隔根据输入的搜索相应的用户或群或院系或社团。
如果对方同意,获得对方发的信息,然后在主界面显示该用户或该群或者该院系或该社团。
如果对方同意,则相应的刷新主界面。
如我家A为好有,他同意,则在好友组增加该好友。
(9)娱乐按扭,双击娱乐按扭,显示娱乐对话框,娱乐对话框有游戏组件。
暂时不做。
(10)主界面包含帮助按扭,双击它显示帮助对话框,告诉你怎么使用这个软件。
(12)主界面有菜单按扭。
双击菜单按扭,显示菜单对话框。
**菜单对话框有网上集市按钮,双击显示网上集市对话框。
用户可以通过它买卖物品。
用户可把自己要卖的或者要买的东西发送到网上,标好价格,上传图片。
**菜单对话框有查询按钮,双击显示查询对话框,查询对话框包含查询学生成绩组件和查询图书馆信息(可以续借)和四六级成绩查询。
输入你的学号,即可查询你的成绩,如果有则显示你的成绩,没有则提示没有。
输入你四六级的,既可查询成绩。
输入书名选择要查的书,输入你的借书证跟借书证密码可以查你的借书信息,可以续借。
**菜单对话框包含创建按扭,拥护可以创建社团,班级
这只针对对授权的用户。
设置社团,班级名字跟社团,班级宣言。
**菜单对话框包含设置按扭。
双击设置,显示设置框,用户可以设置或修改自己的头像,个性签名,真实XX,所在学校,宿舍,班级,院系,社团,性别,出生年月,入学年份,兴趣爱好等。
**菜单对话框包含信息咨询按扭。
双击显示信息咨询网叶,包含时尚咨询,足球篮球信息快递,人才市场信息,兼职信息,留学信息。
**菜单对话框含交友天地,双击显示交友天地网叶友天地对话框包含爱情呼叫组建,寝室联谊组件,同校约战组件。
**菜单对话框面包含论坛按扭,双击显示论坛网叶,论坛包含文学专区,学校风云榜和注水专区。
**菜单对话框包含我的仓库。
大小为10M.。
显示用户现在的仓库资料。
用户可以上传资料,设置权限供其他用户下载可以删除资料。
**菜单对话框包含考研专区按扭。
**菜单对话框有院系新闻按扭。
双击显示院系新闻网叶。
软件 软件密码 用户 个人资料妮称 真实XX,所在学校,宿舍,班级,院,系,性别,出生年月,入学年份,个性签名,个人爱好,头像。
信息提示框 提示信息
登陆状态 登录框 好友 社团 学院聊天室对话框 服务器 资料
主界面 官方 吉祥物 我的世界好友框好友组件好友个性签名好友名字好友资料框有什么对我们说组件 有什么对我们说对话框好友聊天对话框 信息 文件 日常用语
社团框社团组件社团资料框社团名称社团社团头像 社团对话框 社团通知 社团成员
学院聊天框 聊天室 聊天室对话窗口 聊天室成员
班级框班级组件班级资料框班级对话框 班级成员 班级资料
查找按扭查找对话框
娱乐按扭 娱乐对话框
帮助按扭 帮助对话框 帮助信息
菜单对话框 菜单按扭
网上集市按钮 网上集市对话框 物品 价格 图片
查询按钮 查询对话框查询学生成绩组件查询图书馆信息四六级成绩查询 学号
提示 四六级的 要查的书 借书证 借书证密码
创建按扭 创建对话框 群名字 群宣言社团,班级名字
社团班级宣言设置按扭 设置框
信息咨询按扭 信息咨询网叶 时尚咨询 足球篮球信息快递,人才市场信息,兼职信息,留学信息
交友天地按扭 交友天地对话框爱情呼叫组件寝室联谊组件 同校约战组件论坛按扭
我的仓库按扭 我的仓库框 仓库资料 权限考研专区按扭院系新闻按扭
二:
系统建摸
1.1.1:
用户服务模块
这个模块提供了用户登录,成员管理,用户聊天,,个人设置,资料管理。
用户登录包过用户登录和用户退出。
成员管理包过增加成员,删除成员,退出群,加入群。
1.1.2:
管理员服务模块
这个模块提供了用户登陆,管理用户,查询。
用户登录包含用户登录和用户退出。
管理用户包含增加用户,删除用户,更新用户资料。
查询用户信息。
1.1.3:
数据库服务模块
这个模块提供了自动更新数据库
1.2。
1用户服务模块
(1)用户登录过程如下:
(2)管理员模块:
(3)资料管理模块
1.2.2成员管理模块:
(1)增加成员过程:
(2)删除成员
其余处理类似,因为赶时间,省略了很多东西。
1.3管理员服务模块
管理员服务模块
1.3.1
(1)查询过程:
(2)用户登录模块跟上面一样的
1.3.2用户管理模块:
(1)增加用户过程:
(2)删除用户过程
三:
UML系统建摸
1建立用例(X天瑞)
1.1角色的确定
*用户可以向服务器申请
*有些用户可以拥有自己的资料仓库
所以,有三个角色,一个是普通用户,一个是VIP用户,还有管理员
1.2创建用例(如图所示)
2建立时序图(彭刚强)
1。
用户登录的时序图
2.协作图的建立(X彬)
用户登录是的协作图
3.包图,分为三个包,UIpackage,Businesspackage,Databasepackage
3.1UIpackage(巫腾飞)
3.2Businesspackage(赵雨亭)
4.系统的部署
4.1组件图(欧阳益湘)
4.2配置图(赵松)
四:
源程序代码
登录界面的代码
/**类名:
LoadPane
*描述:
登陆框
*公司:
DoubleZ组合
*作者:
X天瑞
*版本:
Double1.0
*创建时间:
2007.12.6
*最后修改时间:
2007.12.10*/
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
import.*;
importjavax.swing.event.*;
importjava.io.*;
importjava.util.*;
publicclassLoadPaneextendsJFrame{
staticStringloadPass=null;
JLabellabel1=newJLabel("********欢迎使用局域网聊天程序********");
JLabellabel2=newJLabel("XX:
");
JTextFieldtf1=newJTextField(15);
JLabellabel3=newJLabel("密码:
");
JPasswordFieldtf2=newJPasswordField(15);
JLabellabel4=newJLabel("第一次使用请先注册!
");
uttonutton1=newutton("*登陆*");
uttonutton2=newutton("*注册*");
uttonutton3=newutton("---------关于----------");
/*publicvoidgetIpNum(){
InetAddressip=InetAddress.getLocalhost();
}*/
//获得自己的XX
publicstaticStringgetMyNum(){
Stringip="";
Stringip1="";
Stringip2="";
try
{
InetAddressaddr=InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//获得本机IP
ip=ip.substring(8,ip.length());
ip1=ip.substring(0,ip.indexOf("."));
ip2=ip.substring(ip.indexOf(".")+1,ip.length());
ip=ip1+ip2;
}
catch(Exceptione){e.printStackTrace();}
returnip;
}
publicvoidinit(){
Containercp=getContentPane();
Toolkitkit=getToolkit();
DimensionwinSize=kit.getScreenSize();
setBounds(winSize.width/4+100,winSize.height/4+80,//位置
230,200);//大小
cp.setLayout(newFlowLayout());
cp.add(label1);
cp.add(label2);
cp.add(tf1);
cp.add(label3);
cp.add(tf2);
cp.add(utton1);
cp.add(utton2);
cp.add(utton3);
cp.add(label4);
label4.setBorder(BorderFactory.createLoweredBevelBorder());
//登陆
utton1.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){
//先从文档里读取保存的密码
try{
FileInputStreamin=newFileInputStream("个人信息.txt");
ObjectInputStreamoos=newObjectInputStream(in);
ArrayListar=(ArrayList)oos.readObject();
String[]strInfo=(String[])ar.get(0);
loadPass=strInfo[0];
oos.close();
}catch(Exceptionexc1){exc1.printStackTrace();}
//判断XX与密码是否匹配
if(tf1.getText().equals(getMyNum())
&&tf2.getText().equals(loadPass)){
MainBarmainBar=newMainBar();
OwerPane.tf3.setText(getMyNum());
StoreInform.loadUserInform();//读取本机的用户信息
FriendList.loadFriendList();
dispose();
}
else{
JOptionPane.showOptionDialog(null,
"XX或密码不正确!
\n",
null,
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,null,null);
}
}
});
//注册
utton2.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){
Filef=newFile("个人信息.txt");
if(f.exists()){
JOptionPane.showOptionDialog(null,
"大哥,不能多次注册!
",
null,
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,null,null);
}elseif(!
f.exists()){
OwerPane.tf3.setText(getMyNum());
OwerPaneopDemo1=newOwerPane();
}
}
});
//关于
utton3.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){
JOptionPane.showOptionDialog(null,
"作者:
DoubleZ组合\n"+
"版本:
Double1.0\n"+
"简介:
一个基于局域网的聊天程序.\n",
null,
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,null,null);
}
});
}
publicstaticvoidmain(String[]args){
LoadPanelp=newLoadPane();
lp.setTitle("局域网聊天程序1.0");
lp.pack();
lp.init();
lp.setSize(230,200);
lp.setResizable(false);
lp.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
lp.setVisible(true);
}
}
主功能实现代码
/**类名:
MainBar
*描述:
搭建一个主框架
*公司:
DoubleZ组合
*作者:
X天瑞
*版本:
Double1.0
*创建时间:
2007.12.3
*最后修改时间:
2007.12.10*/
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
importjavax.swing.tree.*;
importjava.io.*;
import.*;
importjava.util.*;
publicclassMainBarextendsJFrame{
ImageIconic=newImageIcon("LoadPane4.jpg");
uttonshowPic=newutton(ic);
//把主窗口分成三个部分
//定义两个端口
DatagramSocketdss,dsr;//dss发送,dsr接受
staticArrayListarrayLs=newArrayList(200);
//上部
JPanelp1=newJPanel();
//JLabellabel=newJLabel("当前用户");//为当前用户的头像
privateImageimage;
//中部
JPanelp2=newJPanel();
staticDefaultMutableTreeNoderoot=newDefaultMutableTreeNode("-------我的好友-------");
staticDefaultTreeModeltreeModel=newDefaultTreeModel(root);
staticJTreetree=newJTree(treeModel);
uttonbutton3=newutton("添加与删除好友");
//下部
JPanelp3=newJPanel();
uttonbutton1=newutton("个人设置");
uttonbutton2=newutton("查找");
publicvoidMainBar(ints){}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,5,5,p1);
System.out.println("画完了!
");
}
//添加新好友到列表中,name为要添加的好友的名字
publicstaticvoidaddFriend(Stringname)
{
DefaultMutableTreeNoden=newDefaultMutableTreeNode(name);
treeModel.insertNodeInto(n,root,0);
//展开子节点
TreeNode[]root=treeModel.getPathToRoot(n);
TreePathpath=newTreePath(root);
tree.makeVisible(path);
}
//删除好友
/*publicstaticvoiddelFriend(){
root.remove(FriendList.txt1.getText());
}*/
publicMainBar(){
//TODO:
Addyourcodehere
//初始化外层窗口
super("局域网聊天程序1.0");
setSize(200,600);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Toolkitkit=getToolkit();
DimensionwinSize=kit.getScreenSize();
setBounds(winSize.width/4+500,winSize.height/4-122,//位置
200,600);
//照片地址
image=Toolkit.getDefaultToolkit().getImage("S5001183.JPG");
//初始化两个端口
try{
dss=newDatagramSocket();
dsr=newDatagramSocket(6000);
}catch(Exceptione){e.printStackTrace();}
receMess();//一上线就就打开一个接收线程
sendOnlineMess();//一上线就发送一个上线的信息
//-----容器-----
Containercp=getContentPane();
cp.setLayout(newBorderLayout());
//在第一层上添加
cp.add(p1,BorderLayout.NORTH);
cp.add(p2,BorderLayout.CENTER);
cp.add(p3,BorderLayout.SOUTH);
//在第二层上添加-----上部
p1.add(showPic);
//label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2));
//-----中部
p2.add(newJScrollPane(tree));
p2.add(button3);
p2.setBorder(BorderFactory.createLoweredBevelBorder());
//设定界面风格------只有三种
/*try{
UIManager.LookAndFeelInfo[]info=UIManager.getInstalledLookAndFeels();
//StringclassName=info[2].getClassName();
QuaquaLookAndFeelcla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 聊天 软件 开发 计划书