微软操作系统发展史.docx
《微软操作系统发展史.docx》由会员分享,可在线阅读,更多相关《微软操作系统发展史.docx(21页珍藏版)》请在冰豆网上搜索。
微软操作系统发展史
班级:
09计算机应用技术
设计成员:
朱祥发092113010059
曾海092113010052
指导教师:
陈仕先、徐凯
实训时间:
2011.9.16—2011.9.23
实训地点:
机电大楼1机房
目录
一、课程设计目的和要求3
1、设计目的3
2、设计要求3
二、课程设计选题3
三、设计时间、设计安排和考核要求4
1、时间安排4
2、设计安排4
3、考核要求4
四、设计内容5
1、题目:
五指棋游戏5
2、具体实现5
3、流程图5
4、具体实现代码7
五、相关截图15
六、设计日志15
七、总结16
八、教师评分16
一、课程设计目的和要求
1、设计目的
<1>、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
<2>、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;
<3>、培养学生在项目开发中团队合作精神、创新意识及能力。
2、设计要求
<1>、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
<2>、系统设计要实用,编程简练,可用,功能全面;
<3>、说明书、流程图要清楚;
<4>、记录设计情况(备查,也为编写设计说明书作好准备);
<5>、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式;
<6>、设计上交内容:
设计报告一份(按格式书写);源程序文件。
二、课程设计选题
老师提供的题目有:
学生信息管理系统、日历记事本、三子棋游戏(Japplet)、库存管理系统、用户管理系统、多人聊天室(GUI)、拿火柴游戏、超市收银系统、ATM柜员机模拟程序、图书信息管理系统、一个简单的算法动态演示程序、商场商品信息管理系统、小区物业管理系统、车辆档案管理系统、自选题目。
我选取的是自选题目,我所选设计题目是“五指棋游戏。
三、设计时间、设计安排和考核要求
1、时间安排
序号
时间
内容
1
9月16日
班级分组,选定课题,查阅相关资料
2
9月17日
划分模块、小组成员分工,编制源程序
3
9月18日~9月19日
编制源程序
3
9月20日
上机调试,修改、完善系统
4
9月21日
上机调试,修改、完善系统
5
9月22日
撰写课程设计报告,上机调试,修改、完善系统
6
9月23日
撰写课程设计报告
7
9月24日
实习成绩的评定
2、设计安排
分组选题:
最多2人为一组,每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。
设计过程:
分析设计准备阶段(按组讨论、对系统功能进行分析,并进行明确分工);
编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)
3、考核要求:
在设计期间,学生要按时上机,设计结束根据记录的设计材料整理成设计说明书。
设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。
结合学生的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量分优、良、中、及格和不及格五等。
四、设计内容
1、题目:
五指棋游戏
2、具体实现:
>、绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。
<2>、自动默认白子先行,但是可以选择先行方然后黑白交替下子,在棋盘上设定一个与棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点,不能移出边界。
其次在界面上设定了开始游戏、重置功能。
<3>、当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。
棋局结束后,任何一方均不能继续操作。
3、流程图
4、具体实现代码
/*
*Tochangethistemplate,chooseTools|Templates
*andopenthetemplateintheeditor.
*/
packagejavaapplication2;
/**
*
*@authorjmk
*/
importjava.awt.*;
importjava.awt.event.*;
importjava.applet.Applet;
importjavax.swing.*;
publicclassGoBangextendsAppletimplementsActionListener,MouseListener,
/**
*@paramargsthecommandlinearguments
*/
MouseMotionListener,ItemListener{
//****************旗子的颜色标识0:
白子1:
黑子*****************//
intcolor=0;
booleanisStart=false;//游戏开始标志
//**************设置棋盘棋子状态0无子1白子2黑子****************//
intbodyArray[][]=newint[21][17];
//***************定义控件****************//
Buttonb1=newButton("游戏开始");
Buttonb2=newButton("重置游戏");
Buttonb3=newButton("悔棋");
//***************定义标签****************//
LabellblWin=newLabel("");
LabellblWin1=newLabel("五指棋小游戏");
LabellblWin2=newLabel("游戏规则:
");
LabellblWin12=newLabel("黑白双方依次落子,由黑先");
LabellblWin22=newLabel("下,当棋盘上有三个子时如");
LabellblWin32=newLabel("果此时白方觉得开的局不利");
LabellblWin42=newLabel("于自已可以提出交换,黑方");
LabellblWin52=newLabel("无条件接受!
也可以不交换");
LabellblWin62=newLabel("主动权在白方!
然后继续下");
LabellblWin72=newLabel("棋,任一方先在棋盘上形成");
LabellblWin82=newLabel("横向、竖向、斜向的连续的");
LabellblWin92=newLabel("相同颜色的五个(含五个以");
LabellblWin102=newLabel("上)棋子的一方为胜。
");
LabellblWin3=newLabel("");
JTextFieldjtf=newJTextField(10);
CheckboxckbHB[]=newCheckbox[2];
CheckboxGroupckgHB=newCheckboxGroup();
publicvoidinit(){
setLayout(null);
//*****************位置控制****************、//
addMouseListener(this);
add(b1);
b1.setBounds(860,90,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(860,130,80,30);
b2.addActionListener(this);
jtf.setBounds(860,300,130,30);
add(b3);
b3.setBounds(860,170,80,30);
ckbHB[0]=newCheckbox("白子先",ckgHB,false);
ckbHB[0].setBounds(860,20,60,30);
ckbHB[1]=newCheckbox("黑子先",ckgHB,false);
ckbHB[1].setBounds(860,50,60,30);
add(ckbHB[0]);
add(ckbHB[1]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setForeground(Color.red);
lblWin.setFont(newFont("serif",Font.PLAIN,20));
lblWin.setBounds(820,210,150,80);
add(lblWin1);
lblWin1.setForeground(Color.blue);
lblWin1.setFont(newFont("serif",Font.PLAIN,30));
lblWin1.setBounds(40,20,800,30);
add(lblWin2);
lblWin2.setBounds(860,300,130,30);
lblWin2.setFont(newFont("serif",Font.PLAIN,20));
add(lblWin12);
lblWin12.setBounds(830,330,180,30);
lblWin12.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin22);
lblWin22.setBounds(830,360,180,30);
lblWin22.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin32);
lblWin32.setBounds(830,390,180,30);
lblWin32.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin42);
lblWin42.setBounds(830,420,180,30);
lblWin42.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin52);
lblWin52.setBounds(830,450,180,30);
lblWin52.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin62);
lblWin62.setBounds(830,480,180,30);
lblWin62.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin72);
lblWin72.setBounds(830,510,180,30);
lblWin72.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin82);
lblWin82.setBounds(830,540,180,30);
lblWin82.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin92);
lblWin92.setBounds(830,570,180,30);
lblWin92.setFont(newFont("serif",Font.PLAIN,15));
add(lblWin102);
lblWin102.setBounds(830,600,180,30);
lblWin102.setFont(newFont("serif",Font.PLAIN,15));
JTextAreajt=newJTextArea(20,20);
//JPanelp=newJPanel(newGridLayout(2,4));
add(jt);
jt.setBackground(Color.red);
jt.setBounds(860,500,20,40);
add(lblWin3);
lblWin3.setBounds(0,50,180,630);
gameInit();
this.resize(newDimension(1018,670));
}
publicvoiditemStateChanged(ItemEvente){
//************选择黑子先还是白子先************//
if(ckbHB[0].getState()){
color=0;
}else{
color=1;
}
}
//****************控件实现
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
gameStart();
}else{
reStart();
}
}
publicvoidmousePressed(MouseEvente){
}
//******************落子控制
publicvoidmouseClicked(MouseEvente){
intx1,y1;
x1=e.getX();
y1=e.getY();
if(e.getX()<40||e.getX()>800||e.getY()<40||e.getY()>800){
return;
}
if(x1%40>20){
x1+=40;
}
if(y1%40>20){
y1+=40;
}
x1=x1/40*40;
y1=y1/40*40;
setDown(x1,y1);
}
publicvoidmouseEntered(MouseEvente){
}
publicvoidmouseExited(MouseEvente){
}
publicvoidmouseReleased(MouseEvente){
}
publicvoidmouseDragged(MouseEvente){
}
publicvoidmouseMoved(MouseEvente){
}
//*********************棋盘控制
publicvoidpaint(Graphicsg){
g.setColor(Color.LIGHT_GRAY);
g.setClip(180,20,800,640);
g.fill3DRect(20,60,800,800,true);
g.setColor(Color.BLACK);
for(inti=1;i<21;i++){
g.drawLine(20,40*i,800,40*i);
g.drawLine(40*i,40,40*i,640);
g.setClip(200,80,800,800);
}
}
//8**************落子
publicvoidsetDown(intx,inty){
//判断游戏未开始
if(!
isStart){
return;
}
if(bodyArray[x/40][y/40]!
=0){
return;
}
Graphicsg=getGraphics();
//判断黑子还是白子
if(color==1){
g.setColor(Color.black);
color=0;
}else{
g.setColor(Color.white);
color=1;
}
g.fillOval(x-20,y-20,40,40);
bodyArray[x/40][y/40]=color+1;
//判断输赢
if(gameWin1(x/40,y/40)){
lblWin.setText("恭喜"+startColor(color)+"赢了!
");
isStart=false;
}
//判断输赢
if(gameWin2(x/40,y/40)){
lblWin.setText("恭喜"+startColor(color)+"赢了!
");
isStart=false;
}
//判断输赢
if(gameWin3(x/40,y/40)){
lblWin.setText("恭喜"+startColor(color)+"赢了!
");
isStart=false;
}
//判断输赢
if(gameWin4(x/40,y/40)){
lblWin.setText("恭喜"+startColor(color)+"赢了!
");
isStart=false;
}
}
//棋子颜色设定
publicStringstartColor(intx){
if(x==0){
return"黑子";
}else{
return"白子";
}
}
//游戏开始
publicvoidgameStart(){
isStart=true;
enableGame(false);
b2.setEnabled(true);
}
//游戏开始初始化
publicvoidgameInit(){
isStart=false;
enableGame(true);
b2.setEnabled(false);
ckbHB[0].setState(true);
for(inti=3;i<21;i++){
for(intj=0;j<17;j++){
bodyArray[i][j]=0;
}
}
lblWin.setText("");
}
//游戏重新开始
publicvoidreStart(){
repaint();
gameInit();
}
//设置组件状态
publicvoidenableGame(booleane){
b1.setEnabled(e);
b2.setEnabled(e);
ckbHB[0].setEnabled(e);
ckbHB[1].setEnabled(e);
}
//判断输赢横
publicbooleangameWin1(intx,inty){
intx1,y1,t=1;
x1=x;
y1=y;
for(inti=1;i<5;i++){
if(x1>15){
break;
}
if(bodyArray[x1+i][y1]==bodyArray[x][y]){
t+=1;
}else{
break;
}
}
for(inti=1;i<5;i++){
if(x1<1){
break;
}
if(bodyArray[x1-i][y1]==bodyArray[x][y]){
t+=1;
}else{
break;
}
}
if(t>4){
returntrue;
}else{
returnfalse;
}
}
//判断输赢竖
publicbooleangameWin2(intx,inty){
intx1,y1,t=1;
x1=x;
y1=y;
for(inti=1;i<5;i++){
if(x1>15){
break;
}
if(bodyArray[x1][y1+i]==bodyArray[x][y]){
t+=1;
}else{
break;}}
for(inti=1;i<5;i++){
if(x1<1){
break;}
if(bodyArray[x1][y1-i]==bodyArray[x][y]){
t+=1;
}else{
break;}}
if(t>4){
returntrue;
}else{
returnfalse;}}
//判断输赢左斜
publicbooleangameWin3(intx,inty){
intx1,y1,t=1;
x1=x;
y1=y;
for(inti=1;i<5;i++){
if(x1>15){
break;}
if(bodyArray[x1+i][y1-i]==bodyArray[x][y]){
t+=1;
}else{
break;}}
for(inti=1;i<5;i++){
if(x1<1){
break;}
if(bodyArray[x1-i][y1+i]==bodyArray[x][y]){
t+=1;
}else{
break;}}
if(t>4){
returntrue;
}else{
returnfalse;}}
//判断输赢左斜
publicbooleangameWin4(intx,inty){
intx1,y1,t=1;
x1=x;
y1=y;
for(inti=1;i<5;i