聊天软件开发计划书.docx

上传人:小飞机 文档编号:1741739 上传时间:2022-12-16 格式:DOCX 页数:38 大小:280.07KB
返回 下载 相关 举报
聊天软件开发计划书.docx_第1页
第1页 / 共38页
聊天软件开发计划书.docx_第2页
第2页 / 共38页
聊天软件开发计划书.docx_第3页
第3页 / 共38页
聊天软件开发计划书.docx_第4页
第4页 / 共38页
聊天软件开发计划书.docx_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《聊天软件开发计划书.docx》由会员分享,可在线阅读,更多相关《聊天软件开发计划书.docx(38页珍藏版)》请在三一办公上搜索。

1、学校: 中南林业科技大学组员:赵松,刘彬,张天瑞,邝东凡,段建军,欧阳益湘,彭刚强,赵雨亭,巫腾飞组长:赵松副组长:张天瑞年级: 2005级指导老师: 辛动军目 录1、 面向对象的分析v 需求陈述2、 系统建摸1 用户服务模块介绍2 管理服务模块3 数据库服务模块4 用户服务模块5 成员管理模块6 管理员服务模块7 用户管理模块3、 UML系统建摸1 建立用例 角色的确定 创建用例1 建立时序图2 协作图的建立3 包图 UI package Business package2 系统的部署 组件图 配置图4、 源代码5、 软件截图6、 参考文献7、 组员学习心得聊天软件软件工程计划书一:面向对象

2、的分析1.需求陈述(全组讨论,邝东凡,段建军写讨论结果的 文档)(1)能够通过网站注册,申请聊天软件的号码跟密码。注册成功之后保存注册用户的,真实姓名,所在学校,宿舍,班级,院系,性别,出生年月,入学年份,个性签名,(2)下载一个客户端软件,输入帐号跟密码,选择登陆状态(上线,隐身)登录。登录框消失,显示主界面。当用户上线时,提示你的好友,你加入的社团等。并显示在线的好友。当打开群,社团,学院聊天室对话框之后显示在线用户。当上线的好友离开时,自动将好友变为离线状态。当班级或群好友给你发送信息,你又不在的时候,服务器帮你保存资料,当你登陆的时候,将信息发送给你。(3)主界面包好官方网站的超级链接

3、,用软件的吉祥物显示。主界面显示用户自己的头像,双击进入用户“我的世界”网叶(4)主界面包含用户的好友框。 每个框包含有什么对我们说组件,双击该组件显示有什么对我们说对话框,可以发送消息给我们的服务器双击好友框的用户,显示好友聊天对话框。聊天对话框,用户可以输入信息,接受信息。可以发送接受文件,支持语音视频聊天。可以选择日常用语。可以下载该好友的资料。(5)主界面包含社团框社团框包含该用户加入的社团,双击一个社团将显示社团对话框,可以群聊,可以显示社团通知,可以显示社团所有的成员。如果社团是你创的,该用户可以管理社团,删除或增加社团成员。(6)主界面包含学院聊天框。学院聊天室有若干个学院。每个

4、学院有10个聊天室,每个聊天室容纳100人。双击一个聊天室,显示聊天室对话窗口。可以发送文字和发送图片。可以显示该聊天室正在聊天的成员。可以推出聊天室,聊天室人满了可选择其他的聊天室(7) 主界面包含班级框班级框包含该用户所属的班级双击班级将显示一个班级对话框,可以群聊,可以显示班级成员,可以下载班级资料,可以发送日常用语。如果班级由该用户创建,用户可以增加删除班级成员,可以上传班级资料。(8)主界面包含查找按扭,单击查找按扭显示查找对话框。查找对话框隔根据输入的号码搜索相应的用户或群或院系或社团。如果对方同意,获得对方发的信息,然后在主界面显示该用户或该群或者该院系或该社团。如果对方同意,则

5、相应的刷新主界面。如我家A为好有,他同意,则在好友组增加该好友。(9)娱乐按扭,双击娱乐按扭,显示娱乐对话框,娱乐对话框有游戏组件。暂时不做。(10)主界面包含帮助按扭,双击它显示帮助对话框,告诉你怎么使用这个软件。(12) 主界面有菜单按扭。双击菜单按扭,显示菜单对话框。*菜单对话框有网上集市按钮,双击显示网上集市对话框。用户可以通过它买卖物品。用户可把自己要卖的或者要买的东西发送到网上,标好价格,上传图片。*菜单对话框有查询按钮,双击显示查询对话框,查询对话框包含查询学生成绩组件和查询图书馆信息(可以续借)和四六级成绩查询。输入你的学号,即可查询你的成绩,如果有则显示你的成绩,没有则提示没

