2012年8月10日 星期五
術語
計算機結構(computer architecture)、分子模型繪圖(molecular graphic),以及虛擬環境(virtual environment) 實作(implementation)、互動(interaction) 理論家(theoretician)基督教三位一體的教義(Christian doctrine of the Trinity)介質(medium)操控(tractable)物理缺陷(physical limitation)
2012年8月6日 星期一
Visual Studio認證 最新MCSD認證)MCPD-網頁程式認證班
認識MCTS和MCPD(微軟最新MCSD認證)
MCTS和MCPD是Microsoft有關應用程式開發人員與解決方案設計人員的最新認証,擁有這兩種證照代表您可以使用.NET 平台和Visual Studio 2010 應用程式開發工具與網頁開發工具為企業或客戶提供最符合需求,而且具有高效能,高延展性,以及高安全性的解決方案。
快速取得證照
參加本課程,可以讓您極有效率地一舉取得Microsoft最新證照,心動不如馬上行動.
課程特色
1.
精心設計的先修課程,協助尚未熟悉.NET平台程式開發的學員建立紮實的基礎。
2.
獨一無二的系統分析設計與實作進階課程,體驗.NET系統開發的完整流程,去除紙上談兵,光說不練的缺點。
3.
完整的課程與時數,實在的價格,貼心的認證考試方案
適用對象
對程式設計有興趣者, 具程式設計經驗者尤佳
課程內容
1. 先修課程:
Microsoft .NET 平台應用程式開發基礎
3天/21小時
原價9000元
2. ASP.NET網頁程式設計
6天/36小時
原價15000元
3. ADO .NET 資料庫應用程式設計
5天/30小時
原價15000元
4. 設計WCF分散式服務
5天/30小時
原價18000元
5.
物件導向分析設計與實作
5天/30小時
原價18000元
學員可享有:
1.專屬硬碟 2.MCAD/MCSD舊學員可享VIP級的學費優惠,不限版本
3.免費參加總複習
時數費用
報名PD班(含上列1,2,3,4,5四項課程) 原價75,000元 特價39,000元
◎報名本課程學員, 每門課免費加贈價值1700元~2900元的原版教材一套
結訓學員可享原價5折的優惠價格加修Microsoft ASP.NET AJAX最新網頁開發技術速成 、Microsoft Silverlight新世代動態影音網頁開發設計 及MCTS/MCPD Windows Developer 認證班 (Windows視窗程式設計)
開課時期
PD班
2012/10/13-2012/12/16
週六、日 假日
報名
註:使用Visual C#
2012年8月5日 星期日
關於LinkedList
我用的軟體為Netbeans
老師可以開我的Hw13_2看看
取眾數的指令不是很了解
其中:
private void print2(Map<String, Integer> hm2) {
Map<String, Integer> hm = MapUtil.sortByValue( hm2, true );
this.jTextArea1.setText("依數值排序:\n");
int total = 0, maxv=0;
boolean start = false;
LinkedList<String> ll = new LinkedList();
for (String e : hm.keySet()) {
if (! start) { //第一次進入
maxv = hm.get(e);
start = true;
}
if (hm.get(e) == maxv) ll.add(e);
this.jTextArea1.append(String.format("姓%s的有 %d人\n", e, hm.get(e)));
total += hm.get(e);
}// 接著印出總人數及眾數
if(maxv==1){
this.jTextArea1.append(String.format("共有%d人,這些姓名的眾數為:%s", total,ll));
}
else{
this.jTextArea1.append(String.format("共有%d人,這些姓名的眾數為:%s", total,ll.clone()));
}
}
紅色粗體那一段ll.clone()不知道是甚麼意思
查了API解釋為: 返回此 LinkedList 的淺表副本。
老師能為我解釋嗎
聽說改成ll.toString();也可以不知道為何@@
A:
你可以認為說clone()只是把記憶體位置複製過去
所以資料是共享的
老師可以開我的Hw13_2看看
取眾數的指令不是很了解
其中:
private void print2(Map<String, Integer> hm2) {
Map<String, Integer> hm = MapUtil.sortByValue( hm2, true );
this.jTextArea1.setText("依數值排序:\n");
int total = 0, maxv=0;
boolean start = false;
LinkedList<String> ll = new LinkedList();
for (String e : hm.keySet()) {
if (! start) { //第一次進入
maxv = hm.get(e);
start = true;
}
if (hm.get(e) == maxv) ll.add(e);
this.jTextArea1.append(String.format("姓%s的有 %d人\n", e, hm.get(e)));
total += hm.get(e);
}// 接著印出總人數及眾數
if(maxv==1){
this.jTextArea1.append(String.format("共有%d人,這些姓名的眾數為:%s", total,ll));
}
else{
this.jTextArea1.append(String.format("共有%d人,這些姓名的眾數為:%s", total,ll.clone()));
}
}
紅色粗體那一段ll.clone()不知道是甚麼意思
查了API解釋為: 返回此 LinkedList 的淺表副本。
老師能為我解釋嗎
聽說改成ll.toString();也可以不知道為何@@
A:
你可以認為說clone()只是把記憶體位置複製過去
所以資料是共享的
[作業] 階乘問題 n!
1.請寫出可計算n!階乘的類別,若n=10 計算10!。
階乘
0!=1
1!=1
2!=2*1=2
3!=3*2*1=6
4!=4*3*2*1=24
依此類推
2.請運用階乘類別寫出可計算階乘和的類別,若n=3 計算1!+2!+3!。
3.請說明兩者的關係 is a 或是 has a。
A:
終於發表題目了....趕緊來看看...哈哈
回復如下:
class fact{
private int sum = 0;
public int setFact(int n){
int fac=1;
if(n == 0){
fac = 1 ;
}else{
for(int i=1;i<=n;i++){
fac *= i;
}
}
return(fac);
}
public int setSum(int m){
for(int i =0;i<=m;i++){
sum+=setFact(i);
}
return(sum);
}
}
public class Test3 {
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.println("請輸入n值");
int m = s.nextInt();
fact ff = new fact();
System.out.println("階乘:"+ff.setFact(m));
System.out.println("階乘和:"+ff.setSum(m));
}
}
兩者在同一類別中
階乘
0!=1
1!=1
2!=2*1=2
3!=3*2*1=6
4!=4*3*2*1=24
依此類推
2.請運用階乘類別寫出可計算階乘和的類別,若n=3 計算1!+2!+3!。
3.請說明兩者的關係 is a 或是 has a。
A:
終於發表題目了....趕緊來看看...哈哈
回復如下:
本帖隱藏的內容需要回覆才可以瀏覽
import java.util.*;class fact{
private int sum = 0;
public int setFact(int n){
int fac=1;
if(n == 0){
fac = 1 ;
}else{
for(int i=1;i<=n;i++){
fac *= i;
}
}
return(fac);
}
public int setSum(int m){
for(int i =0;i<=m;i++){
sum+=setFact(i);
}
return(sum);
}
}
public class Test3 {
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.println("請輸入n值");
int m = s.nextInt();
fact ff = new fact();
System.out.println("階乘:"+ff.setFact(m));
System.out.println("階乘和:"+ff.setSum(m));
}
}
兩者在同一類別中
BigInteger的使用方法
個人試著練習了一下BigInteger的使用方法 但以下程式碼卻發生9個錯誤 import static java.lang.System.*; import java.math.*; public class BigInteger{ public static void main(String args[]){ BigInteger a = new BigInteger("8786567886771666523775892"); BigInteger b = new BigInteger("1126838773993333890888316"); BigInteger c = a.add(b); out.println("a + b = " + c); out.println("a - b = " + a.add(b.negate())); out.println("a - b = " + a.subtract(b)); out.println("a × b = " + a.multiply(b)); out.println("a ÷ b = " + a.divide(b)); out.println("a^3 = " + a.pow(3)); out.println("gcd(a , b)" + a.gcd(b)); } } 大致發生這3種錯誤: constructor BigInteger in class BigInteger cannot be applied to given types; actual and formal argument lists differ in length error: cannot find symbol 向各方高手 求解 謝謝 A: 請把你的類別名稱改掉 名稱要具唯一性 BigInteger a = new BigInteger 你是要NEW你自己,還是要NEW "java.math.BigInteger" ?? A: 說得好 其實class名稱我改過了 但是錯誤並沒有減少的趨勢 謝謝您的回答 A: 請問您的類別名稱改掉後,檔名有跟著一起改嗎? 有重新編譯?? 我付上三張圖片,證明用各種方法來跑您貼上的程式碼,是正常的 By 柏宇 DOS Eclipse NetBeans |
Q: 這就怪了 @@ 看來我們改的擋名&class都一樣 居然我的DOS編譯不了 難道這台電腦有問題 = =? 我試試看其他電腦好了 非常感謝 |
重新指派法
請問一下大家,昨天小孟老師的第二題範例(重新指派法).
第一個問題:
有沒有test t=new test();這行.
因為想說是static頂層方法,可以直接去存取,不需要再建立物件.
想說是不是我打字的時候打錯?
第二個問題:
關於GC回收,因為會回傳s,是否是main方法內的s被回收?
public class test
{
public static void main(String args[])
{
test t=new test();
StringBuffer s=getStringBuffer();
System.out.println("s="+s);
}
static StringBuffer getStringBuffer()
{
StringBuffer s=new StringBuffer("java");
return s;
}
}
A:
>>第一個問題:
>>有沒有test t=new test();這行.
你可以試試看,即使把這行mark之後一樣可以執行,因為這個t 確實沒用到
>>第二個問題:
>>關於GC回收,因為會回傳s,是否是main方法內的s被回收?
假如是 main方法內的s被回收,那誰要來接收getStringBuffer所回傳的s?
第一個問題:
有沒有test t=new test();這行.
因為想說是static頂層方法,可以直接去存取,不需要再建立物件.
想說是不是我打字的時候打錯?
第二個問題:
關於GC回收,因為會回傳s,是否是main方法內的s被回收?
public class test
{
public static void main(String args[])
{
test t=new test();
StringBuffer s=getStringBuffer();
System.out.println("s="+s);
}
static StringBuffer getStringBuffer()
{
StringBuffer s=new StringBuffer("java");
return s;
}
}
A:
>>第一個問題:
>>有沒有test t=new test();這行.
你可以試試看,即使把這行mark之後一樣可以執行,因為這個t 確實沒用到
>>第二個問題:
>>關於GC回收,因為會回傳s,是否是main方法內的s被回收?
假如是 main方法內的s被回收,那誰要來接收getStringBuffer所回傳的s?
[作業] 撰寫販賣機
請以物件導向方式撰寫報紙販賣機及飲料販賣機。
1.硬幣物件有三種幣別屬性1元 5元 10元。
2.販賣機可接受硬幣物件。
3.販賣機有投幣、退幣找零、按鈕購物及顯示物品功能。
4.販賣機可賣三種商品。
要做一個使用者視窗介面出來
Q:
老師~
用import java.io.*;、BufferedReader寫的話
可以嗎~?A: 可以
A:
簡陋版瘋哥販賣機
import java.util.*;
class Coins{//硬幣類別
private int one;
private int five;
private int ten;
private int money;
public void setMoney(int n){//應找金額硬幣數量
money = n;
ten=(int)n/10;
five = (int)(n-ten*10)/5;
one = n-(ten*10+five*5);
}
public void getMoney(){//印出硬幣數量
System.out.println("退"+ten+"個10元硬幣");
System.out.println("退"+five+"個5元硬幣");
System.out.println("退"+one+"個1元硬幣");
System.out.println("共退"+money+"元");
}
}
class Vma{
private int money;
private int[] moneyObj;
public void inPutMoney(int n){//投幣
money = n;
}
public void outPutMoney(){//找零
Coins c = new Coins();
c.setMoney(this.money);
c.getMoney();
}
public void setObj(String s,int s1 , String ss,int ss1 , String sss,int sss1){//設定三種商品
int[] moneyObj1 = {s1,ss1,sss1};
moneyObj = moneyObj1;
System.out.print("品項 1:"+s+" ");
System.out.print("2:"+ss+" ");
System.out.print("3:"+sss+"\n\n");
}
public void moneyCount(int n){//計算金額
int a = money;
if((a-n)>=0){
money-=n;
}else{
System.out.println("投入金額不足");
}
}
public int chooseObj(int n){//選擇項目
if(n==1)
return moneyObj[0];
else if(n==2)
return moneyObj[1];
else if(n==3)
return moneyObj[2];
else
System.out.println("輸入錯誤");
return 0;
}
}
public class Test4 {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("**********************");
System.out.println("******瘋哥販賣機******");
System.out.println("**********************\n");
Vma v = new Vma();
v.setObj("可樂100元",100,"紅茶50元",50,"果汁120元",120);
System.out.print("@@@@@@請輸入投幣金額:");
int n=s.nextInt();
v.inPutMoney(n);
System.out.print("\n======請輸入購買品項例如買第一個品項就輸入1)");
int n1 = s.nextInt();
v.moneyCount(v.chooseObj(n1));
v.outPutMoney();
}
}
1.硬幣物件有三種幣別屬性1元 5元 10元。
2.販賣機可接受硬幣物件。
3.販賣機有投幣、退幣找零、按鈕購物及顯示物品功能。
4.販賣機可賣三種商品。
要做一個使用者視窗介面出來
Q:
老師~
用import java.io.*;、BufferedReader寫的話
可以嗎~?A: 可以
A:
簡陋版瘋哥販賣機
import java.util.*;
class Coins{//硬幣類別
private int one;
private int five;
private int ten;
private int money;
public void setMoney(int n){//應找金額硬幣數量
money = n;
ten=(int)n/10;
five = (int)(n-ten*10)/5;
one = n-(ten*10+five*5);
}
public void getMoney(){//印出硬幣數量
System.out.println("退"+ten+"個10元硬幣");
System.out.println("退"+five+"個5元硬幣");
System.out.println("退"+one+"個1元硬幣");
System.out.println("共退"+money+"元");
}
}
class Vma{
private int money;
private int[] moneyObj;
public void inPutMoney(int n){//投幣
money = n;
}
public void outPutMoney(){//找零
Coins c = new Coins();
c.setMoney(this.money);
c.getMoney();
}
public void setObj(String s,int s1 , String ss,int ss1 , String sss,int sss1){//設定三種商品
int[] moneyObj1 = {s1,ss1,sss1};
moneyObj = moneyObj1;
System.out.print("品項 1:"+s+" ");
System.out.print("2:"+ss+" ");
System.out.print("3:"+sss+"\n\n");
}
public void moneyCount(int n){//計算金額
int a = money;
if((a-n)>=0){
money-=n;
}else{
System.out.println("投入金額不足");
}
}
public int chooseObj(int n){//選擇項目
if(n==1)
return moneyObj[0];
else if(n==2)
return moneyObj[1];
else if(n==3)
return moneyObj[2];
else
System.out.println("輸入錯誤");
return 0;
}
}
public class Test4 {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("**********************");
System.out.println("******瘋哥販賣機******");
System.out.println("**********************\n");
Vma v = new Vma();
v.setObj("可樂100元",100,"紅茶50元",50,"果汁120元",120);
System.out.print("@@@@@@請輸入投幣金額:");
int n=s.nextInt();
v.inPutMoney(n);
System.out.print("\n======請輸入購買品項例如買第一個品項就輸入1)");
int n1 = s.nextInt();
v.moneyCount(v.chooseObj(n1));
v.outPutMoney();
}
}
複寫跟多載是不一樣的東西
小孟老師有說用方法寫出這題目,下面是可以編譯的,但是我把System那行改了一下,編譯就出錯了,請問問題是出在哪邊?
可以編譯的:
class CShape
{
public double area()
{
return 1.0;
}
}
class CCircle extends CShape
{
double radius;
public double area(double r)
{
return r*r*3.1415926;
}
}
class CSquare extends CShape
{
double side;
public double area(double s)
{
return s*s;
}
}
class CTriangle extends CShape
{
double base,height;
public double area(double b,double h)
{
return b*h/2;
}
}
public class test
{
public static void main(String args[])
{
CShape s01=new CCircle();
System.out.println(((CCircle)s01).area(2.0));
CShape s02=new CSquare();
System.out.println(((CSquare)s02).area(2.0));
CShape s03=new CTriangle();
System.out.println(((CTriangle)s03).area(2.0,2.0));
}
}
編譯錯誤的
public class test
{
public static void main(String args[])
{
CShape s01=new CCircle();
System.out.println(s01.area(2.0));
CShape s02=new CSquare();
System.out.println(s02.area(2.0));
CShape s03=new CTriangle();
System.out.println(s03.area(2.0,2.0));
}
}
test.java:37: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s01.area(2.0));
^
required: no arguments
found: double
reason: actual and formal argument lists differ in length
test.java:40: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s02.area(2.0));
^
required: no arguments
found: double
reason: actual and formal argument lists differ in length
test.java:43: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s03.area(2.0,2.0));
^
required: no arguments
found: double,double
reason: actual and formal argument lists differ in length
3 errors
可以編譯的:
class CShape
{
public double area()
{
return 1.0;
}
}
class CCircle extends CShape
{
double radius;
public double area(double r)
{
return r*r*3.1415926;
}
}
class CSquare extends CShape
{
double side;
public double area(double s)
{
return s*s;
}
}
class CTriangle extends CShape
{
double base,height;
public double area(double b,double h)
{
return b*h/2;
}
}
public class test
{
public static void main(String args[])
{
CShape s01=new CCircle();
System.out.println(((CCircle)s01).area(2.0));
CShape s02=new CSquare();
System.out.println(((CSquare)s02).area(2.0));
CShape s03=new CTriangle();
System.out.println(((CTriangle)s03).area(2.0,2.0));
}
}
編譯錯誤的
public class test
{
public static void main(String args[])
{
CShape s01=new CCircle();
System.out.println(s01.area(2.0));
CShape s02=new CSquare();
System.out.println(s02.area(2.0));
CShape s03=new CTriangle();
System.out.println(s03.area(2.0,2.0));
}
}
test.java:37: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s01.area(2.0));
^
required: no arguments
found: double
reason: actual and formal argument lists differ in length
test.java:40: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s02.area(2.0));
^
required: no arguments
found: double
reason: actual and formal argument lists differ in length
test.java:43: error: method area in class CShape cannot be applied to given type
s;
System.out.println(s03.area(2.0,2.0));
^
required: no arguments
found: double,double
reason: actual and formal argument lists differ in length
3 errors
這題錯在哪?
class test { int i01,i02,sum01=0,sum02=1; test(int i01) { for(int i02=1;i02<=i01;i02++) { sum01+=i02; sum02*=i02; } System.out.println("1+2+3+....+"+i01+"="+sum01); System.out.println("1*2*3*....*"+i01+"="+sum02); } } import javax.swing.*; public class test01 { public static void main(String args[]) { int num; String str01; do { str01=JOptionPane.showInputDialog("請輸入大於一以上數字"); num=Integer.parseInt(str01); }while(num<1); test t=new test(num); } } 編譯會出錯訊息 test01.java:15: error: class, interface, or enum expected import javax.swing.*; ^ 1 error A: 請把你的import 貼在 class test 上方.......... 不然就是把你的class test 另外創一個類別 A:
|
訂閱:
文章 (Atom)