Tài liệu C Assignment - FPT Aptech - Student Management
Mục lục
Phần 1: Đặt vấn đề.3
Phần 2: Quy trình thực hiện.4
Tự đánh giá.4
Lập kế hoạch.4
Phân tích thiết kế.5
Triển khai code.5
Tự đánh giá kết quả.8
Nhận xét của giảng viên.8
Rút kinh nghiệm.8
Tài liệu tham khảo.10
Họ và tên Phạm Hồng Vân Lớp T0909G1 Hanoi-2009 Tài liệu C Assignment Mục lục Phần 1: Đặt vấn đề................................................................................................................................3 Phần 2: Quy trình thực hiện..................................................................................................................4 Tự đánh giá......................................................................................................................................4 Lập kế hoạch....................................................................................................................................4 Phân tích thiết kế..............................................................................................................................5 Triển khai code................................................................................................................................5 Tự đánh giá kết quả.........................................................................................................................8 Nhận xét của giảng viên...................................................................................................................8 Rút kinh nghiệm...............................................................................................................................8 Tài liệu tham khảo..............................................................................................................................10 Phần 1: Đặt vấn đề Viết một chương trình với những chức năng và giao diện chính sau: 1. Thêm một học viên vào lớp 2. Hiển thị danh sách sinh viên của một lớp nhập vào từ bàn phím 3. Tìm thông tin đầy đủ của một sinh viên khi biết mã số 4. Thay đổi thông tin của một học viên với mã số cho trước. 5. Thoát. #Chọn:_ Một học viên lưu lại có những thông tin sau: Mã số: số nguyên Tên: ký tự và có độ dài không quá 30 Tên Lớp : ký tự và có độ dài không quá 10 Phần 2: Quy trình thực hiện Tự đánh giá Lập kế hoạch Lịch cho assignment: 1 2 3 4 5 6 7 8 9 10 11 12 13 1 4 15 Asm1 Asm214/10/09 Ass3 16/10/09 Asm4 19/10/09 Asm5 21/10/09 Các mục tiêu cần đạt cho assignment: 1. Vẽ lưu cho các bài tập lớn 2. Khả năng phân chia chức năng trong các bài tập lớn 3. Khả năng giải quyết vấn đề độc lập 4. Khả năng lên kế hoách 5. Kỹ năng viết một sản phẩn đơn giản có tài liệu thiết kế và trình bày kết quả Phân tích thiết kế 1. Lưu đồ chung 2. Lưu đồ cho thêm một học viên vào lớp 3. Lưu đồ cho hiển thị danh sách sinh viên của một lớp nhập vào từ bàn phím 4. Lưu đồ cho tìm thông tin đầy đủ của một sinh viên khi biết mã số 5. Lưu đồ cho thay đổi thông tin của một học viên với mã số cho trước. Triển khai code #include #include #include //The max count of studens const int MAX_LIST = 100; //The max name length const int MAX_NAME = 30; //The max class length const int MAX_CLASS = 10; typedef struct { int id; char name[MAX_NAME]; char class[MAX_CLASS]; } Student; /* * function returns student's information from keyboard * */ Student input(); /* * print all student's informtion to monitor * */ void print(Student student); /* * prints the list of students. */ void printList(Student *list, int n); /* *add student to an array of students * return 0 if succeeds, * 1 if fails */ int add(Student *list, int *n, Student student); /* * print all students' information of a class * return the number of students in class */ int printListClass(Student *list, int n, char *class); /* * return the first student of specific id * if there is no student of that id, return the student of id == *-1 */ Student findStudent(Student *list, int n, int id); /* * This function cleans the buffer from keyboard */ void flush(); /* * show the menu and get from keyboard the choice */ int getChoice(); /* * change shows the student's information of specific id and * lets user enter new information * return 0 if succeeds and 1 otherwise. */ int change(Student *list, int n, int id); /* * the program starts here */ int main(int argc, char** argv) { //Students' list Student list[MAX_LIST]; //The amount of student in the list. int n = 0; //Temporary data Student stu; char class[MAX_CLASS]; int id; int re; int choice; do { choice = getChoice(); switch (choice) { case 1: stu = input(); int re = add(list, &n, stu); if (re == 0) { printf("The student is added\n"); } else { printf("The list is full\n"); } break; case 2: printf("Enter class:"); scanf("%[^\n]s", class); flush(); printListClass(list,n,class); break; case 3: printf("Enter id:"); scanf("%d", &id); flush(); stu = findStudent(list, n, id); if (stu.id == -1) printf("The student does not exist\n"); else print(stu); break; case 4: printf("Enter id:"); scanf("%d", &id); flush(); re = change(list, n, id); if (re == 0) { printf("The change succeeded\n"); } else { printf("The change failed \n"); } break; case 5: break; default: printf("Wrong choice!!!\n"); } } while (choice != 5); } Student input() { //variable of Student Student student; printf("Id:"); scanf("%d", &student.id); flush(); printf("Name:"); scanf("%[^\n]s+", student.name); flush(); printf("Class:"); scanf("%[^\n]s+", student.class); flush(); return student; } void print(Student student) { printf("\n"); printf("id: %d\n", student.id); printf("name:%s\n", student.name); printf("class: %s", student.class); } int getChoice() { printf("\n------menu-------\n"); printf("1. add student\n"); printf("2. List class's students\n"); printf("3. Find student by id\n"); printf("4. Change student's information\n"); printf("5. Exit\n"); printf("Choice:"); int choice; scanf("%d", &choice); flush(); printf("-----------------\n"); return choice; } void printList(Student *list, int n) { int i; for (i = 0; i < n; i++) { printf("the element %d:", i); print(list[i]); } } void flush() { char buff[200]; scanf("%[^\n]s", buff); getchar(); } int add(Student *list, int *n, Student student) { if ((*n) >= MAX) { return 1; } else { list[(*n)++] = student; return 0; } } int printListClass(Student *list, int n, char *class) { int i; int number = 0; for (i = 0; i < n; i++) { if (strcmp(list[i].class, class) == 0) { printf("the element %d:", i); print(list[i]); number++; } } if (number == 0) printf("There is no student of that class"); return number; } Student findStudent(Student *list, int n, int id) { int i; for (i = 0; i < n; i++) { if (list[i].id == id) { return list[i]; } } Student stu; stu.id = -1; return stu; } int change(Student *list, int n, int id) { int i; for (i = 0; i < n; i++) { if (list[i].id == id) { printf("\nThe current information of the student:\n"); print(list[i]); printf("Enter the information you want:\n"); list[i] = input(); return 0; } } return 1; } Tự đánh giá kết quả Nhận xét của giảng viên Biết cách lập kế hoạch? Tốt Khá Trung bình Yếu Thực hiện đúng quy trình? Tốt Khá Trung bình Yếu Nhận xét chung về assignment? Tốt Khá Trung bình Yếu Khác:....................................................................................................................................................... ................................................................................................................................................................ ................................................................................................................................................................ Rút kinh nghiệm 1. Phải viết lưu đồ cẩn thận để giải những bài toán dù là đơn giản hay phức tạp. 2. Kỹ năng soát lỗi trong nhưng bài toán lớn là quan trọng. 3. Phải kiểm tra xem mỗi chức năng đã chạy đúng chưa trước khi lắp ráp chúng vào một bài toán lớn. 4. Viết chương trình phải rõ ràng, cẩn thận và chú thích đầy đủ sẽ giúp chúng ta trong quá trình soát lỗi và đọc chương trình. 5. Phải chủ động sắp sếp thời gian, không được chủ quan với những vấn đề ta chưa rõ. Tài liệu tham khảo 1. Lập trình cơ bản với C của Aptech 2. Trang web vào ngày 04/10/2009
File đính kèm:
- Tài liệu C Assignment - FPT Aptech - Student Management.pdf
- Code.rar