៣១
កក្កដា

ការ​បង្កើត Menu Action ជាមួយនឹង​ការ​ប្រើ Template Function តាមរយៈ C++

យើង​ទាំងអស់​គ្នា​ប្រហែលជា ធ្លាប់​បាន​សិក្សា​រួចមកហើយ​តាមរយៈ ទស្សនាវដ្ដី​អាន-ANT នូវ​ការចាក់ Background Color នៅ​ក្នុង​ប្រអប់​តាមរយៈ C++  និង​ការ​ប្រើ Function និង Ascii Code ​ក្នុង​ការ​គ្រប់គ្រង​លើការផ្លាស់ប្តូរ Menu ​តាមរយៈ C++ នៅ​ក្នុង​អត្ថបទមុនៗ​ដែល​ទស្សនាវដ្ដី​អាន-ANT បានចេញផ្សាយ ។ ដូច្នេះ ថ្ងៃ​នេះ តាមរយៈ ទស្សនាវដ្ដី​អាន-ANT យើង​ខ្ញុំ​នឹងលើកយកអត្ថបទថ្មីមួយទៀតនិយាយពី ការ​បង្កើត Menu Action ​ជាមួយនឹង​ការ​ប្រើ Template Function ​តាមរយៈ C++ ដោយការ​ប្រើ​ប្រាស់ Function ​ដែល​យើង​បង្កើត​ឡើងដោយខ្លួនឯង​ផ្ទាល់ ដើម្បី​មកចែក​រំលែក​ជូនដល់​បងប្អូន​ដែល​ចូលចិត្ត​សិក្សា​ទាក់ទងនឹង Programming Language ​ឲ្យ​បានយល់ដឹង​បន្ថែម​មួយ​កម្រិត​ទៀត ។ ក្រោយពីអ្នក​ទាំងអស់​គ្នា​បាន​សិក្សា​និងអនុវត្តតាម​នូវ​អត្ថបទនេះហើយ នោះអ្នក​ទាំងអស់​គ្នា​នឹងទទួលបាន និងយល់ពីរបៀប​ប្រើ​ប្រាស់ Menu Action បានច្បាស់លាស់ ។ ជា​ពិសេស​យល់ច្បាស់​ពីការ​បង្កើត Template Function ជា​ច្រើន​ដូចជា Inserts, Deletes, Edits, Sorts, displays ​ដែល​វាមាន​សមត្ថភាព​អាច​ស្គាល់​គ្រប់ data type ​ស្ទើរតែ​ទាំងអស់ ។ ដើម្បី​ឲ្យ​កាន់តែច្បាស់​បន្ថែម​ទៀត​នូវ​ខ្លឹមសារនៃអត្ថបទនេទាំងស្រុង ថាតើយើង​ប្រើ Menu Action និង Template Function ​យ៉ាង​ណានោះ សូមបង្វែរអារម្មណ៍អ្នក​ទាំងអស់​គ្នា​មកតាមដាន​សិក្សា​ដូច​ខាងក្រោម​នេះ៖

♣ កូដ C++ Programming

ពន្យល់កូដ C++

