2006年11月1日

数组,集合

1.10 星期三
  array 数组:数组是一个具有相同类型的数据值得索引集合.

  数组申明:double[] rainfull; 推荐
           或
    double rainfull[];
 
   引用数据类型:接口,对象,数组.

   rainfull = new double[12];
   创建一个长度为12的数组,把空间地址赋给rainfull.

   数组索引是从0开始(没特殊要求情况下,索引一般都是从0开始)
 
   动态数组--自动增长

   数组.length (属性)
   String.leng()  (方法)

   String[] m = {"a","b","c"...}
   在申明初始化时,数组的大小设定.

   int size;
   int[] number;
   size = Integer.parseInt(JOptionPane.showMessageLag(null,"size of .."));  
   number = new int[size];   (方法也不是很好.因为size不一样,对象也就不一样.)
   可变型数组 
   
   对象数组
   数组的类型不是基本数据类型;
   Person[] person;
   person = new Person[20];
   对象数组每个元素都是一个对象,没初始化时是null.

   Person[0] = new Person[]; 创建对象

1.11 星期四
   JCF--java集合框架
   Java Collection Framework
   JCF是什么?
   是java语言设计出来的针对底层算法和数据结构的一系列类.
   在哪用JCF?
   凡是提到数据结构和算法的都可以用JCF
   为什么用JCF?
   让程序员的重点放在业务上,而不是如何去写算法上.
  
   接口                 Collection
                          |    |
                          |    |
                    set----     ----list               map
 
   实现            HashSet          ArrayList          SoredMap
 
   算法            Collections

   以上构成JCF
 
   list 列表     map 映射
   list的重要特征是帮我们管理大量对象

   ArrayList 数组列表
   LinkedList (单双)链表 (不是连续的,通过指针连接)

   ArrayList al = new ArrayList();
   al.add(1);
   al.add(4);
   al.add(2);  增加
   ......

   al.remove;  删除

   System.out.println(al);
   System.out.println(al.get(3));

   排序
   Collections.sort(al); 小到大
   Collections.max(al);
   Collections.min(al);
   Collections.sort(al,Collection.reverseOrder);  大到小
 
   Vector 跟 ArrayList 很相似
   向量

   如何便利集合
   Iterator it = al.iterator(); 迭带器 挨个访问
   while(it.hasNext())
   {
      System.out.println(al.next);
   }

   HashMap 不允许重复
   TreeMap 自动排序
 
   treeMap tr = new TreeMap();
   tr.put(1,1);  (key,value)
   .......

   Object[] o = tr.keySet().ToArray();
   Object[] o = tr.value().ToArray();               
 
   System.out.println(tr);

   for(int i = 0;i<o.leng;i++)
   {
      System.out.println(0[i]);
   }

posted @ 2007-01-11 21:53 扯 阅读(336) | 评论 (1)编辑 收藏

java GUI

12.25!~12.27
GUI
1 容器,部件
2 事件处理

awt和swing的特点:
awt(抽象窗口工具集)是依赖操作系统的GUI.
能够显示出来的组件是不同操作系统的共有组件.(但是不太好看.)
swing(模拟GUI组件)速度比awt要慢的多.
swt(sun公司的,是swing和awt的综合体)如果swt产生的组件awt有就直接调用, 没有就模拟出来.这样既解决了跨平台的问题,也解决了速度慢的问题.


低层容器:容器是包含其他组件的组件.
JFrame,JApplet,JDialog. 

布局管理器:
标准布局,自由布局.

GUI三个步骤:
1.选择容器
2.为容器设置布局方式
3.为容器填加组件

导入3个包
import javax.swing.*;
import java.awt.*;
import awt.event.*;

GUI底层容器的实现方式
第一种:
JFrame jf = new JFrame();  //拿一个容器
jf.setLayout(null);       
JButton jb = new JButton();
jb.setBounds(0,0,20,20);  //绝对布局
jf.add(jb);

this.setSize(200,200);
this.setVisible(true);

第二种:
类 extends JFrame   //让自己的类变成容器
申明组件;
public 类
{
 Container ct = this.getContentPane();
 ct.add();
 this.setSize();
 this.setVisible();
}

this.setCursor(new Cursor(Cursor.HAND_CURSOR));  //变手

Image image = new ImageIcon("Sunset.jpg").getImage();
setIconImage(image);//改变图标


容器,根容器,部件看gui资料  E盘..

