第一篇:《JAVA语言》课程设计设计
《面向对象程序设计JAVA》课程设计大纲
课程名称:面向对象程序设计JAVA 适用专业:计算机及计算机相关专业
学时数:20(上机实验)学 分: 1 配套教材:《JAVA语言与面向对象程序设计》印旻 编著 清华大学出版社 大纲编写者:周斌 编写日期:2008.2
一、课程设计目的
1、课程设计的教学任务是让学生通过动手动脑解决实际问题,是学生学完课程后进行 的一次全面的综合训练,是一个非常重要的教学环节,通过课程设计,使学生经受一次综合动用所学知识,解决实际问题的方法。
2、使学生掌握使用各种计算机资料和有关参考资料,提高学生的基本设计能力。
3、培养学生理论联系实际和独立思考的能力,并激发学生的实际开发创造的意识和能力。
二、课程设计要求
1、利用JAVA进行应用程序的设计。
2、必须熟悉课程设计的各项内容和要求,明确课程设计的目的、方法和步骤;
3、设计中必须独立地地完成每一阶段的设计任务,禁止抄袭他人的设计成果;
4、所设计的程序必须满足实际使用要求,编译出可执行的程序。
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个学生成绩的最高分、最低分、平均分以及超过平均分的人数,并编写主类完成:(1)输入n个学生的成绩;(2)调用此类进行统计;(3)输出统计结果。
4、编程实现实时动态运行的模拟时钟。以下题目选做:
5、编程实现约瑟夫问题。8个人站成一圈,从第1个人开始报数,报到5的人出圈,第6个人再从1开始报。依次类推,求出圈的序列。
6、编程实现俄罗斯方块游戏。
说明:可以自行选择其他设计题目
四、编写课程设计报告书
课程设计报告书要求:
1、文字叙述清楚,结构结构简洁明了,理论正确,程序功能完备。
2、设计说明书要求文字工整,书写整齐。
3、附参考资料名称说明。
4、课程设计报告主要内容: 1)题目 2)问题需求分析 3)总体设计 4)详细设计
5)测试数据和调试报告 6)小结
五、成绩评定方式
根据平时设计完成质量和课程设计报告确定成绩。分优秀、良好、中等、及格、不及格五档。
第二篇:五子棋JAVA语言课程设计报告
《Java语言程序设计》
课程设计报告
学 院: 信息科学技术学院 班 级: 软件技术2班 姓 名: 王更新 学 号: 1108900505 指导教师: 郭韶升 课设时间: 2014-03-17 至2014-03-26
二O一四 年 三月 二十六 日
目 录
一、设计要求…………………………………………....2
二、设计步骤…………………………………………....2 2.1程序流程图………………………….…………...2 2.2程序的功能分配……………………….………...3
三、设计正文…………………………………………....6 3.1创建棋盘类……………………………………….6 3.2判断输赢功能实现……………………………….9 3.3测试结果……………………………………….....9
四、心得体会…………………………………………...12
五、参考文献…………………………………………...12 附录(源代码)……………………………………….13
一、课程设计要求
设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示
并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。最后判断某一方是否为五子连珠。
实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。
(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(“执白”,ckgHB,false);
ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);
ckbHB[2]=new Checkbox(“观看”,ckgHB, false);}
c.鼠标棋子的触发事件
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.按钮的触发事件
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创建棋盘类
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];//设置棋盘棋子状态
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(“执白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“执黑”,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判断输赢功能实现
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.选择角色,开始下棋
首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!c.下完后,重新开始
下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.d.游戏中点退出,自动判输
在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输
四、课程设计心得体会
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。
五、参考文献
1.吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社 2.柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社 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];//设置棋盘棋子状态
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(“执白”,ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new Checkbox(“执黑”,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){ //设置组件状态
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、培养学生在项目开发中团队合作精神、创新意识及能力。
设计要求:
1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2、标识符命名遵循Java命名规范,代码多加注释;
3、注意各种可能遇到的异常处理,注重提高程序运行效率;
4、系统设计要实用,编程简练,可用,功能全面;
5、尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
6、说明书、流程图要清楚;
7、记录设计情况(备查,也为编写设计说明书作好准备);
8、要求采用模块化程序设计方法,及锯齿型书写格式(缩进格式),要求上机调试通过和按设计报告格式;
9、上交课程设计软件代码、课程设计报告交老师保存。另外要用A4打印一份上交。
设计时间:
2012年-2013年第一学期 第10周
设计方式和安排:
设计方式:学院实验室上机
安排:布置题目;中期检查;验收
考核内容和方式: 课程设计结束时,要求学生写出课程设计报告(附源程序),可运行的软件系统;
课程设计成绩分两部分,设计报告占30%,设计作品占70%。按照优秀、良好、中、及格,不及格五级给予成绩。
设计题目:(要求每个学生在下面题目中选择一个适合自己且感兴趣的题目独立完成,若需新知识一定要去查资料,如果自己有另外的感兴趣的项目,可以自己设计,但一定不能是随便下载一个应付,否则将定为不及格,且不给补答机会,切记)
1、猜数游戏 功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。界面要示:用字符界面实现、也可用图形界面实现。
2、学生成绩管理
功能要求:
1)输入n个同学的学号,姓名,m门课程成绩。
2)计算出平均成绩。以平均成绩降序输出成绩表。
3)输出全组各科平均分,最高分和最低分。
4)输入姓名查询成绩 界面要示:用字符界面实现、也可用图形界面实现。
5)能连接数据库并实现查询、增、删、改等功能(此项功能作为可选项,可以不要)。
3、高级计算器模拟程序
功能要求:该程序显示GUI用户界面,能实现整数的加、减、乘、除、乘方、立方、n次放、开平方、开n次方、倒数、三角函数、反三角函数运算。界
面基本要求:用图形界面实现。
4、画随机的圆
功能要求:实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度有HTML文件传入的参数控制(控制sleep时间)。界面要求:用Java Applet实现。
5、用菜单和按钮来控制绘图
功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。界面要求:用图形界面实现。可参考图
2、图3和图4。
6、聊天小程序
功能要求:使用图形用户界面,能实现一个聊天室中多人聊天,可以两人私聊,可以发送文件。提示:使用socket通信
7、万年历带日程提醒功能
功能要求:使用图形用户界面,能显示月历,用户可以更改月份和年份,带有日程提醒功能。用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。查询信息:用户可以查询到某个月的所有的提示信息。能够显示系统时间。能够设置闹钟。能够查询若干国际大城市(分布在不同时区)的时间。
8、电子英汉词典
功能要求:能够编辑词典库中的信息,能够实现英译汉,汉译英(要考虑一词多义)。
9、加密与解密
功能要求:采用图形用户界面,给定任意一个文本文件,进行加密,生成另一个文件;对加密后的文件还原。
10、销售管理系统
功能要求:1)产品类别信息管理:对客户的基本信息进行添加、修改和删除。2)产品信息管理:对产品的基本信息进行添加、修改和删除。3)供应商信息管理:对供应商的基本信息进行添加、修改和删除。4)定单信息管理:对定单的基本信息进行添加、修改和删除。
11、计算带变量的数学表达式的程序
功能要求: 1)由用户输入一个表达式,求出其计算结果后显示。2)允许在表达式中出现常用的数学函数,如绝对值、取整、三角函数、倒数、平方根、平方、立方等。3)要能够判断出表达式中的变量名及其个数,按照变量名自动弹出/出现输入界面逐个让用户输入变量。4)尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。5)如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。
12、学生基本信息管理
功能要求:1)需要管理的学生信息有:学号、姓名、性别、出生日期、政治面貌、家庭住址、电话、宿舍号。2)实现查询、增、删、改等功能。3)存文本本件或者使用数据库。
13、抽奖程序
功能要求:1)能够在电脑上抽奖,分别抽取4等奖、3等奖、2等奖、1等奖、特等奖,设定每种奖项的人数后分别一次抽取每个奖项。2)按给定的总人数以序号或电话号码为抽奖依据。3)要求屏幕上能够显示抽奖的号码滚动过程,按“停止”按钮给出抽奖结果。4)要求漂亮的图形用户界面。
14、度量衡换算器
功能要求:1)网上去找几个度量衡换算器现成软件,综合其优点,编写出源代码,实现常见长度、面积、容积(体积)、温度(华氏/摄氏)的换算。2)要求漂亮的图形用户界面。
15、个人财务系统
功能要求:1)管理个人每月收支。包括资金来源、数目,各项平时主要支出款项和其它支出,月平均支出,支出将要超标提醒,交款提醒等等。2)要求用加密了的文本文件或数据库保存结果,每次启动时调入上次结果。3)图形界面。
16、学生学籍管理
主要描述: 调查学校学生处、教务处,设计一个学籍管理系统。要求: ①建立学生档案,设计学生入学、管理及查询界面; ②设计学生各学期、学年成绩输入及查询界面; ③根据各总成绩,查询、输出学生学籍管理方案(优秀、合格、试读、退学); ④毕业管理; ⑤系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等; 主要功能模块 实现学生基本情况的录入、修改、删除等基本操作。对学生基本信息提供灵活的查询方式。完成一个班级的学期选课功能。实现学生成绩的录入、修改、删除等基本操作。能方便的对学生的个学期成绩进行查询。具有成绩统计、排名等功能。具有留级、休学等特殊情况的处理功能。
17、招聘求职管理系统
主要描述: 编程模拟招聘/求职,设计两个类:企业类(招聘);求职者类;职位需求类
包括下列功能模块: 1.发布招聘需求信息: 2.增加、修改删除求职简历; 3.删除过期招聘信息: 4.查询招聘/求职信息: 5.职位签约;
18、教务辅助管理系统
主要描述: 1. 主要的数据表 教师基本信息表,课程表,教室资源表等
2.功能模块 1)对上课教师基本信息进行管理。2)对全院开设的课程进行管理。3)录入教师基本上课信息。4)实现自动排课功能。
注意:课程设计报告:(保存在word 文档中,文件名要求 按照“姓名-学号-课程设计报告”起名,如文件名为“张三-001-课程设计报告”.doc)按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求
b)概要设计
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
4.课设总结:(保存在word 文档中)总结可以包括 : 课程设计 过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对java程序设计这门课程的思考、在课程设计过程中对本课程的认识等内容。
第四篇:《Java语言程序设计》课程设计指导书
《Java语言程序设计》课程设计指导书
一、教学目标
《Java语言程序设计》是计算机类专业和信息安全专业的专业课。Java语言是目前广为流行的面向对象程序设计语言,适用于网络编程,满足Internet上软件开发的需要。因此本课程是一门概念性和实践性都很强的专业课程。本课程从基本程序设计流程出发,逐步过渡到面向对象的程序设计方法,由浅入深地讲解面向对象的编程思想。
java课程设计是巩固所学理论知识、提高程序设计能力的重要实践环节。通过课程设计的训练,使学生能够综合应用Java的基础知识和基本方法,体会软件设计的全过程,编写出高效率的应用程序,培养学生的数据处理能力,提高软件设计能力,从而为今后进行系统软件和应用软件的开发研究打下坚实的基础,并倡导刻苦钻研的精神和严谨的治学作风。
二、教学要求
课程设计要求每位学生熟练运用Java语言,按照面向对象程序设计思想,独立编制一个略具规模、中等难度的应用程序。调试通过并写出课程设计报告,课程设计报告包括题目说明、题意分析、设计目的、设计特点、功能说明、主要功能程序段、运行结果及结果分析、编程经验、设计体会、存在问题及解决方法等。
三、课程设计题目
课程设计课题分推荐课题和其它课题:
推荐课题:javaweb开发的管理系统(图书查询系统、汽车租赁系统、仓库管理系统、人事管理系统等)
其它课题:javaswing开发的游戏、工具、管理系统 俄罗斯方块、5子棋游戏、扫雷、模拟考试系统
2、设计要求
⑴ 独立编制一个略具规模、中等难度的应用程序。
⑵ 调试通过并写出课程设计报告,课程设计报告包括题目说明、题意分析、设计目的、设计特点、功能说明、主要功能程序段、运行结果及结果分析、编程经验、设计体会、存在问题及解决方法等。
四、主要开发工具
Javaweb相关工具
五、课程设计报告要求
1.封面:按下面所给的格式填写 2.正文要求如下:(1)题目说明;(2)题意分析;(2)设计目的;(3)设计特点;(4)功能说明;(5)主要程序段;
(6)运行结果分析以及测试结果(7)存在问题解决方法
(8)结束语(设计收获体会)3.报告正文格式要求: ·大标题三号加粗 ·小标题四号加粗 ·正文宋体小四号字
·每个自然段开始空两格.·文中英文用新罗马(time new roman),四号
4.其他要求:字数5000字
六、提交的材料
(一)、程序(电子版)
(二)、程序设计说明书(打印)
七、课程设计成绩评定
平时出勤及表现: 10% 课程设计完成情况,难度等级60% 课程设计报告、文档资料:30%
1、期末成绩评定
实习成绩 = 实际操作、调试和测试(效果)+ 设计报告 +平时表现。
2、评定标准
(1)严格控制95分,其标准是有创意;(2)90分以上,必须全部正确;(3)有少许错误,可给80—89;(4)错误不多,可给60—79;
注:如甲、乙有拷贝、复印等抄袭现象,甲、乙均按0分处理。
第五篇:Java课程设计
统一要求:
设计成品(按难度自选一个到两个完成)
可分组或单独完成,每组最多两人,19周前交 1设计报告
(1)本程序的功能描述
(2)程序设计思想(数据结构和各功能的实现办法)(3)核心程序清单(应有必要说明)2结果分析
(1)本程序的局限性及改进方法
(2)应用本程序的设计方法可以编写哪些类似的程序 一:小型通讯管理系统
通讯录管理系统含有:输入 显示 查找 删除
要求
1通讯录的每一条信息包括姓名,单位,电话!(可用数组或数据库)2输入功能:可以一次完成若干条信息的输入.3显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)4查找功能:完成按姓名查找通讯信息.5删除功能:完成按姓名删除通讯信息.6应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
二:个人简历程序:(参照中华英才网http://www.xiexiebang.com的创建个人简历的选项)
通过文本框输入姓名,通过单选按钮设置性别,通过组合框选择籍贯(列出省、市),文化程度、出生日期、现居住地。以及填写教育经历、语言及方言等。
请按自行安排界面排版方式,注意美观性。
三:多小球运动程序:
请编写一个多小球运动的程序,要求可以设置每个小球的半径,初始书度,加速度。
当用户点击发射按钮时,程序按指定的弹出一个小球,当小球碰到边界线时,碰撞为完全碰撞。
要求每个小球为一个线程,不考虑小球之间的碰撞。
四:打字小程序。
从屏幕顶端随机落下不同的英文。如果在字符下落的过程中,用户正确输入对应字符,字符消失,加1分;到字符落到底端还没正确输入,扣一分。
给出最宗成绩。程序可设 重新开始,暂停,练习时间,字符出现的数量,速度等。
五:龟兔赛跑
龟兔在同一个圆赛跑,要求可以设置龟兔跑一周的时间,兔比龟快。龟兔同时其跑,当兔快龟一圈时,计算器加1,并显示在屏幕上。六:学生成绩管理系统。
完成一个班学生的成绩管理。为完成程序功能,至少要有两个这样的功能模块:
l 输入成绩 2 查询成绩
因为查询模块中又分为:
l 按学生查询 2 按课程查询
所以为它们分别编写函数。因为上述这些操作中要输入某位学生和某门课程,所以再编写两个函数来输出数组中的学生信息和课程信息并请用户从中选择:
1显示学生信息从中进行选择 2显示课程信息从中进行选择
系统管理员需要管理系统所有用户的信息,包括用户编号、名称、备注等,可以对其添加删除修改和启用停用等操作。
还需要为系统用户划分角色和权限,保证不同身份的用户进入后可以有不同的权限,如某科目的老师可以录入本科目的成绩,学生只可以有查询权限等。
七:使用ServerSocket和Socket实现服务器支持多客户机通信。当有多个客户向服务器提出时请求时,服务器一端会分别为每个客户从一个包含多行文字的文本文件中读取一行文字,发送给每个客户,直到文件读完文件中所有行,服务器一端发出“bye”并停止运行,客户端也都停止运行。
八:编写一个图形用户界面的应用程序,在窗口中,有一个图片循环地从窗口的左面移动到窗口的右边。当鼠标点击窗口时,图片停止运动,再次点击图片恢复运动。九:编写程序,在文件中输入若干个单词(每个单词可重复一次或多次)。编程实现统计每个单词重复次数,并对非重复的单词进行排序,将排序结果输出到文件中。十. JDBC技术的应用
——校园卡信息/学生信息/教师信息/图书信息/宿舍信息/学生会/成绩/课程/教室管理/公务员招考系统的设计实现
以校园卡信息管理、学生信息管理、教师信息管理、图书信息管理、宿舍信息管理、学生会活动管理、成绩管理、教室管理等为例,使用JDBC-ODBC数据库接口,完成对后台数据库的插入、删除、修改、查询等操作。数据库系统可采用Sql Server、Access等,要根据完成的不同功能在数据库系统中定义有关的各种信息表:如在教师信息管理系统中要设计教师基本信息表、教师学习进修情况表、教师奖惩情况表、教师上课情况表等。其他几个子系统中数据表的设计由同学们根据实际的需求自主完成设计。十一.文本编辑器的设计与实现
设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。十二..计算器的设计与实现
设计一个能实现计算器功能的Java程序,可以进行加、减、乘、除(另外可适当加上阶乘、正弦、余弦和指数)运算。十三.图象浏览器的设计与实现
设计一个能实现图象浏览与编辑功能的Java程序,包括如下功能:
1)从已有的图象文件列表中选择某一个,即可显示该图象,并可做旋转等变换。2)在画布区域上可以进行各种规则图形的绘制(如:线段、矩形、多边形、圆等),还可通过鼠标的拖动自由绘图。
3)可以连续播放所选文件夹下的所有图象。十四: 媒体播放器的设计与实现
利用JMF(Java Media Framework)提供的API,实现图像浏览、音频播放、视频播放功能。
十五:局域网聊天程序的设计与实现
该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。服务器端程序:可将消息发送到客户端和接受客户端发送来的信息 十六:基于Web的应用
——网上超市/网上书店/网上花店/网上物流/网上招聘/同学录/网上选课/网上考试系统的设计
应用JSP技术,设计一个类似电子商务、电子政务类的简单应用系统,可以在网上动态展示各类信息,并根据相应的业务流程进行必要的逻辑处理,系统信息可以进行后台维护。需要动态显示的信息要存放数据库中,数据库可以用Sql Server、Access;后台管理要提供对数据库中信息进行动态维护(包括添加、删除、修改)的页面。十七:益智类小游戏的设计与实现
运用多线程和多媒体技术设计一个简单的益智类小游戏,游戏内容自行构思,不得直接利用网上现有游戏程序,要求有人机交互和界面动画,游戏过程中有声音效果,游戏成绩能记录、显示。