•  iostream ជា header file ​សម្រាប់​ប្រើ cin : input, cout : output, endl : new line

 • conio.h ជា header file ​សម្រាប់​ប្រើ​ getch ()

 • antheader.h ជា header file ​សម្រាប់​ប្រើ​ foreColor function ជា function ​ដែល​បង្កើត​ឡើង​សម្រាប់​ប្រើ​ក្នុង​ការ ដាក់ព៌ណ​ឲ្យ​អក្សរនិងព៌ណផ្ទៃ​ទៅតាម Line ​នីមួយៗ​យោងតាមកូដពណ៌​ដែល​បង្ហាញ​នៅលើ Console , gotoxy function ​សម្រាប់​ប្រើ​ក្នុង​ការ​កំណត់​នូវ​កូអរដោណេ, និង function ផ្សេងៗ​ទៀត ដែល header file នេះត្រូវ​ធ្វើការ include ចូល​ក្នុង​ directoryរបស់ IDE (Dev C++, …) អាច​ធ្វើការ download នៅទីនេះបាន ។

 • stdlib.h ជា header file ​សម្រាប់​ប្រើ​ function system (“ ”) ផ្សេងៗ​

 • system (“mode con: cols=60 lines=35”) ជា built-in function មួយ​ប្រើ​សម្រាប់​ធ្វើការ​កំណត់ Layout របស់ Console  ​ដែល cols ជា បណ្តោយ ឬ​ប្រវែងសរុបរបស់ console និង lines ជា​កម្ពស់​សរុបរបស់ console ​ដែល​វាស្ថិត​ក្នុង stdlib.h

 • menuAction.h ជា Header file មួយ​ដែល​ផ្តុំឡើងដោយ function showMoveMenu និង function singleBox យើង​ក៏ អាច​ទាញយក Header file នេះទៅ​ប្រើ​ប្រាស់​បាន ប៉ុន្តែ​ action ​នីមួយៗ អាស្រ័យ​លើ Ascii code

 ​ដែល​យើង​ផ្ដល់​ឲ្យ ចុច​ download នៅទីនេះ ។

 • showMoveMenu (string menu [ ] , int n, int x, int y, int w, int h, int coordMenuX, int bgcolor, int movecolor, int &show_index) ជា function ​ដែល​បង្កើត​ឡើង​សម្រាប់​ប្រើ​ក្នុង​ការ​បង្កើត​ជាប្រអប់​ដែល​មានរាងបួនជ្រុងនឹង​ភ្ជាប់​ជាមួយ ការចាក់ព៌ណ Background ហើយ​ធ្វើការ​បង្ហាញ Menu នៅ​ក្នុង​ប្រអប់នោះ​ដែល​យើងអាច​ជ្រើសរើស ឬ​ផ្លាស់ប្តូរ Menu  ​នីមួយៗ​បាន​តាមរយៈ ការ​ប្រើ Ascii code ហើយ function នេះមាន​លក្ខណៈ​បត់បែនបាន​ច្រើន​ដែល​មាន Parameters

 √  string menu [ ] ជា array menu មួយវិមាត្រមាន​ប្រភេទ​ជាអក្សរ​ដែល​តំណាង​ឲ្យ Menu ​ណាមួយ​

 √  int n តំណាង​ឲ្យ size សរុបរបស់ array menu ​ដែល​ចង់បាន

 √  int x និង int y ជាកូអរដោណេនៃការ​កំណត់​ទីតាំងរបស់ប្រអប់​នៅលើ Console ហើយ​ x តំណាង​ឲ្យ​ផ្នែក​អាប់ ស៊ីស ឬ​ជួរដេក និង​ y តំណាង​ឲ្យ​ផ្នែក​អរដោណេ ឬ​ជួរឈរ

int w តំណាង​ឲ្យ​ប្រវែងសរុបរបស់ប្រអប់ និង int h តំណាង​ឲ្យ​កម្ពស់​សរុបរបស់ប្រអប់

int coordMenuX តំណាង​ឲ្យ​ផ្នែក​អាប់ស៊ីសនៃទីតាំងរបស់ array menu

 int bgcolor តំណាង​ឲ្យ​ព៌ណអក្សរនិងព៌ណផ្ទៃរបស់ប្រអប់ និង Array Menu

 int movecolor តំណាង​ឲ្យ​ព៌ណអក្សរនិងព៌ណផ្ទៃ​សម្រាប់​ធ្វើការ​ជ្រើសរើស Menu

 និង int &show_index តំណាង​ឲ្យ​ការចង្អុល​បង្ហាញ​នូវ index ​ណាមួយ​របស់ array Menu ​នៅពេល​ធ្វើការ  ​ជ្រើសរើស Menu នោះ

 • singleBox (int x, int y, int w, int h, int color) ជា function ​ដែល​យើងអាចគូសចេញជារូបរាងបួនជ្រុងបាន

 • setcursor (0, 0) ​ប្រើ​សម្រាប់​បិទ Cursor មិន​ឲ្យ​ឃើញ​នៅលើ Console ​ដែល​វាស្ថិត​ក្នុង antheader.h

 • string menu [ N] ជា array menu ​ដែល​ជា argument ​ប្រើ​សម្រាប់​បោះ​តម្លៃ​ទៅ​ឲ្យ function showMoveMenu ​ទៅតាម  Parameter menu [ ] និង n

 • template< class T > void inserts (T objects [ ] , int n) ជា template function ​ដែល​យើងអាច​ប្រើ Array ​ដែល​មាន  data type គ្រប់​ប្រភេទ​បាន​ក្នុង​ផ្ដល់​តម្លៃ​ទៅ​ឲ្យ array នោះ

 • template< class T > void edits (T objects [ ] , int n) , template< class T > void deletes (T objects [ ] , int n) ,  template< class T > void shows (T objects [ ] , int n) , template< class T > void sorts (T objects [ ] , int n) ​ស្រដៀងនឹង template function ដែរ គ្រាន់តែ​យើង​ប្រើ​វា​សម្រាប់ edits, deletes, shows, sorts array ​ណាមួយ​

