By GokiSoft.com| 09:40 25/12/2020|
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


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);*/
}




Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)