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

pdf19 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 2456 | Lượt tải: 2download
Tóm tắt nội dung Tài liệu C Assignment - FPT Aptech - Student Management, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfTài liệu C Assignment - FPT Aptech - Student Management.pdf
  • rarCode.rar