JAVA课程设计报告语音QQ仿真
《Java 程序设计》课程设计报告 题 目: 语音 QQ 仿真 学 院:计算机科学与工程 专 业:物联网工程 学生姓名: xx 学 号: 1300370110 指导教师: 2015 年 6 月 25 日 目 录 目 录.2 1. 前言 .1 2. 需求分析 .1 3. 概要设计 .1 4 系统详细设计(根据你自己课题功能设计不同函数,此处称为模块).5 4.1 QQ 软件登陆模块设计5 4.2 好友列表模块设计.5 4.3 聊天窗口模块设计5 4.4 语音接收与发送线程模块设计.5 4.5 文本接收与发送线程模块设计.5 5. 测试 .1 6. 总结 .1 参考文献 2 附录 2 语音语音QQQQ仿真仿真 课程设计目的课程设计目的 1.加深对《Java 语言与面向对象技术》课程基础知识的理解,掌握 Java 语言面 向对象程序设计的开发方法和步骤; 2.进一步理解面向对象程序设计的思想和方法,利用 Java 语言进行程序设计的能 力; 3.课程设计将课本上的理论知识和实际应用相结合,锻炼学生发现问题、分析问 题和解决问题的能力。加强学生研发、编写、调试程序的能力; 4.培养学生在项目开发中团队合作精神、创新意识及能力; 5.提高学生科技论文写作能力,规范完成课程设计报告。 1.1. 前言前言 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越 来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的; 而且通过制作该程序还能更好的学习网络软件编程知识. 2 需求分析需求分析 由于对 QQ 原理的好奇,加之听说某高校的毕业设计就是编译一个完整的 QQ。于 是对 QQ 聊天软件产生兴趣,既方便后人学习模仿,又有利自身的学习。既然是模仿, 首先界面要相像,要有登陆界面,好友列表,聊天窗口。然后是基本的功能问题,要 实现 QQ 文字聊天,语音聊天,还要能发送文件。 3 概要设计概要设计 系统的功能模块划分 用到的文件大小共 15 个,功能流程:首先是登录界面,输入密码正确,才能进入 好友列表,进入好友列表后,能侦查到附近的好友在线,点击好友的头像即可进入聊 天窗口,聊天窗口中,可实现文本聊天,语音按钮实现语音聊天,文本传送实现文件 传送。 如下是各个窗口类之间的功能流程图 3.2 主体功能 1,实现基本的一对一聊天,实现同时与多人聊天 2,实现好友列表,并可随时添加好友。 3,有本地好友列表可储存固定好友。 4,能实现一对一语音对话聊天 5,实现一次性的中小文件远程传送 2.详细设计详细设计(根据你自己课题功能设计不同函数,此处称为模块) 4.1 QQQQ 软件登陆软件登陆模块设计模块设计 1、效果图 2、类的主要成员变量和方法 private JPanel contentPane; private JPasswordField passwordField; JLabel lblNewLabel = new JLabel(“New label“); Icon icon=new ImageIcon(“D:\\a.png“); JButton btnNewButton_1 = new JButton(“New button“); JLabel m_newlabel_1 = new JLabel(““); JButton btnNewButton = new JButton(“\u767B\u5F55“); JLabel lblNewLabel_1 = new JLabel(“New label“); Icon icon_1=new ImageIcon(“D:\\b.png“); Icon icon_3=new ImageIcon(“D:\\c.png“); 3、主要程序代码 char[] m_Key={ a , b , c , 1 , 2 , 3 }; public void actionPered(ActionEvent arg0) { char[] password1 = passwordField.getPassword(); for(int i=0;i screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height -frameSize.height) / 2); } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } } } //ChatWindow package QQQQQ; import java.io.*; import .*; import java.awt.AWTEvent; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JList; import javax.swing.JSpinner; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.WindowEvent; import javax.swing.JTextField; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.BoxLayout; import denglu.ChartSend; import java.awt.BorderLayout; import java.awt.Color; import liaotian.Server; public class ChatWindow extends JFrame // implements ActionListener { private JPanel contentPane; JPanel