布局管理器
FlowLayout 面板(缺省管理器) 流布局管理器
在setLayout(null)下全是FlowLayout
BorderLayout JFrame(缺省布局管理器) 东 西 南 北 中
GridLayout 行列(像表格)
CardLayout 卡片布局管理器(没有页签)
GridBagLayout 格兰包布局管理器(标准管理器中最灵活的,不好把控)  


FlowLayout 从上到下,从左到右放置.
1.当第一行没有排满时,会把第一行排满再排下一行.
2.不管布局管理器是否改变,组件大小都不会改变.
FlowLayout folw = new FlowLayout (FlowLayout.LEFT);
3.在缺省状态下从中部开始.


BorderLayout
当东西南北任何一个地区没放置任何组件时,中部区域会把周围的区域侵略掉.
setLayout(new BorderLayout());
组件会随着容器大小的变化而变化.
add("North",组件); 不好用
add(组件,BorderLayout.NORTH); 清晰

GridLayout
组件会随着容器大小的变化而变化.
setLayout(new GridLayout(3,2));  行列
add(new Button("first",0));
根据序列依次填进去,只有列满了才去填行.
validate();  让容器刷新

GardLayout
GardLayout card = new GardLayout();
setLayout(card);
add("1",new Button(""));


CardLayout cl = (CardLayout)cardLayout.getLayout;
cl.show(cardLayout,"card1");

事件
class 类 extends JFrame implements(实现) ActionListener(接口)
{                      (受托事件处理)
                       不同的事件不同的部门处理
}
1 让类变成监听者
2 赋予多少职责就实现多少
3 建立部件与监听者的关系
jb.addActionListener(this);

 

CardLayout cl = (CardLayout)card.getLayout();
String s = e.getActionCommed();
if(s.equals("上一步"))
{
 cl.show(card,"card2");
        或者
        cl.previous(card);
 button.setEnabled(false);
}
else if(s.equals("下一步"))
{
 cl.show(card,"card1");
        或者
        cl.previous(card);
 button.setEnabled(false);
}

 

 

 

 

 

 

 

 

 

posted @ 2007-01-11 21:11 扯 阅读(298) | 评论 (0)编辑 收藏

java基础

2.19 星期二
  在方法里面申明的属性必须初始化.(局部变量)
  在类里面申明的属性不用初始化.(全局变量)

  如果一个方法有返回值,那么方法里必须加上return.返回类型没有void.

  构造器就是类的构造方法.

  构造方法的基本特点:
  方法名和类名一致,方法名没有返回类型.

  构造方法的特性:
  1.每个类一定会有一个不带参数的默认构造方法.
  2.如果一个类定义了一个带参数的构造方法,那么不带参数的构造方法就会被洗刷掉.
  3.构造方法可以重载.(如一个带参数的和一个带参数的)
  一个类的方法同名叫做方法重载.
  4.构造方法是不能被继承的.

 
  实例变量:在类里面任何一个方法外面的变量.每个对象都有属于自己实例变量的拷贝.

  public private这个我们称之为"可见性修饰符".它来指定数据成员和方法的访问能力和访问级别.

  如果这个方法的行为是改变对象的属性,设置对象属性的值,那么这个方法称之为"修改器".
  public void setHeight(float h, float w)
  {
     height = h;
     weight = w;
  } 

  如果这个方法只是返回对象属性,那么我们称这个方法为"访问器".
  public void abc()
  {
     return a;
  }

12.20 星期三
  static int i;是类变量
  缺省修饰符:本包的都可以访问.
  公共修饰符(public):任何地方都可以访问.

  if()
  语句1;
  else
  语句2;
 
  ?  :       if else的工程用法(三目运算符)
 
  switch的条件语句只能是整数

  equals方法是被重写过的.
 
  equals跟==的区别:
  equals比较的是内存空间的内容是否相同
  == 比较的是两个对象的地址是否相同

12.21 星期四

properties
 
import java.io.*;
import java.util.Properties;

class P
{
 Properties pro;
 
 public P()
 {
  pro = new Properties();
 }
 
 public void load(String fileName)
 {
  try
  {
   pro.load(new FileInputStream(fileName));加载
  }
  catch(IOException e)
  {
   e.printStackTrace();
  }
 }
 
 public void getP(String key)
 {
  System.out.println(pro.getProperty(key));读取
 }
 
 public void setP(String key,String value)
 {
  pro.setProperty(key,value);设置(在内存里)
 }
 
 public void storeP(String fileName,String Info)
 {
  try
  {
   pro.store(new FileOutputStream(fileName),Info);保存(在文件)
  }
  catch(IOException e)
  {
   e.printStackTrace();
  }
 }
 
}


