IMG-LOGO
Trang Chủ Lập Trình C [Share Code] Quản lý rạp chiếu phim quốc gia - Assignment - Lập trình C - Lớp C2010G
×

Lý Thuyết

01 - Nhập môn cho người mới bắt đầu - Lập trình C 02.Flowchart & ví dụ viết flowchart của phương trình bậc 1 - Lập Trình C 03. Hướng dẫn cài đặt môi trường lập trình C - Lập trình C 04. Tìm hiểu biến & kiểu dữ liệu trong C - Lập trình C 05. Toán tử & biểu thức login trong C - Lập Trinh C 06. Nhập dữ liệu trong C (scanf, printf) - Lập trình C 07. Nhập xuất dữ liệu phần 2 - Lập Trình C 08. Tìm hiểu if, else, switch trong lập trình C - Lập Trình C 09. Tìm hiểu về vòng lặp for trong C - Lập trình C 10. Tìm hiểu while, do..while trong lập trình C - lập Trình C 11. Tìm hiểu mảng 1 chiều trong C - Lập trình C 12. Tìm hiểu mảng 2 chiều - Lập Trình C 15. Tìm hiểu pointer phần 3 - Lập trình C 14. Tìm hiểu pointer phần 2 - Lập Trình C 13. Tìm hiểu pointer phần 1 - Lập Trình C 16. Tìm hiểu function trong lập trình C - Lập Trình C 17. Tìm hiểu string trong lập trình C - Lập Trình C 18. Struct trong C - Lập Trình C 1000 Bài tập C - Lập Trình C BT02 - Hướng dẫn chữa bài Fibonaci - Lập Trình C BT03. Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động BT04. Hướng dẫn chừa bài tập quản lý rạp chiều phím - Lập trình C

Bài Tập

Bài tập - Chuyển flowchart sang code - Lập trình C Bài tập - Ôn tập biến + kiểu dữ liệu + scanf & printf - Lập trình C Bài tập - Nhập xuất thông tin sinh viên - Lập trình C Bài tập - Giải phương trình bậc 2 - Lập trình C Bài tập - Giải hệ phương trình bậc nhất nhất 2 ẩn - Lập trình C Bài tập - Tìm min & max - số lớn nhất & nhỏ nhất - Lập trình C Loop - Viết chương trình Reserve chuỗi - Lập trình C Loop - Switch case - Chương trình quản lý sinh viên - Lập trình C Fibonacci - Lập trình C Ôn tập While, Do .. While, For lập trình C - Lập trình C Tính tổng mảng N phần tử - Lập trình C Bài tập ôn luyện mảng 1 chiều - Lập trình C Bài tập ôn tập String - Lập trình C Bài tập ôn luyện Function - Lập trình C Tách phần tử chẵn + lẻ trong C - Lập trình mảng trong C - Lập trình C Bài toán sắp xếp trong C - Lập trình C Bài toán pointer đầu tiên - Hello pointer - Lập trình C Bài tập pointer nâng cao - cấp phát động - Lập trình C Bài tập - Quản lý hình chữ nhật - struct trong C - Lập trình C Tìm kiếm chuỗi trong chuỗi - Lập trình C Bài tập FILE - Lập trình C Bài tập - ôn tập nhật xuất và biểu tức toán học - Lập trình C Bài tập - Giải phương trình bậc 1 - giải phương trình bậc nhất - Lập trình C Ôn tập function - viết chương trình máy tính - Lập trình C Bài tập tổng quát - quản lý mảng số nguyên - Lập trình C Bài tập nâng cao pointer - Lập trình C

Examination & Test

[Test] Kiểm tra 60 phút - if, else, switch, loop trong C - Lập trình C [Test] Kiểm tra 60 phút - Lập trình C

Tài Liệu Học

C - Basic Syntax(Cú pháp cơ bản)




[Share Code] Quản lý rạp chiếu phim quốc gia - Assignment - Lập trình C - Lớp C2010G

by GokiSoft.com - 09:40 25/12/2020 1,994 Lượt Xem


Quản lý rạp chiếu phim quốc gia - Assignment - Lập trình C

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct Cinema_ST {
	char name[25], address[35];
	int seats;
} Cinema;

void showMenu();
void input(Cinema *p);
void sort(Cinema *p);
void display(Cinema *p);
void drawLine();
void search(Cinema *p);
void saveFile(Cinema *p);
void readFile(Cinema *p);

