第一篇:《JAVA語言》課程設計設計
《面向對象程序設計JAVA》課程設計大綱
課程名稱:面向對象程序設計JAVA 適用專業(yè):計算機及計算機相關專業(yè)
學時數(shù):20(上機實驗)學 分: 1 配套教材:《JAVA語言與面向對象程序設計》印旻 編著 清華大學出版社 大綱編寫者:周斌 編寫日期:2008.2
一、課程設計目的
1、課程設計的教學任務是讓學生通過動手動腦解決實際問題,是學生學完課程后進行 的一次全面的綜合訓練,是一個非常重要的教學環(huán)節(jié),通過課程設計,使學生經受一次綜合動用所學知識,解決實際問題的方法。
2、使學生掌握使用各種計算機資料和有關參考資料,提高學生的基本設計能力。
3、培養(yǎng)學生理論聯(lián)系實際和獨立思考的能力,并激發(fā)學生的實際開發(fā)創(chuàng)造的意識和能力。
二、課程設計要求
1、利用JAVA進行應用程序的設計。
2、必須熟悉課程設計的各項內容和要求,明確課程設計的目的、方法和步驟;
3、設計中必須獨立地地完成每一階段的設計任務,禁止抄襲他人的設計成果;
4、所設計的程序必須滿足實際使用要求,編譯出可執(zhí)行的程序。
5、要求程序結構簡單,功能齊全,使用方便。
三、課程設計內容
課程設計題目:
1、已知銀行整存整取存款不同期限的年息利率分別為: 0.63% 期限一年
0.66% 期限二年
年息利率= 0.69% 期限三年 0.75% 期限五年
0.84% 期限八年
要求輸入存錢的本金和期限,求到期時能從銀行的到的利息與本金的合計。
程序如下:
import java.io.*;public class myWork1 { public static void main(String args[]){ try { int m,n;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.print(“請輸入金額: ”);m=Integer.parseInt(br.readLine());System.out.print(“請輸入年限: ”);n=Integer.parseInt(br.readLine());System.out.println();switch(n){ case 1: System.out.println(“得到的總額為 ”+m*(1+n*0.0063));break;case 2: System.out.println(“得到的總額為 ”+m*(1+0.0066*n));break;case 3: System.out.println(“得到的總額為 ”+m*(1+0.0069*n));break;case 5: System.out.println(“得到的總額為 ”+m*(1+0.0075*n));break;case 8: System.out.println(“得到的總額為 ”+m*(1+0.0084*n));break;} } catch(IOException e){ System.out.println(e);} } } 截圖如下:
2、輸入n值,打印邊長為n的空心正六邊形,其邊由“*”組成。
3、編寫一個類,這個類同時求出n個學生成績的最高分、最低分、平均分以及超過平均分的人數(shù),并編寫主類完成:(1)輸入n個學生的成績;(2)調用此類進行統(tǒng)計;(3)輸出統(tǒng)計結果。
4、編程實現(xiàn)實時動態(tài)運行的模擬時鐘。以下題目選做:
5、編程實現(xiàn)約瑟夫問題。8個人站成一圈,從第1個人開始報數(shù),報到5的人出圈,第6個人再從1開始報。依次類推,求出圈的序列。
6、編程實現(xiàn)俄羅斯方塊游戲。
說明:可以自行選擇其他設計題目
四、編寫課程設計報告書
課程設計報告書要求:
1、文字敘述清楚,結構結構簡潔明了,理論正確,程序功能完備。
2、設計說明書要求文字工整,書寫整齊。
3、附參考資料名稱說明。
4、課程設計報告主要內容: 1)題目 2)問題需求分析 3)總體設計 4)詳細設計
5)測試數(shù)據和調試報告 6)小結
五、成績評定方式
根據平時設計完成質量和課程設計報告確定成績。分優(yōu)秀、良好、中等、及格、不及格五檔。
第二篇:五子棋JAVA語言課程設計報告
《Java語言程序設計》
課程設計報告
學 院: 信息科學技術學院 班 級: 軟件技術2班 姓 名: 王更新 學 號: 1108900505 指導教師: 郭韶升 課設時間: 2014-03-17 至2014-03-26
二O一四 年 三月 二十六 日
目 錄
一、設計要求…………………………………………....2
二、設計步驟…………………………………………....2 2.1程序流程圖………………………….…………...2 2.2程序的功能分配……………………….………...3
三、設計正文…………………………………………....6 3.1創(chuàng)建棋盤類……………………………………….6 3.2判斷輸贏功能實現(xiàn)……………………………….9 3.3測試結果……………………………………….....9
四、心得體會…………………………………………...12
五、參考文獻…………………………………………...12 附錄(源代碼)……………………………………….13
一、課程設計要求
設計一個15╳15圍棋棋盤,由兩玩家交替進行對戰(zhàn),并可以實現(xiàn)以下功能: 1.選擇落子的先后順序 2.重置棋盤 3.刷新重新開始 4.退出提示
并且規(guī)定退出者判為負,但退出過程中要有提示。以防不小心點錯了。最后判斷某一方是否為五子連珠。
實現(xiàn)一個簡單的多用戶五子棋的游戲程序,包括如下兩個界面(1)選擇對弈桌(執(zhí)黑、執(zhí)白)。
(2)在游戲界面,有開始,退出(游戲未結束、點退出自動判負);
二、設計步驟
2.1程序流程圖
2.2 程序的功能分配
a.棋盤的繪制
public void draw_qipan(Graphics G)//畫棋盤 15*15{
G.setColor(Color.lightGray);
G.fill3DRect(10,10,300,300,true);
G.setColor(Color.black);
for(int i=1;i<16;i++){
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);
} } b.添加按鈕
Button b1=new Button(“開始”);Button b2=new Button(“重置游戲”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);public void init(){
ckbHB[0]=new Checkbox(“執(zhí)白”,ckgHB,false);
ckbHB[1]=new Checkbox(“執(zhí)黑”,ckgHB,false);
ckbHB[2]=new Checkbox(“觀看”,ckgHB, false);}
c.鼠標棋子的觸發(fā)事件
public void mouseClicked(MouseEvent e){
Graphics g=getGraphics();
int x1,y1;
x1=e.getX();
y1=e.getY();
if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){
return;
}
if(x1%20>10){
x1+=10;
}
if(y1%20>10){ y1+=10;
}
x1=x1/20*20;
y1=y1/20*20;
set_Qizi(x1,y1);
m*=(-1);}
d.按鈕的觸發(fā)事件
public void actionPerformed(ActionEvent e){
Graphics g=getGraphics();
if(e.getSource()==b1){
Game_start();
}
else{
Game_re();
}
if(e.getSource()==exist){
Game_re();
lblWin.setText(Get_qizi_color(color_Qizi)+“輸了!”);
intGame_Start=0;
}
e.判斷落子的位置及畫出相應的黑白棋子 public void set_Qizi(int x,int y)//落子{
if(intGame_Start==0)//判斷游戲未開始{
return;
}
if(intGame_Body[x/20][y/20]!=0){
return;
}
Graphics g=getGraphics();
if(color_Qizi==1)//判斷黑子還是白子{
g.setColor(Color.black);
color_Qizi=0;
}
else{
g.setColor(Color.white);
color_Qizi=1;
}
g.fillOval(x-10,y-10,20,20);
intGame_Body[x/20][y/20]=color_Qizi+1;}
f.判斷勝負
if(Game_win_1(x/20,y/20))//判斷輸贏1{
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;
}
if(Game_win_2(x/20,y/20))//判斷輸贏2{
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;} if(Game_win_3(x/20,y/20))//判斷輸贏3{ lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);intGame_Start=0;} if(Game_win_4(x/20,y/20))//判斷輸贏4{ lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;} }
三、設計正文
3.1創(chuàng)建棋盤類
Public class WcyChess extends Applet ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的顏色標識 0:白子 1:黑子
int intGame_Start=0;//游戲開始標志 0未開始 1游戲中
int intGame_Body[][]=new int[16][16];//設置棋盤棋子狀態(tài)
int m=-1;Button b1=new Button(“開始”);Button b2=new Button(“重置游戲”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();public void init(){
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds(330,50,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(330,90,80,30);
b2.addActionListener(this);
ckbHB[0]=new Checkbox(“執(zhí)白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“執(zhí)黑”,ckgHB,false);
ckbHB[1].setBounds(380,20,60,30);
ckbHB[2]=new Checkbox(“觀看”,ckgHB, false);
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(330,180,80,30);
lblWin.setBackground(Color.red);
lblWin.setText(“勝利者!”);//沒有顯示?
ckbHB[2].setBounds(440, 20,60, 30);
add(exist);
exist.setBounds(330,130,80,30);
implements
//
exist.addActionListener(this);add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600);setVisible(true);} public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//選擇黑子還是白子{
color_Qizi=0;} else{
color_Qizi=1;} } public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){
return;} if(x1%20>10){
x1+=10;} if(y1%20>10){
y1+=10;} x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);} public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){
Game_start();} else {
Game_re();}
} if(e.getSource()==exist){
Game_re();
lblWin.setText(Get_qizi_color(color_Qizi)+“輸了!”);
intGame_Start=0;} } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);
3.2判斷輸贏功能實現(xiàn)
if(Game_win_1(x/20,y/20)){ //判斷輸贏1
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;} if(Game_win_2(x/20,y/20)){ //判斷輸贏2
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;}
if(Game_win_3(x/20,y/20))//判斷輸贏3{
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;}
if(Game_win_4(x/20,y/20))//判斷輸贏4{
lblWin.setText(Get_qizi_color(color_Qizi)+“贏了!”);
intGame_Start=0;}
3.3 測試結果
a.進入游戲界面
游戲開始的界面有三個選擇項,用戶可以選擇相應的角色,選擇 完畢后點擊開始進入游戲。
b.選擇角色,開始下棋
首先達到五個棋子連在一塊的贏了,并在紅色區(qū)域顯示誰贏了!c.下完后,重新開始
下完一盤后游戲停止,點擊重新開始,界面回到初始界面,選擇角色繼續(xù)游戲.d.游戲中點退出,自動判輸
在下棋的過程當中誰中途退出,即點擊退出,系統(tǒng)自動判斷誰輸
四、課程設計心得體會
通過此次課程設計,將我本學期所學的JAVA知識得到鞏固和應用,在設計的過程中我遇到了很到問題,不過在老師和同學們的幫助和自己的思考下還是很好的完成了。這此課程設計還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學會了在網上查閱那些無限的資料。由于自己的分析設計和程序經驗不足,該系統(tǒng)設計和實現(xiàn)過程中,還有許多沒有完善的地方,比如用戶界面設計不夠美觀,異常出錯處理比較差等多方面問題,這些都有待進一步完善和提高。對于文中出現(xiàn)的不足和系統(tǒng)中出現(xiàn)的問題敬請老師指導。
五、參考文獻
1.吳其慶編著.Java程序設計實例教程.北京:冶金工業(yè)出版社 2.柳西玲.許斌編著.Java語言應用開發(fā)基礎.北京:清華大學出版社 3.丁振凡 Java 語言實用教程 :北京郵電大學出版社
附錄(源代碼)
import java.net.*;import java.io.*;import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;Public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的顏色標識 0:白子 1:黑子 int intGame_Start=0;//游戲開始標志 0未開始 1游戲中
int intGame_Body[][]=new int[16][16];//設置棋盤棋子狀態(tài)
int m=-1;Button b1=new Button(“開始”);Button b2=new Button(“重新開始”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();public void init(){
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds(330,50,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(330,90,80,30);
b2.addActionListener(this);
ckbHB[0]=new Checkbox(“執(zhí)白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“執(zhí)黑”,ckgHB,false);
ckbHB[1].setBounds(380,20,60,30);
ckbHB[2]=new Checkbox(“觀看”,ckgHB, false);
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(330,180,80,30);
lblWin.setBackground(Color.red);
e.getY()<20 || e.getY()>300){
lblWin.setText(“勝利者!”);//沒有顯示?
ckbHB[2].setBounds(440, 20,60, 30);add(exist);
exist.setBounds(330,130,80,30);exist.addActionListener(this);Game_start_csh();setSize(500,600);setVisible(true);}
public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//選擇黑子還是白子 {
color_Qizi=0;} else {
color_Qizi=1;} }
public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();
if(e.getX()<20 || e.getX()>300 ||
return;}
if(x1%20>10){
x1+=10;}
if(y1%20>10){
y1+=10;}
x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1)}
public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){
Game_start();
} else{
// 輸了!“);
贏了!”);
Game_re();}
if(e.getSource()==exist){
Game_re();
color_Qizi=m;
lblWin.setText(Get_qizi_color(color_Qizi)+“
intGame_Start=0;
}
}
public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);}
public void set_Qizi(int x,int y){ //落子
if(intGame_Start==0){//判斷游戲未開始
return;}
if(intGame_Body[x/20][y/20]!=0){
return;}
Graphics g=getGraphics();
if(color_Qizi==1){//判斷黑子還是白子
g.setColor(Color.black);
color_Qizi=0;} else{
g.setColor(Color.white);
color_Qizi=1;}
g.fillOval(x-10,y-10,20,20);
intGame_Body[x/20][y/20]=color_Qizi+1;if(Game_win_1(x/20,y/20)){ //判斷輸贏1 lblWin.setText(Get_qizi_color(color_Qizi)+”
intGame_Start=0;
了!“);
贏了!”);
贏了!“);
15*15
}
if(Game_win_2(x/20,y/20)){ //判斷輸贏2{
lblWin.setText(Get_qizi_color(color_Qizi)+”贏
intGame_Start=0;}
if(Game_win_3(x/20,y/20)){ //判斷輸贏3
lblWin.setText(Get_qizi_color(color_Qizi)+“
intGame_Start=0;}
if(Game_win_4(x/20,y/20)){ //判斷輸贏4
lblWin.setText(Get_qizi_color(color_Qizi)+”
intGame_Start=0;} }
public String Get_qizi_color(int x){
if(x==0){
return “黑子”;} else {
return “白子”;} }
public void draw_qipan(Graphics G){ //畫棋盤 G.setColor(Color.lightGray);
G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);for(int i=1;i<16;i++){
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);} }
public void Game_start(){ //游戲開始
intGame_Start=1;
Game_btn_enable(false);
b2.setEnabled(true);} public void Game_start_csh(){//游戲開始初始化
intGame_Start=0;
Game_btn_enable(true);
b2.setEnabled(false);
ckbHB[0].setState(true);
for(int i=0;i<16;i++){
for(int j=0;j<16;j++){
intGame_Body[i][j]=0;
}
}
lblWin.setText(“");} public void Game_re(){ //重新開始游戲
repaint();
Game_start_csh();} public void Game_btn_enable(boolean e){ //設置組件狀態(tài)
b1.setEnabled(e);
b2.setEnabled(e);
ckbHB[0].setEnabled(e);
ckbHB[1].setEnabled(e);} public boolean Game_win_1(int x,int y){ //橫向判斷輸贏
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_2(int x,int y){ //縱向判斷輸贏
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
}
if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){
t+=1;
}
break;
}
if(intGame_Body[x1-i][y1]==intGame_Body[x][y]
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_3(int x,int y){ //左斜判斷輸贏
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
}
if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } public boolean Game_win_4(int x,int y){ //左斜判斷輸贏
int x1,y1,t=1;
x1=x;
y1=y;
for(int i=1;i<5;i++){
if(x1>15){
break;
}
if(intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
for(int i=1;i<5;i++){
if(x1<1){
break;
} if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){
t+=1;
}
else{
break;
}
}
if(t>4){
return true;
}
else{
return false;
} } }
第三篇:Java語言課程設計題目
Java語言課程設計
設計目的:
1、復習、鞏固Java語言的基礎知識,進一步加深對Java語言的理解和掌握;
2、課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力;
3、培養(yǎng)學生在項目開發(fā)中團隊合作精神、創(chuàng)新意識及能力。
設計要求:
1、對系統(tǒng)進行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應功能;可以加以其他功能或修飾,使程序更加完善、合理;
2、標識符命名遵循Java命名規(guī)范,代碼多加注釋;
3、注意各種可能遇到的異常處理,注重提高程序運行效率;
4、系統(tǒng)設計要實用,編程簡練,可用,功能全面;
5、盡量使用圖形界面實現(xiàn),要符合日常軟件使用規(guī)范來設計菜單和界面。
6、說明書、流程圖要清楚;
7、記錄設計情況(備查,也為編寫設計說明書作好準備);
8、要求采用模塊化程序設計方法,及鋸齒型書寫格式(縮進格式),要求上機調試通過和按設計報告格式;
9、上交課程設計軟件代碼、課程設計報告交老師保存。另外要用A4打印一份上交。
設計時間:
2012年-2013年第一學期 第10周
設計方式和安排:
設計方式:學院實驗室上機
安排:布置題目;中期檢查;驗收
考核內容和方式: 課程設計結束時,要求學生寫出課程設計報告(附源程序),可運行的軟件系統(tǒng);
課程設計成績分兩部分,設計報告占30%,設計作品占70%。按照優(yōu)秀、良好、中、及格,不及格五級給予成績。
設計題目:(要求每個學生在下面題目中選擇一個適合自己且感興趣的題目獨立完成,若需新知識一定要去查資料,如果自己有另外的感興趣的項目,可以自己設計,但一定不能是隨便下載一個應付,否則將定為不及格,且不給補答機會,切記)
1、猜數(shù)游戲 功能要求:計算機產生隨機數(shù),猜中即勝,猜不中,提示是大了還是小了,繼續(xù)猜,直至猜到,給出所用時間和評語。界面要示:用字符界面實現(xiàn)、也可用圖形界面實現(xiàn)。
2、學生成績管理
功能要求:
1)輸入n個同學的學號,姓名,m門課程成績。
2)計算出平均成績。以平均成績降序輸出成績表。
3)輸出全組各科平均分,最高分和最低分。
4)輸入姓名查詢成績 界面要示:用字符界面實現(xiàn)、也可用圖形界面實現(xiàn)。
5)能連接數(shù)據庫并實現(xiàn)查詢、增、刪、改等功能(此項功能作為可選項,可以不要)。
3、高級計算器模擬程序
功能要求:該程序顯示GUI用戶界面,能實現(xiàn)整數(shù)的加、減、乘、除、乘方、立方、n次放、開平方、開n次方、倒數(shù)、三角函數(shù)、反三角函數(shù)運算。界
面基本要求:用圖形界面實現(xiàn)。
4、畫隨機的圓
功能要求:實現(xiàn)簡單的動畫。具體要求:自動出現(xiàn)由小到大變換的圓,位置與顏色隨機,變到150直徑時擦除,重新再出現(xiàn)圓;變換速度有HTML文件傳入的參數(shù)控制(控制sleep時間)。界面要求:用Java Applet實現(xiàn)。
5、用菜單和按鈕來控制繪圖
功能要求:實現(xiàn)簡單繪圖功能,具體要求:畫直線,畫空心或實心橢圓、畫空心或實心矩形、畫多邊形(圖形的位置和大小可在程序中設定)。界面要求:用圖形界面實現(xiàn)??蓞⒖紙D
2、圖3和圖4。
6、聊天小程序
功能要求:使用圖形用戶界面,能實現(xiàn)一個聊天室中多人聊天,可以兩人私聊,可以發(fā)送文件。提示:使用socket通信
7、萬年歷帶日程提醒功能
功能要求:使用圖形用戶界面,能顯示月歷,用戶可以更改月份和年份,帶有日程提醒功能。用戶可以向前翻頁查詢前一個月的日期,也可以向后翻頁查詢下一個月的日期。定時提醒:用戶可以針對某一天來添加,刪除和編輯這一天的日程提醒信息,當系統(tǒng)時間和提醒時間相吻合時,給出具有提示信息的對話框。查詢信息:用戶可以查詢到某個月的所有的提示信息。能夠顯示系統(tǒng)時間。能夠設置鬧鐘。能夠查詢若干國際大城市(分布在不同時區(qū))的時間。
8、電子英漢詞典
功能要求:能夠編輯詞典庫中的信息,能夠實現(xiàn)英譯漢,漢譯英(要考慮一詞多義)。
9、加密與解密
功能要求:采用圖形用戶界面,給定任意一個文本文件,進行加密,生成另一個文件;對加密后的文件還原。
10、銷售管理系統(tǒng)
功能要求:1)產品類別信息管理:對客戶的基本信息進行添加、修改和刪除。2)產品信息管理:對產品的基本信息進行添加、修改和刪除。3)供應商信息管理:對供應商的基本信息進行添加、修改和刪除。4)定單信息管理:對定單的基本信息進行添加、修改和刪除。
11、計算帶變量的數(shù)學表達式的程序
功能要求: 1)由用戶輸入一個表達式,求出其計算結果后顯示。2)允許在表達式中出現(xiàn)常用的數(shù)學函數(shù),如絕對值、取整、三角函數(shù)、倒數(shù)、平方根、平方、立方等。3)要能夠判斷出表達式中的變量名及其個數(shù),按照變量名自動彈出/出現(xiàn)輸入界面逐個讓用戶輸入變量。4)盡量使用圖形界面實現(xiàn),要符合日常軟件使用規(guī)范來設計菜單和界面。5)如果無法實現(xiàn)圖形界面,則在命令行方式下也需要提供菜單,方便用戶操作。
12、學生基本信息管理
功能要求:1)需要管理的學生信息有:學號、姓名、性別、出生日期、政治面貌、家庭住址、電話、宿舍號。2)實現(xiàn)查詢、增、刪、改等功能。3)存文本本件或者使用數(shù)據庫。
13、抽獎程序
功能要求:1)能夠在電腦上抽獎,分別抽取4等獎、3等獎、2等獎、1等獎、特等獎,設定每種獎項的人數(shù)后分別一次抽取每個獎項。2)按給定的總人數(shù)以序號或電話號碼為抽獎依據。3)要求屏幕上能夠顯示抽獎的號碼滾動過程,按“停止”按鈕給出抽獎結果。4)要求漂亮的圖形用戶界面。
14、度量衡換算器
功能要求:1)網上去找?guī)讉€度量衡換算器現(xiàn)成軟件,綜合其優(yōu)點,編寫出源代碼,實現(xiàn)常見長度、面積、容積(體積)、溫度(華氏/攝氏)的換算。2)要求漂亮的圖形用戶界面。
15、個人財務系統(tǒng)
功能要求:1)管理個人每月收支。包括資金來源、數(shù)目,各項平時主要支出款項和其它支出,月平均支出,支出將要超標提醒,交款提醒等等。2)要求用加密了的文本文件或數(shù)據庫保存結果,每次啟動時調入上次結果。3)圖形界面。
16、學生學籍管理
主要描述: 調查學校學生處、教務處,設計一個學籍管理系統(tǒng)。要求: ①建立學生檔案,設計學生入學、管理及查詢界面; ②設計學生各學期、學年成績輸入及查詢界面; ③根據各總成績,查詢、輸出學生學籍管理方案(優(yōu)秀、合格、試讀、退學); ④畢業(yè)管理; ⑤系統(tǒng)維護:如數(shù)據安全管理(含備份與恢復)、操作員管理、權限設置等; 主要功能模塊 實現(xiàn)學生基本情況的錄入、修改、刪除等基本操作。對學生基本信息提供靈活的查詢方式。完成一個班級的學期選課功能。實現(xiàn)學生成績的錄入、修改、刪除等基本操作。能方便的對學生的個學期成績進行查詢。具有成績統(tǒng)計、排名等功能。具有留級、休學等特殊情況的處理功能。
17、招聘求職管理系統(tǒng)
主要描述: 編程模擬招聘/求職,設計兩個類:企業(yè)類(招聘);求職者類;職位需求類
包括下列功能模塊: 1.發(fā)布招聘需求信息: 2.增加、修改刪除求職簡歷; 3.刪除過期招聘信息: 4.查詢招聘/求職信息: 5.職位簽約;
18、教務輔助管理系統(tǒng)
主要描述: 1. 主要的數(shù)據表 教師基本信息表,課程表,教室資源表等
2.功能模塊 1)對上課教師基本信息進行管理。2)對全院開設的課程進行管理。3)錄入教師基本上課信息。4)實現(xiàn)自動排課功能。
注意:課程設計報告:(保存在word 文檔中,文件名要求 按照“姓名-學號-課程設計報告”起名,如文件名為“張三-001-課程設計報告”.doc)按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的算法設計說明(可以是描述算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個算法實現(xiàn)的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實現(xiàn))
源程序要按照寫程序的規(guī)則來編寫。要結構清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數(shù)據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設想。
4.課設總結:(保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對java程序設計這門課程的思考、在課程設計過程中對本課程的認識等內容。
第四篇:《Java語言程序設計》課程設計指導書
《Java語言程序設計》課程設計指導書
一、教學目標
《Java語言程序設計》是計算機類專業(yè)和信息安全專業(yè)的專業(yè)課。Java語言是目前廣為流行的面向對象程序設計語言,適用于網絡編程,滿足Internet上軟件開發(fā)的需要。因此本課程是一門概念性和實踐性都很強的專業(yè)課程。本課程從基本程序設計流程出發(fā),逐步過渡到面向對象的程序設計方法,由淺入深地講解面向對象的編程思想。
java課程設計是鞏固所學理論知識、提高程序設計能力的重要實踐環(huán)節(jié)。通過課程設計的訓練,使學生能夠綜合應用Java的基礎知識和基本方法,體會軟件設計的全過程,編寫出高效率的應用程序,培養(yǎng)學生的數(shù)據處理能力,提高軟件設計能力,從而為今后進行系統(tǒng)軟件和應用軟件的開發(fā)研究打下堅實的基礎,并倡導刻苦鉆研的精神和嚴謹?shù)闹螌W作風。
二、教學要求
課程設計要求每位學生熟練運用Java語言,按照面向對象程序設計思想,獨立編制一個略具規(guī)模、中等難度的應用程序。調試通過并寫出課程設計報告,課程設計報告包括題目說明、題意分析、設計目的、設計特點、功能說明、主要功能程序段、運行結果及結果分析、編程經驗、設計體會、存在問題及解決方法等。
三、課程設計題目
課程設計課題分推薦課題和其它課題:
推薦課題:javaweb開發(fā)的管理系統(tǒng)(圖書查詢系統(tǒng)、汽車租賃系統(tǒng)、倉庫管理系統(tǒng)、人事管理系統(tǒng)等)
其它課題:javaswing開發(fā)的游戲、工具、管理系統(tǒng) 俄羅斯方塊、5子棋游戲、掃雷、模擬考試系統(tǒng)
2、設計要求
⑴ 獨立編制一個略具規(guī)模、中等難度的應用程序。
⑵ 調試通過并寫出課程設計報告,課程設計報告包括題目說明、題意分析、設計目的、設計特點、功能說明、主要功能程序段、運行結果及結果分析、編程經驗、設計體會、存在問題及解決方法等。
四、主要開發(fā)工具
Javaweb相關工具
五、課程設計報告要求
1.封面:按下面所給的格式填寫 2.正文要求如下:(1)題目說明;(2)題意分析;(2)設計目的;(3)設計特點;(4)功能說明;(5)主要程序段;
(6)運行結果分析以及測試結果(7)存在問題解決方法
(8)結束語(設計收獲體會)3.報告正文格式要求: ·大標題三號加粗 ·小標題四號加粗 ·正文宋體小四號字
·每個自然段開始空兩格.·文中英文用新羅馬(time new roman),四號
4.其他要求:字數(shù)5000字
六、提交的材料
(一)、程序(電子版)
(二)、程序設計說明書(打?。?/p>
七、課程設計成績評定
平時出勤及表現(xiàn): 10% 課程設計完成情況,難度等級60% 課程設計報告、文檔資料:30%
1、期末成績評定
實習成績 = 實際操作、調試和測試(效果)+ 設計報告 +平時表現(xiàn)。
2、評定標準
(1)嚴格控制95分,其標準是有創(chuàng)意;(2)90分以上,必須全部正確;(3)有少許錯誤,可給80—89;(4)錯誤不多,可給60—79;
注:如甲、乙有拷貝、復印等抄襲現(xiàn)象,甲、乙均按0分處理。
第五篇:Java課程設計
統(tǒng)一要求:
設計成品(按難度自選一個到兩個完成)
可分組或單獨完成,每組最多兩人,19周前交 1設計報告
(1)本程序的功能描述
(2)程序設計思想(數(shù)據結構和各功能的實現(xiàn)辦法)(3)核心程序清單(應有必要說明)2結果分析
(1)本程序的局限性及改進方法
(2)應用本程序的設計方法可以編寫哪些類似的程序 一:小型通訊管理系統(tǒng)
通訊錄管理系統(tǒng)含有:輸入 顯示 查找 刪除
要求
1通訊錄的每一條信息包括姓名,單位,電話!(可用數(shù)組或數(shù)據庫)2輸入功能:可以一次完成若干條信息的輸入.3顯示功能:完成全部通訊錄信息的顯示(一屏最多顯示10條,超過十條應能夠自動分屏顯示)4查找功能:完成按姓名查找通訊信息.5刪除功能:完成按姓名刪除通訊信息.6應提供一個界面來調用各個功能,調用界面和各個功能的操作界面應盡可能清晰美觀!
二:個人簡歷程序:(參照中華英才網http://004km.cn的創(chuàng)建個人簡歷的選項)
通過文本框輸入姓名,通過單選按鈕設置性別,通過組合框選擇籍貫(列出省、市),文化程度、出生日期、現(xiàn)居住地。以及填寫教育經歷、語言及方言等。
請按自行安排界面排版方式,注意美觀性。
三:多小球運動程序:
請編寫一個多小球運動的程序,要求可以設置每個小球的半徑,初始書度,加速度。
當用戶點擊發(fā)射按鈕時,程序按指定的彈出一個小球,當小球碰到邊界線時,碰撞為完全碰撞。
要求每個小球為一個線程,不考慮小球之間的碰撞。
四:打字小程序。
從屏幕頂端隨機落下不同的英文。如果在字符下落的過程中,用戶正確輸入對應字符,字符消失,加1分;到字符落到底端還沒正確輸入,扣一分。
給出最宗成績。程序可設 重新開始,暫停,練習時間,字符出現(xiàn)的數(shù)量,速度等。
五:龜兔賽跑
龜兔在同一個圓賽跑,要求可以設置龜兔跑一周的時間,兔比龜快。龜兔同時其跑,當兔快龜一圈時,計算器加1,并顯示在屏幕上。六:學生成績管理系統(tǒng)。
完成一個班學生的成績管理。為完成程序功能,至少要有兩個這樣的功能模塊:
l 輸入成績 2 查詢成績
因為查詢模塊中又分為:
l 按學生查詢 2 按課程查詢
所以為它們分別編寫函數(shù)。因為上述這些操作中要輸入某位學生和某門課程,所以再編寫兩個函數(shù)來輸出數(shù)組中的學生信息和課程信息并請用戶從中選擇:
1顯示學生信息從中進行選擇 2顯示課程信息從中進行選擇
系統(tǒng)管理員需要管理系統(tǒng)所有用戶的信息,包括用戶編號、名稱、備注等,可以對其添加刪除修改和啟用停用等操作。
還需要為系統(tǒng)用戶劃分角色和權限,保證不同身份的用戶進入后可以有不同的權限,如某科目的老師可以錄入本科目的成績,學生只可以有查詢權限等。
七:使用ServerSocket和Socket實現(xiàn)服務器支持多客戶機通信。當有多個客戶向服務器提出時請求時,服務器一端會分別為每個客戶從一個包含多行文字的文本文件中讀取一行文字,發(fā)送給每個客戶,直到文件讀完文件中所有行,服務器一端發(fā)出“bye”并停止運行,客戶端也都停止運行。
八:編寫一個圖形用戶界面的應用程序,在窗口中,有一個圖片循環(huán)地從窗口的左面移動到窗口的右邊。當鼠標點擊窗口時,圖片停止運動,再次點擊圖片恢復運動。九:編寫程序,在文件中輸入若干個單詞(每個單詞可重復一次或多次)。編程實現(xiàn)統(tǒng)計每個單詞重復次數(shù),并對非重復的單詞進行排序,將排序結果輸出到文件中。十. JDBC技術的應用
——校園卡信息/學生信息/教師信息/圖書信息/宿舍信息/學生會/成績/課程/教室管理/公務員招考系統(tǒng)的設計實現(xiàn)
以校園卡信息管理、學生信息管理、教師信息管理、圖書信息管理、宿舍信息管理、學生會活動管理、成績管理、教室管理等為例,使用JDBC-ODBC數(shù)據庫接口,完成對后臺數(shù)據庫的插入、刪除、修改、查詢等操作。數(shù)據庫系統(tǒng)可采用Sql Server、Access等,要根據完成的不同功能在數(shù)據庫系統(tǒng)中定義有關的各種信息表:如在教師信息管理系統(tǒng)中要設計教師基本信息表、教師學習進修情況表、教師獎懲情況表、教師上課情況表等。其他幾個子系統(tǒng)中數(shù)據表的設計由同學們根據實際的需求自主完成設計。十一.文本編輯器的設計與實現(xiàn)
設計一個類似于Windows記事本(Notepad)的Java程序??梢源蜷_、新建、保存一個文本文件;對選中的文本進行各種編輯操作(設置字體、字號、字型、對齊方式、背景、前景色、復制、粘貼、剪切、查找、替換等);在文本中能夠插入對象。十二..計算器的設計與實現(xiàn)
設計一個能實現(xiàn)計算器功能的Java程序,可以進行加、減、乘、除(另外可適當加上階乘、正弦、余弦和指數(shù))運算。十三.圖象瀏覽器的設計與實現(xiàn)
設計一個能實現(xiàn)圖象瀏覽與編輯功能的Java程序,包括如下功能:
1)從已有的圖象文件列表中選擇某一個,即可顯示該圖象,并可做旋轉等變換。2)在畫布區(qū)域上可以進行各種規(guī)則圖形的繪制(如:線段、矩形、多邊形、圓等),還可通過鼠標的拖動自由繪圖。
3)可以連續(xù)播放所選文件夾下的所有圖象。十四: 媒體播放器的設計與實現(xiàn)
利用JMF(Java Media Framework)提供的API,實現(xiàn)圖像瀏覽、音頻播放、視頻播放功能。
十五:局域網聊天程序的設計與實現(xiàn)
該程序實現(xiàn)局域網內的聊天功能,包括服務器端程序和客戶端程序兩部分??蛻舳顺绦颍嚎蛇B接到服務器,并將消息發(fā)送到服務器端和接受服務器端發(fā)送來的信息。服務器端程序:可將消息發(fā)送到客戶端和接受客戶端發(fā)送來的信息 十六:基于Web的應用
——網上超市/網上書店/網上花店/網上物流/網上招聘/同學錄/網上選課/網上考試系統(tǒng)的設計
應用JSP技術,設計一個類似電子商務、電子政務類的簡單應用系統(tǒng),可以在網上動態(tài)展示各類信息,并根據相應的業(yè)務流程進行必要的邏輯處理,系統(tǒng)信息可以進行后臺維護。需要動態(tài)顯示的信息要存放數(shù)據庫中,數(shù)據庫可以用Sql Server、Access;后臺管理要提供對數(shù)據庫中信息進行動態(tài)維護(包括添加、刪除、修改)的頁面。十七:益智類小游戲的設計與實現(xiàn)
運用多線程和多媒體技術設計一個簡單的益智類小游戲,游戲內容自行構思,不得直接利用網上現(xiàn)有游戲程序,要求有人機交互和界面動畫,游戲過程中有聲音效果,游戲成績能記錄、顯示。