JBTALKS.CC

标题: Term 2了。。。開始學web development了。。有問題會問 [打印本页]

作者: 虚空使者    时间: 2008-10-15 08:05 PM
标题: Term 2了。。。開始學web development了。。有問題會問
前几个礼拜还好。。。
就学了while loop,if else,reverse那些。。。
今天学了点continue/break, switch case的。。。lecturer讲有点不清楚。。。头脑有点难消化
有点问题想问。。。

write a C++ program to count the numbers of vowels and consonants in a word
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int i=0,vowels=0,spaces=0,consonants=0;
  6.     char text[50];
  7.     cout<<"Enter the word\n";
  8.     cin>>text;
  9.     while(i<strlen(text))
  10.     {
  11.         switch(text[i])
  12.         {
  13.         case 'a':
  14.         case 'e':
  15.         case 'i':
  16.         case 'o':
  17.         case 'u':
  18.                    vowels++;
  19.                    break;
  20.         default:
  21.                    consonants++;
  22.                    break;
  23.         }
  24.         i++;
  25.         
  26.     }
  27. cout<<"Number of vowels="<<vowels<<"\n";
  28. cout<<"Number of consonants="<<consonants<<"\n";

  29. return 0;
  30. }
复制代码
想请问switch case的主要功能是?
然后i<strlen(text)是什么来的?

[ 本帖最后由 虚空使者 于 2008-12-22 04:23 PM 编辑 ]
作者: goodday    时间: 2008-10-15 08:46 PM
swiith case 等于把很多的 if else if else if else
弄成好读点



if  ( a ) {
  a++;
}elseif (b) {
  a++;
}elseif (c) {
  a++;
}else{
  break;
}

换成

switch (a){
case a;
case b;
case c;
   a++;
  break;
default;
  break;
}

strlen(text) = 抓text 的字长度


翻倒很烂
很久没 c++了
作者: 虚空使者    时间: 2008-10-15 09:26 PM
标题: 回复 #2 goodday 的帖子
啊~看得懂~
简单明了

这个program只能找单字罢了。。。
lecturer要我们改成找text的。。。
而且还要我们算有几个space跟几个大写小写字母。。。
分明就是在刁难我们
我尝试把program改成如下。。。但是还是算不到space。。。一直是0  
而且consonant也出问题了。。。算不到。。。
至于算大写小写我完全不会
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int i=0,vowels=0,spaces=0,consonants=0;
  6.     char text[50];
  7.     cout<<"Enter the word\n";
  8.     cin>>text;
  9.     while(i<strlen(text))
  10.     {
  11.         switch(text)
  12.         {
  13.         case 'a':
  14.         case 'e':
  15.         case 'i':
  16.         case 'o':
  17.         case 'u':
  18.                    vowels++;
  19.                    break;
  20.         case ' ':
  21.                     spaces++
  22.                     break;
  23.         default:
  24.                    consonants++;
  25.                    break;
  26.         }
  27.         i++;
  28.         
  29.     }
  30. cout<<"Number of vowels="<<vowels<<"\n";
  31. cout<<"Number of spaces="<<spaces<<\n";
  32. cout<<"Number of consonants="<<consonants<<"\n";

  33. return 0;
  34. }
复制代码

作者: goodhermit95    时间: 2008-10-15 10:50 PM
标题: 回复 #3 虚空使者 的帖子
你的Case哪里弄错了……像goodday那样
作者: Super-Tomato    时间: 2008-10-15 10:59 PM
原帖由 虚空使者 于 2008-10-15 09:26 PM 发表
啊~看得懂~
简单明了

这个program只能找单字罢了。。。
lecturer要我们改成找text的。。。
而且还要我们算有几个space跟几个大写小写字母。。。
分明就是在刁难我们
我尝试把program改成如下 ...



這個也不難

1. 使用 while 循環取得每個 text 之後轉換成 ASCII

2. 使用 if 判斷 65 ~ 90 是大寫字母, 97 ~ 122 為小寫字母, 32 為空格



p/s: 剛剛發現你以上的錯誤, cin >> text  這樣取的話空格會被視為 NULL , 必須改成 cin.get(text, 50) 才能包含空格

[ 本帖最后由 Super-Tomato 于 2008-10-15 11:32 PM 编辑 ]
作者: Daredevil125    时间: 2008-10-16 08:17 PM
楼主,这些都在说什么东西啊em0010
作者: goodday    时间: 2008-10-17 01:38 AM

番茄很强~~~~
快申请帮主啦~~~~
叫了你很多次了~~~
作者: Super-Tomato    时间: 2008-10-17 02:22 AM
原帖由 goodday 于 2008-10-17 01:38 AM 发表

番茄很强~~~~
快申请帮主啦~~~~
叫了你很多次了~~~



金盆洗手多年了, 當幫主的話就不用啦
來這裡只是平時做到悶了順便串一下門子解解悶
況且甚麼都只會一些些還不夠格
作者: goodday    时间: 2008-10-18 11:05 AM

