IMG-LOGO
×

Tài Liệu Học

Khoá học lập trình C/C++ Dành cho người mới bắt đầu.

Cài đặt môi trường & tạo dự án đầu tiên

[Video] - Nhập môn cho người mới bắt đầu - Lập trình C [Video] Flowchart & ví dụ viết flowchart của phương trình bậc 1 - Lập Trình C [Video] Hướng dẫn cài đặt môi trường lập trình C - Lập trình C [Video] Tìm hiểu biến & kiểu dữ liệu trong C - Lập trình C

Nhập xuất dữ liệu từ bàn phím

[Video] Toán tử & biểu thức login trong C - Lập Trinh C [Video] Nhập dữ liệu trong C (scanf, printf) - Lập trình C [Video] Nhập xuất dữ liệu phần 2 - Lập Trình C

Mệnh đề điều kiện

[Video] Tìm hiểu if, else, switch trong lập trình C - Lập Trình C

Vòng lặp (for, while, do .. while)

[Video] Tìm hiểu về vòng lặp for trong C - Lập trình C [Video] Tìm hiểu while, do..while trong lập trình C - lập Trình C [Video] - Hướng dẫn chữa bài Fibonaci - Lập Trình C

Mảng trong C & ôn tập

[Video] Tìm hiểu mảng 1 chiều trong C - Lập trình C [Video] Tìm hiểu mảng 2 chiều - Lập Trình C

Pointer

[Video] Tìm hiểu pointer phần 1 - Lập Trình C [Video] Tìm hiểu pointer phần 2 - Lập Trình C [Video] Tìm hiểu pointer phần 3 - Lập trình C [Video] Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động

Function & String & Struct & File

[Video] Tìm hiểu function trong lập trình C - Lập Trình C [Video] Tìm hiểu string trong lập trình C - Lập Trình C [Video] Tìm hiểu Struct trong C | Khóa học lập trình C

Ôn tập tổng quát C

[Video] Hướng dẫn chừa bài tập quản lý rạp chiều phím - Lập trình C [Video] Chương trình quản lý tỷ phú bằng C | Khóa học lập trình C 1000 Bài tập C - Lập Trình C

Cấu Trúc Dữ Liệu & Giải Thuật

Phần 1 | Mở đầu cầu trúc dữ liệu & giải thuật là gì? | Khoá học cấu trúc dữ liệu & giải thuật




Trang Chủ Lập Trình C [Share Code] Hướng dẫn optimize function - struct trong C - Quản lý sinh viên - Lập trình C

[Share Code] Hướng dẫn optimize function - struct trong C - Quản lý sinh viên - Lập trình C

by GokiSoft.com - 15:21 25/09/2020 2,528 Lượt Xem



Nội dung:
	- Pointer trong structure
	- Tách file trong project (function)
===================================================
Xây dựng chương trình quản lý sinh viên
Sinh viên gồm các thông tin:
	- Tên, tuổi, địa chỉ

1. Tạo mảng gồm 3 phần tử sinh viên
2. Viết menu chương trình
	1. Nhập thông tin sinh viên
	2. Hiển thị thông tin sinh viên
	3. Thoát


Cách 1

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int length = 3;

typedef struct Student_ST {
	char name[50], address[200];
	int age;
} Student;

void showMenu() {
	printf("\n1. Nhap thong tin sinh vien");
	printf("\n2. Hien thi thong tin sinh vien");
	printf("\n3. Thoat");
	printf("\nChon: ");
}

void input(Student *p) {
	int i;
	//Nhap du lieu
	for(i=0;i<length;i++) {
		printf("\nNhap sinh vien thu %d:", i + 1);
		printf("\nNhap ten: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].name);
		
		printf("\nNhap tuoi: ");
		fflush(stdin);fflush(stdout);
		scanf("%d", &p[i].age);
		
		printf("\nNhap dia chi: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].address);
	}
}

void display(Student *p) {
	int i;
	//Hien thi thong tin sinh vien
	for(i=0;i<length;i++) {
		printf("\n%d. Ten: %s, tuoi: %d, dia chi: %s", i+1, 
			p[i].name, p[i].age, p[i].address);	
	}
}

int main(int argc, char *argv[]) {
	Student studentList[3];
	int choose, i;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				input(studentList);
				break;
			case 2:
				display(studentList);
				break;
			case 3:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 3);
	
	return 0;
}

Cách 2:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct Student_ST {
	char name[50], address[200];
	int age;
} Student;

int main(int argc, char *argv[]) {
	Student studentList[3];
	int choose, i, length = 3;
	
	do {
		printf("\n1. Nhap thong tin sinh vien");
		printf("\n2. Hien thi thong tin sinh vien");
		printf("\n3. Thoat");
		printf("\nChon: ");
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				//Nhap du lieu
				for(i=0;i<3;i++) {
					printf("\nNhap sinh vien thu %d:", i + 1);
					printf("\nNhap ten: ");
					fflush(stdin);fflush(stdout);
					gets(studentList[i].name);
					
					printf("\nNhap tuoi: ");
					fflush(stdin);fflush(stdout);
					scanf("%d", &studentList[i].age);
					
					printf("\nNhap dia chi: ");
					fflush(stdin);fflush(stdout);
					gets(studentList[i].address);
				}
				break;
			case 2:
				//Hien thi thong tin sinh vien
				for(i=0;i<3;i++) {
					printf("\n%d. Ten: %s, tuoi: %d, dia chi: %s", i+1, 
						studentList[i].name, studentList[i].age, studentList[i].address);	
				}
				break;
			case 3:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 3);
	
	return 0;
}

Cách 3:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int length = 3;

typedef struct Student_ST {
	char name[50], address[200];
	int age;
} Student;

void showMenu();
void input(Student *p);
void display(Student *p);

int main(int argc, char *argv[]) {
	Student studentList[3];
	int choose, i;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				input(studentList);
				break;
			case 2:
				display(studentList);
				break;
			case 3:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 3);
	
	return 0;
}