clrXY (int x, int y, int count) ជា function មួយស្ថិត​ក្នុង antheader.h ​ប្រើ​សម្រាប់​សម្អាត Screen Output ទៅ តាមកូរអរដោណេ និង ចំនួន characters ​ដែល​ចង់លុបចោល

 • delay (int milisecond) ជា function មួយស្ថិត​ក្នុង antheader.h ​ប្រើ​សម្រាប់​ Pause Screen ​ទៅតាម​មីលី​វិនាទី​ដែល យើង​ផ្ដល់​ឲ្យ​

 ​លទ្ធផល Run កូដ C++ 

​បន្ទាប់ពី​ចុចប៊ូតុង Insert Value យើងនឹងឃើញ​ផ្ទាំង​ថ្មីមួយទៀត​សម្រាប់​ឲ្យ​យើង​បញ្ចូល​ទិន្នន័យ​ដូចរូប​ខាងក្រោម​៖

​បន្ទាប់ពី​យើងចុច Esc ហើយ​ជ្រើសរើស​នូវ​ប៊ូតុង Shows Value យើងទទួលបាន​លទ្ធផល​ដូចរូប​ខាងក្រោម​៖

​បន្ទាប់ពី​យើងចុច Esc ហើយ​ជ្រើសរើស​នូវ​ប៊ូតុង Sort Value ដូចរូប​ខាងក្រោម វានឹង​ធ្វើការ តម្រៀប​ទិន្នន័យ​ឲ្យ​យើង ។

នោះយើងអាចត្រលប់ទៅ​ជ្រើសរើស​ប៊ូតុង Show Value ម្តងទៀត ដើម្បី​មើល​លទ្ធផល​ក្រោយពេល​តម្រៀប​ទិន្នន័យ​រួចដូចរូប​ខាងក្រោម​៖

​បន្ទាប់ពី​យើងចុច Esc ហើយ​ជ្រើសរើស​នូវ​ប៊ូតុង Delete Value យើងនឹងឃើញ​ផ្ទាំង​ថ្មីមួយទៀត​សម្រាប់​ឲ្យ​យើង​បញ្ចូល​ទិន្នន័យ​ណាមួយ​ដែល​យើងចង់លុបវាចេញដូចរូប​ខាងក្រោម​៖

​បន្ទាប់ពី​យើងចុច Esc ​ហើយ​ជ្រើសរើស​នូវ​ប៊ូតុង Shows Value ម្តងទៀត ដើម្បី​មើល​លទ្ធផល​ក្រោយពេលលុប​ទិន្នន័យ​រួចដូចរូប​ខាងក្រោម​៖

​រូបភាព​ខាងលើ​ទាំងអស់​នេះ គ្រាន់តែ​ជា​លទ្ធផល​មួយ​ដែល​យើង​ខ្ញុំ​ជ្រើសរើស​យកមក​បង្ហាញ​តែមួយ​ផ្នែក​តូច​បន្ទាប់ពី​ដំណើរ​ការ​កូដ C++ ​ខាងលើ​រួច ។ យើង​ក៏​អាច​ធ្វើការ​កំណត់​ទំហំ​ប្រអប់ ឬ​ទំហំ​របស់ Console , menu ,Action Menu, Template Function ឬ​ពណ៌ផ្សេងៗ ដែល​យើងចង់បានយោង​ទៅតាម​អត្ថបទនេះ​ផងដែរ ដូចមាន​ក្នុង function main ​ដែល​យើងបានហៅមក​ប្រើ ។ ដូច្នេះ អ្នក​ទាំងអស់​គ្នា​អាច ប្រើ​គោលគំនិតនៃ Action Menu ទៅ​ប្រើ​តាម​តម្រូវ​ការ​ដែល​អ្នក​ទាំងអស់​គ្នា​ចង់បាន ។

♦ រៀបរៀងអត្ថបទដោយ៖ លោក អូន ហ៊ិនស៊ី

♦  ​វគ្គ C/C++ តម្លៃ ៥៩ដុល្លា http://training.antkh.com/c_cpp.aspx

♦ សូម​ចូលរួម​ជាសមាជិក ANT Training Group  ដើម្បី​តាមដានសម្មភាពប្រចាំ​ថ្ងៃ​ជាមួយអាន-ANT

*** ចុច Like គេហទំព័រ www.antkh.com ដើម្បី​ទទួលបានអត្ថបទថ្មីៗ​ដែល​ទាក់ទងនឹង​បច្ចេកវិទ្យា​រៀងរាល់​ថ្ងៃ​

មតិ និង​យោបល់​ទៅលើ​អត្ថបទ​នេះ (តាម Facebook)

ខាងក្រោម​នេះ​ជា​យោបល់​ផ្សេងៗ​របស់​អ្នកទស្សនា