Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Lập trình C++ | Một số bài tập đơn giản !

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Lập trình C++ | Một số bài tập đơn giản !

    Đây là 1 số bài tập trong lớp của mình, tuy nó đơn giản nhưng mình nghĩ đối với mấy cậu mới học thì chắc cũng có ích T_T, cách đặt tên biến, tên hàm, khai báo biến, coding style là rất rõ ràng. Hope it help !

    C++ Code:
    1. #include <iostream>
    2. #include <iomanip>
    3. #include <string>
    4. #include <fstream>
    5. #include <cmath>
    6.  
    7. using namespace std;
    8. //function prototype
    9. void PrintNameHeader(ostream &oss);
    10. void ProgramInfo();
    11. void GetStartEndValues(int& startNum, int& endNum);
    12. bool IsPrime(int num);
    13.  
    14. int main()
    15. {
    16.     int starting = 2;        //*starting value
    17.     int ending = 100;        //*ending value      
    18.     char userChoice;         //*user choice
    19.     int twinPrimes = 0;      //*the number of twin-prime
    20.     int totalPrimes = 0;     //*the number of prime
    21.     int holdVariable = 0;    //*a temporary variable for checking the starting value is odd or even.
    22.    
    23.     string fileName;         //*a name of file
    24.     ofstream dataClientFile; //*a output stream to write data to file.
    25.    
    26.     //Print header and program information
    27.     PrintNameHeader(cout);
    28.     ProgramInfo();
    29.    
    30.     cout << "Please input the file name : ";
    31.     getline(cin, fileName);
    32.     dataClientFile.open(fileName.c_str());
    33.    
    34.     //Ask user whether they want to change the starting and ending value or not.
    35.     cout << "The default interval of Prime is (2 - 100).\n";
    36.     cout << "Would you like to change it [Y, N].\n";
    37.     cin >> userChoice;
    38.    
    39.     if(userChoice == 'Y' || userChoice == 'y')
    40.     {
    41.         GetStartEndValues(starting, ending);
    42.     }
    43.    
    44.     //Start to write data into file.
    45.     PrintNameHeader(dataClientFile);
    46.     dataClientFile << right;
    47.     dataClientFile << "List of Primes number between " << starting
    48.                    << " and " << ending << ".\n\n";
    49.    
    50.     //Check for the special case : 2 is the only even prime
    51.     if(starting == 2)
    52.     {
    53.         dataClientFile << setw(6) << starting;
    54.         totalPrimes++;
    55.     }
    56.    
    57.     //Check the case that : starting is even or odd in order to make the increasing value produce  an odd
    58.     if((starting %2) == 0)
    59.     {
    60.         holdVariable = starting + 1;
    61.     }
    62.     else
    63.     {
    64.         holdVariable = starting;
    65.     }
    66.    
    67.     //Generating prime and write to file
    68.     for(int _snum = holdVariable; _snum <= ending; _snum += 2)
    69.     {
    70.         if(IsPrime(_snum))
    71.         {
    72.             dataClientFile << setw(6) << _snum;
    73.             totalPrimes++;
    74.             //check for twin primes, because the _snum variable go up to ending so
    75.             //check _snum <= ending - 2 will produce the right result even when the range is (2-17)
    76.             if((_snum <= ending - 2) && IsPrime(_snum + 2))
    77.                 twinPrimes++;
    78.             //if it already had 10 primes, print a new line
    79.             if((totalPrimes % 10) == 0)
    80.                 dataClientFile << endl;
    81.         }
    82.     }
    83.    
    84.     dataClientFile << endl << endl;
    85.     //Show total primes and total twin-primes and write it to file too.
    86.     dataClientFile << "There are " << totalPrimes << " primes between "
    87.                    << starting << " and " << ending << ".\n";
    88.     dataClientFile << "There are " << twinPrimes << " twin-primes between "
    89.                    << starting << " and " << ending << ".\n";
    90.                    
    91.     cout << "...writing data successfully.";
    92.     cout << "Thanks a lot for your time. Have a great day. Bye !\n";
    93.     //close file
    94.     dataClientFile.close();
    95. }
    96.  
    97. bool IsPrime(int num)
    98. {
    99.     if (num == 2 || num == 3) return true;
    100.     if (num % 2 == 0 || num % 3 == 0) return 0;
    101.  
    102.     int variable = 5,
    103.         factor = 2,
    104.         _limitFactor = static_cast<int>(sqrt(static_cast<double>(num)));
    105.     while(variable <= _limitFactor)
    106.     {
    107.         if(num % variable == 0)
    108.             return false;
    109.         //generate all numbers such that number = 1 mod(6) and number = 5 mod(6)
    110.         //instead of += 2 every time, it increase +2, +4, +2, +4, +2, +4.....etc
    111.         variable += factor;
    112.         factor = 6 - factor;
    113.     }
    114.     return true;
    115. }
    116.  
    117. void PrintNameHeader(ostream& oss)
    118. {
    119.     oss << "------------------------------------------" << endl;
    120.     oss << "-     Rox Rook                           -" << endl;
    121.     oss << "-     Program Assignment Lab09           -" << endl;
    122.     oss << "-     CS.M10A Spring 2008                  -" << endl;
    123.     oss << "-     Due Date : Thurs.Mar.06            -" << endl;
    124.     oss << "------------------------------------------" << endl;
    125. }
    126.  
    127. void ProgramInfo()
    128. {
    129.     cout << endl << endl;
    130.     cout << "-------------------------------------------------------" << endl;
    131.     cout << "- Welcome the Prime Number List Program               -" << endl;
    132.     cout << "- This program will generate the number of Primes     -" << endl;
    133.     cout << "- on the interval given, by default is (2 - 100)      -" << endl;
    134.     cout << "- Also, you can change the range of starting and      -" << endl;
    135.     cout << "- ending value, validate user input included          -" << endl;
    136.     cout << "- Have a great time !                                 -" << endl;
    137.     cout << "-------------------------------------------------------" << endl;
    138. }
    139.  
    140. void GetStartEndValues(int& startNum, int& endNum)
    141. {
    142.     do
    143.     {
    144.         cout << "Enter the starting and ending value : " << endl;
    145.         cin >> startNum >> endNum;
    146.         if(startNum > endNum)
    147.         {
    148.             cout << "...Error dectected !\n";
    149.             cout << "Starting value must be less than or equal to ending value.\n\n";
    150.         }
    151.         if(startNum <= 1 || endNum <= 1)
    152.         {
    153.             cout << "...Error dectected !\n";
    154.             cout << "Starting value and ending value must strictly greater than 1.\n\n";
    155.         }
    156.     }while(startNum <= 1 || endNum <= 1 || startNum > endNum);
    157. }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 14-04-2008 lúc 01:34 PM.

  2. #2
    Ngày gia nhập
    05 2008
    Bài viết
    1

    hiểu chút chút
    nhưng mình thấy hình như nó cao siêu so với những bạn bắt đầu làm wen

  3. #3
    Ngày gia nhập
    07 2008
    Bài viết
    2

    khớ khớ rox_rock quả là bờ rô ^_^

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    68

    Cách viết tên biến,khai báo = tiếng Anh khó nhớ...
    Nhưng nếu quen sẽ rất pro .
    Cố gắng học đi...

  5. #5
    Ngày gia nhập
    08 2008
    Bài viết
    1

    tôi thấy bài viết của bạn cũng được lắm nhưng giá nhbư bạn viết bằng tiếng viêẹ thì sẽ rất thuận tiện cho nhươnhũng người mới học về c như chúng tôi.nhưng dù sao tôi cũng thay mat bạn bè cảm ơn vì ông đả đưa mộo số tên hàm thường gặp nhất đío với hệ phổ thông

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Lập trình C++ | Một số bài tập đơn giản !

    tôi thấy bài viết của bạn cũng được lắm nhưng giá nhbư bạn viết bằng tiếng viêẹ thì sẽ rất thuận tiện cho nhươnhũng người mới học về c như chúng tôi.nhưng dù sao tôi cũng thay mat bạn bè cảm ơn vì ông đả đưa mộo số tên hàm thường gặp nhất đío với hệ phổ thông
    Thanks cậu .
    Đây là version tui sữa lại :
    - Edit tính số nguyên tố cặp, giải thuật trên của tui viết là rất tồi.
    - Edit và thêm 1 số hàm
    - Tiếng Việt comment 100%.

    Utility.h
    Java Code:
    1. #include <iostream>
    2. #include <windows.h>
    3.  
    4. inline std::ostream& blue( std::ostream& s )
    5. {
    6.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    7.     SetConsoleTextAttribute(
    8.                                 hStdout, FOREGROUND_BLUE |
    9.                                          FOREGROUND_GREEN |
    10.                                          FOREGROUND_INTENSITY
    11.                            );
    12.     return s;
    13. }
    14.  
    15. inline std::ostream& red( std::ostream& s )
    16. {
    17.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    18.     SetConsoleTextAttribute(
    19.                              hStdout,
    20.                              FOREGROUND_RED |
    21.                              FOREGROUND_INTENSITY
    22.                            );
    23.     return s;
    24. }
    25.  
    26. inline std::ostream& green(std::ostream& s)
    27. {
    28.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    29.     SetConsoleTextAttribute(
    30.                              hStdout,
    31.                              FOREGROUND_GREEN |
    32.                              FOREGROUND_INTENSITY
    33.                            );
    34.     return s;
    35. }
    36.  
    37. inline std::ostream& yellow( std::ostream& s )
    38. {
    39.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    40.     SetConsoleTextAttribute(
    41.                              hStdout,
    42.                              FOREGROUND_GREEN |
    43.                              FOREGROUND_RED |
    44.                              FOREGROUND_INTENSITY
    45.                            );
    46.     return s;
    47. }
    48.  
    49. inline std::ostream& white( std::ostream& s )
    50. {
    51.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    52.     SetConsoleTextAttribute(
    53.                              hStdout,
    54.                              FOREGROUND_RED |
    55.                              FOREGROUND_GREEN |
    56.                              FOREGROUND_BLUE
    57.                            );
    58.     return s;
    59. }
    60.  
    61. struct color
    62. {
    63.     color( WORD attribute ):m_color( attribute )
    64.     {   };
    65.    
    66.     WORD m_color;
    67. };
    68.  
    69. template< class elems, class traits >
    70. std::basic_ostream< elems, traits >&
    71. operator <<( std::basic_ostream< elems, traits >& i, color& cor )
    72. {
    73.     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
    74.     SetConsoleTextAttribute( hStdout, cor.m_color );
    75.     return i;
    76. }


    Main.cpp
    Java Code:
    1. #include <iomanip>
    2. #include <string>
    3. #include <fstream>
    4. #include <cmath>
    5.  
    6. #include "Utility.h"
    7.  
    8. using std::ostream;
    9. using std::cout;
    10. using std::cin;
    11. using std::endl;
    12. using std::istream;
    13. using std::string;
    14. using std::setw;
    15. using std::ofstream;
    16. using std::ios;
    17.  
    18. /*
    19.     2 hằng số mặc định của giới hạn trên và dưới
    20. */
    21. const int LOWER_BOUND = 2,
    22.           UPPER_BOUND = 100;
    23.  
    24.  
    25. /*
    26.     USER_CHOICE sẽ là lựa chọn ghi ra file hoặc xuất ra màn hình
    27.     Sử dụng enum chỗ này phản ánh rõ ý nghĩa nội dung của chương trình
    28. */
    29. enum USER_CHOICE{ WRITE, PRINT };
    30.  
    31.  
    32. /*
    33.     Khai báo 1 struct PrimeInfo gồm 4 dữ liệu :
    34.         lower_range : giới hạn dưới
    35.         upper_range : giới hạn trên.
    36.         total       : tổng số nguyên tố
    37.         twins       : tổng các số nguyên tố song sinh
    38. */
    39. struct PrimeInfo
    40. {
    41.     int lower_range,
    42.         upper_range,
    43.         total,
    44.         twins;
    45.  
    46.     PrimeInfo( int lr = 0, int ur = 0, int tt = 0, int tw = 0 )
    47.         :lower_range( lr ),
    48.          upper_range( ur ),
    49.          total( tt ),
    50.          twins( tw )
    51.     {   }
    52. };
    53.  
    54.  
    55.  
    56. /*
    57.     ------------------------
    58.     - Khai báo của các hàm -
    59.     ------------------------
    60. */
    61.    
    62. //  #1
    63. void        printNameHeader( ostream& out );
    64. //  #2
    65. void        showProgramInfo( ostream& out );
    66. //  #3
    67. void        getStartEndValues( int& startNum, int& endNum );
    68. //  #4
    69. bool        isPrimeNumber( int number );
    70. //  #5
    71. void        printMessagesInstruction( const char* mess );
    72. //  #6
    73. bool        changeDefaultRange();
    74. //  #7
    75. PrimeInfo   generateAndShowsPrimes( int starting, int ending, ostream& out );
    76. //  #8
    77. USER_CHOICE writeToFileOrPrintOut();
    78. //  #9
    79. void        showStatisticOfPrime( std::ostream& out, const PrimeInfo& pr );
    80. //  #10
    81. void        restoreDefaultColor( std::ostream& out );
    82. //  #11
    83. string      getOutFileName();
    84.  
    85.  
    86.  
    87. /*
    88.                         --------------------------
    89.                         - Định nghĩa của các hàm -
    90.                         --------------------------
    91. */
    92.  
    93.  
    94. /*
    95.     #1 :
    96.         In ra thông tin lớp và khóa học
    97. */
    98. void printNameHeader( ostream& out )
    99. {
    100.     out << "\n";
    101.     out << "------------------------------------------" << endl;
    102.     out << "-     Rox Rook                           -" << endl;
    103.     out << "-     Program Assignment Lab09           -" << endl;
    104.     out << "-     CS.M10A Spring 2008                -" << endl;
    105.     out << "-     Due Date : Thurs.Mar.06            -" << endl;
    106.     out << "------------------------------------------" << endl;
    107. }
    108.  
    109.  
    110. /*
    111.     #2 :
    112.         In ra thông tin của chương trình
    113. */
    114. void showProgramInfo( ostream& out )
    115. {
    116.     out << endl;
    117.     out << "-------------------------------------------------------" << endl;
    118.     out << "- Welcome the Prime Number List Program               -" << endl;
    119.     out << "- This program will generate the number of Primes     -" << endl;
    120.     out << "- on the interval given, by default is (2 - 100)      -" << endl;
    121.     out << "- Also, you can change the range of starting and      -" << endl;
    122.     out << "- ending value, validate user input included          -" << endl;
    123.     out << "- Have fun !                                          -" << endl;
    124.     out << "-------------------------------------------------------" << endl;
    125. }
    126.  
    127.  
    128. /*
    129.     #3 :
    130.         Hàm này yêu cầu người dùng nhập vào 2 giá trị của 2 số giới hạn trên
    131.         và dưới của các số nguyên tố. Nếu nhập sai chúng ta
    132.         sẽ yêu thông báo 1 thông điệp yêu cầu nhập lại
    133. */
    134. void getStartEndValues( int& start_num, int& end_num )
    135. {
    136.     do
    137.     {
    138.         cout << "Enter the starting and ending value : " << endl;
    139.         cin >> start_num >> end_num;
    140.         if( start_num > end_num )
    141.         {
    142.             cout << "...Error dectected !\n";
    143.             cout << "Starting value must be less than or equal to ending value.\n\n";
    144.         }
    145.         if( start_num <= 1 || end_num <= 1 )
    146.         {
    147.             cout << "...Error dectected !\n";
    148.             cout << "Starting value and ending value must strictly greater than 1.\n\n";
    149.         }
    150.     }
    151.     while( start_num <= 1 || end_num <= 1 || start_num > end_num );
    152. }
    153.  
    154.  
    155. /*
    156.     #4 :
    157.         Hàm kiểm tra số nguyên tố
    158. */
    159. bool isPrimeNumber( int number )
    160. {
    161.     if( number == 2 || number == 3 )
    162.         return true;
    163.     if( number % 2 == 0 || number % 3 == 0 )
    164.         return 0;
    165.  
    166.     int variable     = 5,
    167.         factor       = 2,
    168.         limit_factor = static_cast< int >(sqrt( static_cast< double >( number ) ) );
    169.    
    170.     while( variable <= limit_factor )
    171.     {
    172.         if( number % variable == 0 )
    173.             return false;
    174.         /*
    175.            ----------------------------------------------------------------------
    176.            - Mọi số nguyên tố đều có dạng :                                        -
    177.            -    + 1 mod( 6 )                                                    -
    178.            -    + 5 mod( 6 )                                                    -
    179.            -    Do đó thay vì ta kiểm tra lần lượt các số lẻ bằng cách += 2     -
    180.            -    ta sẽ tăng các số cần kiểm tra lên theo qui luật sau :          -
    181.            -    +2, +4, +2, +4, +2...                                           -
    182.            -    Và điều này sẽ giảm 1 số lượng lớn số phần tử cần kiểm tra.       -
    183.            ----------------------------------------------------------------------
    184.         */
    185.         variable += factor;
    186.         factor = 6 - factor;
    187.     }
    188.  
    189.     return true;
    190. }
    191.  
    192.  
    193. /*
    194.     #5 :
    195.         Hàm này in ra các thông báo hướng dẫn người dùng sử dụng chương trình
    196.         và màu của chữ trong instruction sẽ là màu đỏ, và ta sẽ dể dàng nhận ra
    197.         khi nào là thông điệp sử dụng.
    198. */
    199. void printMessagesInstruction( ostream& out, const char* mess )
    200. {
    201.     out << red << mess << "\n\n";
    202.         restoreDefaultColor( out );
    203. }
    204.  
    205.  
    206. /*
    207.     #6 :
    208.         Hàm này hỏi xem người dùng có muốn thay đổi giá trị mặc định của
    209.         giới hạn trên và giới hạn dưới hay không.
    210. */
    211. bool changeDefaultRange()
    212. {
    213.     string user_choice;
    214.  
    215.     cout << "The default interval of Prime is "
    216.          << LOWER_BOUND
    217.          << "-"
    218.          << UPPER_BOUND
    219.          << "\n";
    220.     cout << "Would you like to change it (y, n) ?\n";
    221.    
    222.     while( true )
    223.     {
    224.         cin >> user_choice;
    225.         if( user_choice[ 0 ] == 'y' || user_choice[ 0 ] == 'Y' )
    226.             return true;
    227.         if( user_choice[ 0 ] == 'n' || user_choice[ 0 ] == 'N' )
    228.             return false;
    229.         else
    230.             cout << "Invalid answer. Please try again !\n";
    231.     }
    232. }
    233.  
    234.  
    235. /*
    236.     #7 :
    237.         Hàm này là hàm 9 của chương trình, các nhiệm vụ của nó bao gồm :
    238.             + Kiểm tra số nguyên tố.
    239.             + Tính tổng các số nguyên tố.
    240.             + Tính các số nguyên tố song sinh.
    241.             + Và ostream& out sẽ hoặc là ghi ra file hoặc là xuất ra màn hình
    242.             + Và giá trị trả về của nó là struct PrimeInfo, và từ đối tượng
    243.               này ta có thể tính xuất ra các thông kê về số nguyên tố thông
    244.               qua hàm showStatisticOfPrime
    245. */
    246. PrimeInfo generateAndShowsPrimes( int starting, int ending, std::ostream& out )
    247. {
    248.     /*
    249.         Các cục bộ chỉ tồn tại trong hàm
    250.     */
    251.     int hold_value   = 0;      // Biến tạm
    252.     int total_primes = 0;      // Tổng các số nguyên tố
    253.     int last_prime   = 0;      // Số nguyên tố kế trước, dùng để tính số ngyên tố cặp
    254.     int twin_prime   = 0;      // Các số nguyên tố cặp
    255.     int format_pos   = 0;      // Vị trí in xuống dòng
    256.    
    257.     /*
    258.         Trường hợp ngoại lệ : 2 là số nguyên tố chẵn duy nhất
    259.     */
    260.     if( starting == 2 )
    261.     {
    262.         total_primes++;
    263.     }
    264.    
    265.     /*
    266.         Kiểm tra xem số đầu tiên ( starting ) là chẵn hay lẻ
    267.         và ta dựa vào đó để tăng biến đếm
    268.     */
    269.     if( ( starting %2 ) == 0 )
    270.     {
    271.         hold_value = starting + 1;
    272.     }
    273.     else
    274.     {
    275.         hold_value = starting;
    276.     }
    277.    
    278.    
    279.     /*
    280.         Bắt đầu sinh số nguyên tố và in ra
    281.     */
    282.     for( int i = hold_value; i <= ending; i += 2 )
    283.     {
    284.         ++format_pos;
    285.        
    286.         /*
    287.             Nếu không phải số nguyên tố, giữ nguyên màu
    288.         */
    289.         if( !isPrimeNumber( i ) )
    290.         {
    291.             out << white << setw( 6 ) << i;
    292.         }
    293.        
    294.         /*
    295.             Nếu là số nguyên tố thì có màu vàng
    296.         */
    297.         else        
    298.         {
    299.             out << yellow << setw( 6 ) << i;
    300.             total_primes++;
    301.            
    302.             if( ( i <= ending - 2 ) && ( ( i - 2 )  == last_prime ) )
    303.             {
    304.                 twin_prime++;
    305.                 last_prime = i;
    306.             }
    307.         }
    308.        
    309.         /*
    310.             Cứ 7 số ta sẽ xuống 1 hàng
    311.         */
    312.         if( format_pos % 7 == 0 )
    313.             out << endl;
    314.     }
    315.    
    316.     /*
    317.         Trả về 1 struct có với dữ liệu tính toán ở trên
    318.     */
    319.     return PrimeInfo( starting, ending, total_primes, twin_prime );
    320. }
    321.  
    322.  
    323. /*
    324.     #8 :
    325.         Hàm này hỏi người dùng xem có muốn ghi ra dữ liệu ra tệp hay
    326.         là xuất ra màn hình
    327. */
    328.  
    329. USER_CHOICE writeToFileOrPrintOut()
    330. {
    331.     string user_choice;
    332.    
    333.     cout << "Would you like to write these content to file or print out ( w, p ) ? \n";
    334.    
    335.     while( true )
    336.     {
    337.                 cin >> user_choice;
    338.         if( user_choice[ 0 ] == 'w' || user_choice[ 0 ] == 'W' )
    339.             return WRITE;
    340.         if( user_choice[ 0 ] == 'p' || user_choice[ 0 ] == 'p' )
    341.             return PRINT;
    342.         else
    343.             cout << "Invalid answer. Please try again !\n";
    344.     }
    345. }
    346.  
    347.  
    348. /*
    349.     #9 :
    350.         Hàm này sẽ in ra các thông kê về số nguyên tố của chúng ta
    351. */
    352. void showStatisticOfPrime( std::ostream& out, const PrimeInfo& pr )
    353. {
    354.     out << endl << endl;
    355.     out << "There are " << pr.total << " primes between "
    356.                         << pr.lower_range << " and " << pr.upper_range << ".\n";
    357.     out << "There are " << pr.twins << " twin-primes between "
    358.                         << pr.lower_range << " and " << pr.upper_range << ".\n";
    359. }                
    360.  
    361.  
    362. /*
    363.     #10 :
    364.         Hàm này sẽ trả về màu mặc định của console( màu trắng ), trong
    365.         trường hợp ta đang set các màu khác cho chương trình
    366. */
    367. void restoreDefaultColor( ostream& out )
    368. {
    369.     out << white;
    370. }
    371.  
    372.  
    373. /*
    374.     #11 :
    375.         Hàm này sẽ yêu cầu người dùng nhập vào tên của tệp mà chúng ta
    376.         muốn ghi ra
    377. */
    378. string getOutFileName()
    379. {
    380.     std::string fn;
    381.     cout << "Enter a file name that you want to write : ";
    382.     cin >> fn;
    383.     return fn;
    384. }
    385.  
    386.  
    387.  
    388. /*
    389.                                 ----------------------
    390.                                 - Chương trình chính -
    391.                                 ----------------------
    392. */
    393.  
    394. int main()
    395. {
    396.     int starting_value = LOWER_BOUND;
    397.     int ending_value   = UPPER_BOUND;
    398.  
    399.  
    400.     printNameHeader( cout );
    401.     showProgramInfo( cout );
    402.  
    403.     if( changeDefaultRange() == true )
    404.     {
    405.         getStartEndValues( starting_value, ending_value );
    406.     }
    407.    
    408.     /*
    409.         Khởi tạo 1 đối tượng PrimeInfo có tên p_i_object
    410.         để khi thông tin của Prime
    411.     */
    412.     PrimeInfo p_i_object;
    413.    
    414.  
    415.     /*
    416.         Hoặc là ghi ra file, hoặc là xuất thông tin ra màn hình
    417.     */
    418.     if( writeToFileOrPrintOut() == PRINT )
    419.     {
    420.         printMessagesInstruction(
    421.                                     cout,
    422.                                     "    ------------------------------ \n" \
    423.                                     "    - The entire table of prime  - \n" \
    424.                                     "    ------------------------------ \n"
    425.                                 );
    426.         restoreDefaultColor( cout );
    427.  
    428.        
    429.         p_i_object = generateAndShowsPrimes( starting_value, ending_value, cout );
    430.         showStatisticOfPrime( cout, p_i_object );
    431.     }
    432.     else
    433.     {
    434.         ofstream outfile;
    435.         string  file_name = getOutFileName();
    436.        
    437.         /*  Mở tệp */
    438.         outfile.open( file_name.c_str(), ios::out );
    439.        
    440.         p_i_object = generateAndShowsPrimes( starting_value, ending_value, outfile );
    441.         showStatisticOfPrime( outfile, p_i_object );
    442.        
    443.         printMessagesInstruction(
    444.                                     cout,
    445.                                     "\n...data is writing to file."
    446.                                 );
    447.         /* Đóng tệp */
    448.         outfile.close();
    449.     }
    450.  
    451.     printMessagesInstruction( cout, "\n\n Thanks a lot for your time.\n" );
    452.  
    453.     return 0;
    454. }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 08-12-2008 lúc 09:55 AM.

Các đề tài tương tự

  1. Cung cấp giấy ik plus, Paper One, Plus A+, Double A, Giấy Thái Lan, Giấy Bãi Bằng, bìa màu, băng dính, mica các loại
    Gửi bởi dungptvietthanh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-06-2013, 04:05 PM
  2. Chung cư Đại Thanh giảm sốc 10tr/vnđ cho các căn hộ. giảm và liên tục giảm…!!
    Gửi bởi lanthanh91 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-10-2012, 10:27 AM
  3. Trả lời: 0
    Bài viết cuối: 06-08-2012, 07:01 PM
  4. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  5. Trả lời: 0
    Bài viết cuối: 24-05-2012, 04:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn