Java通信程序设计课程设计报告

Java通信程序设计课程设计报告
Java通信程序设计课程设计报告

Java通信程序设计

课程设计报告

题目Java网络聊天室程序设计学生姓名

学号

院系电子与信息工程学院

专业通信工程

2013年12 月

Java网络聊天室程序设计

翟轶彪,20121334080

南京信息工程大学通信工程系,南京 210044

摘要:随着网络信息时代的来临,Internet应用越来越广泛 人们越来越习惯于在网上获取和交流信息。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。所以有大部分的人会进入聊天室聊天 它会给人一个完全自由的聊天世界。因此我们联系所学的知识做一个简易的聊天室系统。

关键词:网上聊天;聊天室

一、背景知识

1.SOCKET

Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。

1.1 创建Socket;

1.2 打开连接到Socket的输入/出流;

1.3 按照一定的协议对Socket进行读/写操作;

1.4 关闭Socket.

2.IO技术

2.1阻塞模式

2.2可能造成阻塞的函数有:connect()、accept()、读写函数

3.C/S两端通过Socket机制进行连接

3.1客户端的编程流程:

3.1.1创建Socket对象,向Server的监听端口请求;

3.1.2通过向新Socket中读写数据与Server端通信;

3.1.3关闭Socket,结束与Server端;

3.2服务器端的编程流程:

3.2.1打开Server Socket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket 服务;

3.2.2等待来自客户端的Client端的请求;

3.2.3接收Client 端的请求,用返回的Socket 建立连接; 3.2.4通过向Socket 中读写数据来与Client 端通信; 3.2.5关闭Socket,结束与当前Client 端的通信; 3.2.6关闭SerketSocket 对象结束监听服务。

二、设计思想

用户

客户端

服务器端

用户设置

连接设置

用户发送信息

通信内容

用户得到的信息

处理用户退出

服务器日志

数据通信信息

连接

保存

保存

处理

监控

1.客户端设计思想

客户端主要完成建立连接、消息输入、消息发送、消息存储功能。功能含义如下: 1.1建立连接:建立一个ServerSocket 连接,不断侦听是否有服务端连接或者断开连接。 1.2消息输入:根据用户输入的消息,将消息显示在屏幕面板上。

1.3消息发送:把用户输入的消息作为字符串通过Socket 端口发送到服务器。

1.4消息存储:把用户输入的消息存储到data.txt 文件中,以便用户以后查阅聊天记录。

2.客户端设计 2.1界面设计 2.2连接设计 2.3接收信息设计

2.4用户信息设计

2.5帮助设计

3.客户端连接服务器端

客户端用户设计的IP地址和端口号连接到相应的服务器,通过接收用户输入的消息,然后通过所监听的端口把消息发送到服务端,由服务端把消息发送到指定的用户。

3.1客户端请求连接

客户端通过connect()请求连接,填写端口号以及IP地址,填写自己的信息。

3.2服务器端响应

服务器端的监听器监听到客户端的连接请求后,检测后允许客户端连接到服务器。

3.3给客户端返回信息

连接成功后服务器返回给客户端连接成功的信息,并且给所有的用户发送用户登录信息。

3.4关闭Socket连接

当以上的程序都正常运行后,需要关闭Socket连接,否则将会浪费服务器与客户端之间的资源。

3.5用户退出

3.5.1接收退出信息

当用户退出时,客户端将会用基于Socket的对象输出流发送给服务器退出对象。

3.5.2在线列表中删除用户

用户退出后应该把用户从在线列表中删除,否则用户退出用户还在在线列表中,那么该用户下次将会无法登录。

3.5.3更新在线列表

用户退出后将服务器端监控界面的用户列表更新。否则用户数据将会不同步。

4.服务器设计思想

主服务器类实现了服务器端的多线程,使用SeverSocket s=newServerSocket(8080)语句在8080端口创建套接口;使用new ServerThread(socket)语句创建新的线程。主服务器类调用ServerThread类,而每个ServerThread实体就是一个独立的线程,刚好对应于客户端的连接请求响应线程。服务器端有一个(或多个)进程在指定的端口等待客户的连接信息,一旦连接成功,就可以按设计的数据交换方法和格式进行数据传输。

服务器端完成的功能是:对服务器的某一可用端口进行监听,以获得客户端请求,从而对客户端请求进行处理。因为是多客户同时请求,所以要采用多线程,为每一个在线用户分配一个线程,实时处理每个客户端的请求。因此,对服务器端程序抽象如下:

4.1公共数据处理

处理公共数据。如在线人数统计,客户的公共数据(如通知等),客户数据资料的存储与读

取等(与数据库交互); 4.2端口监听器

监听服务器某一端口,为每一在线客户建立一个会话线程; 4.3客户请求处理

处理客户的请求。根据客户的请求执行相应的操作。 4.4服务器管理器

服务器端的管理工具,如对数据进行统计。

客户端

服务器端

用户发送信息

通信内容

用户得到的信息

处理用户

退出

服务器日志数据通信信息

连接

保存

保存

处理

监控

服务器设

三、主要代码

1.客户端主要代码 /**

* 事件处理 */

