javascript课程设计报告(javascript课设题目)
java浏览器课程设计
⑴ 怎样用Java制作一个简单浏览器解决方法
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.*;
importjava.io.*;
importjavax.swing.event.*;
@SuppressWarnings("serial")
,Runnable
{
JButtonbutton;
URLurl;
JTextFieldtext;
JEditorPaneeditPane;
byteb[]=newbyte[118];
Threadthread;
publicWin3()
{
text=newJTextField(20);
editPane=newJEditorPane();
editPane.setEditable(false);
button=newJButton("确定");
button.addActionListener(this);
thread=newThread(this);
JPanelp=newJPanel();
p.add(newJLabel("输入网址:"));
p.add(text);
p.add(button);
Containercon=getContentPane();
con.add(newJScrollPane(editPane),BorderLayout.CENTER);
con.add(p,BorderLayout.NORTH);
setBounds(60,60,400,300);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
editPane.addHyperlinkListener(newHyperlinkListener()
{
publicvoidhyperlinkUpdate(HyperlinkEvente)
{
if(e.getEventType()==
HyperlinkEvent.EventType.ACTIVATED)
{
try{
editPane.setPage(e.getURL());
}
catch(IOExceptione1)
{
editPane.setText(""+e1);
}
}
}
}
);
}
publicvoidactionPerformed(ActionEvente)
{
if(!(thread.isAlive()))
thread=newThread(this);
try{
thread.start();
}
catch(Exceptionee)
{
text.setText("我正在读取"+url);
}
}
publicvoidrun()
{
try{
intn=-1;
editPane.setText(null);
url=newURL(text.getText().trim());
editPane.setPage(url);
}
catch(MalformedURLExceptione1)
{
text.setText(""+e1);
return;
}
catch(IOExceptione1)
{
text.setText(""+e1);
return;
}
}
}
publicclassExample3
{
publicstaticvoidmain(Stringargs[])
{
newWin3();
}
}
⑵ 关于用java自己做一款浏览器。其具体的设计思路是什么,该怎么考虑,从哪方面入手。流程是什么。
你还是先出入门的程序练起吧。。。。
你提到的每一个部件都是一个比较沉重的课题。
⑶ 用java编写简易浏览器
地址栏如果有变化就不正常了,因为在你的代码中并没有执行更改地址栏的语句内:
bol.setSelectedIndex() 或 bol.setSelectedItem();
用 JEditorPane 做一容个类似浏览器显示的网页效果很难看。
有很多css,javascript无法正常解析。
如果一个网页中只含有 div table 这样的,还好些。
网页做的越漂亮(因为要做的漂亮就要用到css样式),显示出来越难看。
⑷ 用java编写一个图片浏览器
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class ImageGallery extends JFrame implements ActionListener {
public static final int G_WIDTH = 400, G_HEIGHT = 620;
public static final int L_WIDTH = 1200, L_HEIGHT = 520;
public static final int MAX_R = 3, MAX_C = 2;
public static final int GRID = 1, LARGE = 2;
private JFileChooser chooser;
private JMenuBar toolBar;
private JMenu menu;
private JMenuItem open;
private ArrayListString paths;
private JPanel showingPanel, buttonPanel;
private int page = 1;
private int count = 0;
private int showType = GRID;
private int pageMax;
private JButton last, next, large, grid;
public ImageGallery() {
.setTitle("Image gallery 0.1");
this.setBounds(100, 100, G_WIDTH, G_HEIGHT);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
toolBar = new JMenuBar();
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
menu = new JMenu("File");
toolBar.add(menu);
open = new JMenuItem("open");
open.addActionListener(this);
menu.add(open);
paths = new ArrayListString();
this.setJMenuBar(toolBar);
showingPanel = new JPanel();
buttonPanel = new JPanel();
last = new JButton("last");
last.addActionListener(this);
next = new JButton("next");
next.addActionListener(this);
large = new JButton("large");
large.addActionListener(this);
grid = new JButton("grid");
grid.addActionListener(this);
buttonPanel.add(last);
buttonPanel.add(large);
buttonPanel.add(grid);
buttonPanel.add(next);
this.add(buttonPanel, BorderLayout.SOUTH);
this.add(showingPanel);
this.setVisible(true);
}
public void doOpen() {
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
String directory = chooser.getSelectedFile().getPath();
this.getAllImage(directory);
for (String s : this.paths) {
System.out.println(s);
}
this.showingImage();
}
}
public void getAllImage(String directory) {
paths.clear();
page = 1;
count = 0;
File file = new File(directory);
if (file.isDirectory()) {
String[] list = file.list();
for (String s : list) {
String path = directory + "\\" + s;
File temp = new File(path);
if (!temp.isDirectory()) {
this.paths.add(path);
}
}
}
}
public void changePage(int page) {
if (!paths.isEmpty()) {
switch (showType) {
case GRID:
this.page += page;
if (this.page == 0) {
this.page = 1;
}
if (this.page pageMax) {
this.page = pageMax;
}
break;
case LARGE:
this.count += page;
if (count 0) {
count = 0;
}
if (count paths.size() - 1) {
count = paths.size() - 1;
}
break;
}
this.showingImage();
}
}
public void showingImage() {
this.remove(showingPanel);
showingPanel = new JPanel();
int size = paths.size();
int max = MAX_R * MAX_C;
pageMax = (size % max == 0 ? size / max : size / max + 1);
switch (showType) {
case GRID:
this.setBounds(100, 100, G_WIDTH, G_HEIGHT);
showingPanel.setLayout(new GridLayout(MAX_R, MAX_C - 1));
int i = (page - 1) * max;
int j = page * max;
for (; i j i size; i++) {
String path = paths.get(i);
showingPanel.add(new ImagePanel(path));
}
break;
case LARGE:
int left = count - 1;
int right = count + 1;
this.setBounds(100, 100, L_WIDTH, L_HEIGHT);
showingPanel.setLayout(new GridLayout(1, 2));
if (left = 0) {
showingPanel.add(new ImagePanel(paths.get(left)));
} else {
showingPanel.add(new ImagePanel(""));
}
showingPanel.add(new ImagePanel(paths.get(count)));
if (right size) {
showingPanel.add(new ImagePanel(paths.get(right)));
} else {
showingPanel.add(new ImagePanel(""));
}
break;
}
this.add(showingPanel, BorderLayout.CENTER);
showingPanel.updateUI();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new ImageGallery();
}
class ImagePanel extends JPanel {
private ImageIcon image;
ImagePanel(String path) {
image = new ImageIcon(path);
}
public ImageIcon getImageIcon() {
return this.image;
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
g.drawImage(image.getImage(), 0, 0, this.getWidth(), this
.getHeight(), this);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String key = e.getActionCommand();
System.out.println(key);
if (key.equals("open")) {
doOpen();
} else if (key.endsWith("last")) {
changePage(-1);
} else if (key.endsWith("next")) {
changePage(1);
} else if (key.endsWith("large")) {
if (!paths.isEmpty()) {
count =0;
showType = LARGE;
showingImage();
}
} else if (key.endsWith("grid")) {
if (!paths.isEmpty()) {
page = 1;
showType = GRID;
showingImage();
}
}
}
}
⑸ JAVA编写浏览器
可以看下这个专属
//blog.csdn/LJLOVELZ/archive/2007/05/04/1596205.aspx
⑹ 用java编写一个浏览器
import java.awt.*;
import java.awt.event.*;
import java.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.DefaultStyledDocument;
//HTTP连接与浏览
public class HTTPBrowser extends JFrame{
JTextField jtfAddress; //输入文件地址或网址
JTextPane jtpShow; //显示页面
JTextArea jtaSource; //显示HTML源文件
public HTTPBrowser(){
super("HTTP连接与浏览"); //调用父类构造函数
jtfAddress=new JTextField(30); //实例化地址输入框
jtpShow=new JTextPane(); //实例化显示内容框
jtaSource=new JTextArea();
JPanel p1=new JPanel(); //实例化面板
JSplitPane spane=new JSplitPane(JSplitPane.VERTICAL_SPLIT); //实例化分隔面板
p1.add(new JLabel("地址")); //增加组件到面板上
p1.add(jtfAddress);
spane.add(new JScrollPane(jtpShow),JSplitPane.TOP);
spane.add(new JScrollPane(jtaSource),JSplitPane.BOTTOM);
spane.setDividerLocation(130); //设置分隔位置
spane.setDividerSize(2); //设置分隔栏尺寸
Container container=getContentPane(); //得到容器
container.add(p1,BorderLayout.NORTH); //增加组件到容器上
container.add(spane,BorderLayout.CENTER);
jtfAddress.addActionListener(new ShowHTMLListener()); //输入地址文本域事件处理
setSize(380,300); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
class ShowHTMLListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
try{
URL address=new URL(jtfAddress.getText()); //得到HTML页面的URL地址
jtpShow.setContentType("text/"); //设置内容格式
jtpShow.setPage(address); //设置显示页面
BufferedReader in= new BufferedReader(new InputStreamReader(address.openStream())); //获取输入流
String line;
StringBuffer content = new StringBuffer(); //文件内容
while ((line = in.readLine()) != null) { //读取文件
content.append(line+"\n");
}
jtaSource.setText(new String(content)); //设置显示文本
in.close(); //关闭输入流
}
catch (Exception ex){
ex.printStackTrace(); //输出出错信息
}
}
}
public static void main(String[] args){
new HTTPBrowser();
}
}
这还有一个
import java.awt.*;
import java.awt.event.*;
import java.URL;
import javax.swing.*;
//浏览器
public class HTTPBrowserDemo extends JFrame{
JTextField jtfAddress; //输入文件地址或网址
JButton jbGo; //转到文件按钮
JTextPane jtpShow; //显示文件
JLabel jlInfo; //提示信息
public HTTPBrowserDemo(){
super("浏览器"); //调用父类构造函数
jtfAddress=new JTextField(20); //实例化地址输入框
jbGo=new JButton("转到"); //实例化转向按钮
jtpShow=new JTextPane(); //实例化显示内容框
jlInfo=new JLabel(); //实例化信息提示标签
JPanel panel=new JPanel(); //实例化面板
panel.add(new JLabel("地址")); //增加组件到面板上
panel.add(jtfAddress);
panel.add(jbGo);
JScrollPane jsp=new JScrollPane(jtpShow); //实例化滚动窗体
Container container=getContentPane(); //得到容器
container.add(panel,BorderLayout.NORTH); //增加组件到容器上
container.add(jsp,BorderLayout.CENTER);
container.add(jlInfo,BorderLayout.SOUTH);
jbGo.addActionListener(new ShowHTMLListener()); //事件处理,发生按钮点击时显示页面内容
jtfAddress.addActionListener(new ShowHTMLListener());
setSize(350,280); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
class ShowHTMLListener implements ActionListener { //显示页面内容事件处理
public void actionPerformed(ActionEvent event) {
try{
jlInfo.setText("正在连接..."); //显示提示信息
URL address=new URL(jtfAddress.getText()); //得到HTML页面的URL地址
jtpShow.setPage(address); //设置显示页面
jlInfo.setText("完成");
}
catch (Exception ex){
jlInfo.setText("连接出错");
ex.printStackTrace(); //输出出错信息
}
}
}
public static void main(String[] args){
new HTTPBrowserDemo();
}
}
⑺ 用Java代码怎么在浏览器中显示一个网页
package .test;
import java.lang.reflect.Method;
//实现打开浏览器并跳到指定网址的类
public class BareBonesBrowserLaunch {
public static void openURL(String url) {
try {
browse(url);
} catch (Exception e) {
}
}
private static void browse(String url) throws Exception {
//获取操作系统的名字
String osName = System.getProperty("os.name", "");
if (osName.startsWith("Mac OS")) {
//苹果的打开方式
Class fileMgr = Class.forName(".apple.eio.FileManager");
Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });
openURL.invoke(null, new Object[] { url });
} else if (osName.startsWith("Windows")) {
//windows的打开方式。
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
} else {
// Unix or Linux的打开方式
String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "scape" };
String browser = null;
for (int count = 0; count browsers.length browser == null; count++)
//执行代码,在brower有值后跳出,
//这里是如果进程创建成功了,==0是表示正常结束。
if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0)
browser = browsers[count];
if (browser == null)
throw new Exception("Could not find web browser");
else
//这个值在上面已经成功的得到了一个进程。
Runtime.getRuntime().exec(new String[] { browser, url });
}
}
}
⑻ 如何用java编写浏览器
正好我前几天做了一来个自浏览器实例,挺容易的其实。就用到了:
1.awtswing编界面和响应。
2.网页显示区域是用JEditPane来显示的。通过在上方设置一个JTextField输入url以后,这里获得url,然后直接setPage到url就行了。也不是太难。
其他没啥如果楼主要代码的话留下邮箱。
楼主编浏览器大概需要以下知识:
1.javase基础
2.协议大致传输过程
3.基础的awtswing,以及窗口响应布局等
4.浅显的多线程知识
⑼ 超简单的web浏览器用java实现
截图:
进入 //网页:
访问硬盘上的Html文件:file:盘符://文件名 (如果满意就采纳吧。。)
import java.awt.*;
import java.awt.event.*;
import java.URL;
import javax.swing.*;
public class HTTPBrowserDemo extends JFrame{
JTextField jtfAddress; //输入文件地址或网址
JButton jbGo; //转到文件按钮
JTextPane jtpShow; //显示文件
JLabel jlInfo; //提示信息
public HTTPBrowserDemo(){
super("浏览器"); //调用父类构造函数
jtfAddress=new JTextField(20); //实例化地址输入框
jbGo=new JButton("转到"); //实例化转向按钮
jtpShow=new JTextPane(); //实例化显示内容框
jlInfo=new JLabel(); //实例化信息提示标签
JPanel panel=new JPanel(); //实例化面板
panel.add(new JLabel("地址")); //增加组件到面板上
panel.add(jtfAddress);
panel.add(jbGo);
JScrollPane jsp=new JScrollPane(jtpShow); //实例化滚动窗体
Container container=getContentPane(); //得到容器
container.add(panel,BorderLayout.NORTH); //增加组件到容器上
container.add(jsp,BorderLayout.CENTER);
container.add(jlInfo,BorderLayout.SOUTH);
jbGo.addActionListener(new ShowHTMLListener()); //事件处理,发生按钮点击时显示页面内容
jtfAddress.addActionListener(new ShowHTMLListener());
setSize(350,280); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
class ShowHTMLListener implements ActionListener { //显示页面内容事件处理
public void actionPerformed(ActionEvent event) {
try{
jlInfo.setText("正在连接..."); //显示提示信息
URL address=new URL(jtfAddress.getText()); //得到HTML页面的URL地址
jtpShow.setPage(address); //设置显示页面
jlInfo.setText("完成");
}
catch (Exception ex){
jlInfo.setText("连接出错");
ex.printStackTrace(); //输出出错信息
}
}
}
public static void main(String[] args){
new HTTPBrowserDemo();
}
}
⑽ 怎样用Java制作一个简单浏览器
java制作浏览器的话,可以考虑使用android来制作一个,简单实现加载网页资源等等。
急求网站设计
这种任务去危客发布一下,马上就有人做,
只要你给钱,
你给的钱越多,参与的人越多,你给太少了参与的人就少,你先去看看,
JavaScript与WEB前台开发课程实训总结怎么写
1 摘要:写一下网站的简介,开发采用了什么技术等。
2 目录。
3 技术介绍:介绍JavaScript和web前端相关的技术,可以去摘抄的多一点,让内容显得饱满充实。
4 网站整体设计:采用画图工具绘制网站的架构图,跟做数据表设计差不多的类型,并且对整体架构做一个详细的文字说明。
5 网站模块详情设计:详细介绍每个页面的每个功能,以及实现的过程,附上截图,主要的源码即可。
6 调试bug:实训过程中出现的问题记录下来,包括解决方案。
7 附录:心得体会、源码(可要可不要)等一堆东西。
课程设计:使用JavaScript制作一个网页上的贪吃蛇游戏
head
title贪吃蛇 Snake v2.4/title
style
body{
font-size:9pt;
}
table{
border-collapse: collapse;
border:solid #333 1px;
}
td{
height: 10px;
width: 10px;
font-size: 0px;
}
.filled{
background-color:blue;
}
/style
/head
script
function $(id){return document.getElementById(id);}
/**************************************************************
* javascript贪吃蛇 v2.4 br /
* author: sunxing007 05/14/2009br /
* 转载请注明来自 谢谢!br /
* v2.4修正了蛇身颜色可以随着蛇前进而移动
**************************************************************/
//贪吃蛇类
var Snake = {
tbl: null,
/**
* body: 蛇身,数组放蛇的每一节,
* 数据结构{x:x0, y:y0, color:color0},
* x,y表示坐标,color表示颜色
**/
body: [],
//当前移动的方向,取值0,1,2,3, 分别表示向上,右,下,左, 按键盘方向键可以改变它
direction: 0,
//定时器
timer: null,
//速度
speed: 250,
//是否已经暂停
paused: true,
//行数
rowCount: 30,
//列数
colCount: 30,
//初始化
init: function(){
var colors = ['red','orange','yellow','green','blue','purple','#ccc'];
this.tbl = $("main");
var x = 0;
var y = 0;
var colorIndex = 0;
//产生初始移动方向
this.direction = Math.floor(Math.random()*4);
//构造table
for(var row=0;rowthis.rowCount;row++){
var tr=this.tbl.insertRow(-1);
for(var col=0;colthis.colCount;col++) {
var td=tr.insertCell(-1);
}
}
//产生20个松散节点
for(var i=0; i10; i++){
x = Math.floor(Math.random()*this.colCount);
y = Math.floor(Math.random()*this.rowCount);
colorIndex = Math.floor(Math.random()*7);
if(!this.isCellFilled(x,y)){
this.tbl.rows[y].cells[x].style.backgroundColor = colors[colorIndex];
}
}
//产生蛇头
while(true){
x = Math.floor(Math.random()*this.colCount);
y = Math.floor(Math.random()*this.rowCount);
if(!this.isCellFilled(x,y)){
this.tbl.rows[y].cells[x].style.backgroundColor = "black";
this.body.push({x:x,y:y,color:'black'});
break;
}
}
this.paused = true;
//添加键盘事件
document.onkeydown= function(e){
if (!e)e=window.event;
switch(e.keyCode | e.which | e.charCode){
case 13: {
if(Snake.paused){
Snake.move();
Snake.paused = false;
}
else{
//如果没有暂停,则停止移动
Snake.pause();
Snake.paused = true;
}
break;
}
case 37:{//left
//阻止蛇倒退走
if(Snake.direction==1){
break;
}
Snake.direction = 3;
break;
}
case 38:{//up
//快捷键在这里起作用
if(event.ctrlKey){
Snake.speedUp(-20);
break;
}
if(Snake.direction==2){//阻止蛇倒退走
break;
}
Snake.direction = 0;
break;
}
case 39:{//right
if(Snake.direction==3){//阻止蛇倒退走
break;
}
Snake.direction = 1;
break;
}
case 40:{//down
if(event.ctrlKey){
Snake.speedUp(20);
break;
}
if(Snake.direction==0){//阻止蛇倒退走
break;
}
Snake.direction = 2;
break;
}
}
}
},
//移动
move: function(){
this.timer = setInterval(function(){
Snake.erase();
Snake.moveOneStep();
Snake.paint();
}, this.speed);
},
//移动一节身体
moveOneStep: function(){
if(this.checkNextStep()==-1){
clearInterval(this.timer);
alert("Game over!\nPress Restart to continue.");
return;
}
if(this.checkNextStep()==1){
var _point = this.getNextPos();
var _x = _point.x;
var _y = _point.y;
var _color = this.getColor(_x,_y);
this.body.unshift({x:_x,y:_y,color:_color});
//因为吃了一个食物,所以再产生一个食物
this.generateDood();
return;
}
//window.status = this.toString();
var point = this.getNextPos();
//保留第一节的颜色
var color = this.body[0].color;
//颜色向前移动
for(var i=0; ithis.body.length-1; i++){
this.body[i].color = this.body[i+1].color;
}
//蛇尾减一节, 蛇尾加一节,呈现蛇前进的效果
this.body.pop();
this.body.unshift({x:point.x,y:point.y,color:color});
//window.status = this.toString();
},
//探寻下一步将走到什么地方
pause: function(){
clearInterval(Snake.timer);
this.paint();
},
getNextPos: function(){
var x = this.body[0].x;
var y = this.body[0].y;
var color = this.body[0].color;
//向上
if(this.direction==0){
y--;
}
//向右
else if(this.direction==1){
x++;
}
//向下
else if(this.direction==2){
y++;
}
//向左
else{
x--;
}
//返回一个坐标
return {x:x,y:y};
},
//检查将要移动到的下一步是什么
checkNextStep: function(){
var point = this.getNextPos();
var x = point.x;
var y = point.y;
if(x0||x=this.colCount||y0||y=this.rowCount){
return -1;//触边界,游戏结束
}
for(var i=0; ithis.body.length; i++){
if(this.body[i].x==xthis.body[i].y==y){
return -1;//碰到自己的身体,游戏结束
}
}
if(this.isCellFilled(x,y)){
return 1;//有东西
}
return 0;//空地
},
//擦除蛇身
erase: function(){
for(var i=0; ithis.body.length; i++){
this.eraseDot(this.body[i].x, this.body[i].y);
}
},
//绘制蛇身
paint: function(){
for(var i=0; ithis.body.length; i++){
this.paintDot(this.body[i].x, this.body[i].y,this.body[i].color);
}
},
//擦除一节
eraseDot: function(x,y){
this.tbl.rows[y].cells[x].style.backgroundColor = "";
},
paintDot: function(x,y,color){
this.tbl.rows[y].cells[x].style.backgroundColor = color;
},
//得到一个坐标上的颜色
getColor: function(x,y){
return this.tbl.rows[y].cells[x].style.backgroundColor;
},
//用于调试
toString: function(){
var str = "";
for(var i=0; ithis.body.length; i++){
str += "x:" + this.body[i].x + " y:" + this.body[i].y + " color:" + this.body[i].color + " - ";
}
return str;
},
//检查一个坐标点有没有被填充
isCellFilled: function(x,y){
if(this.tbl.rows[y].cells[x].style.backgroundColor == ""){
return false;
}
return true;
},
//重新开始
restart: function(){
if(this.timer){
clearInterval(this.timer);
}
for(var i=0; ithis.rowCount;i++){
this.tbl.deleteRow(0);
}
this.body = [];
this.init();
this.speed = 250;
},
//加速
speedUp: function(time){
if(!this.paused){
if(this.speed+time10||this.speed+time2000){
return;
}
this.speed +=time;
this.pause();
this.move();
}
},
//产生食物。
generateDood: function(){
var colors = ['red','orange','yellow','green','blue','purple','#ccc'];
var x = Math.floor(Math.random()*this.colCount);
var y = Math.floor(Math.random()*this.rowCount);
var colorIndex = Math.floor(Math.random()*7);
if(!this.isCellFilled(x,y)){
this.tbl.rows[y].cells[x].style.backgroundColor = colors[colorIndex];
}
}
};
/script
body onload="Snake.init();"
/*************************************************************br /
* javascript贪吃蛇 v2.4br /
* author: sunxing007 05/14/2009br /
* 转载请注明来自 a href="";/a 谢谢!br /
**************************************************************/br /
table id="main" border="1" cellspacing="0" cellpadding="0"/table
input type="button" id="btn" value="开始/暂停" /点左边按钮或按Enter开始/暂停游戏br /
input type="button" id="reset" value="重新开始" /br /
input type="button" id="upSpeed" value="加速" /点左边按钮或按Ctrl + ↑加速br /
input type="button" id="downSpeed" value="减速" /点左边按钮或按Ctrl + ↓减速
script
$('btn').onclick = function(){
if(Snake.paused){
Snake.move();
Snake.paused = false;
}
else{
Snake.pause();
Snake.paused = true;
}
};
$("reset").onclick = function(){
Snake.restart();
this.blur();
};
$("upSpeed").onclick = function(){
Snake.speedUp(-20);
};
$("downSpeed").onclick = function(){
Snake.speedUp(20);
};
/script
/body
/html
老师要求写一份C语言课程设计报告,有一个问题是系统运行环境与数据库设计,应该怎么回答?
1.开场
自我介绍, 简单讲述我大学的学习的历程,成果和感想。(1分钟)
我一直都感慨本年级许多同学在大一时因为缺乏好指引,在一开始就对编程很害怕,对计算机的学习没有开好头,动手能力长期跟不上,空会理论,不会实践,一直拖累到大四,最终选择忍痛考研或者抱怨找工作难。我也帮助过不少在这方面比较弱的同学,但是总是因为基础没打好导致难以提高。我也一直希望学校能在大一的时候就让同学们明白学习的重要性,打好扎实的专业基础。现在终于有一次这样的机会站在这里,为指引大家如何在大学专业技术学习的道路上开好头做点贡献。
今天我将结合我自身的经历和我对计算机的理解,我对编程的感悟,我对大学学习的认识,给大家做报告。
首先问三个问题:
1) qq聊天软件是用什么语言写的(第二天要换个问题)
答对的演讲结束后留下来,我要亲自给他传授宝贵经验,没人答的话,很遗憾
2) 谁玩电脑游戏比较牛
恩,人很多,大家很踊跃,很好
展示下我写的人工智能黑白棋游戏,声明真正的编程高手基本从来不玩游戏
(结合大四同学长期沉迷游戏最后找不到工作的例子,说明一个严肃的问题,只会玩游戏没有用,会做游戏才牛,鼓励大家努力学习,让会玩游戏的同学也热爱编程,最后也能自己写游戏)
请大家记住:只会玩游戏没有用,会做游戏才牛
3) 有没有人对计算机特别感兴趣 (为什么感兴趣)
如果有兴趣,对学习计算机有巨大的帮助
兴趣是最好的老师,鼓励他们,勉励其他人,兴趣是可以培养的,要学会培养兴趣
2.概述
计算机"科学"与"技术" 包含两个层面
"科学" 指计算机硬件、软件与应用的理论知识 理论的学习
"技术" 指软件开发、工程实践等技能与方法 能力的培养
我主要讲的是如何学习技术(计算机技术)
讲之前 澄清一个观点 计算机技术 不等于 编程技术
编程只是一个工具,编程没学好不代表你技术就学不好
计算机技术应该是与计算机软件、硬件和网络三个部分相关的各种科技成果和应用的综合,包括了多媒体,数据库,操作系统,嵌入式系统,计算机安全,计算机网络,计算机管理和维护,计算机应用,人工智能,模式识别,管理信息系统等,在我们生活的方方面面计算机技术几乎无处不在。
(举几个例子)在现在社会,它几乎与我们的生活息息相关。
(大学和高中的学习方式的区别)(学好技术的重要性)
在大学,学习的方式与高中或小学是有很大的区别的,大学更大,大学更自由,不再是完全跟着老师,不再是只要吃透了老师教授的内容就万事大吉了,从我这一届的情况看,许多同学特别是女生在大学还沿袭着高中的学习方式,勤奋刻苦,天天自习,非常认真,上课笔记做得秘密麻麻,把理论学得非常扎实,但是却严重地忽略了实践能力的培养,理论考试分数很高,但课程设计做不出东西来,显然这种学习方式是不对的,这和高中的偏科又有什么本质区别呢。
我觉得理论的学习和技术的学习是同等重要的,二者都不应该轻视,没有侧重点是不可能的,至于如何侧重,如何在二者之间找到平衡点就取决于你自己的人生目标了。如果你喜欢研究理论,以后想继续读研深造可以稍微偏向理论,把理论基础打得扎实一些,毕业以后可以留校任教或到科研院所去发展。如果你想走技术路线,那么你就可以稍稍偏向技术,在不落下理论学习的情况下,把技术学好学精,毕业以后可以去IT企业发展,也可以自己创业,有了一身技术不怕没饭吃。切莫完全忽视技术最后变成书呆子或完全不顾理论最后只是个代码搬运工。
大家每个人,从现在开始就要下决心学好技术,那么,如何学好技术呢。
3.如何学好技术
3.1制定好的学习计划
3.1.1大一大二:打好基础
3.1.1.1计算机方面的基本技能的学习
包括计算机众多的应用技术的学习 和 常见的硬件维护
(大家应该尽量多多掌握计算机方面的基本技能,如word excel ppt access* photoshop* flash* dreamveaver* 结合我的经历讲讲,我大一在自己没有电脑的情况下把这些基本全学了 举一个考研的同学不会在excel里找自己的名字的例子,如果这些最基本的技能都不会,只能说计算机还没入门)大二有电脑之后,终于有机会整自己的电脑了,要学习常见的常见的硬件维护(系统崩溃了怎么办,如何安装操作系统,如何分区等)
3.1.1.2专业理论基础和编程基础的学习
技术是将理论运用到实践中去,不能轻视理论,没有理论何来应用。计算机"科学"与"技术" 中的"科学"和"技术"应该是相互依赖和促进的。
先学好《高级语言程序设计》《数据结构》等专业课,理论基础扎实了,学应用性技术就更容易了
编程基础:学精C++(为什么),可以考虑过渡到 java 或 C# (最好只学一个,为什么)
(编程的学习会在后面再详细讲)
3.1.1.3珍惜这两年大学自由学习的黄金时间
(曾经和一家公司的经理开玩笑,总经理感慨的说现在在大学里找一个又能力的学生来帮忙做项目真是很难啊,我说是呀,大学四年,大一的刚进校还在打基础没法做,大二的还刚起步没足够的能力做,大三的课程会很紧没时间做,大四的找工作的找工作去了,考研的考研去了,没人做了),大学四年,实则三年,希望大家不要把最宝贵的时间荒废在游戏和娱乐上
3.1.2大三:深入学习,确定方向(技术方向,职业规划)+多多实践
到了大三,各种专业课会非常多,包括很重要的操作系统,汇编,组成原理,编译原理,数据库,计算机网络,软件工程等等,大家将深入学习计算机的各大核心课程。这时大家的基础打得也差不多了,可以选择一门自己比较感兴趣的技术并确定自己的技术的一个方向,比如选择j2ee, .NET,WEB技术,数据库技术,嵌入式,linux内核开发等等。当然也会有非常丰富多彩的专业选修课可以选择学习。这段时间大家可以利用课程设计的机会好好锻炼自己。
3.1.3大四:实践和进步
大四,如果不打算考研的同学,工作有了着落之后,可以试着做项目,大四基本没什么课,相对轻松,这段时间是获得经验,银子和巨大的进步黄金时期。
3.2重视专业课的学习
要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好
除非你足够牛,请务必认真听专业课,有些课像《数据结构》,《编译原理》,《组成原理》,《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月
3.3培养好的思维能力
数学是锻炼是思维的最好的东西了,他是你思考问题的最得力的工具,他体现着你的思想,在编程中会思考才能编出好的程序。
此外还要注重离散数学,数值分析,线性代数,数字逻辑等等课程的学习,他们对培养好的思维能力大有裨益
3.4激励创新意识
创新太重要了,不管在哪个学科都重要,计算机同样需要
3.5培养独立分析问题和解决问题的能力
遇到问题,要先学会独立思考,不能凡事依赖他人,尽量自己解决,在独立解决问题过程中能获得更大的进步,实在不能解决再请教别人也不迟
3.6培养自学能力和快速获取知识的能力
自学能力之重要(大学和高中的学习方式的区别)
可以说高中是靠老师,大学是靠自己,要做到严格自律,自我约束,必须要学会自学
学习的过程也是学会学习的过程
要充分利用图书馆和网络上的丰富学习资源, 要培养计算机新知识,新技术方面的自学习能力,要学会如何通过网络,书籍,文献,独立地快速获取自己需要的知识和信息
3.7培养团队协作精神
在一个大型项目中,往往要求各种参与者密切配合才能取得成功。大家要从现在就开始注重团队协作精神的培养,要学会与人沟通,善于表达,要注意提高自己的综合素质,成为综合型人才。
3.8学好英语
包括现在的大学英语和日后的专业英语。
也许有人会问,英语和技术有什么大的关系吗。大家是否知道,计算机的发展飞速,国际上新技术不断涌现,如果今天国外出现了一门新的技术,或者国外某本技术书籍出了新版本,相关资料的中文的翻译不知道要等到什么猴年马月才会出来,现在的许多出版也有了越来越多的英文原版书。
大家要学好英语,培养阅读专业外语资料的能力,开始会看不懂,看多了自然熟练了。
(讲下四六级,四级最好一次就过,六级在大二下结束前最好过)
3.9适时关注新技术
了解学科发展动态,跟上时代步法
3.10勤学苦练,持之以恒
学好技术不是一蹴而就的,要长期坚持。
4.无
5.无
6.关于编程的学习
6.1为什么要学习编程
编程是软件开发的基础,学习计算机,只会编程是千万不行的,但是开发软件,不会编程是万万不行的
(结合本年级的情况将一下现状,学习的重要性等)
6.2编程真的那么难学吗
(讲讲编程的苦与乐)
编程真的那么可怕,那么枯燥,那么没意思吗?假如真是这样,为什么世界上还有那么多优秀的人乐此不疲。
其实编程并不可怕,可怕的是你的心态。
编程固然很苦,编程时长时间对着屏幕,对身体不好,而且,经常因为考虑不周,会遇到各种各样的错误和麻烦,初学者处处容易受挫。
但是其实编程是很有趣的,编程中充满着无穷的快乐
首先,你通过编程得到了想要的成果的过程是一种创造的快乐
(编出了有用的东西的那一刻会有一股美好的成就感)
其次,你开发了有用的软件可以方便自己或他人,方便自己,是一种享受的快乐,方便他人,是一种奉献的快乐
再次,假如你开发的软件得到了用户的认可或好评,会有一种欣慰和满足感
还有,你可以根据自己的意愿写你想要的东西,经过自己的努力亲自实现你心中的愿望
然后,编程也是一个挑战自我的过程,遇到困难想办法解决的过程是思考的过程,思维能得到锻炼
最后,在代码中有一种看不见的美,就像诗一样,美景全是你的,你可以随心所欲
编程真的非常有趣,它不仅满足了我们内心深处进行创造的渴望,让人头脑变得灵活,而且还愉悦了每个人内在的情感。
6.3学好编程的建议
6.3.1请热爱编程
如果想成为编程牛人的话,请热爱编程。有兴趣是最好了,没兴趣也没关系,可以慢慢培养,当你感受到了编程的乐趣的时候你会爱上它。
6.3.2不要畏难
很多初学者往往都在遇到许多困难,遭受多次挫折后,自信心受到打击从而对编程丧失兴趣
这些困难每个人都会遇到,我在初学编程时也遇到过,关键是看你用什么心态对待,是想办法解决困难还是选择逃避。很多问题其实是有很多解决方法的。譬如看书,遇到看不懂的部分,可以暂时跳过,先往后看,看完后面的之后,再回头看前面跳过的部分往往会有一种豁然开朗的感觉。再比如,编程调试时死活找不到错误会很郁闷,这个时候很多同学会束手无策,其实只要在程序不同的地方加上输出语句,然后运行看有哪些输出,这样一步步缩小错误的范围从而确定错误发生的位置。等等。。。
不要畏惧困难,要用你的智慧战胜它。
6.3.3多实践,多交流
学习编程的秘诀是:编程,编程,再编程;(讲讲如何动手实践)
在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,现在错得多了,毕业后就错得少了。多实践,多从失败中吸取教训,积累经验。要勤奋,三天打鱼两天晒网是学不好的,学会了的东西一段时间不用就容易忘记,实践得越多才能记得越牢。
现在大家是大一,可能有人会说没有电脑不方便,其实实验室不是只有在老师安排的实验时间才可以去的,它是是面向计算机专业的学生免费开放的,大家有时间就去实验机房练习,只要拿着学生证,或者干脆直接跟那个阿姨说你是计算机的就行了。航海楼7楼的机房和图书馆电子阅览室也是可以的。我大一的时候甚至还到阳光网吧编程呢。
到大二大三的时候课程设计就会多起来,大家一定要自己动手做,不要去网上搜一个就完事了。
与人交流,分享自己编程中的乐趣和经验,共同进步。
6.3.4多阅读书籍和代码
编程不是非要在电脑上才能学的,阅读书籍和书中的代码也是一种学习方式,自己还可以尝试着改进那些代码,最后可以把自己的成果拿到电脑上调试
千万不要忽视书后面的习题
6.3.5养成良好习惯
细节很重要
要细心,沉下心来编程,戒骄戒躁
养成良好习惯,注重编程风格,尽量写代码注释,把写过的代码保留下来,以后会有用
6.3.6善于思考
遇到问题动脑筋解决
6.3.7注重基础
打好编程基础,除了熟悉基本的语法之外,要深刻理解指针,引用,面向过程思想,类,模板,标准库,接口,继承机制,面向对象思想等等,课后习题尽量全做一下
刚才说了,有精力的可以学学 photoshop图像处理, flash动画制作,3dmax或maya三维建模,dreamveaver网页设计,但是不要因为他们花费过多的时间而影响了你基础的学习,那些都是些应用技术,你学会了更好,不会也没什么丢人的,基础打好了,以后学啥都轻松。
在基础没打好的情况下,不要觉得你编的程序只能在黑白的DOS窗口了运行就去学VC做漂亮的窗口,3d程序很有意思就去看OpenGL或DirectX,那些都属于高级应用,没有基础学起来会很吃力。
基础要扎实,不要觉得C#中没有指针就扔掉C++, 不要今天看C#,明天搞java
要有明确的方向,计算机技术的发展实在太快,新技术不断涌现,了解一下就可以了,不要随波逐流,要沉得住气
6.3.8选好开发环境
选择一种适当的开发环境并熟悉它就可以了,不要今天摆弄Visual Studio,明天钻研Eclipse,后天来个netbeans,在工具的使用的学习上白白浪费时间。
6.3.9选好编程语言
我在选择语言时,走过一些弯路,浪费了一些精力,我在这里选出一些主流编程语言,对语言特性与环境稍作介绍,希望可以帮助大家,让大家尽早了解与选择,少走弯路
C(多用在性能要求较高的场合,如操作系统,嵌入式等)
C++(应用最广泛、成熟,强大而复杂,兼有性能高和易于构建大型程序的优点,基本是衡量一个国家软件产业发达程度的核心基础)
Java(著名的SUN公司推出的,面向对象、安全、跨平台、强大稳健,需要java虚拟机的支持)
C#(微软推出的完全面向对象,运行在 .NET Framework 环境中新兴、易学、强大语言)
Python(新兴的面向对象脚本语言,跨平台,语法清新易于使用,代码优美得像数学一样,非常容易学)
PHP (目前最流行、强大、稳健的动态网站开发脚本语言,语法类似C++)
ActionScript (Flash的编程脚本,最新版支持面向对象,能基于Flex开发RIA应用)
除此之外,还有vb, vb.net, asp.net, jsp, asp, ruby, Javascript等
这么多五花八门的语言,大家可能都会觉得眼花缭乱了。
其实各种语言之间只是语法不同,编程思想都是相通的,学精一门,了解多门是上策。
" 程序=算法+数据结构 " 其中并没有编程语言,说明语言只是程序员与计算机的编译器沟通的一种工具,程序员用某种语言来表达程序的逻辑结构,计算机中相应的编译器或解释器理解这种语言,编译得到二进制程序或者直接解释执行。
以上这些语言我在大学前三年全部学过了,有的学得很深,有的很浅。因为人的精力毕竟有限,很多语言学过了之后根本就很少用到,几乎是白学了,现在我深深的体会到,
语言并不是学得越多越好,与其泛而不精不如有针对性的先精通一门,其他的触类旁通。
就大家现在的情况,希望大家把当前正在学习的C++学好,学到一定程度的时候,可以继续深入的研究C++的各种库,也可以从上面选择感兴趣的新语言学习,如果把C++基础打好了,后面的学习就会容易得多。
最流行的语言不一定是最好的语言,用的人最多的语言也不一定是最好的语言。
请大家记住,没有最好的语言,只有最适合某个领域的语言, 在不同的环境下选择不同的语言就可以了。
6.3.10重视数据结构和算法
理论上,计算机的任何编程语言都有可能会被淘汰,随着时间的推移和计算机软硬件的飞速发展,不断会有新的语言产生和和旧的语言过时,但不会过时的是数据结构和优秀的算法。真正的高手应该是善于设计优秀的数据结构和算法的,应该是具有独立分析和解决问题的能力并利用计算机程序来实现的,他的思想应该是超脱语言、在更高处的一种升华。
如果某一天,你深切的体会到,真正重要的不是什么语言而是思想的时候,说明你可以出师了。