int main(int argc, char *argv[]) {
	//Khai bao mang struct
	Cinema cinemaList[4];
	int choose;
	
	//Kien thuc moi
	//Tim hieu cau truc
	/**Cinema cinema;
	Cinema *p = &cinema;
	
	printf("\nTen rap chieu phim: ");
	fflush(stdin); fflush(stdout);
	gets(cinema.name);
	
	printf("\nTen: %s", cinema.name);
	printf("\nTen: %s", p->name);
	
	p = cinemaList;
	printf("\nTen rap chieu phim 1: ");
	fflush(stdin); fflush(stdout);
	gets(cinemaList[0].name);
	printf("\nDia chi: ");
	fflush(stdin); fflush(stdout);
	gets(p[0].address);
	printf("\nSo ghe: ");
	fflush(stdin); fflush(stdout);
	scanf("%d", &p->seats);
	
	printf("\nTen rap chieu phim 2: ");
	fflush(stdin); fflush(stdout);
	gets((p+1)->name);
	printf("\nDia chi: ");
	fflush(stdin); fflush(stdout);
	gets((cinemaList + 1)->address);
	
	printf("\nTen: %s, %s, %d", cinemaList[0].name, cinemaList[0].address, cinemaList[0].seats);
	printf("\nTen: %s, %s, %d", p[0].name, p[0].address, p[0].seats);
	printf("\nTen: %s, %s, %d", p->name, p->address, p->seats);
	
	Cinema *q;
	q = (Cinema *) malloc (5 * sizeof(Cinema));//Luu y => cap phat bo nho.
	
	//Luu du lieu
	*/
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				input(cinemaList);
				break;
			case 2:
				sort(cinemaList);
				display(cinemaList);
				break;
			case 3:
				search(cinemaList);
				break;
			case 4:
				saveFile(cinemaList);
				break;
			case 5:
				readFile(cinemaList);
				break;
			case 6:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 6);
	
	return 0;
}

void showMenu() {
	printf("\n1. Nhap du lieu");
	printf("\n2. Hien thi");
	printf("\n3. Tim theo so ghe nho nhat");
	printf("\n4. Luu");
	printf("\n5. Doc du lieu");
	printf("\n6. Thoat");
	printf("\nChon: ");
}

void input(Cinema *p) {
	int i;
	for(i=0;i<4;i++) {
		printf("\nNhap ten rap chieu phim thu %d: ", i+1);
		fflush(stdin);fflush(stdout);
		gets(p[i].name);
		
		printf("\nNhap dia chi rap: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].address);
		
		printf("\nNhap so ghe: ");
		fflush(stdin);fflush(stdout);
		scanf("%d", &p[i].seats);
	}
}

void sort(Cinema *p) {
	int i, j, cmp;
	
	for(i=0;i<3;i++) {
		for(j=i+1;j<4;j++) {
			cmp = strcmp(p[i].name, p[j].name);
			if(cmp > 0) {
				//swap
				Cinema tmp = p[i];
				p[i] = p[j];
				p[j] = tmp;
			}
		}
	}
}

void display(Cinema *p) {
	int i;
	drawLine();
	printf("\n|%-20s|%-20s|%-10s|", "Name", "Address", "Seats");
	drawLine();
	for(i=0;i<4;i++) {
		printf("\n|%-20s|%-20s|%-10d|", p[i].name, p[i].address, p[i].seats);
		drawLine();
	}
}

void drawLine() {
	int i;
	printf("\n");
	for(i=0;i<54;i++) {
		printf("-");
	}
}

void search(Cinema *p) {
	printf("\nNhap so ghe toi thieu can tim: ");
	int seats, count = 0, i;
	scanf("%d", &seats);
	
	for(i=0;i<4;i++) {
		if(p[i].seats >= seats) {
			//tim thay 1 rap chieu phim phu hop
			if(count == 0) {
				drawLine();
				printf("\n|%-20s|%-20s|%-10s|", "Name", "Address", "Seats");
				drawLine();
			}
			count++;
			printf("\n|%-20s|%-20s|%-10d|", p[i].name, p[i].address, p[i].seats);
			drawLine();
		}
	}
	
	if(count == 0) {
		printf("\nKhong co rap nao phu hop");
	}
}

void saveFile(Cinema *p) {
	//Luu duoi dang file -> binary
	//B1. Mo ket noi toi File
	FILE *fp = fopen("cinema.dat", "wb");
	
	//B2. Luu du lieu
	fwrite(p, sizeof(Cinema), 4, fp);
	
	//B3. Dong ket noi
	fclose(fp);
	
	//Luu duoi dang file -> text
	//B1. Mo ket noi toi File
//	FILE *fp = fopen("cinema.txt", "a");
	/**FILE *fp = fopen("cinema.txt", "w");
	
	//B2. Luu du lieu
	int i = 0;
	fputs("Nam,Address,Seats", fp);
	for(i=0;i<4;i++) {
		fprintf(fp, "\n%s,%s,%d", p[i].name, p[i].address, p[i].seats);
	}
	fputs("\n", fp);
	//B3. Dong ket noi
	fclose(fp);*/
}


void readFile(Cinema *p) {
	//Luu duoi dang file -> binary
	//B1. Mo ket noi toi File
	FILE *fp = fopen("cinema.dat", "rb");
	
	//B2. Luu du lieu
	fread(p, sizeof(Cinema), 4, fp);
	
	//B3. Dong ket noi
	fclose(fp);
	
	/**FILE *fp = fopen("cinema.txt", "r");
	
	//B2. Luu du lieu
	char str[100];
	fgets(str, 100, fp);
	puts(str);
	printf("\nLength: %d", strlen(str));
	
	//B3. Dong ket noi
	fclose(fp);*/
}




Theo dõi cập nhật nội dung học trên Youtube & Facebook


Bình luận



Chia sẻ từ lớp học

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

Danh Sách Bài Học

Đã sao chép!!!