public void actionPerformed(ActionEvent e) {

Object obj = e.getSource();

if (obj == userItem || obj == userButton) { //用户信息设置

//调出用户信息设置对话框

UserConf userConf = new UserConf(this,userName);

userConf.setVisible(true);

userName = https://www.360docs.net/doc/cb2175708.html,erInputName;

}

else if (obj == connectItem || obj == connectButton) { //连接服务端设置//调出连接设置对话框

ConnectConf conConf = new ConnectConf(this,ip,port);

conConf.setVisible(true);

ip = https://www.360docs.net/doc/cb2175708.html,erInputIp;

port = https://www.360docs.net/doc/cb2175708.html,erInputPort;

}

else if (obj == loginItem || obj == loginButton) { //登录

Connect();

}

else if (obj == logoffItem || obj == logoffButton) { //注销

DisConnect();

showStatus.setText("");

}

else if(obj == dataItem){

try{

File read=new File("data.txt");

Desktop.getDesktop().open(read);

}catch (IOException e1){

e1.printStackTrace();

}

}

else if (obj == clientMessage || obj == clientMessageButton) { //发送消息

SendMessage();

clientMessage.setText("");

}

else if (obj == exitButton || obj == exitItem) { //退出

int j=JOptionPane.showConfirmDialog(

this,"真的要退出吗?","退出",

JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION){

if(type == 1){

DisConnect();

}

System.exit(0);

}

}

else if (obj == helpItem) { //菜单栏中的帮助

//调出帮助对话框

Help helpDialog = new Help(this);

helpDialog.setVisible(true);

}

}

public void run(){

while(!socket.isClosed()){

try{

String type = (String)input.readObject();

if(type.equalsIgnoreCase("系统信息")){

String sysmsg = (String)input.readObject();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String ly_time = sdf.format(new Date());

textarea.append(ly_time);

textarea.append("\n");

textarea.append("系统信息: "+sysmsg);

}

else if(type.equalsIgnoreCase("服务关闭")){

output.close();

input.close();

socket.close();

textarea.append("服务器已关闭!\n");

break;

}

else if(type.equalsIgnoreCase("聊天信息")){

String message = (String)input.readObject();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String ly_time = sdf.format(new Date());

textarea.append(ly_time);

textarea.append("\n");

textarea.append(message);

try{

record=new BufferedWriter(new FileWriter("data.txt",true));

record.write(ly_time);

record.newLine();

record.write(message);

record.newLine();

record.close();

}catch (IOException e){

e.printStackTrace();

}

}

else if(type.equalsIgnoreCase("用户列表")){

String userlist = (String)input.readObject();

String usernames[] = userlist.split("\n");

combobox.removeAllItems();

int i =0;

combobox.addItem("所有人");

while(i < usernames.length){

combobox.addItem(usernames[i]);

i ++;

}

combobox.setSelectedIndex(0);

showStatus.setText("在线用户 " + usernames.length + " 人");

}

}

catch (Exception e ){

System.out.println(e);

}

}

}

}

2.服务器端主要代码

2.1 ChatServer.java 服务器的主框架类

此类实现接口ActionListener,用于对用户事件的监听,以及对事件的处理。

/**

* 事件处理

*/

public void actionPerformed(ActionEvent e)

{

Object obj = e.getSource();

if (obj == startServer || obj == startItem)

{ // 启动服务端

startService();

} else if (obj == stopServer || obj == stopItem)

{ // 停止服务端

int j = JOptionPane.showConfirmDialog(this, "真的停止服务吗?", "停止

服务",

JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION)

{

stopService();

}

} else if (obj == portSet || obj == portItem)

{ // 端口设置

// 调出端口设置的对话框

PortConf portConf = new PortConf(this);

portConf.setVisible(true);

} else if (obj == exitButton || obj == exitItem)

{ // 退出程序

int j = JOptionPane.showConfirmDialog(this, "真的要退出吗?", "退出", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION)

{

stopService();

System.exit(0);

}

} else if (obj == helpItem)

{ // 菜单栏中的帮助

// 调出帮助对话框

Help helpDialog = new Help(this);

helpDialog.setVisible(true);

} else if (obj == sysMessage || obj == sysMessageButton)

{ // 发送系统消息

sendSystemMessage();

}

}

/**

* 此函数用于启动服务器,并在指定的端口监听客户端的连接

*/

public void startService()

{

try

{

serverSocket = new ServerSocket(port, 10);

messageShow.append("服务端已经启动,在" + port + "端口侦听...\n");

startServer.setEnabled(false);

startItem.setEnabled(false);

portSet.setEnabled(false);

portItem.setEnabled(false);

stopServer.setEnabled(true);

stopItem.setEnabled(true);

sysMessage.setEnabled(true);

} catch (Exception e)

{

e.printStackTrace();

}

userLinkList = new UserLinkList();

listenThread = new ServerListen(serverSocket, combobox, messageShow,showStatus, userLinkList);

listenThread.start();

}

/**

* 此函数用于关闭服务器,关闭服务器后给所有在线用户发送服务器关闭的信息,服 * 务器关闭后,所有的input,output输入输出流都会关闭,并且socket也会关闭。

* 所有的数据都恢复初始化

*/

public void stopService()

{

try

{

// 向所有人发送服务器关闭的消息

sendStopToAll();

listenThread.isStop = true;

serverSocket.close();

int count = userLinkList.getCount();

int i = 0;

while (i < count)

{

Node node = userLinkList.findUser(i);

node.input.close();

node.output.close();

node.socket.close();

i++;

}

stopServer.setEnabled(false);

stopItem.setEnabled(false);

startServer.setEnabled(true);

startItem.setEnabled(true);

portSet.setEnabled(true);

portItem.setEnabled(true);

sysMessage.setEnabled(false);

messageShow.append("服务端已经关闭\n");

combobox.removeAllItems();

combobox.addItem("所有人");

} catch (Exception e)

{

e.printStackTrace();

}

}

2.2 ServerListen.java 服务端的侦听类

此类继承于Thread类,服务器的监听类,等待用户的连接,并且给在线用户发送上线用户的信息提示。

