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