当前位置:文档之家› 网络编程课程设计报告模版--java

网络编程课程设计报告模版--java

网络编程课程设计报告模版--java
网络编程课程设计报告模版--java

广西大学计算机与电子信息学院

课程报告

( 2015——2016年度第一学期)

名称:网络编程课程设计报告

院系:

班级:

学号:

学生姓名:

指导教师:

成绩:

日期:2016 年 1 月12 日

目录

1. 设计任务 (1)

2. 设计步骤 (1)

2.1 程序设计原理 (1)

2.2 关键代码解释 (2)

3. 遇到的问题及相应解决办法 (17)

4. 个人体会及建议 (17)

参考文献 (18)

1. 设计任务

本次课程设计是一个简单的聊天室,就像上次课程报告一样,不过这次课程设计的聊天室更加的完善,并且用的是java来编程的,这次设计的功能要求有:(1)在服务器端和客户端分别创建一个套接字对象,通过输入输出流连接在一起。套接字调用close()方法关闭双方的套接字连接。

(2)使用多线程处理套接字连接,把服务器端或客户端读取的数据放在一个单独的线程中去进行,防止服务器端或客户端读取数据可能引起的堵塞。服务器端收到一个客户的套接字后,应该启动一个专门为该客户服务的线程。

(3)成功连接后,在图形界面中用户可以根据自己的需要进行不同的操作,如:群聊天、和某一个用户单独聊天(可加入生动的表情描述)、发送文件等。在界面中会显示用户的聊天记录。

2. 设计步骤

2.1 程序设计原理

1、套接字Socket的建立、连接、关闭,客户端和服务器端的输入/输出流的连接。Java中的多线程及线程的常用方法、Runnable接口。基于SWING的图形用户界面设计:布局设计、文本组件、按钮与标签组件、列表组件等。InetAddress类。输入/输出流:文件、文件字节流、文件字符流、缓冲流、数据流。

2、Socket socket = new Socket(String host,int port);客户端创建Socket 对象,host是服务器端的IP地址,port是一个端口号,该对象用于连接服务器。

3、BufferedReader br=new BufferedReader

(new InputStreamReader(socket.getInputStream())); 创建一个使用默认大小输入缓冲区的缓冲字符输入流。该输入流的指向是一个Reader流,Reader流将数据读入缓冲区,BufferedReader再从缓冲区中读取数据。InputStreamReader是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。getInputStream()获取字节输入流。

4、PrintStream ps = new PrintStream(socket.getOutputStream());创建新的打印流,PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。

5、File file = getFile();调用getFile()函数返回一个file的的路径,提示用户输入一个路径,判断是否存在该文件, 如果输入非法给予提示, 重新输入。

6、ps.println(file.getName()); ps.println(file.length());将文件名和大小发送到服务端。

7、String msg = br.readLine();if("已存在".equals(msg)){} 接收服务器发送回来的是否存在的结果. 如果文件已存在, 打印提示, 客户端退出. 如果不存在, 准备开始上传。

8、long finishLen = Long.parseLong(msg); 服务器端文件的长度。

9、FileInputStream fis = new FileInputStream(file); 创建FileInputStream 从文件中读取数据,OutputStream out = socket.getOutputStream();输出字节流,输出流接收输出字节并将这些字节写出到Socket的输出流。

10、fis.skip(finishLen); 从输入流中跳过并丢弃finishLen个字节的数据,即跳过服务端已完成的大小。

11、len = fis.read(byte[] buffer));从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。

12、out.write(byte[] b,int off,int len) 将指定 byte 数组中从偏移量off 开始的 len 个字节写入此输出流。

2.2 关键代码解释

(对设计任务中的核心代码按照功能进行分类介绍。)

服务器端:

package chat;

import https://www.doczj.com/doc/bf15671111.html,.*;

import java.io.*;

import java.util.*;

public class ChatServer{

public static void main(String[] args)throws Exception{

ServerSocket svSocket =null;

Vector threads = new Vector();

try {

svSocket = new ServerSocket(5555);

System.out.println ("listening...");

}catch (Exception ex) {

System.out.println ("Server create ServerSocket failed!");

return;

}

try{

int nid = 0;

while(true){

Socket socket = svSocket.accept();

System.out.println ("accept a client");

ServerThread st = new ServerThread(socket,threads);

st.setID(nid++);

threads.add(st);

new Thread(st).start();

for(int i=0;i < threads.size();i++){

ServerThread temp = (ServerThread)threads.elementAt(i);

}

System.out.println ("Listen again...");

}

}catch(Exception ex){

System.out.println ("server is down");

}

}

}