public void run(){

while(!isStop && !server.isClosed()){

try{

client = new Node();

client.socket = server.accept();

client.output = new ObjectOutputStream(client.socket.getOutputStream());

client.output.flush();

client.input = new ObjectInputStream(client.socket.getInputStream());

https://www.360docs.net/doc/cb2175708.html,ername = (String)client.input.readObject();

//显示提示信息

combobox.addItem(https://www.360docs.net/doc/cb2175708.html,ername);

userLinkList.addUser(client);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str = sdf.format(new Date());

textarea.append(str + "\n" + "用户 " + https://www.360docs.net/doc/cb2175708.html,ername + " 上线" + "\n");

textfield.setText("在线用户" + userLinkList.getCount() + "人\n");

recvThread = new ServerReceive(textarea,textfield,

combobox,client,userLinkList);

recvThread.start();

}

catch(Exception e){

}

}

}

2.3 ServerReceive.java服务器收发消息的类

此类也继承于Thread类,主要处理客户端发来的信息,并对信息进行必要的处理,通过input输入流以及output输出流把信息输出在指定用户的对话框中。除此之外还对用户下线时作必要的处理,提示用户下线,以及显示在线人数。

public void run(){

//向所有人发送用户的列表

sendUserList();

while(!isStop && !client.socket.isClosed()){

try{

String type = (String)client.input.readObject();

if(type.equalsIgnoreCase("聊天信息")){

String toSomebody = (String)client.input.readObject();

String status = (String)client.input.readObject();

String action = (String)client.input.readObject();

String message = (String)client.input.readObject();

String msg = https://www.360docs.net/doc/cb2175708.html,ername +" "+ action+ "对 "+ toSomebody + " 说 : "+ message + "\n";

if(status.equalsIgnoreCase("悄悄话")){

msg = " [悄悄话] " + msg;

}

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str = sdf.format(new Date());

textarea.append(str + "\n" + msg);

if(toSomebody.equalsIgnoreCase("所有人")){

sendToAll(msg);//向所有人发送消息

}

else{

try{

client.output.writeObject("聊天信息");

client.output.flush();

client.output.writeObject(msg);

client.output.flush();

}

catch (Exception e){

//System.out.println("###"+e);

}

Node node = userLinkList.findUser(toSomebody);

if(node != null){

node.output.writeObject("聊天信息");

node.output.flush();

node.output.writeObject(msg);

node.output.flush();

}

}

}

else if(type.equalsIgnoreCase("用户下线")){

Node node = userLinkList.findUser(https://www.360docs.net/doc/cb2175708.html,ername);

userLinkList.delUser(node);

String msg = "用户 " + https://www.360docs.net/doc/cb2175708.html,ername + " 下线\n";

int count = userLinkList.getCount();

combobox.removeAllItems();

combobox.addItem("所有人");

int i = 0;

while(i < count){

node = userLinkList.findUser(i);

if(node == null) {

i ++;

continue;

}

combobox.addItem(https://www.360docs.net/doc/cb2175708.html,ername);

i++;

}

combobox.setSelectedIndex(0);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str = sdf.format(new Date());

textarea.append(str + "\n" + msg);

textfield.setText("在线用户" + userLinkList.getCount() + "人\n");

sendToAll(msg);//向所有人发送消息

sendUserList();//重新发送用户列表,刷新

break;

}

}

catch (Exception e){

//System.out.println(e);

}

}

}

四、调试与测试

经调试后程序无误。

参考文献

[1] 张孝祥.《Java就业培训教程》.清华大学出版社.2003.376-382.

Java程序设计课程设计学生考勤系统

信息与电子工程学院 课程设计报告 Java程序设计课程设计课程名称: 名:姓 学号: 级:班 指导老师:完成时间:月6年2016 学生考勤系统 问题描述:以班为单位,可以以日期为标识记录每个学生的考勤情况(正常、旷课、请假、迟到、. 早退)、可以查看某个学生的考勤情况、可以查看全班的考勤情况 0.5需求分析(标题,黑体,小四,段前段后行)1.(1)用户需求描述:

学生用户:学生对本系统的主要需求是在线请假以及查看学期内的上课出勤信息。 在线请假中,学生可以随时查看请假的进展情况。另外学生还可以修改本人的密码。 教师用户:任课老师对本系统的主要需求是查看班级信息,查看学生信息。并且在上课前进行点名,管理所教班级学生的上课出勤信息,查看学生上课出勤情况,对学生请假审请进行批准等。另外,教师还可以修改自己的密码。 (2)系统功能划分: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这两大模块。 在线请假模块: 该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。 考勤管理模块: 该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E表格,最后方便统计整个学期本课程所有学生的考勤情况。 2.总体设计 ; 功能结构图 : 图ER : 数据库设计数据库需求分析1 学生考勤管理系统要实现在线请假、随堂考勤两大子系统,需要了解学生用户、教 学生表:学生流水号、师用户两类用户的功能模块。然后,据此分析出数据需求。 请假表:请假开始时间、请学生学号、学生名字、性别、宿舍号、联系方式、密码。、ID假结

通信专业综合课程设计报告

专业综合课程设计 指导书 班级通信D101 指导教师董自健 淮海工学院电子工程学院 通信工程系

2013年10 月18 日 一、课程设计的目的和任务 本次课程设计是根据“通信工程专业培养计划”要求而制定的。综合课程设计是通信工程专业的学生在学完所有专业课后进行的综合性课程设计。其目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。 课程设计的任务是:(1)掌握一般通信系统设计的过程、步骤、要求、工作内容及设计方法;掌握用计算机仿真通信系统的方法。(2)训练学生综合运用专业知识的能力,提高学生进行通信工程设计的能力。 二、教学要求 由于是专业综合性课程设计,因此设计的内容应该围绕主干专业课程,如:通信原理、程控交换技术、传输设备,通信网点等。 课程设计要求的主要步骤有: 1、明确所选课题的设计目的和任务,对设计课题进行具体分析,充分了解系 统的性能、指标、内容等。 2、进行方案选择。根据掌握的知识和资料,针对系统提出的任务、要求和条 件,完成系统的功能设计。从多个方案中选择出设计合理、可靠、满足要求的一个方案。并且对方案要不断进行可行性和优缺点的分析,最后设计出一个完整框图。

3、原理设计; 4、调试阶段; 5、说明书编制。 本次课程设计在校内完成,主要方式是以理论设计为主,进行实验或计算机仿真,得出结论。 三、设计内容 本次综合课程设计内容为数字通信系统的性能分析与仿真。应该包括以下设计内容: 1、使用一种分组码或者卷积码进行信道纠错编码。 2、使用格雷码对数据进行映射。 3、使用MQAM举行调制,M可选择8、16、32、6 4、128、256。 4、选择合适的升余弦参数,使用升余弦对基带信号举行滤波。 5、在解调端,进行滤波、MQAM的解调、格雷码逆映射、纠错解码。 6、改变信噪比,分析系统性能。 四、设计内容介绍: MQAM是一种基本的相位-幅度联合调制方式。研究这种基本的数字调制信号的性能可以帮助学生理解数字通信的基本特点。 本次课程设计,学生可以自己选择符合要求的技术,如信道纠错编码可以是分组码或者卷积码,M必须选择数字8、16、32、64、128、256中的至少3个,以分析各种M下的QAM系统性能。应用Matlab进行仿真,仿真采用蒙特卡罗模型。仿真基本框图是:

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年7 月2 日

目录 1.JAVA程序设计书 3 1.1《简易连连看》 3 1.1.1具体要求 3 1.2本系统设计的知识点 3 2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

Java课程设计参考范文

基于B/S模式的小区物业管理系统的设计与实现 计算机科学与技术2009级一班 学生姓名:陆国良指导老师:陶世明 摘要:相比于C/S模式的物业管理系统,B/S模式的管理系统却极少。做一个B/S模式的物业管理系统,既可以让业主使用,又可以让物业管理人员使用,通过这个系统,获取到各自需要的信息,从而给管理带来便利。这也是我们开发物业管理系统的初衷。住户最基本的要求有以下几点:界面的友好性、易用性、实用性和吸引性。本设计将从以上几个方面进行系统的开发工作。物业管理人员除了有住户的以上要求外,管理的便利性也要考虑。在系统的开发中,使用JavaScript、CSS样式和HTML对界面进行布局,然后使用DOTNET平台下C#语言进行全面的开发,其中使用了三层架构的思想。 关键词:C/S, B/S, DOTNET, 三层架构 一、前言 物业管理系统在市场上已经是一项相当成熟的技术,例如思源物业,凤凰物业等。他们为许多开发物业管理的开发人员提供了成功的案例。为什么要使用信息化系统呢?在以前我们不都是使用一张纸,一支笔就搞定了么,为什么还要兴师动众来开发这样一个系统呢。下面进行一下前后的对比。 手工模式 ?传统的文档记录管理模式,易出错丢失; ?采用人工统计核算,工作量大且容易出错; ?不利于公司领导了解各部门的工作情况,影响企业整体决策; ?管理缺乏有效控制,工作流程不够规范; ?服务不及时,客户满意度低; 信息化后 ?数据管理容易; ?采用计算机进行运算,效率高且精确; ?操作简单方便; ?能够充分利用资源,做出合理的安排; 之所以人们对物业管理系统津津乐道,主要是因为小区是城市生活的基本单位,小区的管理直接影响到我们的生活质量。系统有使用Java开发的,有使用.Net开发的,有基于B/S模式的,有基于C/S 模式的,它们的共同出发点都是开发出高效的,便于管理的物业管理系统,这也是许多物业公司不惜高

Java语言程序设计课程设计指导书

《JAVA程序设计基础课程设计》指导书 课程名称:JAVA程序设计基础课程设计 设计题目:班级通信录电子万年历简单计算器聊天小程序 图书管理系统学生成绩管理系统英汉电子小字典 使用班级:通信151-2 指导教师:宫淑兰、张明玉 一、课程设计的目的和要求 1、通过面向对象程序设计课程设计,使学生能将学到的面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,要求学生能够对现实生活中许多具体的事物抽象出来,并掌握继承与派生,基类、虚函数和多态性的概念。 2、通过这次课程设计掌握面向对象的编程思想,为后续课程打下基础。 3、培养学生实际操作能力和团结协作能力,为以后的工作打下坚实的基础。 二、课程设计内容 运用Java语言描述各种类,每一个类应包含数据成员和成员函数。设计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生设计具有继承与派生以及多态性的类,理解面向对象程序设计的核心的概念。 不得从网上下载或者抄袭别人的资料,一经发现,课程设计不及格。 三、课程设计进度表 时间为一周,大致划分如下: 第一天布置任务及分组,总体需求分析,编写相关文档,设计说明,查找资料第二天基类、各派生类设计及代码实现,各模块的编程设计 第三天各模块的调试与修改,系统组装,程序总调试,修改 第四天~第五天撰写课程设计说明书,课程设计检查与答辩 四、课程设计步骤与方法 1、需求分析:为提出的问题找出解决的办法和思路。用自顶向下的方法创建主程序和子程序,控制对象间的相互作用。 2、根据需求,设计系统功能模块,并设计相应的类结构。 3、根据基本思路,确定输入和输出,设计程序的算法。

数据通信课程设计报告

《计算机控制技术》 课程设计 目录一....................................................................... 课程设计目的.. (3) 二....................................................................... 课程设计题目和要求. (3) 2.1 课程设计题目 2.2课程设计要求 三....................................................................... 设计内容 (4) 3.1 设计方案的选定与说明 3.2 系统总体框图 3.3论述方案的各部分工作原理; 3.4 设计说明书 四....................................................................... 设

计总结 (11) 参考书目 (11)

一.课程设计目的 通过本课程设计主要目的是实现两台西门子1200PLC之间的通信,利用PLC1发 送指令给PLC2 PLC2接到指令后控制电动机的启停,主要训练和培养学生的以下能 力: (1).查阅资料:搜集与本设计有关的资料(包括从已发表的文献中或者通过网络 交流平台搜集)的能力; (2).软件使用:了解并掌握西门子S7-1200软件的使用,明白网络通信实现的机 理与过程; (3).用简洁的文字,清晰的图表来表达自己设计思想的能力。 .课程设计题目和要求 2.1课程设计题目 题目:当一台S7-1200上发出一个启停信号时,另一台S7-1200收到信号,并启停一台电动机 1)主要软硬件配置 一套Step7 Basic v10.5(或以上版本),一根网线,2台CPU 1214C 2)相关指令:TSEND_C (发送数据指令),TRCV_C(接受数据指令) 3)硬件组态与编程 新建工程--- 添加硬件--- 用子网连接两个cpu ----- 编写主控cpu程序----- 调整主控cpu连接参数 --- 编写另一台cpu程序----- 调整另一台cpu连接参数

Java课程设计报告模板

Java课程设计报告 模板

浙江科技学院 《Java程序设计》课程设计报告 设计题目:学生信息管理系统 姓名:邱焕明 学号: 所属院系:信息学院 专业:软件工程 小组成员:邱焕明 设计时间: -1-6 指导教师:虞建东

一、课程设计目的 (1)实验目的:结合开发的系统,给出学生信息管理系统 二、课程设计完成的任务 三、设计过程 (一)需求分析 1、基础资料管理 基础资料管理包括对院系、班级和学期的设置。该模块可实现以下功能: 添加、修改、删除和显示院系代码、院系名称和电话号码。 添加、修改、删除和显示班级代码、班级名称、学生人数和所属院系名。 添加、修改、删除和显示学期代码、学期名称。 2、学生信息管理 学生信息管理包括对学生档案和学籍的管理。该模块可实现以下功能: 添加、修改、查询和显示学生的基本信息、所属班级和院系。 记录学生学籍、学生离校信息和学生调动信息。 3、课程信息管理 课程信息管理包括对课程设置和班级选课的管理。该模块可实

现以下功能: 添加、修改、删除和显示课程代码、课程名称、学分和院系名称。 添加、删除和提交班级所选课程。 4、成绩信息管理 成绩信息管理包括对成绩录入和成绩分析的管理。该模块可实现以下功能: 录入班级课程成绩,以不同形式(列表统计、图表分析)显示班级课程成绩。 (二)系统设计概念、流程初定义 1、实体名:院系 2、实体名:班级 3、实体名:学生 4、实体名:课程 (三)系统内容规划 1、班级信息表 表3-1 班级信息表 2、课程信息表 表3-2 课程信息表

(四)系统总体设计 内 (五)系统详细设计 (六)系统测试 列名 数据类型 长度 备注 课程代码 char 10 主键 课程名称 varchar 50 无 学 分 tinyint 1 无 所属院系 varchar 50 无

java课设记事本说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 Java 课程设计 题目:记事本系统设计 专业班级: 姓名: 学号: 指导教师: 成绩:

目录 摘要 (1) 序言 (2) 正文 (3) 1.系统设计与分析 (3) 2.详细设计 (3) 3.系统测试 (14) 4.软件使用说明书 (17) 设计总结 (18) 参考文献 (19) 致谢 (20) 附录(程序源代码) (21)

摘要 本次课程设计的题目是用java语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。 本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。 关键字:记事本程序;Java语言;Jcreator

序言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少, 所以选择了适合初学者使用的JCreator开发工具。

JAVA程序设计课程设计指导书

JA V A程序设计课程设计指导书 一、课程设计的目的与要求: 1.掌握JA V A语言中面向对象的概念,并能在程序中熟练运用。 2.了解面向对象程序设计(JA V A)的基本概念以及运用面向对象技术进行程序设计的基本思 想。 3.能正确编写和调试JA V A程序。 4.了解在JA V A环境下进行程序设计的基本思想和方法。 二、设计内容 2.1项目一:项目描述与设计要点(数据结构算法要求较高) 1.设计一个连连看的游戏程序。 2.在JAVA环境下,将上述程序使用GUI、数据结构等内容完成 3.设计思路: (1)界面设计 1)初始测试界面可以考虑使用简单的按钮来代表连连看游戏中的图标。 2)布局可以考虑使用GRID方式。 3)设计菜单选择连连看难度等内容,具体可参照QQ连连看,也可自定义。 4)考虑完善界面,例如图片、声音、动画等。 (2)代码设计 1)本设计的核心为练练看算法的设计,可以考虑数据结构中的图的遍历章节,合理设计 算法,将界面中各按钮的分布映射入数学矩阵进行路径规划。(可以上网搜索相关算法)。 2)完成连连看游戏的图形、算法等代码的设计。 3)有能力的同学可以考虑网络对战,设计SOCKET服务器,使得CLIENT之间通信是否已完 成游戏。 4.实验步骤(包括操作方法、数据处理) (1)界面设计 (2)算法设计 (3)代码设计 (4)网络通信设计 2.2项目二:项目描述与设计要点(计算机图形、网络编程要求较高) 1.一个类似于电子白板的“你画我猜”游戏设计(若不知道此游戏,请上网查找),游戏要求 一方绘图后通过网络将绘图内容显示于另外一方界面中,由另外一方猜测绘制的内容,并通过键盘输入告知绘图方。 2.在JAVA环境下,将上述内容设计成为应用程序。