普通文件  后缀.peoperties

(柔性软件开发)目的:可以让程序变的灵活,配置变的轻巧。

循环语句
while循环:循环次数未知使用。
for 循环:已知循环次数使用。
do-while循环

 


 

posted @ 2007-01-11 21:11 扯 阅读(171) | 评论 (0)编辑 收藏

java基础的基础

java基础

static是静态。
静态方法不能访问非静态成员。
非静态方法可以访问静态成员。

int i = 3;
public static void main(String[] args) 

 System.out.println(i);
}
这个就会报错。因为静态方法不能访问非静态成员!!

 static int i = 3;
 public static void main(String[] args)
 {
  nbn n = new nbn();
  n.abc();
 }
 
 public void abc()
 {
  System.out.println(i);
 }

这个就不会报错。因为非静态方法可以访问静态成员。

 

public(訪問修飾符)static(訪問修飾符)void(返回類型) main(方法名)(String[] args)(參數表){}

import javax.swing.*;
import java.text.SimpleDateFormat;
class jframe
{
 public static void main(String[] args)
 {
  JFrame jf = new JFrame();//窗口
  
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd");//时间格式
  java.util.Date da = new java.util.Date();//显示时间的对象申明
  
  
  jf.setTitle("w.a.n");//设置标题
  jf.setSize(300,300);//设置窗体大小
  jf.setVisible(true);//显示
  JOptionPane.showMessageDialog(jf(位置),"hello");//弹出窗口显示HELLO
  String a = JOptionPane.showInputDialog(null,"can you see?");//输入窗口,窗口提示为can you see
  

  JOptionPane.showMessageDialog跟JOptionPane.showInputDialog还有一种参数写法。
  JOptionPane.showMessageDialog(null," "(显示信息)," "(标题信息),JOptionPane.INFORMATION_MESSAGE);
  System.out.println(sf.format(da.getTime())); //输出年月日。用SimpleDateFormat
  
 }
}


三种注释
/**
 *文檔註釋,寫在開頭 ( 注明程序的功能,以及相關信息)
 *功能:
 *作者:
 *版本:
 *開發日期:
 **/

/*
  *多行註釋
 
*///單行註釋


import javax.swing.JOptionPane;
class Area
{
 final private static double PI = 3.1415;  //常量的申明:final
 private String r;
 private double rr;
 private double s;
 
 
 public static void main(String[] args)
 {
  Area a = new Area();
  a.Input();
  a.Areas();
 }
 
 public void Input()
 {
  r  = JOptionPane.showInputDialog(null,"請輸入圓半徑");
 }
 
 public void Areas()
 {  
  rr = Double.parseDouble(r);//类型转换 
  s  = rr*rr*PI;
  JOptionPane.showMessageDialog(null,"圓面積是:"+s);
 }
}

类型转换

String转double
xx = Double.parseDouble(要转换的数据名字);
String转int
xx = Integer.parseInt(要转换的数据名字);

int转String
String s = String.valueOf(12);

String s = new Integer(10).toString();

注意!!
float f = 2.33 是错的。因为2.33默认类型是double.
改正:float f = 2.33 F;

还要注意
高内聚,松耦合。
函数分解。
这样代码看起来会很清爽。


import java.text.DecimalFormat;
class Dformat
{
 public static void main(String[] args)
 {
  DecimalFormat df = new DecimalFormat("0");//格式0后面几个小数点表示保留几位小数
  System.out.println(df.format(66.6666)+"%");//这样66.666就是67%
 }
}


标准输出
System.out.print("");//加ln是换行
标准输入
System.out.println(System.in.read());//這個方法用來讀取阿科斯碼
System.out.println((char)System.in.read());//這個方法是強制轉換,只能讀取一個字符

import java.io.*;//用BufferedReader 要引用io包
class c

 public static void main(String[] args)throws Exception //要抛异常
 {
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 String s = br.readLine();
 System.out.println(s);
 }
}
 要导入util包,util是工具包.
 Scanner sc = new Scanner(System.in);
 int s = sc.nextInt();
 int s1 = sc.nextInt();
 System.out.println(s*s1);//用Scanner可以省去判斷的步驟 在jdk1.5以下的版本不能用

GregorianCalendar calendar = new GregorianCalendar(year,month,day);
int d = calendar.get(Calendar.DAY_OF_WEEK);//今天是一周内的哪一天

 

 

 

 

 

 

 

 

 

 

 