class ServerThread implements Runnable{

private Vector threads;

private Socket socket = null;

private DataInputStream in = null;

private DataOutputStream out = null;

private int nid;

public ServerThread(Socket socket,Vector threads){

this.socket = socket;

this.threads = threads;

try {

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

}

catch (Exception ex) {

}

}

public void run(){

System.out.println ("Thread is running");

try{

while(true){

String receive = in.readUTF();

if(receive == null) return;

//下线通知

if(receive.contains("黯然下线了")){

for(int i=0;i < threads.size();i++){

ServerThread st = (ServerThread)threads.elementAt(i);

st.write("***"+receive+"***");

}

}

//上线通知

else if(receive.contains("上线了")){

for(int i=0;i < threads.size();i++){

ServerThread st = (ServerThread)threads.elementAt(i);

st.write("<"+getID()+">: "+receive);

}

}

//作为服务器监听中

else if(receive.contains("监听中")){

for(int i=0;i < threads.size();i++){

ServerThread st = (ServerThread)threads.elementAt(i);

st.write("***"+receive+"*** ");

}

}

//发送消息

else if(receive.contains("说")){

//发送广播消息

if(receive.contains("大家")){

for(int i=0;i < threads.size();i++){

ServerThread st = (ServerThread)threads.elementAt(i);

st.write("<"+getID()+">: "+receive);

}

}

//发送指定消息

else{

int temp=receive.indexOf("<");

int temp1=receive.indexOf(">");

//获得接收者ID号

String tempS=receive.substring(temp+1,temp1);

int i=Integer.parseInt(tempS);

//指定接收者输出

ServerThread st = (ServerThread)threads.elementAt(i);

st.write("<"+getID()+">: "+receive);

//发送者自己也输出

st = (ServerThread)threads.elementAt(getID());

st.write("<"+getID()+">: "+receive);

}

}

else{

ServerThread st = (ServerThread)threads.elementAt(getID());

st.write("***"+receive+"***");

}

}

}catch(Exception ex){

threads.removeElement(this);

ex.printStackTrace();

}

try{

socket.close();

}catch(Exception ex){

ex.printStackTrace();

}

}

public void write(String msg){

synchronized(out){

try{

out.writeUTF(msg);

}catch(Exception ex){

}

}

}

public int getID(){

return this.nid;

}

public void setID(int nid){

this.nid = nid;

}

}

服务器端的文件传送:

package chat;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintStream;

import https://www.doczj.com/doc/bf15671111.html,.ServerSocket;

import https://www.doczj.com/doc/bf15671111.html,.Socket;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.JOptionPane;

public class filesendServer{

public void filereceive() throws Exception{

//1.创建ServerSocket, 在循环中接收客户端请求, 每接收到一个请求就开启新线程处理

ServerSocket serverSocket = new ServerSocket(1234);

JOptionPane.showMessageDialog(null,"服务已启动,绑定1234端口!");

while(true){

Socket socket = serverSocket.accept();

new fileServerThread(socket).start();

}

}

}

