Java语言课程设计

一.项目简介

本实验是对图形用户界面,布局管理器的综合应用,理解Java的处理机制,编写独立运行的窗口

二.项目采用技术

GUI,JAVA

三.功能需求分析

1.使用用户图形界面

2.能够实现年月份的搜索

3.上下翻页

流程图

1233806-20190117135018806-639183508.png

四.项目亮点

1.界面布局好看

2.可以实现网络时间同步

五.系统主要功能截图

1.实现图形界面

2.支持用户搜索年份和月份

3.通过点击上个月 下个月来翻页

4.实现网络时间同步

1233806-20190117112326269-626916261.jpg

六.项目git地址

https://gitee.com/kuangziyu/events

七.项目关键代码

监听器:

下个月:

1233806-20190117134553034-889334930.png

上个月:

1233806-20190117134633334-545894565.png

确定:

1233806-20190117134701998-1641262189.png

网络时间

1233806-20190117134759166-1733408133.png

八.团队成员git提交记录截图

1233806-20190117123710553-1577993319.png

1233806-20190117114816116-1780862357.png

1233806-20190117114839249-178412252.png

1233806-20190117115014451-284904167.png

1233806-20190117115045788-817609653.jpg

1233806-20190117123628457-388440727.png

九.项目代码扫描结果及改正

扫描结果:

1233806-20190117133052284-1661162979.png

改正:

1233806-20190117133724055-872870715.png