posted @ 2007-01-11 21:10 扯 阅读(247) | 评论 (0)编辑 收藏

javascript补充

将HTML和JS文件分离的好处.<script type="text/javascript" src="";
1.分离的话易于维护和管理.
2.可重用.
javascript的作用是:1实现客户端与网页的交互(人机交互)
                               2客户端验证

window的2个"儿子":document 和  history

window有3个主要的.alert(提示框),open(新开一个窗口),prompt(对话框)

还有window.location.href="";实现页面跳转

window.status="";(状态条下写字).

window.history.back();(返回)
window.history.forward();(前进)
window.history.go(2);(前进2步)
window.history.go(-2);(退后2步)

事件
onclick单击 ondblclick双击
onfocus 聚焦 onblur 失焦
onselect 选择事件
window.setTimeout("函数",时间)  (定时器)
onmouseover 鼠标放上去
onmouseout 鼠标离开
下拉列表:onchange
onload 写在<body>里 登陆发生的事件
onunload 写在<body>里  离开发生的事件


获取表单对象
document.formTest(表单名);
document.forms[0];
document.forms["表单名"];
document.getElementById("formId");

posted @ 2006-12-07 22:37 扯 阅读(249) | 评论 (0)编辑 收藏

表单验证

<form name="formTest" action="#">
  <input type="checkbox" id="w1" name="box" value="0" />男
  <input type="checkbox" id="w2" name="box" value="0" />女
  <input type="checkbox" id="w3" name="box" value="0" />外乡人</br>
  <input type="button" value="ok" onclick="w1.checked='checked';w2.checked='checked';w3.checked='checked'"/>
简单的按一个键,所有的check都被选中.

下面的这个是关于表单验证的一个作业.需要分析:就是在一个TEXT聚焦的时候,就会在旁边显示一排字告诉你里面内容必须不为空,并且要大于或者等于8位.当你输入的内容符合要求的时候,该行字就自动小时.我算是基本实现了功能了,但是不完善.因为当我输入9个字的时候,字并不是自动小时的,而是需要我再一次的聚焦..如果那位达人能帮忙解决下,俺感激不尽..
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
  <title></title>
  <style>
   div
   {
    color: red;
    font-size: 13px;
   }
   
   
  
  </style>
  <script>
   function tixing()
   {
    
    var divObject = document.getElementById("div1");
    var text= document.getElementById("t1");
    if(text.value.length >=8)
    {
    divObject.innerHTML = "您输入的用户名必须在0-8位之间。";
    divObject.style.display = "none";
    } 
    else
    {
    divObject.innerHTML = "您输入的用户名必须在0-8位之间。";
    divObject.style.display = "";
    }
    
   } 
   function tixing1()
   {
    var divObject1 = document.getElementById("div2");
    var text2= document.getElementById("t2");
    if(text2.value.length >=8)
    {
    divObject1.innerHTML = "您输入的用户名必须在0-8位之间。";
    divObject1.style.display = "none";
    } 
    else
    {
    divObject1.innerHTML = "您输入的用户名必须在0-8位之间。";
    divObject1.style.display = "";
    }
   }
   function validate()
   {
    var te1 = document.getElementById("t1")
    var te2 = document.getElementById("t2")
    var divObject = div1;
    var divObject1 = div2;
    
    if(te1.value.length < 8)
    {
     divObject.innerHTML = "您输入的用户名必须在0-8位之间。";
     divObject.style.display = "";
    }    
    
    if(te2.value.length < 8)
    {
     divObject1.innerHTML = "您输入的密码必须在0-8位之间"
     divObject1.style.display = "";
    }
    
    if(te1.value.length < 8 && te2.value.length < 8)
    {
    divObject.innerHTML = "您输入的用户名必须在0-8位之间。";
    divObject1.innerHTML = "您输入的密码必须在0-8位之间"
    divObject.style.display = "";
    divObject1.style.display = "";
    }
   }
   
  </script>
 </head>

 <body>
  <form id="formTest">
   用户名
   <input type="text" id="t1"  onfocus="tixing();"/><br /><div id="div1"  ></div>
   密&nbsp码 
   <input type="password" id="t2"  onfocus="tixing1()" /><br /><div id="div2"></div>
   <input type="button" id="bt1" value="登录" onclick="validate()"/>
  </form>
 </body>
</html>


