งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

การเขียนโปรแกรม ประยุกต์ใช้งาน Engr201 Computer Programming for Engineers Faculty of Engineering Chiang Mai University 1.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การเขียนโปรแกรม ประยุกต์ใช้งาน Engr201 Computer Programming for Engineers Faculty of Engineering Chiang Mai University 1."— ใบสำเนางานนำเสนอ:

1 การเขียนโปรแกรม ประยุกต์ใช้งาน Engr201 Computer Programming for Engineers Faculty of Engineering Chiang Mai University 1

2 การเขียนโปรแกรมประยุกต์ใช้ งาน โปรแกรมจองที่นั่งบนเครื่องบิน – โปรแกรมนี้จะแสดง (1) แผนผังที่นั่งทั้งหมดบนเครื่องให้ผู้ใช้ โดยจะระบุ [ ] คือที่นั่งว่าง และ [x] คือที่นั่งไม่ว่าง (2) จำนวนที่นั่งว่างทั้งหมด (3) หมายเลขที่นั่งว่างทั้งหมด – โปรแกรมจะถามผู้ใช้ให้ระบุเลขที่นั่งที่ต้องการ – โปรแกรมจะวนทำงานไปเรื่อยๆ จนกว่าจะใส่เลขที่ นั่ง 0 หมายถึงออกจากโปรแกรม 2

3 ตัวอย่างการทำงาน แสดงแผนผังที่นั่งทั้งหมด แสดงจำนวนที่นั่ง ที่เหลือทั้งหมด แสดงหมายเลข ที่นั่งที่เหลือ ทั้งหมด ให้ผู้ใช้เลือกที่ นั่งที่ต้องการ กด y เพื่อ confirm การ เลือก 0 เพื่อออกจาก โปรแกรม ข้อมูลรอบใหม่ที่ 3F ถูก จองไปแล้ว 3

4 โครงสร้างข้อมูลหลัก ในโปรแกรมนี้จะมีการใช้ Array แบบ 2 มิติของ ข้อมูลแบบ Integer สำหรับการเก็บข้อมูล เกี่ยวกับที่นั่งว่า ว่างหรือไม่ว่าง กำหนดให้ 0 = ว่าง และ 1 = ไม่ว่าง โดยกำหนดให้เป็นตัวแปรชนิด Global กำหนด นอก main() เพื่อให้ทุกฟังก์ชันเห็นตัวแปรนี้ เหมือนกัน กำหนดให้มี 9 rows, 6 columns #define NUM_ROW 9 #define NUM_COL 6 int seat[NUM_ROW][NUM_COL]; 4

5 ฟังก์ชันหลัก ฟังก์ชัน show_seat() สำหรับการแสดง แผนผังที่นั่ง ฟังก์ชัน reserve_ticket() สำหรับการ จองที่นั่ง ฟังก์ชัน list_avail_seat() สำหรับ แสดงเลขที่นั่งที่ว่างทั้งหมด ฟังก์ชัน find_num_avail_seat() สำหรับแสดงจำนวนที่นั่งที่ว่างทั้งหมด ฟังก์ชัน init_data() สำหรับสุ่มที่นั่งไม่ ว่าง (* กำหนดให้ Prob=0.8) เพื่อทดสอบ การทำงานของโปรแกรม 5

6 Source Code Source Code ของโปรแกรมนี้สามารถ Download ได้ที่ หมายเหตุ : โปรแกรมนี้ยังทำงานได้ไม่ สมบูรณ์ ให้ นศ. ทำความเข้าใจการทำงาน ของโปรแกรมในส่วนต่างๆ ก่อน แล้วจะเห็น ว่าโปรแกรมยังไม่สมบูรณ์อย่างไร 6

7 ฟังก์ชัน show_seat() สำหรับการ แสดงแผนผังที่นั่ง void show_seat() { int i,j; char tmp; printf(" %4c%4c%4c %4c%4c%4c\n",'A','B','C','D','E','F'); for(i=0;i

8 ฟังก์ชัน reserve_ticket() สำหรับ การจองที่นั่ง (1/2) void reserve_ticket() { char seat_string[10]; char ans; int row; int col; do { show_seat(); printf("Number of available seats=%d\n", num_avail_seat); list_avail_seat(); do { printf("Enter seat number (0 to exit): "); scanf("%s", seat_string); if ((strlen(seat_string)!=1)||(seat_string[0]!='0')) { row = seat_string[0] - '1'; col = seat_string[1] - 'A'; 8

9 ฟังก์ชัน reserve_ticket() สำหรับ การจองที่นั่ง (2/2) if ((row =NUM_ROW)||(col =NUM_COL)) { printf("Invalid seat number, please enter again!\n"); } else { printf("Reservation for seat %s, confirm (y/n)?", seat_string); scanf("\n%c", &ans); } } while (((row NUM_ROW)||(col NUM_COL)||(ans!='y'))&&((strlen(seat_stri ng)!=1)||(seat_string[0]!='0'))); if ((strlen(seat_string)!=1)||(seat_string[0]!='0')) { seat[row][col] = 1; num_avail_seat = find_num_avail_seat(); } } while ((strlen(seat_string)!=1)||(seat_string[0]!='0')); } 9

10 ฟังก์ชัน list_avail_seat() สำหรับ แสดงเลขที่นั่งที่ว่างทั้งหมด void list_avail_seat() { int i,j; printf("Available seats: "); for(i=0;i

11 ฟังก์ชัน find_num_avail_seat() สำหรับ แสดงจำนวนที่นั่งที่ว่างทั้งหมด int find_num_avail_seat() { int i,j,k=0; for(i=0;i

12 ฟังก์ชัน init_data() สำหรับสุ่มที่นั่งไม่ว่าง (* กำหนดให้ Prob=0.8) เพื่อทดสอบการทำงานของโปรแกรม void init_data() { int i,j; int a; srand(time(NULL)); for(i=0;i=20) { // 80% occupied seat[i][j] = 1; } num_avail_seat = find_num_avail_seat(); } 12

13 ส่วนต้นของโปรแกรม และ main() #include #define NUM_ROW 9 #define NUM_COL 6 void init_data();// function prototype void show_seat(); void reserve_ticket(); void list_avail_seat(); int find_num_avail_seat(); int seat[NUM_ROW][NUM_COL]; int num_avail_seat = NUM_ROW * NUM_COL; void main() { init_data(); reserve_ticket(); } 13

14 ทดลองรันโปรแกรมนี้ ทดลอง Download โปรแกรมนี้ และ รันโปรแกรมเพื่อพิจารณาหาความไม่ สมบูรณ์ 14

15 ความไม่สมบูรณ์ของโปรแกรมที่ ต้องแก้ไข โปรแกรมนี้ยอมให้เลือกที่นั่งที่ไม่ว่างได้ ( ซึ่งไม่ควรให้เลือกได้ ) ให้แก้ไขให้โปรแกรมไม่ยอมให้เลือกที่นั่ง ที่ว่าง โดยให้แสดงข้อความว่า The selected seat is not available. Please enter again! แล้ววนถามเลขที่นั่งใหม่ 15


ดาวน์โหลด ppt การเขียนโปรแกรม ประยุกต์ใช้งาน Engr201 Computer Programming for Engineers Faculty of Engineering Chiang Mai University 1.

งานนำเสนอที่คล้ายกัน


Ads by Google