6、有。输入你四六级的号码,既可查询成绩。输入书名选择要查的书,输入你的借书证号码跟借书证密码可以查你的借书信息,可以续借。*菜单对话框包含创建按扭,拥护可以创建社团,班级这只针对对授权的用户。设置社团,班级名字跟社团,班级宣言。*菜单对话框包含设置按扭。双击设置,显示设置框,用户可以设置或修改自己的 头像,个性签名,真实姓名,所在学校,宿舍,班级,院系,社团,性别,出生年月,入学年份,兴趣爱好等。*菜单对话框包含信息咨询按扭。双击显示信息咨询网叶,包含时尚咨询,足球篮球信息快递,人才市场信息,兼职信息,留学信息。*菜单对话框含交友天地,双击显示交友天地网叶友天地对话框包含爱情呼叫组建,寝室联谊组

7、件,同校约战组件。*菜单对话框面包含论坛按扭,双击显示论坛网叶,论坛包含文学专区,学校风云榜和注水专区。*菜单对话框包含我的仓库。大小为10M.。显示用户现在的仓库资料。用户可以上传资料,设置权限供其他用户下载可以删除资料。*菜单对话框包含考研专区按扭。*菜单对话框有院系新闻按扭。双击显示院系新闻网叶。软件号码软件密码用户个人资料 妮称真实姓名,所在学校,宿舍,班级,院, 系,性别,出生年月,入学年份,个性签名,个人爱好,头像。信息提示框提示信息登陆状态登录框好友社团学院聊天室对话框服务器资料主界面官方网站吉祥物我的世界 好友框好友组件 好友个性签名 好友名字 好友资料框 有什么对我们说组件有

8、什么对我们说对话框 好友聊天对话框信息文件日常用语社团框社团组件 社团资料框 社团名称 社团号码 社团头像社团对话框社团通知社团成员学院聊天框聊天室聊天室对话窗口聊天室成员班级框班级组件 班级资料框 班级对话框班级成员班级资料查找按扭 查找对话框娱乐按扭娱乐对话框帮助按扭帮助对话框帮助信息菜单对话框菜单按扭网上集市按钮网上集市对话框物品价格图片查询按钮查询对话框查询学生成绩组件查询图书馆信息四六级成绩查询学号提示四六级的号码要查的书借书证号码借书证密码创建按扭创建对话框群名字群宣言 社团,班级名字社团 班级宣言 设置按扭设置框信息咨询按扭信息咨询网叶时尚咨询足球篮球信息快递,人才市场信息,兼职

9、信息,留学信息交友天地按扭交友天地对话框爱情呼叫组件寝室联谊组件同校约战组件 论坛按扭我的仓库按扭我的仓库框仓库资料权限 考研专区按扭 院系新闻按扭二:系统建摸11 1:用户服务模块 这个模块提供了用户登录,成员管理,用户聊天,个人设置,资料管理。 用户登录包过用户登录和用户退出。成员管理包过增加成员,删除成员,退出群,加入群。11 2:管理员服务模块这个模块提供了用户登陆,管理用户,查询。用户登录包含用户登录和用户退出。管理用户包含增加用户,删除用户,更新用户资料。查询用户信息。11 3:数据库服务模块 这个模块提供了自动更新数据库聊天软件系统管理员服务模块数据库服务模块用户服务模块 1 2

10、。1用户服务模块用户服务模块资料管理个人设置用户聊天成员管理 用户登录 (1) 用户登录过程如下:更新数据库发送到服务器用户的号码跟密码 (2)管理员模块:发送更新信息给服务器选择成员管理类型更新数据库 (3) 资料管理模块更新数据库发送更新信息给服务器选择资料管理类型 1.2.2成员管理模块: 删除群退出群加入群删除成员 成员管理增加成员(1)增加成员过程: 发送到服务器,服务器处理,输入成员号码返回信息给用户。更新数据库 (2) 删除成员发送消息给服务器选择要删除的成员更新数据库 其余处理类似,因为赶时间,省略了很多东西。 13 管理员服务模块用户管理查询管理员服务模块管理员登录 131