通信与现场总线课程设计报告书

电气工程学院 通信与现场总线课程设计

目录 一:设计任务 (4) 理想模型: (4) 实验中用到的任务模型 (5) 二:力控软件平台建立的实验模型 (5) 三、实验设备与仪器 (6) 四、设计思路与过程 (6) 五、调试和功能 (13) 六、联机调试:C/S方式的远程控制 (26) 七、课设总结与心得 (29)

(一)本次课程设计题目: 通过三维力控组态软件实现对搅拌罐的网络控制 (二)主要容及要求 在组态软件Forecontrol V6.1平台上,通过工业以太网,分别以C/S方式(客户端/服务器)及B/S方式(浏览器/服务器)完成对SIEMENS的可编程序控制器通过工业现场总线PROFIBUS方式与2台SIEMENS MM440变频器控制的三相异步电机的实际工程平台,实现对搅拌罐PLC控制系统(含本地控制和远程控制)的网络控制。 独立完成,承担系统设计、系统分析、组态软件的学习与编程、网络系统调试等任务,要求提供最终的解决程序(验收)和相关文件,并以报告论文方式说明实现的思路及工程应用前景。 (三)进度安排: (1)在第一次课堂上了解并知道了Forecontrol V6.1软件的初步使用。 (2)根据相关资料,熟悉并设计并完成客户端组态软件的实际工艺流程界面界面的绘制。 (3)对搅拌罐工程相关控制进行了编程。 (4)熟悉服务器端通信参数的要求,完成C/S的网络控制。 (4)3月30日在实验室完成整个系统的软件调试及最后联机调试。 (5)撰写设计报告。