void showMenu() {
	printf("\n1. Nhap thong tin sinh vien");
	printf("\n2. Hien thi thong tin sinh vien");
	printf("\n3. Thoat");
	printf("\nChon: ");
}

void input(Student *p) {
	int i;
	//Nhap du lieu
	for(i=0;i<length;i++) {
		printf("\nNhap sinh vien thu %d:", i + 1);
		printf("\nNhap ten: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].name);
		
		printf("\nNhap tuoi: ");
		fflush(stdin);fflush(stdout);
		scanf("%d", &p[i].age);
		
		printf("\nNhap dia chi: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].address);
	}
}

void display(Student *p) {
	int i;
	//Hien thi thong tin sinh vien
	for(i=0;i<length;i++) {
		printf("\n%d. Ten: %s, tuoi: %d, dia chi: %s", i+1, 
			p[i].name, p[i].age, p[i].address);	
	}
}


Bình luận



Phản Hồi Bởi:

(1) TRẦN VĂN ĐIỆP [Teacher]

Chia sẻ từ lớp học

TRẦN VĂN ĐIỆP [Teacher]

Ngày viết: 10:41 28/09/2020

Code Tham Khảo.



#include <stdio.h>
#include <stdlib.h>
#include "student.h"

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	//Xu ly file
	//Mo ket noi File
	FILE *fp = fopen("vidu.txt", "a");
	
	//Ghi du lieu
	fprintf(fp, "Sinh vien Aptech\n");
	fputc('A', fp);
	
	//Dong ket noi
	fclose(fp);
	
	//Mo ket noi File
	fp = fopen("vidu.txt", "r");
	
	//Ghi du lieu
	char str[100];
	fgets(str, 100, fp);
	printf("\nstr: %s", str);
	
	//Dong ket noi
	fclose(fp);
	//Ket thuc xu ly file
	
	Student studentList[3];
	int choose, i;
	
	FILE *fp1;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				input(studentList);
				break;
			case 2:
				display(studentList);
				break;
			case 3:
				printf("\nGoodbye!!!");
				break;
			case 4:
				//save file
				fp1 = fopen("student.dat", "wb");
				
				//save danh sach sinh vien vao file
				fwrite(studentList, sizeof(Student), 3, fp1);
				
				//dong ket noi
				fclose(fp1);
				break;
			case 5:
				//save file
				fp1 = fopen("student.dat", "rb");
				
				//save danh sach sinh vien vao file
				fread(studentList, sizeof(Student), 3, fp1);
				
				//dong ket noi
				fclose(fp1);
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 3);
	
	return 0;
}



typedef struct Student_ST {
	char name[50], address[200];
	int age;
} Student;

void showMenu();
void input(Student *p);
void display(Student *p);



#include <stdio.h>
#include <stdlib.h>
#include "student.h"

int length = 3;

void showMenu() {
	printf("\n1. Nhap thong tin sinh vien");
	printf("\n2. Hien thi thong tin sinh vien");
	printf("\n3. Thoat");
	printf("\n4. Luu File");
	printf("\n5. Doc File");
	printf("\nChon: ");
}

void input(Student *p) {
	int i;
	//Nhap du lieu
	for(i=0;i<length;i++) {
		printf("\nNhap sinh vien thu %d:", i + 1);
		printf("\nNhap ten: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].name);
		
		printf("\nNhap tuoi: ");
		fflush(stdin);fflush(stdout);
		scanf("%d", &p[i].age);
		
		printf("\nNhap dia chi: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].address);
	}
}

void display(Student *p) {
	int i;
	//Hien thi thong tin sinh vien
	for(i=0;i<length;i++) {
		printf("\n%d. Ten: %s, tuoi: %d, dia chi: %s", i+1, 
			p[i].name, p[i].age, p[i].address);	
	}
}


TRẦN VĂN ĐIỆP [Teacher]

Ngày viết: 15:23 25/09/2020

FILE


//Xu ly file
	//Mo ket noi File
	FILE *fp = fopen("vidu.txt", "a");
	
	//Ghi du lieu
	fprintf(fp, "Sinh vien Aptech\n");
	fputc('A', fp);
	
	//Dong ket noi
	fclose(fp);
	
	//Mo ket noi File
	fp = fopen("vidu.txt", "r");
	
	//Ghi du lieu
	char str[100];
	fgets(str, 100, fp);
	printf("\nstr: %s", str);
	
	//Dong ket noi
	fclose(fp);
	//Ket thuc xu ly file


Phân Loại Bài Viết

Tài Liệu Tham Khảo

Đã sao chép!!!