第一篇:Java程序設(shè)計(jì)課程設(shè)計(jì)學(xué)生考勤系統(tǒng)
信息與電子工程學(xué)院
課程設(shè)計(jì)報(bào)告
課程名稱:
姓名: 學(xué)號(hào): 班級(jí): 指導(dǎo)老師: 完成時(shí)間:
2016年6月 Java程序設(shè)計(jì)課程設(shè)計(jì)
學(xué)生考勤系統(tǒng)
問題描述:
以班為單位,可以以日期為標(biāo)識(shí)記錄每個(gè)學(xué)生的考勤情況(正常、曠課、請(qǐng)假、遲到、早退)、可以查看某個(gè)學(xué)生的考勤情況、可以查看全班的考勤情況.1.需求分析(標(biāo)題,黑體,小四,段前段后0.5行)
(1)用戶需求描述:
學(xué)生用戶:學(xué)生對(duì)本系統(tǒng)的主要需求是在線請(qǐng)假以及查看學(xué)期內(nèi)的上課出勤信息。在線請(qǐng)假中,學(xué)生可以隨時(shí)查看請(qǐng)假的進(jìn)展情況。另外學(xué)生還可以修改本人的密碼。
教師用戶:任課老師對(duì)本系統(tǒng)的主要需求是查看班級(jí)信息,查看學(xué)生信息。并且在上課前進(jìn)行點(diǎn)名,管理所教班級(jí)學(xué)生的上課出勤信息,查看學(xué)生上課出勤情況,對(duì)學(xué)生請(qǐng)假審請(qǐng)進(jìn)行批準(zhǔn)等。另外,教師還可以修改自己的密碼。(2)系統(tǒng)功能劃分: 根據(jù)用戶需求的描述,該考勤管理系統(tǒng)應(yīng)該具備:在線請(qǐng)假模塊,考勤管理模塊這兩大模塊。
在線請(qǐng)假模塊:
該模塊主要操作用戶是由學(xué)生,由學(xué)生登錄并進(jìn)行請(qǐng)假操作。可以選擇請(qǐng)假開始時(shí)間,請(qǐng)假結(jié)束時(shí)間,請(qǐng)假的原因等,最后提交由教師和輔導(dǎo)員進(jìn)行審核審批,審核通過后學(xué)生可以在請(qǐng)假記錄里面實(shí)時(shí)查看請(qǐng)假通過情況。若教師或輔導(dǎo)員不允許該請(qǐng)假,學(xué)生可以在請(qǐng)假失敗記錄里面查看具體原因。
考勤管理模塊:
該模塊主要由教師登錄并進(jìn)行操作,自己操作界面中修改學(xué)生考勤。老師在上課時(shí)通過該模塊可以對(duì)本課程考勤情況進(jìn)行網(wǎng)上考勤,考勤結(jié)果會(huì)保存在后臺(tái),也可以通過選擇導(dǎo)出為E表格,最后方便統(tǒng)計(jì)整個(gè)學(xué)期本課程所有學(xué)生的考勤情況。
2.總體設(shè)計(jì)
功能結(jié)構(gòu)圖;
ER圖:
數(shù)據(jù)庫(kù)設(shè)計(jì): 1 數(shù)據(jù)庫(kù)需求分析
學(xué)生考勤管理系統(tǒng)要實(shí)現(xiàn)在線請(qǐng)假、隨堂考勤兩大子系統(tǒng),需要了解學(xué)生用戶、教師用戶兩類用戶的功能模塊。然后,據(jù)此分析出數(shù)據(jù)需求。學(xué)生表:學(xué)生流水號(hào)、學(xué)生學(xué)號(hào)、學(xué)生名字、性別、宿舍號(hào)、聯(lián)系方式、密碼。請(qǐng)假表:請(qǐng)假開始時(shí)間、請(qǐng)假結(jié)束時(shí)間、請(qǐng)假原因、請(qǐng)假天數(shù)、審批時(shí)間。考勤表:考勤流水號(hào)、考勤的學(xué)生ID、考勤的課程ID、考勤時(shí)間、考勤課次、考勤結(jié)果。
3.主要功能的實(shí)現(xiàn)
(1)設(shè)計(jì)的思路: 根據(jù)用戶需求的描述,該考勤管理系統(tǒng)應(yīng)該具備:在線請(qǐng)假模塊,考勤管理模塊這三大模塊。
在線請(qǐng)假模塊:
該模塊主要操作用戶是由學(xué)生,由學(xué)生登錄并進(jìn)行請(qǐng)假操作。可以選擇請(qǐng)假開始時(shí)間,請(qǐng)假結(jié)束時(shí)間,請(qǐng)假的原因等,最后提交由教師和輔導(dǎo)員進(jìn)行審核審批,審核通過后學(xué)生可以在請(qǐng)假記錄里面實(shí)時(shí)查看請(qǐng)假通過情況。若教師或輔導(dǎo)員不允許該請(qǐng)假,學(xué)生可以在請(qǐng)假失敗記錄里面查看具體原因。
考勤管理模塊:
該模塊主要由教師登錄并進(jìn)行操作,自己操作界面中修改學(xué)生考勤。老師在上課時(shí)通過該模塊可以對(duì)本課程考勤情況進(jìn)行網(wǎng)上考勤,考勤結(jié)果會(huì)保存在后臺(tái),也可以通過選擇導(dǎo)出為E表格,最后方便統(tǒng)計(jì)整個(gè)學(xué)期本課程所有學(xué)生的考勤情況。用戶信息修改模塊: 該模塊主要操作用戶是由學(xué)生和老師,由用戶登錄并進(jìn)行操作。選擇修改用戶密碼,驗(yàn)證舊的用戶密碼,輸入新的用戶密碼,并且重復(fù)確認(rèn)輸入,點(diǎn)擊確定之后,系統(tǒng)修改用戶信息并保存。
(2)算法流程圖:
(3)UML時(shí)序圖:
學(xué)生輸入用戶名和密碼,系統(tǒng)驗(yàn)證用戶名和密碼是否正確,如果正確,顯示系統(tǒng)主頁(yè)面。(4)活動(dòng)圖:
學(xué)生登陸系統(tǒng)點(diǎn)擊請(qǐng)假申請(qǐng),然后填寫假條信息,填寫完成后點(diǎn)擊提交,老師審批假條并返回信息給申請(qǐng)者。(2)程序執(zhí)行結(jié)果
4.小結(jié)
課程設(shè)計(jì)小結(jié):該系統(tǒng)還有較多不完善之處,個(gè)人能力也有待進(jìn)一步的提升。通過這次課程設(shè)計(jì),重新掌握了一些以前掌握的不夠牢固的知識(shí)和一些不懂的方法實(shí)現(xiàn)的思路及想法,讓我們得到進(jìn)一步的提高。
第二篇:《JAVA程序設(shè)計(jì)》課程設(shè)計(jì)
JAVA程序設(shè)計(jì)》課程設(shè)計(jì)
------Chatter即時(shí)聊天工具
班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)老師: 日 期:
《
目錄
1.引言.....................................................................................3 2.功能簡(jiǎn)介..............................................................................3 3.開發(fā)環(huán)境..............................................................................3 4.課程設(shè)計(jì)目的.......................................................................3 5.使用手冊(cè)..............................................................................3 6.程序源代碼...........................................................................4 4.1 serverJFrame.java...............................................................4
4.2 clientJFrame.java...............................................................9 7.程序運(yùn)行效果圖...................................................................14
8.心得體會(huì).............................................................................16
1.引言
相信大家一想到基于TCP/IP協(xié)議的通信,都會(huì)想到利用Socket類對(duì)象建立一條可靠的連接,這樣就客戶機(jī)/服務(wù)器就在這條連接上可靠地傳輸數(shù)據(jù)。但是我是利用基于UDP協(xié)議的通信原理,制作了一個(gè)類似QQ游戲聊天室的聊天軟件。雖然軟件功能還不是很完善,不過,只要花點(diǎn)時(shí)間,參考一些書籍或類似的聊天軟件的源代碼,相信可以把這個(gè)聊天軟件做得更好,功能更加齊全,給用戶帶來更多娛樂體驗(yàn)。
2.功能簡(jiǎn)介
1)利用AWT/Swing設(shè)計(jì)了軟件界面,界面簡(jiǎn)潔美觀,聊天記錄界面形式是模仿QQ聊天記錄格式的,即不管是服務(wù)器還是客戶端發(fā)的信息,都會(huì)有時(shí)間顯示。2)本軟件還具有保存聊天記錄的功能。
3)軟件是不允許服務(wù)器或客戶端發(fā)送空信息的。發(fā)送信息為空時(shí),消息對(duì)話框給予信息提示。
4)軟件顯示聊天信息的文本區(qū)域添加了垂直滾動(dòng)條,防止發(fā)送和接收的信息不能全部顯示不出來。
5)實(shí)現(xiàn)了對(duì)不文明語(yǔ)言的過濾以及線程處理機(jī)制。
6)軟件對(duì)IP格式進(jìn)行了必要的設(shè)置,防止IP地址輸入不正確導(dǎo)致程序出現(xiàn)假死 7)用戶和服務(wù)器的昵稱不能為空,當(dāng)為空時(shí)不給予發(fā)送信息。8)當(dāng)然也可以實(shí)現(xiàn)本地聊天。
3.開發(fā)環(huán)境
1)PC機(jī)
2)Windows 7系統(tǒng) 3)Internet連接 4)Eclipse軟件
4.課程設(shè)計(jì)目的
1)理解多線程機(jī)制
2)學(xué)會(huì)利用AWT/Swing設(shè)計(jì)軟件界面 3)掌握輸入輸出流的使用方法。4)懂得事件處理的方法及原理。
5)明白Java網(wǎng)絡(luò)的基本知識(shí),如UDP協(xié)議的通信原理。
5.使用手冊(cè)
首先啟動(dòng)服務(wù)器,填寫用戶的IP地址,注意正確填寫IP地址的格式,不要寫錯(cuò),輸入完IP地址后,點(diǎn)擊“確定”按鈕進(jìn)行驗(yàn)證;然后填寫你喜歡的昵稱,注意昵稱不能為空,否則,將無(wú)法發(fā)送信息;發(fā)送的信息要文明化,如果你使用了不文明的語(yǔ)言,將會(huì)被屏蔽,不給予發(fā)送。如果你覺得想保存聊天記錄,你可以點(diǎn)擊“保存”按鈕,將聊天記錄保存為文本文件;如果你玩累了,你可以點(diǎn)擊右上角的“關(guān)閉”按鈕,退出聊天室。6.程序源代碼
6.1 serverJFrame.java package server;import java.awt.event.*;
import java.awt.*;
import java.io.OutputStreamWriter;import javax.swing.*;
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.net.*;import java.util.Date;import java.io.*;
public class serverJFrame extends JFrame implements ActionListener,Runnable{
JButton sendButton=null;JButton saveButton=null;JButton IPButton=null;JTextField nameSpace=null;JTextField IPField=null;JTextArea messageArea=null;JTextField sendField=null;java.util.Date date=null;String IP;public serverJFrame(){
date=new java.util.Date();
JPanel northPanel=new JPanel();
JPanel IPPanel=new JPanel();
JPanel southPanel=new JPanel();
JPanel namePanel=new JPanel(new FlowLayout());
JLabel sendLabel=new JLabel(“發(fā)送內(nèi)容:”);
JLabel nameChangeLabel=new JLabel(“我的昵稱:”);
JLabel IPLabel=new JLabel(“好友地址:”);
nameSpace=new JTextField(“",20);
IPField=new JTextField(”“,20);
messageArea=new JTextArea(”“,20,10);
messageArea.setLineWrap(true);
messageArea.setEditable(false);
sendField=new JTextField(20);
JScrollPane message=new JScrollPane(messageArea);//為文本區(qū)添加滾動(dòng)條
sendButton=new JButton(”發(fā)送“);
saveButton=new JButton(”保存“);
IPButton=new JButton(”確定“);
Box centerBox=Box.createVerticalBox();
namePanel.add(nameChangeLabel);
namePanel.add(nameSpace);
namePanel.add(saveButton);
IPPanel.add(IPLabel);
IPPanel.add(IPField);
IPPanel.add(IPButton);
centerBox.add(namePanel);
centerBox.add(IPPanel);
centerBox.add(message);
JFrame frame=new JFrame(”服務(wù)器端“);
northPanel.add(sendLabel);
northPanel.add(sendField);
northPanel.add(sendButton);
frame.add(northPanel,”North“);
frame.add(southPanel,”South“);
frame.add(centerBox,”Center“);
frame.setBounds(150,300,380,400);
frame.setResizable(false);
sendButton.addActionListener(this);
IPButton.addActionListener(this);
saveButton.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Thread thread=new Thread(this);//創(chuàng)建線程對(duì)象
thread.start();//線程負(fù)責(zé)接收數(shù)據(jù)包
frame.setVisible(true);}
public static class Protocol {
//定義三個(gè)靜態(tài)常量,分別為錯(cuò)誤信息,正常信息,還有快樂用語(yǔ)
public static final int ERROR_MSG = 0;
public static final int NOMAL_MSG = 1;
public static final int HAPPY_MSG = 2;
public static int processString(String str){
//對(duì)以下不文明用語(yǔ)進(jìn)行過濾
if(str.indexOf(”TMD“)>= 0||str.indexOf(”mother fuck“)>= 0||str.indexOf(”去你的“)>= 0
||str.indexOf(”你媽的“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”FUCK“)>= 0||str.indexOf(”奶奶的“)>= 0||str.indexOf(”我得死你“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”他媽的“)>= 0||str.indexOf(”shit“)>= 0||str.indexOf(”got dam it“)>= 0
||str.indexOf(”我操“)>= 0||str.indexOf(”fuck you“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”哈哈“)>= 0||str.indexOf(”呵呵“)>= 0||str.indexOf(”嘿嘿“)>= 0){
return HAPPY_MSG;//對(duì)快樂用語(yǔ)進(jìn)行返回
}
else{
return NOMAL_MSG;
}
}
}
public class Time {
Date date;//創(chuàng)建日期對(duì)象
String strTime;//創(chuàng)建字符串對(duì)象
Time(){date=new java.util.Date();
strTime=date.toString().substring(11,19);//獲取時(shí)間為時(shí):分:秒
} } //單擊”發(fā)送“按鈕從端口321發(fā)送數(shù)據(jù)包
public void actionPerformed(ActionEvent event){
if(event.getSource()==IPButton){
if(IPField.getText().trim().matches(”[0-9]*[.][0-9]*[.][0-9]*[.][0-9]*“)){
IP=IPField.getText();
IPField.setEditable(false);
}
else{
JOptionPane.showMessageDialog(this, ”IP地址格式錯(cuò)誤!“,”警告“, JOptionPane.WARNING_MESSAGE);}
}
else if(event.getSource()==sendButton){
Time time=new Time();
if(IPField.getText().length()==0){
JOptionPane.showMessageDialog(this, ”IP地址不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);IPField.setText(”“);
}
else if(nameSpace.getText().length()==0){
JOptionPane.showMessageDialog(this, ”昵稱不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);
}
else{
if(sendField.getText().length()==0){
JOptionPane.showMessageDialog(this, ”發(fā)送的信息不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);
}
else{
try{
String Sendmessage=nameSpace.getText()+” “+time.strTime+”rn
“+sendField.getText();//設(shè)置要發(fā)送的信息
if(Protocol.processString(Sendmessage)==Protocol.ERROR_MSG){
messageArea.append(”已被屏蔽“+”''“+sendField.getText()+”''。“+”注意文明用語(yǔ)!“+”rn“);
sendField.setText(”“);
}
else{
byte buffer[]=Sendmessage.getBytes();//將要發(fā)送的信息轉(zhuǎn)化字節(jié)
InetAddress address=InetAddress.getByName(IP);//指定本地IP127.0.0.1
//創(chuàng)建發(fā)送數(shù)據(jù)據(jù)
DatagramPacket data=new DatagramPacket(buffer,buffer.length,address,321);
DatagramSocket dataSocket=new DatagramSocket();//數(shù)據(jù)報(bào)套接字,指定端口號(hào)為321
String s=nameSpace.getText();//獲取昵稱
String sendText=sendField.getText();//獲得發(fā)送的信息
messageArea.append(s+” “+time.strTime+”rn
“+sendText+”rn“);//向文本區(qū)添加發(fā)送的信息
dataSocket.send(data);//正式發(fā)送數(shù)據(jù)
sendField.setText(”“);//數(shù)據(jù)發(fā)送完后,“發(fā)送的內(nèi)容”處清空
nameSpace.setEditable(false);// 發(fā)送完信息“昵稱”處不可以編輯
}
}
catch(Exception e){e.printStackTrace();}//異常處理
}
}
}
else if(event.getSource()==saveButton){
String path;
FileOutputStream fos;
OutputStreamWriter osw=null;
FileDialog filedialog_save=new FileDialog(this,”保存“,FileDialog.SAVE);
filedialog_save.setVisible(true);
path=filedialog_save.getDirectory()+filedialog_save.getFile()+”.txt“;
File txt=new File(path);
if(!txt.exists()){
try {
txt.createNewFile();
} catch(IOException e1){
e1.printStackTrace();
}
}
try {
fos = new FileOutputStream(txt);
osw=new OutputStreamWriter(fos,”UTF8“);
osw.write(messageArea.getText());
osw.flush();
fos.close();
} catch(FileNotFoundException e1){
e1.printStackTrace();
} catch(IOException ee){
}
}
else if(event.getSource()==saveButton){}
}
//從端口567接收數(shù)據(jù)包
public void run(){
DatagramPacket receive=null;
DatagramSocket receive_data=null;
byte data[]=new byte[5000];//字節(jié)數(shù)組大小為5000個(gè)
try{
receive=new DatagramPacket(data,data.length);//創(chuàng)建一個(gè)長(zhǎng)度為5000的數(shù)據(jù)報(bào)對(duì)象
receive_data=new DatagramSocket(567);//為數(shù)據(jù)報(bào)套接字指定端口號(hào)為567的端口
}catch(Exception e){e.printStackTrace();}
while(true){
if(receive_data==null)break;
else
try{
receive_data.receive(receive);//接收數(shù)據(jù)到數(shù)據(jù)報(bào)
String message=new String(receive.getData(),0,receive.getLength());
//將數(shù)據(jù)報(bào)信息轉(zhuǎn)換為字符串
// System.out.println(receive.getAddress());
messageArea.append(message+”rn“);//文本區(qū)添加接收到的信 息
}catch(Exception e){e.printStackTrace();}//異常處理
}
}
public static void main(String[] args)
{
serverJFrame server= new serverJFrame();//創(chuàng)建一個(gè)窗口對(duì)象,該窗口為JFrame類的子類對(duì)象
server.addWindowListener(new WindowAdapter(){//窗口添加適配器
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
server.validate();
}
}
6.2 clientJFrame.java package client;import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.net.*;import java.util.Date;import java.io.OutputStreamWriter;
public class clientJFrame extends JFrame implements ActionListener,Runnable{ JButton sendButton=null;JButton saveButton=null;JButton IPButton=null;JTextField IPField=null;JTextField nameSpace=null;JTextArea messageArea=null;JTextField sendField=null;java.util.Date date=null;String IP;public clientJFrame(){
date=new java.util.Date();
JPanel northPanel=new JPanel();
JPanel IPPanel=new JPanel();
JPanel southPanel=new JPanel();
JPanel namePanel=new JPanel(new FlowLayout());
JLabel sendLabel=new JLabel(”發(fā)送內(nèi)容:“);
JLabel nameChangeLabel=new JLabel(”我的昵稱:“);
JLabel IPLabel=new JLabel(”好友地址:“);
nameSpace=new JTextField(”“,20);
IPField=new JTextField(”“,20);
messageArea=new JTextArea(”“,20,10);
messageArea.setLineWrap(true);
messageArea.setEditable(false);
sendField=new JTextField(20);
JScrollPane message=new JScrollPane(messageArea);
sendButton=new JButton(”發(fā)送“);
saveButton=new JButton(”保存“);
IPButton=new JButton(”確定“);
Box centerBox=Box.createVerticalBox();
namePanel.add(nameChangeLabel);
namePanel.add(nameSpace);
namePanel.add(saveButton);
IPPanel.add(IPLabel);
IPPanel.add(IPField);
IPPanel.add(IPButton);
centerBox.add(namePanel);
centerBox.add(IPPanel);
centerBox.add(message);
JFrame frame=new JFrame(”客戶端“);
northPanel.add(sendLabel);
northPanel.add(sendField);
northPanel.add(sendButton);
frame.add(northPanel,”North“);
frame.add(southPanel,”South“);
frame.add(centerBox,”Center“);
frame.setBounds(600,300,380,400);
frame.setResizable(false);
sendButton.addActionListener(this);
IPButton.addActionListener(this);
saveButton.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Thread thread=new Thread(this);
thread.start();//線程負(fù)責(zé)接收數(shù)據(jù)包
frame.setVisible(true);}
public static class Protocol {
//定義三個(gè)靜態(tài)常量,分別為錯(cuò)誤信息,正常信息,還有快樂用語(yǔ)
public static final int ERROR_MSG = 0;
public static final int NOMAL_MSG = 1;
public static final int HAPPY_MSG = 2;
public static int processString(String str){
//對(duì)以下不文明用語(yǔ)進(jìn)行過濾
if(str.indexOf(”TMD“)>= 0||str.indexOf(”mother fuck“)>= 0||str.indexOf(”去你的“)>= 0
||str.indexOf(”你媽的“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”FUCK“)>= 0||str.indexOf(”奶奶的“)>= 0||str.indexOf(”我得死你“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”他媽的“)>= 0||str.indexOf(”shit“)>= 0||str.indexOf(”got dam it“)>= 0
||str.indexOf(”我操“)>= 0||str.indexOf(”fuck you“)>= 0){
return ERROR_MSG;
}else if(str.indexOf(”哈哈“)>= 0||str.indexOf(”呵呵“)>= 0||str.indexOf(”嘿嘿“)>= 0){
return HAPPY_MSG;//對(duì)快樂用語(yǔ)進(jìn)行返回
}
else{
return NOMAL_MSG;
}
}
}
public class Time {
Date date;//創(chuàng)建日期對(duì)象
String strTime;//創(chuàng)建字符串對(duì)象
Time(){date=new java.util.Date();
strTime=date.toString().substring(11,19);//獲取時(shí)間為時(shí):分:秒
} } //單擊”發(fā)送“按鈕從端口567發(fā)送數(shù)據(jù)包
public void actionPerformed(ActionEvent event){
if(event.getSource()==IPButton){
if(IPField.getText().trim().matches(”[0-9]*[.][0-9]*[.][0-9]*[.][0-9]*“)){
IP=IPField.getText();
IPField.setEditable(false);
}
else{
JOptionPane.showMessageDialog(this, ”IP地址格式錯(cuò)誤!“,”警告“, JOptionPane.WARNING_MESSAGE);IPField.setText(”“);}
}
else if(event.getSource()==sendButton){
Time strTime=new Time();
if(IPField.getText().length()==0){
JOptionPane.showMessageDialog(this, ”IP地址不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);
}
else if(nameSpace.getText().length()==0){
JOptionPane.showMessageDialog(this, ”昵稱不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);
}
else{
if(sendField.getText().length()==0){
JOptionPane.showMessageDialog(this, ”發(fā)送的信息不能為空!“,”警告“, JOptionPane.WARNING_MESSAGE);
}
else{
try{
String Sendmessage=nameSpace.getText()+” “+strTime.strTime+”rn
“+sendField.getText();//設(shè)置要發(fā)送的信息
if(Protocol.processString(Sendmessage)==Protocol.ERROR_MSG){
messageArea.append(”已被屏蔽“+”''“+sendField.getText()+”''。“+”注意文明用語(yǔ)!“+”rn“);
sendField.setText(”“);
}
else{
byte buffer[]=Sendmessage.getBytes();
InetAddress address=InetAddress.getByName(IP);//
DatagramPacket data=new DatagramPacket(buffer,buffer.length,address,567);
DatagramSocket dataSocket=new DatagramSocket();
String s=nameSpace.getText();
String sendText=sendField.getText();
messageArea.append(s+” “+strTime.strTime+”rn
“+sendText+”rn“);
dataSocket.send(data);
sendField.setText(”“);
nameSpace.setEditable(false);
}
}
catch(Exception e){e.printStackTrace();} }
}
}
else if(event.getSource()==saveButton){
String path;
FileOutputStream fos;
OutputStreamWriter osw=null;
FileDialog filedialog_save=new FileDialog(this,”保存“,FileDialog.SAVE);
filedialog_save.setVisible(true);
path=filedialog_save.getDirectory()+filedialog_save.getFile()+”.txt“;
File txt=new File(path);
if(!txt.exists()){
try {
txt.createNewFile();
} catch(IOException e1){
e1.printStackTrace();
}
}
try {
fos = new FileOutputStream(txt);
osw=new OutputStreamWriter(fos,”UTF8“);
osw.write(messageArea.getText());
osw.flush();
fos.close();
} catch(FileNotFoundException e1){
e1.printStackTrace();
} catch(IOException ee){
}
}
}
//從端口321接收數(shù)據(jù)包
public void run(){
DatagramPacket receive=null;
DatagramSocket receive_data=null;
byte data[]=new byte[5000];
try{
receive=new DatagramPacket(data,data.length);
receive_data=new DatagramSocket(321);
}catch(Exception e){}
while(true){
if(receive_data==null)break;
else
try{
receive_data.receive(receive);
String
message=new String(receive.getData(),0,receive.getLength());
messageArea.append(message+”rn");
}catch(Exception e){e.printStackTrace();}
}
}
public static void main(String[] args)
{
clientJFrame client= new clientJFrame();
client.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
client.validate();
}
}
7.程序運(yùn)行效果圖
注:由于只有一臺(tái)PC,以下的程序效果圖是本地IP運(yùn)行的結(jié)果截圖 1)IP地址輸入的格式不正確。
2)昵稱不能為空。
3)發(fā)送的信息不能為空。
4)發(fā)送的信息包含不文明語(yǔ)言給予屏蔽。
5)保存聊天記錄后的效果圖。
8.心得體會(huì)
通過這次課程設(shè)計(jì),真的收獲很大。如果只是考試的話,我覺得試卷的內(nèi)容會(huì)是很基本的知識(shí)點(diǎn),而這個(gè)課程設(shè)計(jì)可以把很多章的知識(shí)結(jié)合起來,知識(shí)點(diǎn)更具體,更有深度,可以進(jìn)一步提高自己的編程能力。雖然這是個(gè)簡(jiǎn)易的聊天室,但是還可以進(jìn)一步完善,提高界面的可視化效果,增加用戶聊天的樂趣。
第三篇:課程設(shè)計(jì)《JAVA程序設(shè)計(jì)》任務(wù)書.
《 JA V A 程序設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書 一.課程設(shè)計(jì)基本信息
課程名稱:《JAVA 程序設(shè)計(jì)》課程設(shè)計(jì) 學(xué)時(shí):1周 學(xué)分:1學(xué)分
二.課程設(shè)計(jì)目的與要求
1.教學(xué)目的:本課程是學(xué)習(xí)《 Java 程序設(shè)計(jì)》后的綜合實(shí)踐課,使學(xué)生能夠比較深入的理解 Java 語(yǔ)言的特征及體系;熟練的掌握并會(huì)運(yùn)用 Java 語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和方法設(shè)計(jì)應(yīng)用程序解 決應(yīng)用問題,積累程序設(shè)計(jì)的實(shí)踐經(jīng)驗(yàn),為培養(yǎng)軟件技術(shù)高技能人才奠定基礎(chǔ)。
本課程是培養(yǎng)計(jì)劃中綜合性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié)之一, 幫助學(xué)生掌握教學(xué)內(nèi)容、培養(yǎng)學(xué)生運(yùn)用知識(shí) 解決應(yīng)用問題的實(shí)際動(dòng)手能力、提高學(xué)生綜合素質(zhì)有很重要的意義。
2.教學(xué)要求:本課程設(shè)計(jì)以設(shè)計(jì)一個(gè)或多個(gè)實(shí)際應(yīng)用系統(tǒng)為目的,通過課程設(shè)計(jì)讓學(xué)生較全面的 掌握 Java 語(yǔ)法基礎(chǔ)知識(shí)、面向?qū)ο蟪绦蛟O(shè)計(jì)方法, 尤其是基于 Java 的應(yīng)用程序設(shè)計(jì)的方法與技術(shù), 能 夠運(yùn)用 J2SE平臺(tái),結(jié)合相應(yīng)的數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)應(yīng)用程序,理論聯(lián)系實(shí)際,達(dá)到培養(yǎng)實(shí)踐操作技能的目 的。
學(xué)生要了解 Java 程序開發(fā)的一般過程,特別掌握系統(tǒng)分析與設(shè)計(jì)的基本方法,寫出系統(tǒng)分析與設(shè) 計(jì)報(bào)告,并能設(shè)計(jì)真實(shí)可用的應(yīng)用系統(tǒng)。
三.課程設(shè)計(jì)內(nèi)容與安排
根據(jù)老師提供的設(shè)計(jì)題目, 寫出系統(tǒng)分析與設(shè)計(jì)報(bào)告, 并建立原型系統(tǒng)。題目可以由教師與學(xué)生根 據(jù)實(shí)際情況商定,可參考的題目:圖書借閱管理系統(tǒng)、產(chǎn)品管理
系統(tǒng)、學(xué)生成績(jī)管理、學(xué)生信息管理、人事管理、人力資源管理系統(tǒng)、物流信息管理系統(tǒng)等。
1.主要設(shè)計(jì)內(nèi)容如下:(1系統(tǒng)設(shè)計(jì):包括系統(tǒng)需求分析、總體設(shè)計(jì)和功能設(shè)計(jì),必要時(shí)使用圖表說明。(2數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn):包括數(shù)據(jù)庫(kù)的需求分析、數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。
(3系統(tǒng)各模塊設(shè)計(jì):包括用戶界面及相應(yīng)功能算法等程序設(shè)計(jì)。2.教學(xué)安排
總課時(shí) 30課時(shí),其中需求分析與系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)各模塊實(shí)現(xiàn)所以及系統(tǒng)集成 調(diào)試運(yùn)行用時(shí)間建議各占 15%,15%,40%,20%的課時(shí), 學(xué)生可根據(jù)具體情況調(diào)整, 利用 10%的時(shí)間完成課 程設(shè)計(jì)報(bào)告。
四.課程設(shè)計(jì)教學(xué)建議及要求
1.要求學(xué)生有一定的程序設(shè)計(jì)和數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí),由老師指定或?qū)W生自行組織形成項(xiàng)目小組,必 要時(shí)由多人開發(fā)一個(gè)項(xiàng)目, 其中需要指定負(fù)責(zé)項(xiàng)目的小組長(zhǎng)控制項(xiàng)目進(jìn)度。每個(gè)小組的項(xiàng)目開發(fā)過程應(yīng) 該遵從項(xiàng)目管理規(guī)范。
2.嚴(yán)格要求每個(gè)學(xué)生按照規(guī)定時(shí)間進(jìn)行設(shè)計(jì),禁止無(wú)故遲到和曠課。3.要求學(xué)生有自我學(xué)習(xí)的能力,遇到問題要學(xué)會(huì)自我解決。
4.要求設(shè)計(jì)的界面美觀、合理、便于操作等,功能與實(shí)際應(yīng)用系統(tǒng)緊密聯(lián)系,系統(tǒng)結(jié)構(gòu)合理構(gòu)思 巧妙、模塊化程度高等。
五.課程設(shè)計(jì)成績(jī)?cè)u(píng)定
課程設(shè)計(jì)成績(jī)由學(xué)生的出勤情況和程序設(shè)計(jì)情況各分別占 10%和 90%組成。程序的考核從界面、功 能實(shí)現(xiàn)、創(chuàng)新性、問題回答和課程設(shè)計(jì)報(bào)告等幾方面進(jìn)行。
考核內(nèi)容和比重表(參考
考核內(nèi)容 出勤 界面 功能實(shí)現(xiàn) 創(chuàng)新 問題回答 設(shè)計(jì)報(bào)告 比重 10%15%30%15%10%20% 六.課程設(shè)計(jì)報(bào)告撰寫與提交
1.課程設(shè)計(jì)報(bào)告格式見本文后面所附 “課程設(shè)計(jì)報(bào)告模板” , 課程設(shè)計(jì)報(bào)告最終以電子稿形式提交, 如需打印另行通知。在課程設(shè)計(jì)正文中使用圖表時(shí), 所有的圖必須有圖號(hào)和圖題, 所有的表必須有表的 名稱和編號(hào)。
2.對(duì)課程設(shè)計(jì)報(bào)告正文內(nèi)容的提示說明如下:(1摘要(100-150個(gè)字: 主要包括設(shè)計(jì)內(nèi)容、方法和結(jié)果,最后列出報(bào)告中用到關(guān)鍵字。(2課程設(shè)計(jì)介紹(要求 400-600個(gè)字: 對(duì)課程設(shè)計(jì)內(nèi)容做綜述,介紹課程設(shè)計(jì)的目的和要求等內(nèi)容。同時(shí)對(duì)課程設(shè)計(jì)小組成員構(gòu)成 進(jìn)行介紹,并說明自己在整個(gè)課程設(shè)計(jì)中將承擔(dān)的任務(wù)。
(3系統(tǒng)設(shè)計(jì)(要求 600-800個(gè)字: 主要介紹完成系統(tǒng)需求分析、總體設(shè)計(jì)和功能設(shè)計(jì)。必要時(shí)利用圖表說明。(4數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn): 主要介紹數(shù)據(jù)庫(kù)的需求分析、數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)利 用圖表說明。
(5系統(tǒng)各功能模塊設(shè)計(jì)(字?jǐn)?shù)根據(jù)實(shí)際情況而定 : 主要介紹系統(tǒng)各功能模塊的界面設(shè)計(jì)及相應(yīng)的功能程序設(shè)計(jì)。對(duì)于界面設(shè)計(jì)應(yīng)的描述界面中所
使用的相應(yīng)的組件列表,包括組件類別、組件 ID 值、組件作用等。同時(shí)應(yīng)附相應(yīng)界面設(shè)計(jì)狀 態(tài)的界面截圖和相應(yīng)的運(yùn)行界面截圖。如果涉及多個(gè)功能模塊,則應(yīng)分別描
述。
(6課程設(shè)計(jì)總結(jié)和體會(huì)
主要對(duì)課程設(shè)計(jì)所做的工作進(jìn)行總結(jié), 同時(shí)描述課程設(shè)計(jì)后的體會(huì), 包括專業(yè)技術(shù)方面的體會(huì) 和職業(yè)能力和職業(yè)意識(shí)方面的體會(huì)。另外對(duì)課程設(shè)計(jì)內(nèi)容中存在的不足和改進(jìn)意見進(jìn)行闡述。(7致謝
在課程設(shè)計(jì)過程中,如果得到他人的幫助,則不要忘記致謝。(8參考文獻(xiàn)
要列出在課程設(shè)計(jì)過程中用到的主要參考文獻(xiàn)和站點(diǎn)。雖然看過, 但沒有用到的文獻(xiàn)或站點(diǎn)則 不必列出。參考文獻(xiàn)要與報(bào)告正文關(guān)聯(lián),要不少于 4項(xiàng)。
(9附錄:帶注釋的程序清單
源程序清單只寫關(guān)鍵程序要有注釋。注釋是功能性的注釋,而不須要對(duì)語(yǔ)句或命令本身進(jìn)行 注釋。
Java 課程設(shè)計(jì)參考題目
1、編寫一個(gè)記事本程序 要求:
用圖形用戶界面實(shí)現(xiàn)。
能實(shí)現(xiàn)編輯、保存、另存為、查找替換等功能。提示:使用文件輸入輸出流。
2、模擬龜兔賽跑 要求: 用圖形用戶界面實(shí)現(xiàn)。
能設(shè)置比賽時(shí)間,馬匹的數(shù)量等等。在任意時(shí)間段內(nèi)馬匹的速度是隨機(jī)的。開始比賽之后以動(dòng)畫顯示賽馬過程。提示:使用多線程
3、學(xué)生信息管理系統(tǒng) 要求: 使用圖形用戶界面
用數(shù)據(jù)庫(kù)建立 1或 2個(gè)學(xué)生信息表。(可以使用 txt 文件代替數(shù)據(jù)庫(kù) 能連接數(shù)據(jù)庫(kù)并實(shí)現(xiàn)查詢、增、刪、改等功能。
4、聊天小程序 要求: 使用圖形用戶界面。
能實(shí)現(xiàn)一個(gè)聊天室中多人聊天。
可以兩人私聊。提示:使用 socket 通信
5、ATM 柜員機(jī)模擬程序
要求:使用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和密碼為 123456 時(shí), 系統(tǒng)能登錄 ATM 柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:
1、查詢余額:初始余額為 10000元
2、ATM 取款:每次取款金額為 100的倍數(shù),總額不超過 5000元,支取金額不允許透支。
3、ATM 存款:不能出現(xiàn)負(fù)存款。
4、修改密碼:新密碼長(zhǎng)度不小于 6位,不允許出現(xiàn) 6位完全相同的情況,只有舊密碼正確,新密碼符 合要求,且兩次輸入相同的情況下才可以成功修改密碼。
6、實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷演示過程 要求:使用圖形用戶界面
實(shí)現(xiàn)二叉樹的前序遍歷、中序遍歷、后續(xù)遍歷、按層遍歷的算法的演示過程。動(dòng)畫演示盡量與程序執(zhí)行 同步,人機(jī)交互、適于教學(xué)。
7、超市收銀系統(tǒng) 要求:使用圖形用戶界面。
由收銀員輸入顧客的會(huì)員卡卡號(hào)(若有卡、所購(gòu)商品的貨號(hào)等。從數(shù)據(jù)庫(kù)中取出有關(guān)價(jià)格信息,再把
這些信息返回給收銀臺(tái)。同時(shí)把該收銀臺(tái)的銷售總量和有關(guān)種類商品的剩余量以及該持卡顧客的消費(fèi)情 況交數(shù)據(jù)庫(kù)存儲(chǔ)以供查詢。
另外,對(duì)沒有卡的消費(fèi)情況不記錄該顧客的消費(fèi)情況等個(gè)人信息。如果一個(gè)未持卡顧客一次購(gòu)物滿 200元,可為其發(fā)放一張會(huì)員卡,以后在該商場(chǎng)購(gòu)物可向 9折優(yōu)惠。
8、萬(wàn)年歷
要求:使用圖形用戶界面。
實(shí)現(xiàn)日期與星期的查詢,其他功能自定義。
9、五子棋游戲 要求:使用圖形用戶界面 實(shí)現(xiàn)兩人游戲,能夠判斷輸贏
有 “ 開始 ” 按鈕,當(dāng)選擇完棋盤大小后,按此按鈕進(jìn)入對(duì)戰(zhàn)狀態(tài)。當(dāng)有勝利者(垂直、水平、對(duì)角線連續(xù) 5子 ,顯示對(duì)話框,提示誰(shuí)(黑還是白勝利了。若當(dāng)棋盤滿了還無(wú)勝利者,顯示平局對(duì)話框。界面 上還要有 “ 復(fù)盤 ” 按鈕,可對(duì)完成的棋局進(jìn)行復(fù)盤,例如每 3秒走一步。
10、日歷記事本
要求:帶有日程提醒功能的日歷。
1、顯示信息:用戶可以向前翻頁(yè)查詢前一個(gè)月的日期,也可以向后翻頁(yè)查詢下一個(gè)月的日期。
2、定時(shí)提醒:用戶可以針對(duì)某一天來添加,刪除和編輯這一天的日程提醒信息,當(dāng)系統(tǒng)時(shí)間和提醒時(shí) 間相吻合時(shí),給出具有提示信息的對(duì)話框。
3、查詢信息:用戶可以查詢到某個(gè)月的所有的提示信息。
11、電子英漢詞典
要求: 能夠編輯詞典庫(kù)中的信息
能夠?qū)崿F(xiàn)英譯漢,漢譯英。(要考慮一詞多義
12、計(jì)算器小程序 要求:使用圖形用戶界面
能在鍵盤或鼠標(biāo)上讀入數(shù)據(jù),并完成加。減。乘。除計(jì)算。在屏幕上顯示一個(gè)主菜單。提示用戶輸入 相應(yīng)的數(shù)字鍵,分辨執(zhí)行加。減。乘。除計(jì)算功能和結(jié)束程序的功能。
13、圖的最小生成樹算法過程演示 要求:使用圖形用戶界面
使用菜單顯示普利姆和克魯斯卡爾最小生成樹的動(dòng)畫實(shí)現(xiàn)過程, 動(dòng)畫與算法的實(shí)現(xiàn)盡量同步實(shí)現(xiàn), 便于 人機(jī)交互和教學(xué)。
14、加密與解密 要求:采用圖形用戶界面
1、給定任意一個(gè)文本文件,進(jìn)行加密,生成另一個(gè)文件。
2、對(duì)加密后的文件還原。
15、小游戲 要求:。
程序隨機(jī)產(chǎn)生 20— 50根火柴,由人與計(jì)算機(jī)輪流拿,每次拿的數(shù)量不超過 3根,拿到最后一根為勝。(使用圖形界面
16、敏感詞匯分析 要求: 任意選擇一個(gè)文本文件,分析該文件,如果存在敏感詞匯(這些詞匯保存在 sentive.txt 文件中,每個(gè)詞 占一行 ,報(bào)告每個(gè)詞出現(xiàn)的次數(shù)。
17、基數(shù)排序過程動(dòng)畫演示 要求:使用圖形用戶界面
基數(shù)排序算法的實(shí)現(xiàn)過程參照《數(shù)據(jù)結(jié)構(gòu)》教材,動(dòng)畫效果強(qiáng)。可以采用最高位優(yōu)先算法實(shí)現(xiàn),也可以 采用最低位優(yōu)先算法實(shí)現(xiàn),人機(jī)交互、便于教學(xué)。
課程設(shè)計(jì)時(shí)間安排 序 號(hào)
時(shí) 間 實(shí)習(xí)主要內(nèi)容 實(shí)習(xí)地點(diǎn) 指導(dǎo)教師
1星期一 上午 概要設(shè)計(jì):確定項(xiàng)目的實(shí)施方案、設(shè) 計(jì)程序模塊連接圖、完成模塊功能描 述
實(shí)訓(xùn)室 劉延嶺
2星期一 下午 總體設(shè)計(jì):設(shè)計(jì)程序流程圖,完成數(shù) 據(jù)庫(kù)設(shè)計(jì)、方法設(shè)計(jì)
實(shí)訓(xùn)室 劉延嶺 3星期二 上午 詳細(xì)設(shè)計(jì):實(shí)現(xiàn)系統(tǒng)功能 實(shí)訓(xùn)室 劉延嶺 4星期二 下午 詳細(xì)設(shè)計(jì):實(shí)現(xiàn)系統(tǒng)功能 實(shí)訓(xùn)室 劉延嶺 5星期三 上午 詳細(xì)設(shè)計(jì):實(shí)現(xiàn)系統(tǒng)功能
實(shí)訓(xùn)室 劉延嶺 6星期三 下午 詳細(xì)設(shè)計(jì):實(shí)現(xiàn)系統(tǒng)功能 實(shí)訓(xùn)室 劉延嶺 7星期四 上午 系統(tǒng)功能完善,整合測(cè)試 實(shí)訓(xùn)室 劉延嶺 8星期四 下午 撰寫設(shè)計(jì)文檔 實(shí)訓(xùn)室 劉延嶺 9星期五 上午 撰寫設(shè)計(jì)文檔 實(shí)訓(xùn)室 劉延嶺 10星期五 下午 檢查驗(yàn)收 實(shí)訓(xùn)室 劉延嶺
計(jì)算機(jī)與信息工程系
《 JAVA 程序設(shè)計(jì)》課程設(shè)計(jì)(字為黑體四號(hào)粗 課程設(shè)計(jì)題目(黑體二號(hào)粗 專業(yè) 計(jì)算機(jī) 班級(jí) 1001班 學(xué)號(hào) 02 姓名;劉騰帥 E-Mail 電話 *** 時(shí)間
(字為黑體四號(hào)粗 承德石油高等專科學(xué)校(字為楷體四號(hào)粗
(報(bào)告正文為宋體,多倍行間距:1.25倍 摘要:(四號(hào)粗
內(nèi)容(小四號(hào)字
關(guān)鍵字:(小四號(hào)粗 內(nèi)容(小四號(hào)字 1.課程設(shè)計(jì)介紹(四號(hào)粗
對(duì)課程設(shè)計(jì)內(nèi)容做綜述,介紹課程設(shè)計(jì)的目的和要求等內(nèi)容。同時(shí)對(duì)課程設(shè)計(jì)小組成 員構(gòu)成進(jìn)行介紹,并說明自己在整個(gè)課程設(shè)計(jì)中將承擔(dān)的任務(wù)。2.系統(tǒng)設(shè)計(jì)(四號(hào)粗 內(nèi)容(小四 2.1需求分析 2.2總體設(shè)計(jì) 2.3功能設(shè)計(jì)
3.系統(tǒng)各功能模塊設(shè)計(jì)(四號(hào)粗(注:必要時(shí)應(yīng)分模塊(頁(yè)面描述 內(nèi)容(小四
4.1界面設(shè)計(jì)(必要時(shí)使用用戶組件 4.2功能實(shí)現(xiàn)
4.課程設(shè)計(jì)總結(jié)和體會(huì)(小四號(hào)粗 內(nèi)容(小四 5.致謝(四號(hào)粗 參考文獻(xiàn)(四號(hào)粗
內(nèi)容(小四內(nèi)容如下例所示:
小四
([1]博彥科技.編程高手 J2EE.北京大學(xué)出版社,2000.94-97 [2]http://www.tmdps.cn/learning/lesson/xinxi/20030401/lesson.asp 附錄(注:另起一頁(yè)
1.xx 功能模塊(頁(yè)面相關(guān)事件或方法程序清單(1 xx 事件或方法(2 xxxxxxxxxxxx 2.xx 功能模塊(頁(yè)面相關(guān)事件或方法程序清單(1xx 事件或方法(2 xxxxxxxxxxxx 成績(jī)?cè)u(píng)定
出勤情況(10分 界面設(shè)計(jì)(15分 功能實(shí)現(xiàn)(30分 創(chuàng)新點(diǎn)(15分 答辯情況(10分 設(shè)計(jì)報(bào)告(20分 設(shè)計(jì)評(píng)語(yǔ)
指導(dǎo)教師
第四篇:《Java程序設(shè)計(jì)課程設(shè)計(jì)》教學(xué)大綱1
《Java程序設(shè)計(jì)課程設(shè)計(jì)》教學(xué)大綱
Java Programming Course Design
課程代碼: I1101Y09
課程總周數(shù):
2-4
學(xué)
分:
課程性質(zhì):
必修
課程類別:
集中實(shí)踐環(huán)節(jié)
先修課程:
《 Java程序設(shè)計(jì) 》
面向?qū)I(yè):
信息管理與信息系統(tǒng)
開課單位 :
經(jīng)濟(jì)與管理學(xué)院
執(zhí)
筆:
審
校:
一、課程設(shè)計(jì)的地位與任務(wù)
《Java程序設(shè)計(jì)課程設(shè)計(jì)》是信息管理與信息系統(tǒng)專業(yè)必做的集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《Java程序設(shè)計(jì)》課程后進(jìn)行的一次全面的綜合練習(xí)。其目的在于通過課程設(shè)計(jì),使學(xué)生能夠得到較系統(tǒng)的技能訓(xùn)練,從而鞏固和加深對(duì)Java 編程的基礎(chǔ)理論知識(shí)的理解,培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)理論解決實(shí)際問題的能力,使學(xué)生成為具有扎實(shí)的計(jì)算機(jī)理論基礎(chǔ)和較強(qiáng)的獨(dú)立動(dòng)手能力的復(fù)合型、應(yīng)用型人才。
二、課程設(shè)計(jì)的內(nèi)容和基本要求
1、內(nèi)容:設(shè)計(jì)題目需要在老師課堂上演示的程序基礎(chǔ)上增加1-9個(gè)功能。
2、要求:
(1)學(xué)生兩到三人組成一組,每組必須獨(dú)立完成設(shè)計(jì)任務(wù),嚴(yán)禁抄襲或找人代做等行為,一經(jīng)發(fā)現(xiàn)成績(jī)以不及格計(jì)。
(2)課程設(shè)計(jì)期間要嚴(yán)格遵守學(xué)習(xí)紀(jì)律,遵守作息時(shí)間,不得遲到、早退和曠課,課程設(shè)計(jì)期間缺勤1/3以上者,成績(jī)以不及格記。
(3)課程設(shè)計(jì)報(bào)告每組學(xué)生上交一份課程設(shè)計(jì)報(bào)告打印稿(A4雙面打印)。每班以班級(jí)為單位交一張刻錄光盤,并且將光盤內(nèi)容每班學(xué)委打個(gè)壓縮包發(fā)老師郵箱。
該光盤包括每組的文件夾,其中包括每組的設(shè)計(jì)報(bào)告內(nèi)容以及每組獨(dú)立開發(fā)的軟件。每組的文件夾命名規(guī)則為“組長(zhǎng)名字_組員1名字_組員2名字”)。注意:光盤要有封皮,注明班級(jí)、小組總數(shù),一起上交。
三、教學(xué)安排與教學(xué)方法
依照教學(xué)計(jì)劃,課程安排在2或4周內(nèi)完成,共32學(xué)時(shí)。1.復(fù)習(xí)過去所學(xué)主要內(nèi)容(8學(xué)時(shí))
2.系統(tǒng)分析,主要核心功能及代碼設(shè)計(jì)(8學(xué)時(shí))3.剩余功能代碼實(shí)現(xiàn)、編程調(diào)試(12學(xué)時(shí))4.完成課程設(shè)計(jì)報(bào)告(4學(xué)時(shí))
四、考核方法及成績(jī)?cè)u(píng)定
1、考核類別:考查
2、考核形式:平時(shí)成績(jī)(20%)、課程設(shè)計(jì)報(bào)告及軟件驗(yàn)收(80%)。
3、成績(jī)?cè)u(píng)定:百分制,100分滿分,低于60分為不及格。
五、推薦教材與主要參考書 推薦教材
1、梁勇 :《Java語(yǔ)言程序設(shè)計(jì) 基礎(chǔ)篇(原書第8版)》,機(jī)械工業(yè)出版社,2012;
2、梁勇 :《Java語(yǔ)言程序設(shè)計(jì) 進(jìn)階篇(原書第8版)》,機(jī)械工業(yè)出版社,2012。
主要參考書
1、[美]塞若,[美]貝茨:《Head First Java(中文版)》,中國(guó)電力出版社,2007;
2、[美]埃克爾:《Java編程思想(第4版)》,機(jī)械工業(yè)出版社,2007;
3、[美]史蒂芬.約翰.梅特斯克:《Java設(shè)計(jì)模式(第2版)》, 電子工業(yè)出版社,2012。
第五篇:《Java語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)指導(dǎo)書
《Java語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)指導(dǎo)書
一、教學(xué)目標(biāo)
《Java語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)類專業(yè)和信息安全專業(yè)的專業(yè)課。Java語(yǔ)言是目前廣為流行的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,適用于網(wǎng)絡(luò)編程,滿足Internet上軟件開發(fā)的需要。因此本課程是一門概念性和實(shí)踐性都很強(qiáng)的專業(yè)課程。本課程從基本程序設(shè)計(jì)流程出發(fā),逐步過渡到面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,由淺入深地講解面向?qū)ο蟮木幊趟枷搿?/p>
java課程設(shè)計(jì)是鞏固所學(xué)理論知識(shí)、提高程序設(shè)計(jì)能力的重要實(shí)踐環(huán)節(jié)。通過課程設(shè)計(jì)的訓(xùn)練,使學(xué)生能夠綜合應(yīng)用Java的基礎(chǔ)知識(shí)和基本方法,體會(huì)軟件設(shè)計(jì)的全過程,編寫出高效率的應(yīng)用程序,培養(yǎng)學(xué)生的數(shù)據(jù)處理能力,提高軟件設(shè)計(jì)能力,從而為今后進(jìn)行系統(tǒng)軟件和應(yīng)用軟件的開發(fā)研究打下堅(jiān)實(shí)的基礎(chǔ),并倡導(dǎo)刻苦鉆研的精神和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)。
二、教學(xué)要求
課程設(shè)計(jì)要求每位學(xué)生熟練運(yùn)用Java語(yǔ)言,按照面向?qū)ο蟪绦蛟O(shè)計(jì)思想,獨(dú)立編制一個(gè)略具規(guī)模、中等難度的應(yīng)用程序。調(diào)試通過并寫出課程設(shè)計(jì)報(bào)告,課程設(shè)計(jì)報(bào)告包括題目說明、題意分析、設(shè)計(jì)目的、設(shè)計(jì)特點(diǎn)、功能說明、主要功能程序段、運(yùn)行結(jié)果及結(jié)果分析、編程經(jīng)驗(yàn)、設(shè)計(jì)體會(huì)、存在問題及解決方法等。
三、課程設(shè)計(jì)題目
課程設(shè)計(jì)課題分推薦課題和其它課題:
推薦課題:javaweb開發(fā)的管理系統(tǒng)(圖書查詢系統(tǒng)、汽車租賃系統(tǒng)、倉(cāng)庫(kù)管理系統(tǒng)、人事管理系統(tǒng)等)
其它課題:javaswing開發(fā)的游戲、工具、管理系統(tǒng) 俄羅斯方塊、5子棋游戲、掃雷、模擬考試系統(tǒng)
2、設(shè)計(jì)要求
⑴ 獨(dú)立編制一個(gè)略具規(guī)模、中等難度的應(yīng)用程序。
⑵ 調(diào)試通過并寫出課程設(shè)計(jì)報(bào)告,課程設(shè)計(jì)報(bào)告包括題目說明、題意分析、設(shè)計(jì)目的、設(shè)計(jì)特點(diǎn)、功能說明、主要功能程序段、運(yùn)行結(jié)果及結(jié)果分析、編程經(jīng)驗(yàn)、設(shè)計(jì)體會(huì)、存在問題及解決方法等。
四、主要開發(fā)工具
Javaweb相關(guān)工具
五、課程設(shè)計(jì)報(bào)告要求
1.封面:按下面所給的格式填寫 2.正文要求如下:(1)題目說明;(2)題意分析;(2)設(shè)計(jì)目的;(3)設(shè)計(jì)特點(diǎn);(4)功能說明;(5)主要程序段;
(6)運(yùn)行結(jié)果分析以及測(cè)試結(jié)果(7)存在問題解決方法
(8)結(jié)束語(yǔ)(設(shè)計(jì)收獲體會(huì))3.報(bào)告正文格式要求: ·大標(biāo)題三號(hào)加粗 ·小標(biāo)題四號(hào)加粗 ·正文宋體小四號(hào)字
·每個(gè)自然段開始空兩格.·文中英文用新羅馬(time new roman),四號(hào)
4.其他要求:字?jǐn)?shù)5000字
六、提交的材料
(一)、程序(電子版)
(二)、程序設(shè)計(jì)說明書(打印)
七、課程設(shè)計(jì)成績(jī)?cè)u(píng)定
平時(shí)出勤及表現(xiàn): 10% 課程設(shè)計(jì)完成情況,難度等級(jí)60% 課程設(shè)計(jì)報(bào)告、文檔資料:30%
1、期末成績(jī)?cè)u(píng)定
實(shí)習(xí)成績(jī) = 實(shí)際操作、調(diào)試和測(cè)試(效果)+ 設(shè)計(jì)報(bào)告 +平時(shí)表現(xiàn)。
2、評(píng)定標(biāo)準(zhǔn)
(1)嚴(yán)格控制95分,其標(biāo)準(zhǔn)是有創(chuàng)意;(2)90分以上,必須全部正確;(3)有少許錯(cuò)誤,可給80—89;(4)錯(cuò)誤不多,可給60—79;
注:如甲、乙有拷貝、復(fù)印等抄襲現(xiàn)象,甲、乙均按0分處理。