太谦虚咯
作者: EndOfEden    时间: 2008-10-19 09:29 PM
小生之前有做过类似的东西,所以楼主不妨看看以下的东西来参考。。。

#include<iostream>
#include <cctype>
using namespace std;

int main()
{
    int i=0,vowels=0,spaces=0,consonants=0;
    int upper = 0;
    char text[50];
   
    cout<<"Enter the word\n";
   
    for(i = 0; i < 50; i ++)
    {
        cin.get(text[ i]);
        if(i > 50)
        {
             cout << "Input text length too large.\n";
        }
        else if(text[ i] == '\n')
        {
             break;
        }
    }
   
    int text_size = i;
   
    char temp[text_size];
   
    for(i = 0; i < text_size; i ++)
    {
          temp[ i] = text[ i];
    }
   
    i = 0; //initialise i back to 0
   
    while(i < text_size)
    {
        switch(temp[ i])
        {
             case 'a': case 'A':
             case 'e': case 'E':
             case 'i': case 'I':
             case 'o': case 'O':
             case 'u': case 'U':
                  vowels++;
                  break;
             case ' ':
                  spaces++;
                  break;
             default:
                  consonants++;
                  break;
        }
        i++;
    }
   
    i = 0; //initialise i back to 0
   
    while(i < text_size)
    {
        if(isupper(temp[ i]))
        {
              upper ++;
        }
        i ++;
    }
   
    cout<<"Number of vowels="<<vowels<<"\n";
    cout<<"Number of spaces="<<spaces<< endl;
    cout<<"Number of c\n";
    cout<<"Number of uppercases="<<upper<<"\n";

    system("pause");
    return 0;
}

当中isupper这个function是在cctype library里面的,可以用来查大写字母。。。
而小写字母则能够用islower,方法和isupper一样。。。
如果有不明白的就尽管问吧。。。或者有前辈能够分享更好的方法就更好了


[ 本帖最后由 EndOfEden 于 2008-10-19 09:39 PM 编辑 ]
作者: goodday    时间: 2008-10-19 11:02 PM
哈哈 多个c++ 的高手
EndOfEden 欢迎哟
作者: Super-Tomato    时间: 2008-10-20 02:13 AM
剛用 VC.NET 寫了個簡單點的


  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.         int i = 0, iVowels = 0, iSpaces = 0, iConsonants = 0, iCapital = 0, iSmall = 0, iNumeric = 0;
  6.         const int ilen = 50;
  7.         char cText[ilen], cSingle;

  8.         cout << "Enter the sentense : ";
  9.         cin.get(cText, ilen);

  10.         cout << "Accepted sentense : " << cText << "\n";

  11.         while(cSingle = cText[i++])
  12.         {
  13.                 int iASC = cSingle;

  14.                 if(iASC >= 65 && iASC <= 90)
  15.                         iCapital++;
  16.                 else if(iASC >= 97 && iASC <= 122)
  17.                         iSmall++;
  18.                 else if(iASC >= 48 && iASC <= 57)
  19.                         iNumeric++;

  20.                 switch(tolower(cSingle))
  21.                 {
  22.                         case 'a':
  23.                         case 'e':
  24.                         case 'i':
  25.                         case 'o':
  26.                         case 'u':
  27.                                         iVowels++;
  28.                                         break;
  29.                         case ' ':
  30.                                         iSpaces++;
  31.                                         break;
  32.                         default:
  33.                                         iConsonants++;
  34.                                         break;
  35.                 }
  36.         }

  37.         cout << "Count of vowels = " << iVowels << "\n";
  38.         cout << "Count of spaces = " << iSpaces << "\n";
  39.         cout << "Count of consonants = " << iConsonants << "\n";
  40.         cout << "Count of capital letters = " << iCapital << "\n";
  41.         cout << "Count of small letters = " << iSmall << "\n";
  42.         cout << "Count of numeric = " << iNumeric << "\n";

  43.         system("pause");
  44.         return 0;
  45. }
复制代码

[ 本帖最后由 Super-Tomato 于 2008-10-20 02:14 AM 编辑 ]
作者: 虚空使者    时间: 2008-10-20 09:14 AM
番茄兄跟Eden兄寫的程式
里面有部分command我還沒學過
看得出我的lecturer是在刁難我
應該下幾堂課就會學到那些東西了
作者: EndOfEden    时间: 2008-10-20 02:45 PM
哈。。。其实有很多东西是课堂上没有教,而是要自己去做一点research的。。。
我只算懂得皮毛罢了,呵呵。。。现在在学sorting和tree...
作者: Super-Tomato    时间: 2008-10-20 03:59 PM
原帖由 虚空使者 于 2008-10-20 09:14 AM 发表
番茄兄跟Eden兄寫的程式
里面有部分command我還沒學過
看得出我的lecturer是在刁難我
應該下幾堂課就會學到那些東西了