转载于:https://www.cnblogs.com/danzhai/p/10281531.html

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>html5 游戏</title> <script language="javascript" type="text/javascript"> //定义键盘值 var KEY = { D: 68, W: 87, A: 65, S:83, RIGHT:39, UP:38, LEFT:37, DOWN:40, QUICK:17}; //定义输入对象 var input = { right : false, up : false, left : false, down : false, quick : false }; //小球对象 var player = { speed : 1, qspeed : 2, left : 0, top : 0, xleft : 0, dleft : 0, xtop : 0, dtop : 0, r : 5 } player.init = function(){ this.xleft = this.r; this.xtop = this.r; this.dleft = $("myCanvas").width-this.r; this.dtop = $("myCanvas").height-this.r; this.left = $("myCanvas").width/2; this.top = $("myCanvas").height/2; } player.getSpeed = function(){ return (input.quick?this.qspeed:this.speed); } player.update = function(){ if (input.right) player.left+=player.getSpeed(); if (input.left) player.left-=player.getSpeed(); if (input.down) player.top+=player.getSpeed(); if (input.up) player.top-=player.getSpeed(); if (player.left>player.dleft) player.left=player.dleft; if (player.left<player.xleft) player.left=player.xleft; if (player.top>player.dtop) player.top=player.dtop; if (player.top<player.xtop) player.top=player.xtop; var c=$("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.beginPath(); cxt.arc(player.left,player.top,player.r,0,Math.PI * 2,true); cxt.closePath(); cxt.fill(); } //星星 var star = function(){ this.x = 0; this.y = 0; this.r = 5; this.c = "#00FF00"; this.ax = 0; this.ay = 0; this.a = 0; this.rAngle = 0; this.speed = 0; this.isAddX = true; this.isAddY = true; this.init = function(){ var lon = ($("myCanvas").width+$("myCanvas").height)*2; var rlon = Math.floor(Math.random()*(lon+1)); this.rAngle = Math.floor(Math.random()*91); if(rlon<$("myCanvas").width){//上 this.x = rlon; this.y = 0; }else if(rlon<$("myCanvas").width+$("myCanvas").height){//右 this.x = $("myCanvas").width; this.y = rlon-$("myCanvas").width; }else if(rlon<$("myCanvas").width*2+$("myCanvas").height){//下 this.x = $("myCanvas").width - (rlon-$("myCanvas").width-$("myCanvas").height); this.y = $("myCanvas").height; }else{//左 this.x = 0; this.y = $("myCanvas").height-(rlon-$("myCanvas").width*2-$("myCanvas").height); } if(rlon<$("myCanvas").width/2 || rlon>$("myCanvas").width*2+$("myCanvas").height+$("myCanvas").height/2){//左上 this.isAddX = true; this.isAddY = true; }else if(rlon<$("myCanvas").width+$("myCanvas").height/2){//右上 this.isAddX = false; this.isAddY = true; }else if(rlon<$("myCanvas").width+$("myCanvas").height+$("myCanvas").width/2){//右下 this.isAddX = false; this.isAddY = false; }else{//左下 this.isAddX = true; this.sAddY = false; } this.ax = Math.sin(Math.PI/180*this.rAngle)*star.speed; this.ax = this.isAddX?this.ax:0-this.ax; this.ay = Math.cos(Math.PI/180*this.rAngle)*star.speed; this.ay = this.isAddY?this.ay:0-this.ay; } this.update = function(){//更新 this.x=this.x+this.ax; this.y=this.y+this.ay; if((this.isAddX && this.x>$("myCanvas").width) || (!this.isAddX && this.x<0) || (this.isAddY && this.y>$("myCanvas").height) || (!this.isAddY && this.y<0)){ this.init(); return; } //$("message").innerHTML = $("message").innerHTML+"<br> x="+this.x+";y="+this.y; //$("message").innerHTML = $("message").innerHTML+"<br>cxt.arc("+Math.round(this.x)+","+Math.round(this.y)+","+this.r+",0,Math.PI * 2,true)"; var c=$("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle=this.c; cxt.beginPath(); cxt.arc(this.x,this.y,this.r,0,Math.PI * 2,true); cxt.closePath(); cxt.fill(); } this.iscollide = function(){//判断是否被撞到 var x = Math.abs(player.left-this.x); var y = Math.abs(player.top-this.y); var R = this.r+player.r; if(R*R < x*x+y*y){ return true; } return false; } } star.speed = 1; var press = function(event){ var code = event.keyCode || window.event; switch(code) { case KEY.RIGHT: case KEY.D: input.right = true; break; case KEY.UP: case KEY.W: input.up = true; break; case KEY.LEFT: case KEY.A: input.left = true; break; case KEY.DOWN: case KEY.S: input.down = true; break; case KEY.QUICK: input.quick = true; break; } } var release = function(event) { var code = event.keyCode || window.event; switch(code) { case KEY.RIGHT: case KEY.D: input.right = false; break; case KEY.UP: case KEY.W: input.up = false; break; case KEY.LEFT: case KEY.A: input.left = false; break; case KEY.DOWN: case KEY.S: input.down = false; break; case KEY.QUICK: input.quick = false; break; } } var stars = new Array(); var myInter; var begin; var time = 0; //加载事件 var load = function(){ player.init(); for(i=0;i<20;i++){ var s = new star(); s.init(); stars[i] = s; } begin = new Date(); myInter = setInterval(function(){update();},20); } var $ = function(id){ return document.getElementById(id); } //更新方法 var update = function(){ var c=$("myCanvas"); c.width = c.width; // Clears the canvas player.update(); for(i=0;i<stars.length;i++){ stars[i].update(); } updatetime(); isDead(); } //更新时间 var updatetime = function(){ var end = new Date(); var time = Math.round((end-begin)/1000); star.speed = Math.round(time/10); $("time").innerHTML = time; } //判断是否死了 var isDead = function(){ for(i=0;i<stars.length;i++){ var flag = stars[i].iscollide(); if(flag==false){ clearInterval(myInter); alert("失败了"); return; } } } </script> </head> <body onLoad="load();" onkeydown="press(event);" onkeyup="release(event);" > <canvas id="myCanvas" width="400" height="400" style=" border:2px solid #F00; left:30%; position:absolute; "> <h1>换个好浏览器吧,ie太垃圾了</h1> </canvas> <div id="message"> 兼容 wasd 和 ↑←↓→<br> ctrl 键加速<br> <span id="time"></span>秒 </div> </body> </html>
一、课程设计目的:1. 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。2. 进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。3. 通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。二、 课程设计总体要求:1. 问题的描述与程序将要实现的具体功能。2. 程序功能实现的具体设计思路或框架,并检查流程设计。3. 代码实现。4. 程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。5. 设计小结(包括)三、 课程设计题目:1. 选做部分1) 利用Socket编程制作一个简单的C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个 TextField用于显示传来的计算结果;Server端用于监听连接请求、计算发送过来的两数的和、送回数据结果。2) 编一个多线程Applet,实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度有HTML文件传入的参数控制(控制sleep时间)。3) 编写Applet,包含两个按钮,一个按钮用于放大Applet上的一串字符串,一个按钮用于缩小;连续点击可不断放大或缩小。4) 设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除混合运算。5) 编写生产者/消费者问题的应用程序。生产者以0~200ms的速度随机产生30个小写字母,消费者以0~2s的速度取出字母,并显示在屏幕上。2. 必做部分 根据自己的兴趣,结合实际情况,选取合适题目,利用所学JAVA知识开发一个小型的应用软件。要求:1) 阐述清楚应用程序实现的具体功能和设计思路。2) 所选课题难度不应太简单。3) 所有人的题目及设计不得类同。四、 课程设计报告内容:1) 目录2) 设计题目及具体要求 3) 总体设计思路(简要说明系统包含的java源程序及其功能,描述类之间的主要关系)4) 具体设计(以表格形式描述各个类含有的成员变量和方法,并对关键代码加以说明,显示程序运行界面)5) 总结(包括对本课程的建议)6) 参考资料。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值