通过三维力控组态软件实现 对搅拌罐的网络控制 一:设计任务 在组态软件Forecontrol V6.1平台上,通过工业以太网,分别以C/S方式(客户端/服务器)及B/S方式(浏览器/服务器)完成对SIEMENS的可编程序控制器通过工业现场总线PROFIBUS方式与2台SIEMENS MM440变频器控制的三相异步电机的实际工程平台,实现对搅拌罐PLC控制系统(含本地控制和远程控制)的网络控制。 本次课程设计中,我们主要运用了C/S(客户端/服务器)方式,实现对搅拌罐PLC控制系统(含本地控制和远程控制)的网络控制。 理想模型:

Java课程设计报告

湖北大学 本科课程设计 题目 ATM 自助机模拟程序姓名 学号 专业年级 指导教师 职称

目录 第一章系统描述 (2) 1 前言 (2) 2 系统功能需求 (2) 第二章系统分析与设计 (3) 1 功能模块划分 (3) 2 功能模块的描述 (3) 3 系统设计流程图 (4) 4 测试数据及期望结果 (6) 第三章系统详细设计 (7) 1 主界面开发设计 (7) 2 功能选择界面开发设计 (7) 3 取款界面开发设计 (7) 4 存款界面开发设计 (8) 5 转账界面开发设计 (8) 6 查询界面开发设计 (9) 7 修改密码界面开发设计 (9) 8 界面开发设计使用函数 (9) 第四章系统测试 (11) 第五章源程序部分清单 (21) 第六章实验心得 (30) 参考文献 (31)