去上課就是這樣的啊, 如果都等你的 lecturer 來教你的話, 我看你的 semester 結束應該都還學不到一半的東西
作者: 虚空使者    时间: 2008-10-22 10:24 AM
又有新问题了。。。
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int i,j;
  6. for(i=1; i<=10; i++)
  7. {
  8. for(j=1; j<=10; j++)
  9. {
  10. cout<<"*";
  11. }
  12. cout<<"\n";
  13. }
  14. return 0;
  15. }
复制代码
他出来的output是:
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
谁能告诉我这code的作用跟它的含义?

[ 本帖最后由 虚空使者 于 2008-10-22 10:26 AM 编辑 ]
作者: EndOfEden    时间: 2008-10-22 12:10 PM
原帖由 虚空使者 于 2008-10-22 10:24 AM 发表
又有新问题了。。。#include
using namespace std;
int main()
{
int i,j;
for(i=1; i


这个嘛,就是使用nested loop来display 星号,每显示十个星号就跳到下一行再继续显示,直到第十行为止
主要是让你了解nested loop的作用吧。。。
作者: Super-Tomato    时间: 2008-10-22 04:47 PM
标题: 回复 #16 虚空使者 的帖子
你必須先去了解 for 的性質和三個參數的意義, 在接著是有學習的心態的話就會自我做些小測試去理解才提問問題


  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int i,j;
  6. for(i=1; i<=10; i++)
  7. {
  8. count << "start i=" << i << ", j will loop: \n";
  9. for(j=1; j<=10; j++)
  10. {
  11. cout << j << " ";
  12. }
  13. cout<<"\nending i\n\n";
  14. }
  15. return 0;
  16. }
复制代码

作者: goodhermit95    时间: 2008-10-22 05:14 PM
TRANSLATE

#include<iostream>
using namespace std;
int main() //PRIVATE SUB FORM_LOAD
{
int i,j;//DIM I AS STRING,DIM J  AS STRING
for(i=1; i<=10; i++)FOR I AS INTEGER = 1 TO 10 //显示十个*,
{
for(j=1; j<=10; j++)FOR J AS INTEGER = 1 TO 10//显示十行*
{
cout<<"*";//PRINT("*") '所以会出现**********
}
cout<<"\n";//PRINT("\N")
}
return 0;
}

大概~
所以就会10*10
作者: 虚空使者    时间: 2008-10-22 05:59 PM
for(i=1;                                       i<=10;                                i++)
       ^                                               ^                                      ^
     exp1                                        exp2                                 exp3
(initialization done only 1 times)
剛剛做了點research
據我所知for是包含了3個expression
而且使用for的話有時可以縮短程式的長度

如果我的理論沒猜錯的話
假設我把cout換成j
出來的答案是
12345678910*10行
就i的1是12345678910
i的2也是12345678910這樣以此類推吧?

大概終于弄懂些了
也稍微有去玩玩數據一下
結果弄到infinity loop出來= =

然后
今天臨走前lecturer丟了個程式給我們就說dismiss了= =
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int row=10, column;
  6. while(row>=1)
  7. {
  8.     column=1;
  9.     while(column<=10)
  10.     {
  11.         cout<<row%2;
  12.         ++column;
  13.     }
  14.     --row;
  15.     cout<<"\n";
  16. }
  17. return 0;
  18. }
复制代码

這個強悍。。。我目前為止都只用過postfix的increment/decrement
現在這個連prefix的都有= =
作者: 虚空使者    时间: 2008-10-23 08:35 PM
可不可以問點題外話?

我想知道一個server除了擁有window server os之外
還有包含其他的software嗎?
作者: Super-Tomato    时间: 2008-10-24 10:04 AM
原帖由 虚空使者 于 2008-10-23 08:35 PM 发表
可不可以問點題外話?

我想知道一個server除了擁有window server os之外
還有包含其他的software嗎?