再下面的这个是今天的作业.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
 <title></title>
 <style>
 div
 {
  float: left;
 }
 </style>
 <script>
  function a()
  {
   var textId0 = document.getElementById("te1");
   var text0 = textId0.value;
   var areId = document.getElementById("text");
   areId.value = areId.value+"1."+"用户名:"+text0+"\n";
   
  }
  function b()
  {
   var textId1 = document.getElementById("pa");
   var text1 = textId1.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"3."+"密码:"+text1+"\n";
  }
  function c()
  {
   var radioId1 = document.getElementById("ra1");
   var radio1 = radioId1.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"4."+"单选:"+radio1+"\n";
  }
  function d()
  {
   var radioId2 = document.getElementById("ra2");
   var radio2 = radioId2.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"4."+"单选:"+radio2+"\n";
  }
  function ei()
  {
   var radioId3= document.getElementById("ra3");
   var radio3 = radioId3.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"4."+"单选:"+radio3+"\n";
  }
  function f()
  {
   var checkId1= document.getElementById("che1");
   var check1 = checkId1.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"5."+"多选:"+check1+"\n";
  }
  function g()
  {
   var checkId2= document.getElementById("che2");
   var check2 = checkId2.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"5."+"多选:"+check2+"\n";
  }
  function h()
  {
   var checkId3= document.getElementById("che3");
   var check3 = checkId3.value;
   var areId = document.getElementById("text");
   areId.value =areId.value+"5."+"多选:"+check3+"\n";
  }
  function select()
  {
   var a = document.getElementById("selectId");
   var b = a.options[a.selectedIndex];
   var c = b.value;
   var  areId = document.getElementById("text");
  
   areId.value = areId.value+c;
  }
 </script>
</head>

<body>
 
  <div>
   用户名:<input type="text" id="te1" onblur="a()"/><br/>
   密&nbsp&nbsp码:<input type="password" id="pa" onblur="b();"/><br />
   <a>
   <input type="radio" value="吃饭" id="ra1" name="1" onblur="c();"/>吃饭
   <input type="radio" value="睡觉" id="ra2" name="1" onblur="d();"/>睡觉
   <input type="radio" value="上学" id="ra3" name="1" onblur="ei();"/>上学
   </a><br />
   <a>
   <input type="checkbox" id="che1" value="巷巷" onblur="f()"/>巷巷
   <input type="checkbox" id="che2" value="街道" onblur="g()"/>街道
   <input type="checkbox" id="che3" value="边边" onblur="h()"/>边边
   </a><br />
   <textarea id="text" cols="20" rows="6"></textarea>
  </div>
  <form id="selectId0">
   <select id="selectId" onblur="select()"; / >
    <option value="东东">东东  </option>
    <option value="南南">南南</option>
    <option value="西西">西西 </option>
    <option value="北北">北北 </option>
   </select>
  </form>
 
</body>
</html>

还是不完善..哎..

posted @ 2006-12-07 22:14 扯 阅读(200) | 评论 (0)编辑 收藏

循环语句

do while和 while 的区别.  
do while  是先执行再判断
while   是先判断再执行

--i;   减之前的值
i--;       减之后的值     i的值会变
i = i - 1;                         i的值会变
i - 1;   i没有变


var i;
/*for(i = 0;i<10;i++)  //;分段   初始化;循环条件;步进
{
 document.write(i+"<br />");
}*/

/*for(i = 0;i<20;i++)
{
 if(i == 16)
 {
  break; 
 }
 document.write(i+"&nbsp");
}*/

/*for(i = 0;i<20;i++)
{
 if(i%2 == 1)
 {
  continue;
 }
 document.write(i+"&nbsp");
}*/

/*var i = 1;
var j = 1;
for(i = 1;i<10;i++)
{
 for(j = 1;j<=i;j++)
 {
  document.write(i+"*"+j+"="+i*j);
  document.write("&nbsp&nbsp&nbsp&nbsp")
 }
 document.write("<br />")
}*/

/*var i = 1;
var j = 1;
 
for(i = 1;i<10;i++)

 for(j = 1;j<10;j++)
 {
  document.write(i+"*"+j+"="+i*j);
  document.write("&nbsp&nbsp&nbsp&nbsp")
 }
 document.write("<br />")
}*/

/*
while(true)  //死循环
{
 alert("fdfd");
}
alert("end");*/

var i = 20;
while(i>5010)
{
 document.write(i);
 i=i-1;
}
//alert("end");

/*var i = 0;
while(i<100)
{
 document.write(i+"&nbsp;&nbsp;&nbsp;");
 if(i%10 == 9)
 {
  document.write("<br /><br />");
 }
 i++;
}*/

posted @ 2006-12-07 22:03 扯 阅读(263) | 评论 (0)编辑 收藏