11、(1) 查询过程:显示查询结果查询数据库输入用户号码 (2) 用户登录模块跟上面一样的132 用户管理模块 : 用户管理更新用户资料删除用户增加用户 (1) 增加用户过程:更新数据库用户申请号码同意申请 (2) 删除用户过程删除该用户更新数据库输入用户号码 三:UML 系统建摸 1建立用例(张天瑞)1 1角色的确定 *用户可以向服务器申请号码 *有些用户可以拥有自己的资料仓库所以,有三个角色,一个是普通用户,一个是VIP用户,还有管理员1 2创建用例(如图所示)2建立时序图 (彭刚强) 1。用户登录的时序图 2 协作图的建立(刘彬)用户登录是的协作图3 包图,分为三个包,UI package

12、,Business package , Database package31 UI package(巫腾飞)3.2Business package(赵雨亭)4.系统的部署4 1组件图(欧阳益湘) 4 2配置图(赵松)四:源程序代码登录界面的代码/*类名:LoadPane *描述:登陆框 *公司:DoubleZ组合 *作者:张天瑞 *版本:Double 1.0 *创建时间:2007.12.6 *最后修改时间:2007.12.10*/import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import jav

13、ax.swing.event.*;import java.io.*;import java.util.*;public class LoadPane extends JFramestatic String loadPass=null;JLabel label1=new JLabel(*欢迎使用局域网聊天程序*);JLabel label2=new JLabel(帐号:);JTextField tf1=new JTextField(15);JLabel label3=new JLabel(密码:);JPasswordField tf2=new JPasswordField(15); JLabel

14、 label4=new JLabel(第一次使用请先注册!);JButton JButton1=new JButton(*登陆*);JButton JButton2=new JButton(*注册*);JButton JButton3=new JButton(-关于-);/*public void getIpNum()InetAddress ip=InetAddress.getLocalhost();*/获得自己的帐号public static String getMyNum() String ip=; String ip1=; String ip2=; try InetAddress add

15、r = 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(Exception e)e.printStackTrace(); return ip; public void init()Container cp=getContentPane();Too

