การเขียนโปรแกรมประยุกต์ใช้งาน

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
CSI1201 การเขียนโปรแกรมเชิงโครงสร้าง Structured Programming
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
Introduction to C Programming
คำสั่ง while และ คำสั่ง do..while
ครั้งที่ 8 Function.
การรับค่าและแสดงผล.
ข้อมูลชนิดโครงสร้าง (Structure Data)
ตัวแปรชุด (Array) Chapter Introduction to Programming
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Lecture 11: อาร์เรย์แบบหลายมิติ
ทบทวน อาร์เรย์ (Array)
Structure Programming
Computer Programming 1 LAB # 6 Function.
LAB # 5 Computer Programming 1 1.
Week 15 C Programming.
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Arrays.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
ข้อมูลพื้นฐานและตัวดำเนินการ
อาร์เรย์และข้อความสตริง
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
คำสั่ง while และ do…while
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
Week 5 การทำซ้ำโดย while loop และ do while loop
Computer Programming for Engineers
โปรแกรมประยุกต์อื่นๆ
Chapter 5 การทำซ้ำโดย while loop และ do while loop
Computer Programming for Engineers
Week 5 การทำซ้ำโดย while loop และ do while loop
Debugging in VC Computer Programming for Engineers.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
คำสั่งเกี่ยวกับการรับ และแสดงผล
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
โครงสร้าง ภาษาซี.
บทที่ 9 การสร้างและใช้ งานฟังก์ชั่น C Programming C-Programming.
การเขียน แบบวนซ้ำ , วนลูป
การเขียนโปรแกรม (ภาษาซี)
C-Programming บทที่ 8 การทำซ้ำ C Programming.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
บทที่ 10 การจัดการไฟล์ อาจารย์ศศลักษณ์ ทองขาว สงวนลิขสิทธิ์ © 2547 มหาวิทยาลัยราช ภัฏสงขลา C Programming C-Programming.
การทำซ้ำ Pisit Nakjai.
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
Nested loop.
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
ใบสำเนางานนำเสนอ:

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

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

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

โครงสร้างข้อมูลหลัก ในโปรแกรมนี้จะมีการใช้ 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];

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

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

ฟังก์ชัน 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<NUM_ROW;i++) { printf("%3d ", i+1); for(j=0;j<NUM_COL;j++) { if (seat[i][j]==1) tmp = 'X'; else tmp = ' '; printf("[%c] ", tmp); if (j==2) { printf(" "); } printf("\n");

ฟังก์ชัน 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(); 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';

ฟังก์ชัน reserve_ticket() สำหรับการจองที่นั่ง (2/2) if ((row<0)||(row>=NUM_ROW)||(col<0)||(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<0)||(row>NUM_ROW)||(col<0)||(col>NUM_COL)||(ans!='y'))&&((strlen(seat_string)!=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'));

ฟังก์ชัน list_avail_seat() สำหรับแสดงเลขที่นั่งที่ว่างทั้งหมด void list_avail_seat() { int i,j; printf("Available seats: "); for(i=0;i<NUM_ROW;i++) { for(j=0;j<NUM_COL;j++) { if (seat[i][j] == 0) printf("%c%c ",('1'+i),('A'+j)); } printf("\n");

ฟังก์ชัน find_num_avail_seat() สำหรับแสดงจำนวนที่นั่งที่ว่างทั้งหมด int find_num_avail_seat() { int i,j,k=0; for(i=0;i<NUM_ROW;i++) { for(j=0;j<NUM_COL;j++) { if (seat[i][j] == 0) k++; } return k;

ฟังก์ชัน init_data() สำหรับสุ่มที่นั่งไม่ว่าง (. กำหนดให้ Prob=0 void init_data() { int i,j; int a; srand(time(NULL)); for(i=0;i<NUM_ROW;i++) { for(j=0;j<NUM_COL;j++) { a = rand()%100; if (a>=20) { // 80% occupied seat[i][j] = 1; } num_avail_seat = find_num_avail_seat();

ส่วนต้นของโปรแกรม และ main() #include <stdio.h> #include <time.h> #include <stdlib.h> #include <string.h> #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(); }

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

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