javascript条件语句

<script>
 var b = "hello";
 </script>

<script>
alert (b);
</script>
这个hello能打出来吗?这是今天黄Sir上课问的问题.好多人没反映过来.我也算一个吧.
答案是能打出来.*因为写在不同块的变量可以相互引用..!!

逻辑运算符
&&与.就是数学上的且!
||或.
!非.
在与里面,只要有1个是false,那结果就是false.
在或里面,只要有个是true,那结果就是ture.
非.如果是true那么它的非就是false,反之亦是.
如果是数字,记住只有0是false.只要是非0就都是true.

switch(day = 1)  //switch只能表示等或者不等的映射关系
 {
  case day = 1:
  {
   alert("monday");
  }break;      //如果不加break会继续往下执行,并且忽略后来的比对,直到遇到下一个break.
  case day = 2:
  {
   alert("tuesday");
  }break;  
  case day = 3:
  {
   alert("wednesday");
  }break;
  case day = 4:
  {
   alert("thursday");
  }break;
  case day = 5:
  { 
   alert("friday");
  }break;
  case day = 6:
  {
   alert("saturday");
  }break;
  case day = 7:
  {
   alert("sunday");
  }break;
  default:
  {
   alert("error");
  }break; //最后1个可加可不加,但是加上比较严谨。
}

var score = 99;
if(score>=90) //表示范围
{
 alert("so cool");
}
else if(score>=80)
{
 alert("good"); 
}
else if(score>=70)
{
 alert("so-so")
}
else if(score>=60)
{
 ("pass");
}
else
{
 alert("not pass");
}

posted @ 2006-11-30 20:10 扯 阅读(554) | 评论 (0)编辑 收藏

javascript基本语法.

   (首先,今天是我的跟儿生日.跟跟,你的跟祝你生日快乐!~)
   进入正题....
   javascript是一种脚本语言.脚本语言的意思就是它生成的文件不能独立运行,必须依赖于一种平台.比如javascript就必须要用IE才能打开.而像java或者c语言,它们由代码生成文件就可以独立运行.
   javascript是一种弱类型语言.它不像java,c这些强类型的语言.强类型和弱类型语言的区别就在于.在申明一个变量的时候,强类型语言必须把变量类型也指定好. int i =0;而且一旦指定好类型,就不能再改变.而javascript作为一种弱类型的语言,它在申明变量的时候就不需要指定变量类型.切数据类型是自动转换的.
   如var a = 0;这个时候a这个变量的数据类型就是整形.a = "hello"这个时候a的变量类型就变成了字符型.
   javascript可以使用<script>嵌入进html里,也可以通过添加事件,或者用伪URL javascript..
   alert();可以在()内写函数,数字,或者字符串.字符串必须用""括起来.它的效果就是弹出一个窗口.
    var f = true;
   alert(typeof(f));  //返回数据类型
   
   函数:function functionName()   //定义,申明
   {
    alert("Welcome to Lovo");
   }
   functionName();   //调用,使用

   function abc(o)  //o是形式参数
   {
    alert(o);
   }
  // o = "hello";
   abc("hello");  //"hello"是实际参数

  
   function a(i,o)
   {
    alert(i+o)
   }
   a(5,9);
   这个的结果是14.很简单,就是2个数字相加.
   
   function a(i,o)
   {
    alert(i+o)
   }
   a("500",9);
   这个呢?是5009.这个因为500打了"",所以它就变成了字符串相加.

    function b(i,o)
   {
    var w;
   w = i + o;
   alert(w);
   return w;  //程序到return就自动跳出
   }
  b(1,3);
   之前我犯了个错误,我把 alert(w);写在了  return w; 之后..我就奇怪为什么W的值打不出来...好白痴,因为函数return w;的时候就直接跳出了.就不会接续执行函数里面  return w; 后面的语句了. 

  function b(i,o)
   {
    var w;
   w = i + o;
   return w; 
   }
     
    function c()
    {
     var result;
   result = b(3,3);
   alert(result);
    }
   c();
   这个是函数c调用函数b,函数b里面有个返回值,它把需要的结果返回给它的调用者.

posted @ 2006-11-30 19:57 扯 阅读(927) | 评论 (0)编辑 收藏