class fileServerThread extends Thread{

Socket socket;

public fileServerThread(Socket socket) {

this.socket = socket;

}

public void run() {

FileOutputStream fos = null;

try {

//3.获取输入输出流

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

PrintStream ps = new PrintStream(socket.getOutputStream());

//7.接收文件, 查找是否存在. 如果存在, 给写一个消息给客户端, 服务端线程结束. 如果不存在, 写消息给客户端, 准备开始上传.

String fileName = br.readLine();

long fileLen = Long.parseLong(br.readLine());

File dir = new File("upload");

dir.mkdir();

File file = new File(dir,fileName);

if(file.exists() && file.length() == fileLen){ // 文件已存在, length()即为文件大小, 文件不存在length()为0

ps.println("已存在");

return;

}

else{

ps.println(file.length()); // 文件已存在, length()即为文件大小, 文件不存在length()为0

}

//10.从Socket的输入流中读取数据, 创建FileOutputStream写出到文件中

String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

System.out.println(time + " "+ (file.exists() ? " 开始断点续传: " : " 开始上传文件: ") + file.getName());

long start = System.currentTimeMillis();

InputStream in = socket.getInputStream();

fos = new FileOutputStream(file, true); // 文件存在就追加, 文件不存在则创建

byte[] buffer = new byte[1024];

int len;

while((len = in.read(buffer)) != -1){ //这个地方会堵塞,如果客服端没有关闭socket.服务器端读不到流末尾(-1)

fos.write(buffer, 0, len);

if(file.length() == fileLen) // 文件大小等于客户端文件大小时, 代表上传完毕

break;

}

fos.close();

long end = System.currentTimeMillis();

time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

System.out.println(time + " " + " 上传文件结束: " + file.getName() + ", 耗时: " + (end - start) + "毫秒");

ps.println("上传成功");

socket.close();

} catch (IOException e) {

if(fos != null)

try {

fos.close();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

客户端的界面设计:

package chat;

import java.awt.*;

import java.io.*;

import https://www.doczj.com/doc/bf15671111.html,.*;

import java.awt.event.*;

import javax.swing.*;

public class Client

{

public static void main(String args[])

{

new ChatClient();

}

}

class ChatClient extends Frame implements ActionListener, Runnable{ private static final long serialVersionUID = -4149839042245330513L;

public Button listen,connection,sendtoall,sendtoone,exit,filesend;

public JComboBox emote;

public TextField inputName,inputContent;

public TextArea chatResult;

public Socket socket=null;

public DataInputStream in=null;

public DataOutputStream out=null;

public Thread thread;

ChatClient()

{

socket=new Socket();

Box box1=Box.createHorizontalBox();

listen=new Button("作为服务器监听");

connection=new Button("连接服务器");

filesend=new Button("发送文件");

exit=new Button("退出");

sendtoall=new Button("群聊");

sendtoone=new Button("私聊");

listen.setEnabled(false);

filesend.setEnabled(false);

sendtoall.setEnabled(false);

sendtoone.setEnabled(false);

inputName=new TextField(6);

inputName.setBackground(new Color(162,231,250));

inputContent=new TextField(22);

inputContent.setBackground(new Color(162,231,250));

chatResult= new TextArea("", 17,20,TextArea.SCROLLBARS_VERTICAL_ONLY);

chatResult.setBackground(new Color(162,231,250));

JLabel jlname=new JLabel("输入昵称");

box1.add(jlname);

box1.add(inputName);

box1.add(listen);

box1.add(connection);

box1.add(filesend);

box1.add(exit);

Box box2=Box.createHorizontalBox();

emote = new JComboBox();

emote.setModel(new DefaultComboBoxModel(new String[] { "表情", "微笑",

"甜笑", "惊喜", "嘻嘻", "扮酷", "嘿嘿", "傻笑", "好奇", "媚眼", "鬼脸", "陶醉",

"害羞", "生气", "嚷嚷", "发怒", "伤心", "高明", "菜鸟", "问号", "

狂笑", "大哭",

"示爱", "呻吟", "想想" }));

emote.setEnabled(false);

JLabel jlintput = new JLabel("输入聊天内容");

box2.add(jlintput);

box2.add(inputContent);

box2.add(emote);

box2.add(sendtoall);

box2.add(sendtoone);

listen.addActionListener(this);

connection.addActionListener(this);

filesend.addActionListener(this);

exit.addActionListener(this);

sendtoall.addActionListener(this);

sendtoone.addActionListener(this);

Box box3=Box.createHorizontalBox();

box3.add(chatResult);

thread=new Thread(this);

Box box0=Box.createVerticalBox();

box0.add(Box.createVerticalStrut(10));

box0.add(box1);

box0.add(Box.createVerticalStrut(10));

box0.add(box3);

box0.add(Box.createVerticalStrut(10));

box0.add(box2);

box0.add(Box.createVerticalStrut(10));

add(box0);

setBounds(10,30,500,400);

setBackground(new Color(80,212,248));

setVisible(true);

validate();

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

try {

socket.close();

} catch (IOException e1) {

e1.printStackTrace();

}

}

});

}

public void actionPerformed(ActionEvent e) {

ActionProcess actionProcess=new ActionProcess(this);

try {

actionProcess.action(e);

} catch (Exception e1) {

e1.printStackTrace();

}

}

public void run()

{

String s=null;

while(true)

{

try

{

s=in.readUTF();

chatResult.append("\n"+s);

}

catch(IOException e)

{

chatResult.setText("与服务器断开连接");

try

{

socket.close();

}

catch(Exception ep){}

break;

}

}

}

}

客户端的界面事件处理:

package chat;

import java.awt.event.ActionEvent;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import https://www.doczj.com/doc/bf15671111.html,.*;

import javax.swing.JOptionPane;

public class ActionProcess implements Runnable { private ChatClient client;

String name="";

String sendtoname="";

String sendtoID;

String filename="";

String filepath="";

public ActionProcess(ChatClient client) {

this.client=client;

}

public void action(ActionEvent e)throws Exception{

if(e.getSource()==client.connection)

{

try

{

if(client.socket.isConnected()){}

else

{

String addr=JOptionPane.showInputDialog("请输入服务器IP:");

InetAddress address=InetAddress.getByName(addr);

InetSocketAddress socketAddress=new InetSocketAddress(address,5555);

client.socket.connect(socketAddress);

client.in=new

DataInputStream(client.socket.getInputStream());

client.out=new

DataOutputStream(client.socket.getOutputStream());

name=client.inputName.getText();

client.out.writeUTF("姓名为"+name+"的朋友风尘仆仆地上线了...");

client.listen.setEnabled(true);

client.filesend.setEnabled(true);

client.sendtoall.setEnabled(true);

client.sendtoone.setEnabled(true);

client.emote.setEnabled(true);

if(!(client.thread.isAlive()))

client.thread=new Thread(this);

client.thread.start();

}

}

catch(IOException ee){}

}

if(e.getSource()==client.listen)

{

try

{

name=client.inputName.getText();

client.out.writeUTF("姓名为"+name+"的朋友正在监听中...");

filesendServer filesendserver=new filesendServer();

filesendserver.filereceive();

}

catch (Exception ee) {

ee.printStackTrace();

}

}

if(e.getSource()==client.filesend){

if(client.socket.isConnected())

try {

filesendClient filesendclient=new filesendClient();

filesendclient.filesend();

client.out.writeUTF("成功发送文件!");

}catch (Exception ee){}

}

if(e.getSource()==client.exit)

{ if(client.socket.isConnected())

try {

name=client.inputName.getText();

client.out.writeUTF("姓名为"+name+"的朋友黯然下线了...");

client.out.flush();

client.out.close();

client.socket.close();

} catch (IOException e1) {

e1.printStackTrace();

}

System.exit(0);

}

String em=client.emote.getSelectedItem().toString();

if (em.equals("表情")) {

em = "";

} else {

em += "着";

}

if(e.getSource()==client.sendtoall)

{

if(client.socket.isConnected()){

name=client.inputName.getText();

String s=client.inputContent.getText();

if(s!=null)

{

try

{

client.out.writeUTF(name+em+"对大家说:"+s);

client.out.flush();

client.inputContent.setText("");

}

catch(IOException e1){}

}

}

}

if(e.getSource()==client.sendtoone)

{

if(client.socket.isConnected()){

sendtoID=JOptionPane.showInputDialog("请输入对方ID:");

sendtoname=JOptionPane.showInputDialog("请输入对方姓名:");

String s=client.inputContent.getText();

name=client.inputName.getText();

if(s!=null)

{

try

{

client.out.writeUTF(name+"悄悄地"+em+"对<"+sendtoID+">"+sendtoname+"说:"+s);

client.out.flush();

client.inputContent.setText("");

}

catch(IOException e1){}

}

}

}

}

public void run()

{

String s=null;

while(true)

{

try

{

s=client.in.readUTF();

client.chatResult.append("\n"+s);

}

catch(IOException e)

{

client.chatResult.setText("与服务器断开连接");

try

{

client.socket.close();

}

catch(Exception ep){}

break;

}

}

}

}

客户端的文件接收:

package chat;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintStream;

import https://www.doczj.com/doc/bf15671111.html,.Socket;

import javax.swing.JOptionPane;

public class filesendClient {

public void filesend() throws Exception{

//1.创建Socket, 指定服务端IP地址和端口号, 连接服务器

String sendtoIP=JOptionPane.showInputDialog("请输入对方IP:");

Socket socket = new Socket(sendtoIP, 1234);

//2.获取输入输出流

BufferedReader br = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

PrintStream ps = new PrintStream(socket.getOutputStream());

//3.提示用户输入一个路径,判断是否存在是否是文件, 如果输入非法给予提示, 重新输入

File file = getFile();

//4.将文件名和大小发送到服务端

ps.println(file.getName());

ps.println(file.length());

//5.接收服务器发送回来的是否存在的结果. 如果文件已存在, 打印提示, 客户端退出. 如果不存在, 准备开始上传.

String msg = br.readLine();

if("已存在".equals(msg)){

JOptionPane.showMessageDialog(null,"文件已存在,请不要重复上传!");

return;

}

long finishLen = Long.parseLong(msg); // 服务器端文件的长度

//6.创建FileInputStream从文件中读取数据, 写出到Socket的输出流

FileInputStream fis = new FileInputStream(file);

OutputStream out = socket.getOutputStream();

byte[] buffer = new byte[1024];

int len;

fis.skip(finishLen); // 跳过服务端已完成的大小

while((len = fis.read(buffer)) != -1)

out.write(buffer, 0, len);

fis.close();

socket.close();

}

public File getFile() throws Exception{ //得到文件的方法

File file=null;

boolean flag=false;

while(flag==false){

String filepath=JOptionPane.showInputDialog("请输入要上传的路径:");

file = new File(filepath);

if(!file.exists()){

JOptionPane.showMessageDialog(null,"您输入的路径不存在,请重新输入!");

flag=false;

}

else if(file.isDirectory()){

JOptionPane.showMessageDialog(null,"占不支持文件夹上传!请输入一个文件路径!");

flag=false;

}

else flag=true;

}

return file;

}

}

实验截图:

3. 遇到的问题及相应解决办法

本次编程的主要问题是界面的编程。因为有了上次的实验做基础,在设计Socket 等方面没什么问题。但是界面的设计因为没动过手,因此比较陌生,在设计过程出了很多问题,也查了很多书,最后也成功地解决问题。

4. 个人体会及建议

通过这次课程设计,使我对网络编程和java有了更进一步的认识和了解,也让我学会了界面制作的一些知识。要想学好网络编程要重在实践,必须通过不断的实践操作才能更好地掌握它。我也发现我的好多不足之处,首先是自己在基础上还不行,经常出错,通过学习已有所改进;再有对java的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对java中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习java,还是其它的语言和学科,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机。如果要我自评分,我给自己打70分。

通过上网查询收集资料和同学的交流,让我觉得要完成一个任务,一个人悄无声息

是很难做好的,和同学交流研究会使我们获得更多,也能使自己少走许多弯路,事半功倍。这给我启示,学习一定要勇于实践,虚心请教。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!

参考文献

[1] 电子工业出版社《JA V A程序设计实用教程》,叶核亚编著考资料

[2] 清华大学出版社《Java程序设计与实践教程》,王微,董迎红著

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算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

java课程设计报告书封面格式

存档资料成绩: 广西师范大学漓江学院 课程设计报告书 课程名称:面向对象程序设计课程设计 设计题目:多功能计算器 所在系部:理学系 班级:11计算机 学号: 学生姓名: 指导教师: 2012年12 月25 日

课程设计(论文)评阅意见 序号项目 等级 优秀良好中等及格不及格 1 课程设计态度及出勤情况 2 任务完成程度 3 设计中创新性 4 论文书写规范化 综合评定等级 课程设计软件演示及答辩成绩 序号项目 等级 优秀良好中等及格不及格 1 演示过程完成情况 2 对软件代码熟悉情况 3 回答问题准确性和逻辑性 综合评定等级 课程设计软件界面及功能设计成绩 序号项目 等级 优秀良好中等及格不及格 1 界面美观及可操作性 2 功能实现情况及创新性 3 代码的可读性和可维护性 综合评定等级 评阅人 年月日

课程设计任务书 一、本课程设计的目的 1.使学生能够更好地掌握Java程序设计语言和理解面向对象程序设计的基本概念与方法; 2.掌握类和对象的创建和使用,理解面向对象的封装性、继承性、多态性和面向接口编程的程序设计思想,学会利用Java语言和面向对象编程方法解决一般应用问题; 3.从实践中累积经验、培养学生分析、解决问题的能力; 4.提高学生实践论文撰写能力。 二、课程设计的教学过程与考核方法 1.课程设计以小项目的方式开展,以分组(1-2人一组)的形式进行。 2.第一次实验课时,任课教师下达课程设计题目任务,讲解课程设计的题目要求和注意事项,并要求学生根据题目要求进行界面的设计和功能代码编写工作,完成课程设计报告。 3.课程设计实验进行过程中,教师根据实验的进度分模块讲述课程设计题目的设计要点。教师给予技术和方法上的指导,让每个学生自己动手完成项目,并要求学生积极开展逻辑思维,充分发挥自己的创意,设计出优秀的课程设计作品。 4.课程设计结束后,要求学生完成课程设计报告,课程设计报告需包括目录、设计目标、实现思路、实现步骤、总结、参考文献、附录等; 5.最后需上交课程设计报告和设计的软件作品,并进行软件设计作品的演示和答辩。

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 无

网络程序课程设计报告模版

《高级网络程序设计》 课程设计报告 题目FTP文件传输协议学号11102410 姓名倪福柱 计算机网络工程教研室 2015年01月12 日

目录 一、实验目的……………………………………………………… 二、实验内容和要求……………………………………………….. 1、实验内容…………………………………………………….. 2、具体要求…………………………………………………….. 三、需要完成的的内容………………………………………………………… 1.FTP系统模型……………………………………………………………. 2. 系统功能设计…………………………………………………………… 2.1总体设计…………………………………………………………... 2.2系统实现…………………………………………………………… 四、具体实现步骤……………………………………………………………….. 1. FTPClient用户界面的实现………………………………………………. 2. FTPClient控制连接的实现………………………………………………. 3. FTPClient数据传输连接的实现…………………………………………. 3.1下载文件操作……………………………………………………….. 3.1下载文件操作……………………………………………………….. 3.3显示服务器的路径………………………………………………….. 3.4进入服务器更改路径……………………………………………….. 4. FTPServer控制连接的实现……………………………………………… 5. FTPServer数据传输线程的实现………………………………………… 5.1读取本地文件下载给客户端………………………………………… 5.2接收客户端的上传的文件…………………………………………… 5.3获取服务器本地系统路径…………………………………………… 五、实验结果……………………………………………………………………. 六、实验心得…………………………………………………………………….

java课程设计报告

《Java程序设计》课程设计报告 题目:万年历 学院:数学与统计 专业:信计 学生姓名:梦超然 学号:101428717522 指导教师:李志新 2017年7月9 日

1需求分析 1.1需求分析 本程序的要求为: (1)能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。 (2)能够按照月份格式显示,或按照星期格式显示。 (3)能够显示系统时间。 (4)能够设置闹钟。 (5)能够查询若干国际大城市(分布在不同时区)的时间。 1.2功能设计 本程序要构建的万年历程序,其功能有以下几个方面: 一、设计程序运行界面,具有显示各种功能的面板模块,并对各功能按钮就行时间监听; 二、程序需要显示1800年到2100年的日历,包括公历、农历、时间所对应的星期。要求系统能够从界面上的操作获取公历日期,计算其所对应的星期和相应的农历并显示到界面上; 三、程序要求显示系统时间,并能设置闹铃。要求可以自己设置一个时间点,在这一时间点做出相应的响应; 四、查询显示若干国际城市不同时区的时间,这里只需要调用Java的系统里就可以解决。 五、对时间的更新,日历显示要求关联系统时间,能在进入程序时显示系统时间对应的日历,并能返回当天日历; 六、程序界面的美观设计和人性化结构,要求具有良好的人机交互,容易理解界面内容,易操作; 七、就现在的水平来说,功能1、2、3、5是可以实现,功能4 有待研究,可能遇到的问题是按钮对时间的监听处理可能难度较大,还有就是在公历转农历中可能比较难获取相应的公历变化日期。 2.概要设计 2.1程序设计思路 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是 闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令

Java课程设计

武汉科技大学城市学院 课程设计报告 课程设计名称JAVA程序设计课程设计 题目 A C M 院系信息工程学部 专业软件工程 班级 姓名 指导教师 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

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位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

程序设计报告模板

北京化工大学计算机科学与技术专业2014程序设计实训报告 题目:个人记账软件 专业:计算机科学与技术 班级:计科1305 指导教师:江志英

2014程序设计实训任务书

目录 2014程序设计实训任务书...................................... 错误!未定义书签。目录..................................................... 错误!未定义书签。第一章需求分析.............................................. 错误!未定义书签。 引言............................................... 错误!未定义书签。 任务概述........................................... 错误!未定义书签。 数据描述........................................... 错误!未定义书签。 功能需求........................................... 错误!未定义书签。 运行需求........................................... 错误!未定义书签。 任务计划........................................... 错误!未定义书签。第二章概要设计.............................................. 错误!未定义书签。 总体设计........................................... 错误!未定义书签。 面向对象设计....................................... 错误!未定义书签。 运行界面设计....................................... 错误!未定义书签。第三章详细设计.............................................. 错误!未定义书签。 ........................................................ 错误!未定义书签。第四章测试分析............................................. 错误!未定义书签。第五章用户手册(可选)..................................... 错误!未定义书签。第六章课程设计总结.......................................... 错误!未定义书签。附录:程序代码(仅电子版需要、纸质版不需要)................. 错误!未定义书签。

java课程设计报告材料-俄罗斯方块

JAVA程序设计课程设计 之 俄罗斯方块 年级:13级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋

时间:2015年11月11日 目录 摘要................................................................. 第一章课程设计要求.................................................. 第二章设计概要...................................................... 2.1 功能设计...................................................... 2.2 功能分析...................................................... 2.2.1 系统操作界面............................................... 2.2.2 程序主要功能说明........................................... 第三章调试分析与测试结果............................................ 3.1 游戏运行界面.................................................. 3.2 测试项目...................................................... 3.2.1 功能区按键测试............................................ 3.2.2 键盘功能测试.............................................. 3.2.3 游戏结束测试.............................................. 第四章设计总结...................................................... 4.1 改进意见...................................................... 4.2 《Java课程设计》心得体会 ......................................

Javawebapp课程设计报告

《电子商务网站》课程设计报告 项目题目电子拍卖平台系统分析与设计 学生姓名 班级/ 学号 专业\ 指导教师 2011年10月制

1、系统概述 本系统实现的是一个网上拍卖系统,可以实现在线登录,注册;卖家上货,买家出价竞拍;拍卖商品列表、商品拍卖信息和商品搜索等功能,普通的Internet用户可以通过该系统注册成为会员后可以上传自己拍卖的产品和竞拍卖价的商品。 2、网站结构分析与设计 2.1目标设计 竞拍网站所要实现的功能如下。 会员注册:会员注册信息和会员登录验证 会员管理:会员资金管理 买家信息管理 卖家信息管理 2.2系统功能分析设计 竞拍网共分为三个模块:会员注册模块、会员个人管理模块和商品列表和搜索模块。其功能模块划分如图所示:

2.3数据库结构设计 根据系统功能的设计要求和模块划分,表结构设计如下:

2.4 数据库需求分析 数据项和数据结构如下。 会员信息表:自动编号、用户名、密码和身份证号码、资金、日期 商品信息表:自动编号、商品名、上传人、商品详情 卖家信息表:会员编号、商品编号、商品价格、截止时间 商品竞拍成功信息列表:商品名、用户名、竞拍时间、起初价格、最终价格、最成交时间 2.5、开发环境 开发工具:myeclipse 服务器软件:tomcat 数据库:MySQL 3.网站详细设计. 3.1网站流程设计

3.2数据库功能设计 三个存储过程: Onsell:展示拍卖信息,返回当时拍卖的所有信息; Buyingshow:展示某个商品详细信息 Buying:当用户竟拍是执行. 3.3 JA VA控制层设置 POJO包:与每一项功能相对应,设置对象类 DAO包:所有连接数据库的代码 Servlet:所有前台页面的操作过程. 3.4前台设计 以JSP为主,辅助以JS的主流技术,实现网页的动态效果和数据的动态接收,这里是项目最困难的地方. 4.网站的实施 前台\后台\控制分布实施: 4.1,初步软件结构实施 其中DAO包里全部是与数据库有关的连接数据库模式。 POJO包里全部是业务需要的数据结构类。 SERVLET包里全部是逻辑控制的控制模式。

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算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

图书管理程序课程设计报告模板

北京理工大学珠海学院课程设计说明书 _2011_—_2012_学年第_2_学期 题目: 图书管理程序 学院:计算机学院 专业班级: 11计算机科学与技术X班 学号: XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX 学生姓名:xx XX 指导教师: XXX 成绩: 时间: XXXX 年 X 月 xX 日

北京理工大学珠海学院 课程设计任务书 2011 ~2012 学年第 2 学期 学生姓名: XXXXX 专业班级: XX计算机科学与技术XX 班 指导教师: XXXXX 工作部门:计算机学院 一、课程设计题目 图书管理程序 二、课程设计内容 使用文本命令行界面;用文件保存图书馆里的图书信息;能实现图书信息的增、删、改、查等功能。 三、进度安排 (1)1-2学时,选定题目、分析需求、理解需求; (2)3-4学时,程序设计,定义数据类型、数据处理方式; (3)5-10学时,编写程序、调试、测试; (4)11-12学时,编写设计报告; (5)13-16学时,答辩。 四、基本要求 (1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分) (4)建立文件操作类、界面显示类及相关接口类,用文件读写实现。 (5)写出课程设计报告,应不少于3000字(不含附录),同一组学生只需提交1份,但必须在报告中列明分工。

课程负责人签名: XXXX年 X月 XX日

课程设计分工安排

课程设计成绩评定表

图书管理程序 摘要 二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书,如何把图书管理员从繁重的工作中解脱出来呢? 科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。 关键词:图书管理系统工程信息管理系统 VC++

javaEE课程设计报告35858

课程设计 课程名称:JAVAEE/.NET课程设计设计题目:校园超市商品信息管理系统学院:信息工程与自动化学院 专业:计算机科学与技术 年级:2011年级 学生姓名: 指导教师: 日期:2014-6-30——2014-7-11 教务处制

课程设计任务书 信息工程与自动化学院计算机科学与技术专业2011 年级学生姓名:张建兴 课程设计题目:校园超市商品信息管理系统 课程设计主要内容: 本次课程设计自主完成一个系统,题目学生自定。我设计的是一个校园超市商品信息管理系统,是一个小型系统,适用于一些小型超市,对库存商品,售出商品,日常业务进行管理。主要采用jsp+servlet+数据库配合的方式工作。Jsp 负责页面显示,servlet处理逻辑业务,后台数据库采用mysql数据库。用到连接数据库,对数据库的操作,servlet跳转,实现部件之间的合作,前台(jsp)获取并显示后台(数据库)数据,或者后台(数据库)获取并存储前台数据。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

摘要 本次课程设计题目有学生自定,学生可以受日常学习生活启发来设计一个系统。这次课程设计主要要求学生掌握javaEE网络编程,老师要求学生自主完成规模不限的系统,自定题目,自主设计。对于这次课程设计,我把它当做一次实践的机会,设计过程中希望通过跟同学讨论,提问老师等方式使自己得到提升,毕竟平时自己一个人琢磨很难解决一些问题,也很难提高技巧。之前对于MVC 编程方法的逻辑不是那么清晰,很难衔接好各个层之间的接口。如果时间足够,希望这一次通过各种方法,在采用MVC的编程思想的前提下,自己完成一个完整的系统。这一次我自主设计并完成了校园超市商品信息管理系统,旨在复习javaEE/.net的知识,并从这一次实践中获得技术的提升。熟练编程中的一些技巧和编程中常见的错误 每个校园内都会有好几个小型的超市,虽然说是小型,但也提供了上万学生日常所需的任何商品,在我印象中在校园里的超市能找到你所需要的一切。超市的商品肯定很多,零零碎碎很繁杂,难管理,所以一个管理超市商品信息和业务的系统根由必要。可以减轻店员的工作量,提高效率。 超市商品信息管理系统是一个规划管理超市商品的价格,库存,利润和日常的一些业务的一个小型系统,适用于一些小型超市。它包括三个主要功能:库存商品管理,售出商品管理和日常业务管理。在这三大功能下又各自包括对商品的添加,查询和删除等功能。是一个小型,便捷地系统。

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

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 年月日

Web程序设计课程设计报告模板

Web程序设计课程设计报告课程设计题目:某电子杂志网站 姓名:肖琴霞 专业:软件工程(国际教育) 班级:10211133 学号:1021113321 指导教师:吴光明 2013 年 3 月 10 日

一、设计目的 《Web应用开发课程设计》是实践性教学环节之一,是《Web程序设计》课程的辅助教学课程。通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本概念、原理和技术,将理论与实际相结合,应用现有的开发工具,规范、科学地完成一个完整地应用软件的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正使得计算机被广泛的应用于信息管理系统。计算机的最大好处在于利用它能够进行信息管理和查询。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。制作电子杂志网站可以方便读者阅读,且可以扩大读者的视野以及提高阅历。 二、设计解决方案 问题解决方案: 经过分析,我们决定利用ASP编程,使用Dreamweaver MX作前端开发工具,利用SQLServer2000作后台数据库管理,数据库驱动使用ADO。 前台功能模块:系统主界面与登录程序设计,杂志查询及订阅,读者服务模块,杂志分类设计等。 后台功能模块:管理主界面与登录程序设计,最新杂志信息管理模块,杂志订阅管理模块,在留言管理模块设计等。后台管理的建立,使管理员可以通过后台很容易的对杂志城进行管理,比如:对最畅销杂志,公告和杂志城注册用户进行添加,删除等管理工作,还可以对读者在线留言的处理。 三、电子杂志网需求分析 3.1 需求分析 需求分析是整个设计过程的基础,最困难、最消耗时间的一步。它的最终结果是提供

javaEE课程设计报告

课程设计 课程名称: JAVAEE/.NET课程设计 设计题目:校园超市商品信息管理系统 学院:信息工程与自动化学院 专业:计算机科学与技术 年级: 2011年级 学生姓名: 指导教师: 日期: 2014-6-30——2014-7-11 教务处制

课程设计任务书 信息工程与自动化学院计算机科学与技术专业 2011 年级学生姓名:张建兴 课程设计题目:校园超市商品信息管理系统 课程设计主要内容: 本次课程设计自主完成一个系统,题目学生自定。我设计的是一个校园超市商品信息管理系统,是一个小型系统,适用于一些小型超市,对库存商品,售出商品,日常业务进行管理。主要采用jsp+servlet+数据库配合的方式工作。Jsp 负责页面显示,servlet处理逻辑业务,后台数据库采用mysql数据库。用到连接数据库,对数据库的操作,servlet跳转,实现部件之间的合作,前台(jsp)获取并显示后台(数据库)数据,或者后台(数据库)获取并存储前台数据。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

摘要 本次课程设计题目有学生自定,学生可以受日常学习生活启发来设计一个系统。这次课程设计主要要求学生掌握javaEE网络编程,老师要求学生自主完成规模不限的系统,自定题目,自主设计。对于这次课程设计,我把它当做一次实践的机会,设计过程中希望通过跟同学讨论,提问老师等方式使自己得到提升,毕竟平时自己一个人琢磨很难解决一些问题,也很难提高技巧。之前对于MVC 编程方法的逻辑不是那么清晰,很难衔接好各个层之间的接口。如果时间足够,希望这一次通过各种方法,在采用MVC的编程思想的前提下,自己完成一个完整的系统。这一次我自主设计并完成了校园超市商品信息管理系统,旨在复习javaEE/.net的知识,并从这一次实践中获得技术的提升。熟练编程中的一些技巧和编程中常见的错误 每个校园内都会有好几个小型的超市,虽然说是小型,但也提供了上万学生日常所需的任何商品,在我印象中在校园里的超市能找到你所需要的一切。超市的商品肯定很多,零零碎碎很繁杂,难管理,所以一个管理超市商品信息和业务的系统根由必要。可以减轻店员的工作量,提高效率。 超市商品信息管理系统是一个规划管理超市商品的价格,库存,利润和日常的一些业务的一个小型系统,适用于一些小型超市。它包括三个主要功能:库存商品管理,售出商品管理和日常业务管理。在这三大功能下又各自包括对商品的添加,查询和删除等功能。是一个小型,便捷地系统。 关键字:超市,管理商品,业务,功能

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

相关主题
文本预览
相关文档 最新文档