第一章系统描述 1 前言 Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。 Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。 2 系统功能需求 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不 超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。 (3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出 现负存款。 (4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许 转账,不允许透支。 (5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

java程序设计课程设计

武汉科技大学城市学院 课程设计报告 课程设计名称JAVA程序设计课程设计 题目ACM 院系信息工程学部 专业软件工程 班级15级3班 姓名洪汉山 指导教师于海平 2017 年 6 月23 日

课程设计评分表

JA V A编程课程设计指导书 学时:1周,学分:1 1.课程设计目的:JAVA编程课程设计属于软件开发类课程设计。该课程设计培养学生熟练应用当前主流的JAVA软件开发语言,检验软件的设计、编码与测试,具备较强的JAVA语言软件开发能力。 2.课程设计方式: (1)JAVA编程课程设计方式采取ACM测试的方式,利用所学的面向对象程序设计(JAVA)知识,培养学生具有分析应用问题的能力,能够独立完成应用程序的编制与调试工作。 (3)每个同学必须完成8-12道题,每题写出解题报告,解题报告内容:○1.题目标题○2.题目描述○3.解题思路○4.源码○5.小结 3.课程设计平台: eclipse或Myeclipse 4.课程设计考核方式 (1)学生独立提交软件设计作品和“课程设计报告书”,指导教师根据学生组提交的软件设计作品和“课程设计报告书”的质量,为学生组评定“优”“良”“中”“及格”或“不及格”; (2)根据各组学生所选题目的难易程度以及验收结果,为学生评定“优”“良”“中”“及格”或“不及格”。 “课程设计报告书”包括:课程设计项目名称,课程设计任务, 课程设计任务(功能)说明及功能模块图,数据库设计,各模块功能说明,使用的算法描述(如果需使用算法),各模块界面设计,各模块中关键代码段功能说明与代码行注释,测试说明,参考文献等。 5.参考文献 [1] 张思民. Java语言程序设计(第2版)[M].北京:清华大学出版社,2012.1 [2] 姜华. Java项目实战教程[M]. 北京:清华大学出版社,2012.9 [3] 陈喧. Java程序设计教程[M]. 北京:清华大学出版社,2011.5 [4] [美]Echel,B .Java编程思想(第四版)[M].北京:机械工业出版社,2007 [5] Michael Main. 数据结构:Java语言描述(第二版)(国外经典计算机科学教材)[M]. 北京:中国电力出版社,2007

通信原理课程设计报告2

¥ 课程设计报告? < 课程名称通信原理 设计题目 DSB与2ASK调制与解调 专业通信工程 班级 学号 姓名 完成日期 …

课程设计任务书 设计题目:DSB与2ASK调制与解调 设计内容与要求: 设计内容: 1.根据DSB的调制原理设计线路,进行仿真模拟调制DSB的调制和解调过程,并通过仿真软件观察信号以及的调制过程中信号波形和频谱的变化。 2. 根据ASK的调制原理设计线路,进行仿真模拟调制DSB的调制和解调过程,并通过仿真软件观察信号以及的调制过程中信号波形和频谱的变化。 3.在设计过程中分析信号变化的过程和思考仿真过程的设计原理。 ; 设计要求: 1.独立完成DSB与ASK的调制与解调; 2.运用仿真软件设计出DSB与ASK的调制线路 3.分析信号波形和频谱 指导教师:范文 2012年12月16日 课程设计评语 ( 成绩: 指导教师:_______________

年月日

一.调制原理: 调制: 将各种数字基带信号转换成适于信道传输的数字调制信号(已调信号或频带信号); 时域定义:调制就是用基带信号去控制载波信号的某个或几个参量的变化,将信息荷载在其上形成已调信号传输,而解调是调制的反过程,通过具体的方法从已调信号的参量变化中将恢复原始的基带信号。 频域定义:调制就是将基带信号的频谱搬移到信道通带中或者其中的某个频段上的过程,而解调是将信道中来的频带信号恢复为基带信号的反过程. 根据所控制的信号参量的不同,调制可分为: 调幅,使载波的幅度随着调制信号的大小变化而变化的调制方式。 调频,使载波的瞬时频率随着调制信号的大小而变,而幅度保持不变的调制方式。 调相,利用原始信号控制载波信号的相位。 调制的目的是把要传输的模拟信号或数字信号变换成适合信道传输的信号,这就意味着把基带信号(信源)转变为一个相对基带频率而言频率非常高的代通信号。该信号称为已调信号,而基带信号称为调制信号。调制可以通过使高频载波随信号幅度的变化而改变载波的幅度、相位或者频率来实现。调制过程用于通信系统的发端。在接收端需将已调信号还原成要传输的原始信号,也就是将基带信号从载波中提取出来以便预定的接受者(信宿)处理和理解的过程。该过程称为解调。

java课程设计报告书

《Java程序设计》课程设计报告 2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年 7 月 2 日 目录 1.JAVA程序设计书 3 1.1《简易连连看》3 1.1.1具体要求 3 1.2本系统设计的知识点 3

2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

通信工程专业课程设计报告_饶文彬

燕京理工学院课程设计报告 题目生日管家 专业通信工程 班级通信1002班 学号100250047 姓名饶文彬 指导教师尹倩 信息科学与技术学院

课程设计任务书 2、页面不够可附加页

摘要 ? 1 生日管家是一款手机端的生日提醒软件。使用生日管家可以方便地管理亲友的生日,并设置时间适时提醒。支持公历/农历提醒。还包含琳琅满目的生日祝福短信供挑选。生日管家提供的生日云端备份,多天多次提醒方案,使用户再也不会担心忘记亲友的生日。基于安卓系统开发,并访问移动网络,使人在移动生活中得到更多体验。给人与人间的相处增加一个很好的媒介安卓为第一考虑对象,软件版本第一优先为安卓手机使用用户,同时因为时代发展,更多人开始使用iphone与ipad,同时进行ios系统版本的研发 2,因为移动通信网的兴起,联通,移动,电信开始加大对移动通信网的发展与支持,而安卓手机支持三家公司的通信信号运营,可研发兼容信号的版本 功能需求 ?软件目的是为用户提供生日提醒服务,所以最原始用户需求是准确自动对用户进行提醒和允许用户自动设置提醒时间 ?生日祝福实在让人费脑子,而生日蛋糕因为距离原因总是不好进行购买,所以软件应该具备可以让用户选择的生日祝福语,网络贺卡,生日蛋糕订购服务 ?考虑用户可能并不是十分清楚好友生日,软件可和通讯录进行关联,使用短信,微信等通讯方式让用户好友进行配合记录生日 关键词:生日管家;生日模块

目录 摘要........................................................................................................................................... III 目录........................................................................................................................................... I V 第1章绪论.. (1) 1.1编写目的 (1) 1.2生日管家的意义. (1) 1.3参考资料. (1) 1.4 系统概述. (1) 1.5 系统功能定义 (1) 第2章软件说明 (2) 2.1总体结构说明 (2) 2.2功能模块简要说明 (3) 2.3模块程序构件结构图 (4) 2.4更多模块流程图 (5) 2.5生日模块 (5) 2.9 总体界面结构说明 (7) 结论 (10) 参考文献 (11) 附录 (12)

Java课程设计报告书

华东交通大学理工学院课程设计报告书( 2010-- 2011年度第 2 学期) 所属课程名称 Java面向对象程序设计题目设计一个多功能计算器分院电信分院 专业班级 09信管<1>班 学号 20090210450106 蔡炜指导教师黄建华 2011年06月23日

华东交通大学理工学院 课程设计(论文)任务书专业09信管班级 <1>班姓名蔡炜 一、课程设计(论文)题目设计一个多功能计算器 二、课程设计(论文)工作:自 2011 年06 月 13日起至2011年 06 月 23日止。 三、课程设计(论文)的内容要求: 本应用程序继承自框架类(JFrame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button(); b.addActionListener(事件监听器); 事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、清零按钮事件(“C”)。

在事件处理触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。 学生签名: ( ) 2011 年06 月 23 日 课程设计(论文)评阅意见 评阅人职称 20 年月日

Java课程设计说明书要点

1 需求分析 随着21世纪信息化的到来,计算机的应用日益广泛,计算机在代替体力、脑力劳动方面发挥着不可或缺的作用,在工业方面及日常工作中也越来越离不开它。在企业里,要处理大量的数据信息,为了提高员工管理的工作效率,降低操作出错的概率,因而开发出一套员工信息管理系统是很有必要的。员工信息管理系统,可实现了公司员工信息管理系统的电子化,减轻管理人员的工作负担,能够规范、高效地管理大量的劳动人事信息,减小管理成本,提高工作效率,避免人为操作错误和不规范行为。 该软件实现了员工对个人工资的查询以及管理人员对员工信息进行动态管理的功能,例如基本信息的查询,修改,添加,删除;员工工资的查询,修改,添加,删除等。 2 具体功能 (1)新员工注册功能。 (2)员工登陆功能。 (3)员工查看个人工资功能。 (4)管理人员登录功能。 (5)管理人员对员工基本资料的修改,添加,删除,查询功能。 (6)管理人员对员工工资信息的修改,添加,删除,查询功能。 3 系统设计 3.1、功能示意图

系统功能如图3-1所示: 图3-1系统功能图 3.2、数据库设计 本软件数据库类型为MYSQL ,数据库“employee.mdb ”,其中共包含三种表,其一是 登录用户信息表 user (如表3-1),其二是员工基本信息表emps (如表3-2),其三是员工工资信息表salary (如表3-3)。对应的数据库截图分别为:登录用户信息表users 截图(如图3-2),员工基本信息表emps 截图(如图3-3),员工工资信息表salary 截图(如图3-4)。 员工 管理员 个人工资显示 showSalaryFrm.java 登陆界面 loginFrm.java 主界面mainFrm.java 员 工 基 本 信 息 的 删 除 工 资 信 息 的 查 询 工 资 信 息 的 修 改 工 资 信 息 的 删 除 工 资 信 息 的 添 加 员 工 基 本 信 息 的 添 加 员 工 基 本 信 息 的 查 询 员 工 基 本 信 息 的 修 改 版 本 信 息

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

通信工程 数字信号调制课程设计报告

烟台大学 通信工程专业综合课程设计 数字调制系统仿真 院系:光电信息科学技术学院 专业:通信工程 班级:光114-1 姓名:(组长)姜祥乾201157501326 (1号)泮宜志201157504119 (2号)罗志丹201157504122 指导老师:贺鹏飞 2014年11月18 日

一、课程设计原理 (Ⅰ)二进制数字调制 (1)2ASK (二进制振幅键控)调制的原理及产生过程: 振幅键控是利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK 中载波的幅度只有两种变化状态,分别对应二进制信息“0”或“1”。一种常用的、也是最简单的二进制振幅键控方式称为通-断键控,“通-断键控(OOK)”信号表达 式为 波形 1 1 t s T () s t 载波 t t 2ASK 2ASK 信号的一般表达式 其中 Ts - 码元持续时间; g(t) - 持续时间为Ts 的基带脉冲波形,通常假设是高度为1,宽度等于Ts 的矩形脉冲; n a - 第N 个符号的电平取值,若取 则相应的2ASK 信号就是OOK 信号 产生方法通常有两种:模拟调制法(相乘器法)和键控法。 模拟调制法(相乘器法): ?? ?-=”时发送“以概率,”时发送“以概率0P 101P t, Acos )(c OOK ωt e ()t t s t e c ωcos )(2ASK =∑ -=n s n nT t g a t s )()(???-=P 0P 1a n 1,,概率为概率为

乘法器 ) (2t e ASK 二进制不归零信号 t c ωcos ) (t s 键控法: t c ωcos ) (t s ) (2t e ASK 开关电路 (2) 2FSK (二进制频移键控)调制的原理及产生过程:频移键控是利用载波的频率变化来传递数字信息。在2FSK 中,载波的频率随二进制基带信号在f1和f2两个频率点间变化。故其表达式为 典型波形: 1 0t 10 t t 1 ()2FSK a 信号 ()11) cos b s t t ω(()22() cos c s t t ω 由图可见,2FSK 信号的波形(a)可以分解为波形(b)和波形(c ),也就是说,一个2FSK 信号可以看成是两个不同载频的2ASK 信号的叠加。因此,2FSK 信号的时域表达式又可写成 式中 g(t) - 单个矩形脉冲, Ts - 脉冲持续时间; ?? ?++=”时发送“”时发送“0), cos(A 1),cos(A )(212FSK n n t t t e θω?ω)cos()()cos()()(212FSK n n s n n n s n t nT t g a t nT t g a t e θω?ω+???? ??-++??????-=∑ ∑

Java课程设计--个人通讯录管理系统

《JAVA程序设计》课程设计说明书

目录 1 引言 (1) 1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 3.3数据库设计 (5) 4 详细设计与实现 (7) 4.1 登录模块 (7) 4.2 注册新用户模块 (8) 4.3 查询模块 (9) 4.4 添加模块 (11) 4.5 修改模块 (13) 4.6删除模块 (16) 4.7备份模块 (18) 4.8退出模块 (19) 5 小结和展望 (20) 参考文献 (22) 附录 (22) 使用说明书 (22)

1引言 1.1课程设计选题 《个人通讯录管理系统》 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 2.1 功能需求 2.1.1个人通讯录功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

相关文档
最新文档