html

   (哎..终于还是降级了..只能从HTML重新学过了..哎..学习终究是不能骗自己的..好好学习吧!~~...)
   HTML我是用TopStyle来写.CSS是2.0..(我知道是废话...)
   要在HTML里面写个button or test就很简单了..
   就是在<head>里写 <form action="#"(这个表示发到哪里.."#"表示提交到当前页面) method="post" (这个是发送方法,一共有2种.一种是GET.这个方法相对比较不安全.因为它会把你提交的信息以一个"?"打头粘到URL后面第2种就是POST.这个就比较安全了.你所提交的东西是在URL上是看不到的)>
   然后<input type="button"(这如果填TEST就是TEST了) id="bt1" name="bt1"(ID跟NAME最好都写上,这个是好习惯,在以后会很有用.ID跟NAME可以不一样) value="登录"(这个就是你BUTTON上显示的字.)>
相同..<input type="text" id="te2" name="te2">...
   如果要想写个单选框或者复选框.
   <input type="checkbox"(CHECKBOX就是复选框) id="cb1" name="cb1">记住我(表示你复选框后面跟的字).怎么样让你的这个复选框为默认呢?就在<input>里添上一个checked="checked".如果不能选就添上一个disabled="disabled".
   接下来是单选框.其他的都跟复选框一样,唯一不同的就是.在type=""填"radio".
   除此之外,还有password(跟TEST有点像,不同的是输入信息是以星星的形式) submit(跟button,reset是一组.按了submit整个表单都提交了) reset(重置) file(上传文件) image(图片 后跟src=""选择URL)
    选择框.
   <select>
   <option value="sh">上海</option>
   <option value="sh">成都</option>
   <option value="sh">广州</option>
   </select>
   也可以<select size="5"(表示同时有几个被选项可以在不拉滚动条的情况下直接选择) multiple="multiple"(可以多选 在按中SHIFT的情况下)>
    多行输入的文本框    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 <textarea cols="10" rows="10"(设置长宽不用说了.)></textarea>
    最后1个是一个框框把你想框的内容全部框住,并且可以取个标题.
    <fieldset>
      <legend>dsada</legend>
    </fieldset>
    <fieldset> </fieldset>这个标签中间放你想被框的内容.<legend></legend>这个标签中间写标题名.
   
    CSS我简单说一下.CSS是样式层叠表..它确实是层叠的.关于盒式模型的布局属性一共有三种. margin: border:  padding: .margin: 是调整边框和边框的距离.border:是调整边框的厚度.padding:是调整边框跟内容之间的距离.
     以下是我用CSS以及HTML写的一个网页的代码.
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
 <head>
  <!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
  <title>用户注册</title> 
  <style>
  #a,#b,#d,#e,#i,#j
  {
     padding:;
   padding-left: 208px;
  }
  
  #c
  {
   padding: 30px;
   padding-left: 208px;
  }
  
  #f
  {
   padding:;
   padding-left: 193px;
  }
  
  #h
  {
   padding:;
   padding-left: 193px;
  }
  
  #g
  {
   padding:;
   padding-left: 224px;
  }
  
    #f2
  {
     margin:;
   margin-bottom: 29px;
   margin-left: 31px;
   margin-right: 43px;
  }
  
    #f3
  {
     margin:;
   margin-bottom: 29px;
   margin-left: 31px;
   margin-right: 43px;
  }
  
  #bt1
  {
   margin:;
   margin-left: 36px;
  }
  
  #cb1
  {
   margin:;
   margin-left: 30px;
  }
  
  /*#f4
  {
  
     margin:;
   margin-right: 778px;
  }*/
  
  #f5
  {
   margin:;
   margin-right: 778px;
  }
  </style>
 
 </head>

 <body>
  <form action="#" method="post">
   <fieldset id="f1">
   <h2>已注册用户登录</h2>
   <fieldset id="f2">
    <legend >
     <h3 >登录用户</h3 >
    </legend>
    
    <p id="a" >用户名
     <input type="text" id="te1" name="te1">
    </p>

    <p id="b">密&nbsp&nbsp码
     <input type="text" id="te2" name="te2">
    </p>
    
    <p id="c">
     <input type="checkbox" id="cb1" name="cb1">记住我
     <input type="button" id="bt1" name="bt1" value="登录">
    </p>
    </fieldset>

   <h2>未注册创建帐户</h2>
    <fieldset id="f3">
     <legend >
      <h3><fieldset id="f5">用户注册</fieldset></h3> 
     </legend>
     
     <p id="d">
      <h4>您的电子邮箱不会被公布出去,但是必须填写.</h4>在您注册之前请先认真阅读服务条款
     </p>
     
     <p id="e">用户名
      <input type="text" id="te3" name="te3">*(最多30个字符)
     </p>

     <p id="f">电子邮箱
      <input type="text" id="te4" name="te4">*
     </p>
     
     <p id="g">密码
      <input type="text" id="te5" name="te5">*(最多15个字符)
     </p>

     <p id="h">重复密码
      <input type="text" id="te6" name="te6">*
     </p>

     <p id="i">同意服务条款
      <input type="checkbox" id="cb2" name="cb2">先看看条款?*
     </p>

     <p id="j">
      <input type="submit" id="bt2" name="bt2" value="提交">
      <input type="reset" id="bt3" name="bt3" value="重置">
     </p>
     
     <h3>*在提交您的注册信息时,我们认为您已经同意了我们的服务条款</h3>
     <h3>*这些条款可能在未经您同意的时候进行修改</h3>
   
   </fieldset>
  </form>
 </body>