不明白你說的 software 是指甚麼?
作者: 虚空使者    时间: 2008-10-24 11:26 AM
标题: 回复 #22 Super-Tomato 的帖子
就server運作時有沒有什么軟件是必裝的?
作者: goodhermit95    时间: 2008-10-24 02:55 PM
标题: 回复 #23 虚空使者 的帖子
OS内建
不需要安装也可以用
作者: 虚空使者    时间: 2008-11-4 04:29 PM
這個是我assignment 2要交的東西
不懂可不可以幫我看看哪里有錯誤。。。或能幫我弄短一些
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int number,pay,n,j,k,l;
  6. char choice;
  7. while(1)
  8. {
  9. cout<<"Enter the paycode\n 1 for manager\n 2 for hourly worker\n 3 for commission worker\n 4 for piece worker\n";
  10. cin>>number;
  11. switch(number)
  12. {
  13. case 1:
  14.     cout<<"Please enter the weekly salary\n";
  15.     cin>>n;
  16.         cout<<"The weekly salary for manager is "<<n<<"\n";
  17.     break;
  18. case 2:
  19. cout<<"Please key in the payrate and hoursworked, if work more than 40 hour please key in the hourlypay and OT hoursworked, if less than 40 hour please input 0 for both\n";
  20. cin>>n;
  21. cin>>j;
  22. cin>>k;
  23. cin>>l;
  24. if(j>40)
  25. {
  26.     pay=n*j+(1.5*k*l);
  27. }
  28. if(j<=40)
  29. {
  30. pay=n*j;
  31. }
  32. cout<<"The weekly pay for houly worker is "<<pay<<"\n";
  33. break;
  34. case 3:
  35.     cout<<"Please key in weeklysales\n";
  36.     cin>>n;
  37.     pay=250+(n*0.057);
  38.         cout<<"The weekly pay for commission worker is "<<pay<<"\n";
  39.     break;
  40. case 4:
  41.     cout<<"Please key in item produced and item price\n";
  42.     cin>>n;
  43.     cin>>j;
  44.     pay=n*j;
  45.         cout<<"The weekly pay for piece worker is "<<pay<<"\n";
  46.     break;


  47. default:
  48.     cout<<"Wrong number\n";
  49.     break;

  50. }

  51. label: cout<<"Do you wish to continue(Y/N)?\n";
  52. cin>>choice;
  53. if(choice=='Y') continue;
  54. else if(choice=='N') break;
  55. else
  56. {
  57.     cout<<"Wrong choice..Type again\n";
  58.     goto label;
  59. }
  60. }


  61. return 0;
  62. }
复制代码

作者: Super-Tomato    时间: 2008-11-4 05:11 PM
cin 特別多的如 case 2 最好寫明所要輸入的是甚麼值, 不然使用者未必會知道要輸入甚麼
作者: 虚空使者    时间: 2008-11-4 06:04 PM
我在cout那里有注明了
cout<<"Please key in the payrate and hoursworked, if work more than 40 hour please key in the hourlypay and OT hoursworked, if less than 40 hour please input 0 for both\n";
還是有更好的表達方法?
總覺得這個cout好像長了些。。。
作者: Super-Tomato    时间: 2008-11-4 06:30 PM
原帖由 虚空使者 于 2008-11-4 06:04 PM 发表
我在cout那里有注明了
cout


每一次輸入前先明確說明所要輸入的是甚麼, 不然哪個先哪個后使用者怎麼回去注意到呢??
寫程式是要方便他人才算是成功
作者: 虚空使者    时间: 2008-11-4 08:14 PM
标题: 回复 #28 Super-Tomato 的帖子
大概明白你的意思了

  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int number,pay,n,j,k,l;
  6. char choice;
  7. while(1)
  8. {
  9. cout<<"Enter the paycode\n 1 for manager\n 2 for hourly worker\n 3 for commission worker\n 4 for piece worker\n";
  10. cin>>number;
  11. switch(number)
  12. {
  13. case 1:
  14.     cout<<"Please enter the weekly salary\n";
  15.     cin>>n;
  16.         cout<<"The weekly salary for manager is "<<n<<"\n";
  17.     break;
  18. case 2:
  19. cout<<"Please key in the payrate";
  20. cin>>n;
  21. cout<<"Please key in hoursworked\n";
  22. cin>>j;
  23. cout<<"Please key in the hourlypay for exceed 40 hoursworked, else input 0 \n";
  24. cin>>k;
  25. cout<<"Please key in the OT hoursworked, only applicable if hoursworked exceed 40 hours, else input 0\n";
  26. cin>>l;
  27. if(j>40)
  28. {
  29.     pay=n*j+(1.5*k*l);
  30. }
  31. if(j<=40)
  32. {
  33. pay=n*j;
  34. }
  35. cout<<"The weekly pay for houly worker is "<<pay<<"\n";
  36. break;
  37. case 3:
  38.     cout<<"Please key in weeklysales\n";
  39.     cin>>n;
  40.     pay=250+(n*0.057);
  41.         cout<<"The weekly pay for commission worker is "<<pay<<"\n";
  42.     break;
  43. case 4:
  44.     cout<<"Please key in item produced\n";
  45.     cin>>n;
  46. cout<<"Please key in item price\n";
  47.     cin>>j;
  48.     pay=n*j;
  49.         cout<<"The weekly pay for piece worker is "<<pay<<"\n";
  50.     break;


  51. default:
  52.     cout<<"Wrong number\n";
  53.     break;

  54. }

  55. label: cout<<"Do you wish to continue(Y/N)?\n";
  56. cin>>choice;
  57. if(choice=='Y') continue;
  58. else if(choice=='N') break;
  59. else
  60. {
  61.     cout<<"Wrong choice..Type again\n";
  62.     goto label;
  63. }
  64. }


  65. return 0;
  66. }
复制代码

作者: Super-Tomato    时间: 2008-11-4 08:52 PM
原帖由 虚空使者 于 2008-11-4 08:14 PM 发表
大概明白你的意思了