16、lkit kit=getToolkit(); Dimension winSize=kit.getScreenSize(); setBounds(winSize.width/4+100,winSize.height/4+80, /位置 230,200); /大小 cp.setLayout(new FlowLayout();cp.add(label1);cp.add(label2);cp.add(tf1);cp.add(label3);cp.add(tf2);cp.add(JButton1);cp.add(JButton2);cp.add(JButton3);cp.add(label4);labe

17、l4.setBorder(BorderFactory.createLoweredBevelBorder();/登陆JButton1.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) /先从文档里读取保存的密码 tryFileInputStream in = new FileInputStream(个人信息.txt); ObjectInputStream oos = new ObjectInputStream(in);ArrayList ar=(ArrayList)oos.read

18、Object(); String strInfo=(String )ar.get(0); loadPass=strInfo0;oos.close();catch(Exception exc1)exc1.printStackTrace(); /判断帐号与密码是否匹配 if(tf1.getText().equals(getMyNum() &tf2.getText().equals(loadPass) MainBar mainBar=new MainBar(); OwerPane.tf3.setText(getMyNum(); StoreInform.loadUserInform();/读取本机的用

19、户信息 FriendList.loadFriendList(); dispose(); else JOptionPane.showOptionDialog(null, 帐号或密码不正确!n, null, JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); ); /注册 JButton2.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) File f=new File(个人信

20、息.txt); if(f.exists() JOptionPane.showOptionDialog(null, 大哥,不能多次注册!, null, JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); else if(!f.exists() OwerPane.tf3.setText(getMyNum(); OwerPane opDemo1=new OwerPane(); ); /关于 JButton3.addActionListener( new ActionListener() pub

21、lic void actionPerformed(ActionEvent e) JOptionPane.showOptionDialog(null, 作者:DoubleZ组合n + 版本:Double 1.0n+ 简介:一个基于局域网的聊天程序.n, null, JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); );public static void main(String args)LoadPane lp=new LoadPane();lp.setTitle(局域网聊天程序1.0)

22、; lp.pack(); lp.init(); lp.setSize(230,200); lp.setResizable(false); lp.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); lp.setVisible(true); 主功能实现代码/*类名:MainBar *描述:搭建一个主框架 *公司:DoubleZ组合 *作者:张天瑞 *版本:Double 1.0 *创建时间:2007.12.3 *最后修改时间:2007.12.10*/ imp

23、ort java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.tree.*; import java.io.*;import .*;import java.util.*;public class MainBar extends JFrameImageIcon ic=new ImageIcon(LoadPane4.jpg);JButton showPic=new JButton(ic);/把主窗口分成三个部分/定义两个端口DatagramSocke

24、t dss,dsr;/dss发送,dsr接受static ArrayList arrayLs=new ArrayList(200);/上部JPanel p1=new JPanel();/JLabel label=new JLabel(当前用户);/为当前用户的头像private Image image;/中部JPanel p2=new JPanel(); static DefaultMutableTreeNode root=new DefaultMutableTreeNode(-我的好友-); static DefaultTreeModel treeModel=new DefaultTreeM

25、odel(root); static JTree tree=new JTree(treeModel); JButton button3=new JButton(添加与删除好友);/下部JPanel p3=new JPanel();JButton button1=new JButton(个人设置);JButton button2=new JButton(查找);public void MainBar(int s)public void paint(Graphics g) g.drawImage(image,0,0,5,5,p1);System.out.println(画完了!); /添加新好友到

26、列表中,name为要添加的好友的名字public static void addFriend(String name)DefaultMutableTreeNode n=new DefaultMutableTreeNode(name);treeModel.insertNodeInto(n,root,0);/展开子节点TreeNode root=treeModel.getPathToRoot(n);TreePath path=new TreePath(root); tree.makeVisible(path);/删除好友/*public static void delFriend()root.re

27、move(FriendList.txt1.getText();*/public MainBar()/ TODO: Add your code here/初始化外层窗口 super(局域网聊天程序1.0); setSize(200,600); setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Toolkit kit=getToolkit(); Dimension winSize=kit.getScreenSize(); setBounds(winSize.width/4+500,winSize.heig

28、ht/4-122, /位置 200,600); /照片地址 image=Toolkit.getDefaultToolkit().getImage(S5001183.JPG); /初始化两个端口 try dss=new DatagramSocket(); dsr=new DatagramSocket(6000); catch(Exception e)e.printStackTrace(); receMess();/一上线就就打开一个接收线程 sendOnlineMess();/一上线就发送一个上线的信息 /-容器-Container cp=getContentPane();cp.setLayou

29、t(new BorderLayout();/在第一层上添加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(new JScrollPane(tree);p2.add(button3);p2.setBorder(BorderFactory.createL

30、oweredBevelBorder();/设定界面风格-只有三种/*tryUIManager.LookAndFeelInfo info = UIManager.getInstalledLookAndFeels(); /String className = info2.getClassName();QuaquaLookAndFeel className=new QuaquaLookAndFeel();UIManager.setLookAndFeel(className); /UIManager.setLookAndFeel(new QuaquaLookAndFeel();catch(Except

31、ion exc1)*/try /UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); /UIManager.setLookAndFeel(javax.swing.plaf.metal.MetalLookAndFeel); /UIManager.setLookAndFeel(org.jvnet.substance.SubstanceLookAndFeel);/catch(Exception e)e.printStackTrace();/-下部p3.add(button1);p3.add(button2);p3.se

32、tBorder(BorderFactory.createEtchedBorder();/事件监听showPic.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) ShowPic showPic=new ShowPic(); System.out.println(头像按钮!); );/个人设置 按钮button1.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) Ow

33、erPane opDemo1=new OwerPane(); ); /查找 button2.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) FindOfChat foc=new FindOfChat(); ); /添加与删除好友 按钮 button3.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) FriendList friendList=new Friend

34、List(); ); /添加用户好友事件 tree.addTreeSelectionListener( new TreeSelectionListener() public void valueChanged(TreeSelectionEvent e) DefaultMutableTreeNode node= (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); if(node=root) System.out.println(选中了根节点); return; else System.out.println(node); /String nowName=FriendList.reFriendName(); System.out.println(发起聊天); ChatDialog cd=new ChatDialog(你正在与+node

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号