</html>


  以上便是我的总结!

posted @ 2006-11-28 16:49 扯 阅读(332) | 评论 (0)编辑 收藏

数据库第2章

      数据规范化   
      第一范式
      1.每一行的每一列必须只有一个值.
      2.每一行的列相同.
      3.所有行必须唯一.
      第二范式
      1.遵守所有第一范式的规则.
      2.所有非主键列必须依赖主键列.
      第三范式
      1.遵守所有第二范式的规则.
      2.所有非主键列必须依赖主键列,并且必须相互独立.
      关系型数据库的关系
      一对一关系.
      一对多关系.
      多对多关系.
      其中一对一关系主要因为1.敏感信息.2.列太多.3.提高性能.
      多对多关系是不存在的,一般中间都会加个连接表.
      创建数据模型
      逻辑型模型
      物理型模型
      逻辑型模型是抽象的考虑数据存储,并且严格遵守范式规则和关系模型.物理型模型是提供的数据库如何在RDBMS实现的表现.所以,逻辑型模型与数据库如何实现无关,而物理型模型就是一个特定的实现.
      数据型模型是创建表,定义列,以及设置表间关系的蓝图.它必须实现:
      1.组成数据库的表
      2.组成每个表的列.
      3.列的数据类型.
      4.标识每一行的主键.
      5.标明表间的关系.
      创建数据模型的4个步骤:
      1.识别实体  
      2.规范化数据
      3.识别关系
      4.改进数据模型

posted @ 2006-11-01 22:55 扯 阅读(158) | 评论 (0)编辑 收藏

数据库

      数据库就是一系列有一定关系的数据的集合.(某种方式相关的数据的集合).在数据库中,数据的描述必须  是以一定的格式被组织或者分类.这种格式叫做元数据(metadata)
      常见的数据模型有3种.
      层次模型
      层次模型就好象是一棵倒挂的树.数据是以父类子类的形式存在.每个父类可以有多个子类,但是每个子类只能有1个父类.其形状跟WINDOWS资源管理器一样.其缺点就是
过于呆板,导航非常的麻烦.
      网状模型
      网络型相比层次模型提供了更多的可伸缩性.他允许有多个父子关系.他的缺点是如果数据库变动,或者程序变动,那就会引起更多的变动.
      关系模型
      这个较上两个,可伸缩性就更强.他对于应用程序是独立的.就是说如果应用程序有改动,但是数据库却可以不变.
      数据库管理系统(DBNS)他的功能基本上是:
      管理存储
      维护安全
      维护元数据
      管理事务
      支持连接性
      优化性能
      提供备份和恢复机智
      处理数据反馈和更改的请求
      一个关系型数据库(RDBNS)分成两个主要组成部分.
      数据库引擎
      数据
      关系型数据库分两种类型.
      本地数据管理系统
      数据库服务器管理系统
      SQL是机构化查询语言的英文缩写.它是一门非过程的语言.它是实现必须要有一个宿主语言.它本身是一种没有多少基本编程能力的次语言.
      SQL语句分为三种.
      DDL.数据定义语句.
      DML.数据操作语言.
      DCL数据控制语言.
      DDL执行的任务是:创建删除数据库;创建,修改,重命名,删除表;创建删除索引.
      DML执行的任务是:SQL查询;将数据插入一个表中;更改表中已有数据;删除表中数据.
      DCL执行的任务是:给用户授予访问权限;取消用户访问权限.
      Oracle的体系结构
      Oracle主要由数据库引擎和数据库结构两部分组成.
      数据库引擎又分为数据全局区(SGA)和后台处理程序两部分.

posted @ 2006-11-01 00:09 扯 阅读(250) | 评论 (0)编辑 收藏

<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