#include
using namespace std;

int main()
{
int number,pay,n,j,k,l;
char choice;
while(1)
{
coutnumber;
switch(number)
{
case 1:
    coutn;
        cout



應該差不多了吧, pay 的計算有小數點, 而且 case 2 的計算值可能會過大, 所以要用 double 類型
再來就是最後是否要繼續最好支援 Y/N 大小寫比較方便
作者: 虚空使者    时间: 2008-11-4 09:32 PM
标题: 回复 #30 Super-Tomato 的帖子
就float pay;
double我沒學過。。。是怎樣的command?
然后可以if(choice=='Y','y')這樣用嗎?
作者: Super-Tomato    时间: 2008-11-5 06:51 AM
原帖由 虚空使者 于 2008-11-4 09:32 PM 发表
就float pay;
double我沒學過。。。是怎樣的command?
然后可以if(choice=='Y','y')這樣用嗎?



double 類型沒學過也太牽強些了吧?
把 choice 轉換成小寫或大寫字母比對就可解決
作者: 虚空使者    时间: 2008-11-10 05:45 PM
完了。。。
今天去show demo給lecturer看
他說我的program還不夠convenient for the user
要我改更convenient的。。。
我想到頭快爆炸了
請高人指點我好嗎
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int a,b,c,d,i,j,k,l;
  6. double pay;
  7. cout<<"Please enter the number of managers\n";
  8. cin>>a;
  9. cout<<"Please enter the number of hourly workers\n";
  10. cin>>b;
  11. cout<<"Please enter the number of commission workers\n";
  12. cin>>c;
  13. cout<<"Please enter the number of piece workers\n";
  14. cin>>d;

  15. if(a>0)
  16. {
  17. cout<<"Please enter the 1st manager weekly salary\n";
  18. cin>>i;
  19. cout<<"The 1st manager weekly salary is [        DISCUZ_CODE_0        ]quot;<<i<<"\n";
  20. }
  21. if(a=0)
  22. {
  23. cout<<"There were no managers working in this week\n";
  24. }
复制代码
我的想法是在頭直接input每個position有多少個employee
然后下面再慢慢input
假設我的a5
我要如何讓這個出現?(例子)
cout<<"Please enter the 1st manager weekly salary\n";
cin>>i;
cout<<"Please enter the 2nd manager weekly salary\n";
cin>>i;
cout<<"Please enter the 3rd manager weekly salary\n";
cin>>i;
cout<<"Please enter the 4th manager weekly salary\n";
cin>>i;
cout<<"Please enter the 5th manager weekly salary\n";
cin>>i;

cout<<"The 1st manager weekly salary is $"<<i<<"\n";
cout<<"The 2rd manager weekly salary is $"<<i<<"\n";
cout<<"The 3rd manager weekly salary is $"<<i<<"\n";
cout<<"The 4th manager weekly salary is $"<<i<<"\n";
cout<<"The 5th manager weekly salary is $"<<i<<"\n";

作者: Super-Tomato    时间: 2008-11-10 06:30 PM
原帖由 虚空使者 于 2008-11-10 05:45 PM 发表
完了。。。
今天去show demo給lecturer看
他說我的program還不夠convenient for the user
要我改更convenient的。。。
我想到頭快爆炸了
請高人指點我好嗎#include
using namespace std;

int main()
...



你都說了 a = 5, 那麼就把你的循環儲存在一個 Array 中
作者: 虚空使者    时间: 2008-11-10 07:18 PM
标题: 回复 #34 Super-Tomato 的帖子
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int a,b,c,d,i,j,k,l,y[30],z
  6. double pay;
  7. cout<<"Please enter the number of managers\n";
  8. cin>>a;
  9. cout<<"Please enter the number of hourly workers\n";
  10. cin>>b;
  11. cout<<"Please enter the number of commission workers\n";
  12. cin>>c;
  13. cout<<"Please enter the number of piece workers\n";
  14. cin>>d;

  15. cout<<"Enter the weeklypay for all managers\n";
  16. for(z=0;z<a;z++)
  17. {
  18. cin>>y[z];
  19. }
  20. cout<<"The salary for all the managers are\n";
  21. for(z=0;z<a;z++)
  22. cout<<"$"<<y[z]<<"\n";
复制代码
我這個array只能解決第1類型worker(manager)而已
至于我第2個worker有formula的
i=payrate
j=hoursworked
k=OT payrate(only applicable if hoursworked exceed 40 hours)
l=OT hours worked(only applicable if hoursworked exceed 40 hours, eg work for 50 hours it must automatically count 10 hours as OT hours)
pay = i*j+(1.5*k*l)
我就真的不知道要怎樣做了

[ 本帖最后由 虚空使者 于 2008-11-10 07:20 PM 编辑 ]
作者: Super-Tomato    时间: 2008-11-10 10:54 PM
原帖由 虚空使者 于 2008-11-10 07:18 PM 发表
#include
using namespace std;

int main()
{
int a,b,c,d,i,j,k,l,y[30],z
double pay;
couta;
coutb;
coutc;
coutd;

cout



方法都一樣, 做好所要的計算然後儲存在 Array 中
先後輸入次序就看你自己怎麼設計了
作者: 虚空使者    时间: 2008-11-10 11:11 PM
标题: 回复 #36 Super-Tomato 的帖子
可以請大大示范第2個worker的code給我看嗎?
我對cin那4個int那里非常混亂
既然只能cin>>y[z]這一種
那我要怎樣把i,j,k,l這4個int放下去?
關于array的東西我們老師并沒有解釋到很深
我也懂得不是很多
作者: Super-Tomato    时间: 2008-11-11 07:42 AM
原帖由 虚空使者 于 2008-11-10 11:11 PM 发表
可以請大大示范第2個worker的code給我看嗎?
我對cin那4個int那里非常混亂
既然只能cin>>y[z]這一種
那我要怎樣把i,j,k,l這4個int放下去?
關于array的東西我們老師并沒有解釋到很深
我也懂得不是很多



你應該去買本書學習基礎, 以下是個簡單的例子自己研究吧


  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.         int iNumber = 0, iMin = 0, i;
  6.         long lTotal = 0;
  7.         double dAverage = 0;

  8.         cout << "Please enter the number of student : ";
  9.         cin >> iNumber;
  10.         cout << "Please enter minimum score : ";
  11.         cin >> iMin;

  12.         int *iScore = new int[iNumber];
  13.         for(i=0; i<iNumber; i++)
  14.         {
  15.                 cout << "Enter student" << i+1 << " test score : ";
  16.                 cin >> iScore[i];
  17.                 lTotal += iScore[i];
  18.         }

  19.         cout << "\n\nResults : \n";
  20.         for(i=0; i<iNumber; i++)
  21.                 if(iScore[i] < iMin)
  22.                         cout << "Student" << i+1 << " need " << iMin - iScore[i] << " marks to reach the goal.\n";

  23.         dAverage = lTotal / iNumber;
  24.         cout << "\nThis class average score is : " << dAverage << "\n";
  25.         system("pause");

  26.         delete[] iScore;
  27.         return 1;
  28. }
复制代码

[ 本帖最后由 Super-Tomato 于 2008-11-11 07:44 AM 编辑 ]
作者: 虚空使者    时间: 2008-11-11 10:40 AM
标题: 回复 #38 Super-Tomato 的帖子
過了第2個了
但是一直搞不懂第3個worker哪里寫錯
一直出同一個的output給我。。。
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int a,b,c,d,i[30],j[30],k[30],z;
  6. double pay;
  7. cout<<"Please enter the number of managers\n";
  8. cin>>a;
  9. cout<<"Please enter the number of hourly workers\n";
  10. cin>>b;
  11. cout<<"Please enter the number of commission workers\n";
  12. cin>>c;
  13. cout<<"Please enter the number of piece workers\n";
  14. cin>>d;

  15. for(z=0;z<a;z++)
  16. {
  17. cout<<"Enter the weeklypay manager "<<z+1<<"\n";
  18. cin>>i[z];
  19. }
  20. for(z=0;z<a;z++)
  21. cout<<"The weeklypay for manager "<<z+1<<" is $"<<i[z]<<"\n";

  22. for(z=0;z<b;z++)
  23. {
  24. cout<<"Enter the payrate for hourly worker "<<z+1<<"\n";
  25. cin>>i[z];
  26. cout<<"Enter the hoursworked for hourly worker "<<z+1<<"\n";
  27. cin>>j[z];
  28. {
  29. if(j[z]<=40)
  30. goto label;
  31. if(j[z]>40)
  32. cout<<"Enter the OT payrate for hourly worker "<<z+1<<"\n";
  33. cin>>k[z];
  34. if(j[z]>40)
  35. cout<<"The hourly worker "<<z+1<<" has benn working for extra "<<j[z]-40<<" hours "<<"\n";
  36. }


  37. label: if(j[z]<=40)
  38. pay = i[z]*j[z];

  39. if(j[z]>40)
  40. pay = i[z]*j[z]+(1.5*k[z]*(j[z]-40));
  41. cout<<"The weekly pay for commission worker "<<z+1<<" is $"<<pay<<"\n";
  42. }

  43. for(z=0;z<c;z++)
  44. {
  45. cout<<"Enter the weekly sales for commission worker "<<z+1<<"\n";
  46. cin>>i[z];
  47. pay=250+(i[z]*0.057);
  48. }
  49. for(z=0;z<c;z++)
  50. cout<<"The weekly pay for commission worker "<<z+1<<" is $"<<pay<<"\n";









  51. return 0;
  52. }
复制代码
出來的是這個。。
可以請大大告訴我哪個地方有問題嗎?
我認為是最后幾段有點問題。。。
我想解決這個了這個第4個worker我就沒問題了


[ 本帖最后由 虚空使者 于 2008-11-11 10:44 AM 编辑 ]
作者: Super-Tomato    时间: 2008-11-11 11:23 AM
for(z=0;z<c;z++)
{
cout<<"Enter the weekly sales for commission worker "<<z+1<<"\n";
cin>>i[z];
pay=250+(i[z]*0.057);
}
for(z=0;z<c;z++)
cout<<"The weekly pay for commission worker "<<z+1<<" is $"<<pay<<"\n";

看清楚紅色部份同以下有甚麼分別嗎?

int a = 0;
for(int i=0; i<10; i++)
{
      a = i;
}

for(int i=0; i<10; i++)
{
     cout << a << "\n";
}
作者: 虚空使者    时间: 2008-11-11 12:26 PM
标题: 回复 #40 Super-Tomato 的帖子
我還是看不出叻。。。
只知道你下面那段的output是10個9.。。。
作者: Super-Tomato    时间: 2008-11-12 12:24 AM
原帖由 虚空使者 于 2008-11-11 12:26 PM 发表
我還是看不出叻。。。
只知道你下面那段的output是10個9.。。。



那麼你看看你的 commission output 是多少??
不會的話就用最原始的方式手算, 或者使用 breakpoint 檢查, 這是最基本要會的除錯方式
作者: 无我不在    时间: 2008-11-12 05:54 PM
我的C++才刚开始学,你们的commands很多都没学过。
作者: 虚空使者    时间: 2008-11-18 10:46 AM
雖然是考試中。。。
但問點題外話。。。

<br><center><a href="http://www.flash-gear.com/index.php?puz"><img src="http://www.flash-gear.com/puz1.gif"></a><br><EMBED allowScriptAccess="never" src="http://four.flash-gear.com/npuz/puz.php?c=f&o=1&id=3094793&k=27776073&s=90&w=630&h=450" quality=high wmode=transparent scale=noscale salign=LT bgcolor="FFFFFF" WIDTH="780" HEIGHT="600" NAME="puz499452" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" /><BR><a href="http://www.flash-gear.com/index.php?puz"><img src="http://www.flash-gear.com/puz2.gif"><br><b><font face="Verdana"><h5>provided by flash-gear.com</h5></font></b></a><br></center><br>

請問這是舍語言?
放上來這里似乎沒出現我要的東西。。。
http://four.flash-gear.com/npuz/puz.php?c=v&id=3094793&k=27776073
就一堆亂碼。。。
還是此論壇不支持此類型代碼。。。
作者: Super-Tomato    时间: 2008-11-18 11:43 AM
原帖由 虚空使者 于 2008-11-18 10:46 AM 发表
雖然是考試中。。。
但問點題外話。。。

provided by flash-gear.com

請問這是舍語言?
放上來這里似乎沒出現我要的東西。。。
http://four.flash-gear.com/npuz/ ... 4793&k=27776073
...



一看就知道是 html 了啊, 是讓你剪貼到你的網頁
內容有 Flash(application/x-shockwave-flash), 圖片(puz2.gif) 和一行字(provided by flash-gear.com)
作者: 虚空使者    时间: 2008-11-18 11:48 AM
标题: 回复 #45 Super-Tomato 的帖子
但是放上來這里怎么什么效果都沒有。。。
難道是因為這里禁用HTML代碼的關系嗎?
作者: goodhermit95    时间: 2008-11-18 05:47 PM
标题: 回复 #46 虚空使者 的帖子
對,JBTALKS用不到HTML
作者: 虚空使者    时间: 2008-11-19 11:01 AM
讀到快完了。。。
竟然給這個code絆倒了
  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5. int n,a[30],i,j,temp;
  6. cout<<"How many elements?\n";
  7. cin>>n;
  8. cout<<"Give the list to be sorted\n";
  9. //Input
  10. for(i=0;i<n;i++)
  11. cin>>a[i];
  12. for(i=0;i<n;i++)
  13. {
  14.     for(j=0;j<n-1;j++)
  15.     {
  16.         if(a[j]>a[j+1])
  17.         {
  18.             temp=a[j];
  19.             a[j]=a[j+1];
  20.             a[j+1]=temp;
  21.         }
  22.     }
  23. }
  24. //print
  25. cout<<"The list sorted in ascending order\n";
  26. for(i=0;i<n;i++)
  27. cout<<a[i]<<"\n";
复制代码

可以告訴我這段到底在做什么嗎?
我有點亂了。。。
for(i=0;i<n;i++)
{
    for(j=0;j<n-1;j++)
    {
        if(a[j]>a[j+1])
        {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
    }
}
作者: Super-Tomato    时间: 2008-11-19 11:04 AM
原帖由 虚空使者 于 2008-11-19 11:01 AM 发表
讀到快完了。。。
竟然給這個code絆倒了
#include
using namespace std;

int main()
{
int n,a[30],i,j,temp;
coutn;
cout


這是個 bubble sort 啊....
作者: 虚空使者    时间: 2008-11-19 11:14 AM
标题: 回复 #49 Super-Tomato 的帖子
我知道是bubblesort
那也就是說這個公式是死的?
for(i=0;i<n;i++)
{
    for(j=0;j<n-1;j++)
    {
        if(a[j]>a[j+1])
        {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
    }
}
作者: Super-Tomato    时间: 2008-11-19 02:57 PM
原帖由 虚空使者 于 2008-11-19 11:14 AM 发表
我知道是bubblesort
那也就是說這個公式是死的?
for(i=0;i


對啊... 一看就知道這個公式可以一直套用在數字排列比較
我想你應該對 looping 方面還不太習慣, 如果不習慣的話可以跟著程式的流程模擬數據以了解為何會排列出排序
作者: EndOfEden    时间: 2008-11-19 10:35 PM
原帖由 虚空使者 于 2008-11-19 11:14 AM 发表
我知道是bubblesort
那也就是說這個公式是死的?
for(i=0;i


你的意思是你知道这个是bubble sort可是你不懂bubble sort 的运作原理?
作者: 虚空使者    时间: 2008-12-22 04:26 PM
開始學WDT(web development technology)了
會碰到PHP,Perl,ASP,Asp.net,Javascript,XML/XSLT這些
會有難度嗎?
作者: goodhermit95    时间: 2008-12-22 04:32 PM
原帖由 虚空使者 于 2008-12-22 04:26 PM 发表
開始學WDT(web development technology)了
會碰到PHP,Perl,ASP,Asp.net,Javascript,XML/XSLT這些
會有難度嗎?

Perl
我完全看不懂咧!
作者: 虚空使者    时间: 2008-12-22 04:44 PM
标题: 回复 #54 goodhermit95 的帖子
連你都這樣講。。。
我瞬間壓力激增。。。==
作者: goodhermit95    时间: 2008-12-22 04:55 PM
标题: 回复 #55 虚空使者 的帖子

这些里面 ASP 最容易了
其他我都看得懂,XSLT 不知道什么来的,就只有Perl
完全看不懂em0016 em0019
作者: Super-Tomato    时间: 2008-12-22 04:55 PM
原帖由 虚空使者 于 2008-12-22 04:26 PM 发表
開始學WDT(web development technology)了
會碰到PHP,Perl,ASP,Asp.net,Javascript,XML/XSLT這些
會有難度嗎?



只要你掌握了某種語言的最基本要求(變數, if, else, elseif, while, for 等), 那麼你要學習其他語言並不是太困難.
PHP, Perl 只要你之前是學習 C 的話就比較容易上手
ASP, ASP.NET 當然就是 .NET 或 VB
Javascript 這個是網頁不可或缺的 Client side scripting, 接近 JAVA 但沒 JAVA 那麼困難
XML 只要你有 HTML 的基礎就可以快速掌握, 之後再學習 XSLT 加強


最重要的是一次掌握好了一種語言才學習另外一種, 還有就是每學習一種語言最好是有本手冊在旁查閱
作者: 虚空使者    时间: 2008-12-22 05:06 PM
我就知道他們沒那么好死。。。
果然沒得用frontpage還是dreamweaver這些東西。。。
全部都是scripting。。。
好在我C++還算穩些。。。
今天就第一堂隨便帶過罷了。。
第二堂就要來真的了。。。
原帖由 goodhermit95 于 2008-12-22 04:55 PM 发表

这些里面 ASP 最容易了
其他我都看得懂,XSLT 不知道什么来的,就只有Perl
完全看不懂em0016" /> em0019" />

以一個13歲的小孩就會這些東西
未免太強了。。。==
我可以看到你未來了。。。

原帖由 Super-Tomato 于 2008-12-22 04:55 PM 发表



只要你掌握了某種語言的最基本要求(變數, if, else, elseif, while, for 等), 那麼你要學習其他語言並不是太困難.
PHP, Perl 只要你之前是學習 C 的話就比較容易上手
ASP, ASP.NET 當然就是 .NET 或 VB ...

還是你這樣說我放心些
loop方面我已經漸漸習慣了。。之前C++考試code也寫到很順手
至于perl。。lecturer也講難。。。
而且要掌握這些全部語言太難了。。。還是慢慢來好了
作者: goodhermit95    时间: 2008-12-22 05:27 PM
标题: 回复 #58 虚空使者 的帖子
谢谢
说真的,如番茄所说,摸熟一个语言,再摸其他语言会更容易,如果是这里摸一点那里摸一点的话,学不到东西
作者: goodday    时间: 2008-12-23 11:18 PM
c # 啦
c 到 c#  很容易入门的 咯
作者: 被遗忘的爱    时间: 2009-1-7 07:48 PM
楼主是读foundation computer it的啊?




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5