IMG-LOGO
Trang Chủ Chủ Đề [Share Code] Chữa bài quản lý tranh - Lập trình C
× 1) [Share Code] Tìm hiểu biến & kiểu dữ liệu trong C - Lập trình C 2) [Share Code] Tìm hiểu về toán tử & biểu thức logic + scanf & printf + if else trong C - Lập trình C 3) [Video] Share Code - Hướng dẫn chữa bài tập nhập xuất thông tin sinh viên - Lập trình C 4) Share Code - Tìm hiểu về If, Switch, Loop trong C - Lập trình C 5) [Share Code] Chia sẻ mảng trong lập trình C - Lập trình C 6) [Share Code] Bài học mảng 2 chiều + function trong C - Lập trình C 7) [Share Code] Tìm hiểu pointer + malloc + calloc + realloc trong C - Lập trình C 8) [Share Code] Tìm hiểu về function + pointer trong C - Lập trình C 9) [Share Code] Tìm hiểu struct trong C - Lập trình C 10) [Share Code] Hướng dẫn optimize function - struct trong C - Quản lý sinh viên - Lập trình C 11. [Share Code] Chữa bài quản lý tranh - Lập trình C 12) [Share Code] Loop & Array trong C - Lap trinh C 13) [Share Code] Tìm hiểu mảng 2 chiều + con trỏ pointer - Lập trình C 14) [Share Code] Chia sẻ code struct trong C - Lập trình C

[Share Code] Chữa bài quản lý tranh - Lập trình C

by TRẦN VĂN ĐIỆP - 15:10 30/09/2020 1,169 Lượt Xem


Quản lý tranh - quản lý gallery - 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 TranhTheu_ST {
	char ten[30], tacgia[30];
	int chieudai, chieurong, giaban;
} TranhTheu;

void showMenu();
void nhapThongTin(TranhTheu *p);
void sapXep(TranhTheu *p);
void hienThi(TranhTheu *p);
void thongKe(TranhTheu *p);
char *layKhoTranh(TranhTheu th);

int main(int argc, char *argv[]) {
	TranhTheu dsTranh[3];
	int choose;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				nhapThongTin(dsTranh);
				break;
			case 2:
				sapXep(dsTranh);
				hienThi(dsTranh);
				thongKe(dsTranh);
				break;
			case 3:
				
				break;
			case 4:
				
				break;
			case 5:
				printf("\nThoat!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 5);
	
	return 0;
}

void showMenu() {
	printf("\n1. Nhap thong tin");
	printf("\n2. Sap xep, thong ke, hien thi");
	printf("\n3. Tim theo gia ban");
	printf("\n4. Save file");
	printf("\n5. Thoat");
	printf("\nChon: ");
}


void nhapThongTin(TranhTheu *p) {
	int i;
	for(i=0;i<3;i++) {
		printf("\nNhap thong tin cho buc tranh thu %d:", i+1);
		printf("\nNhap ten: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].ten);
		
		printf("\nTac gia: ");
		fflush(stdin);fflush(stdout);
		gets(p[i].tacgia);
		
		printf("\nChieu dai: ");
		scanf("%d", &p[i].chieudai);
		
		printf("\nChieu rong: ");
		scanf("%d", &p[i].chieurong);
		
		printf("\nGia ban (USD): ");
		scanf("%d", &p[i].giaban);
	}
}

void sapXep(TranhTheu *p) {
	int i, j, d1, d2;
	
	for(i=0;i<2;i++) {
		d1 = p[i].chieudai * p[i].chieurong;
		
		for(j=i+1;j<3;j++) {
			d2 = p[j].chieudai * p[j].chieurong;
			
			if(d1 < d2) {
				//Hoan doi vi tri.
				TranhTheu tmp = p[i];
				p[i] = p[j];
				p[j] = tmp;
			}
		}
	}
}

void hienThi(TranhTheu *p) {
	int i, limit = 70;
	
	//Header
	printf("\n");
	for(i=0;i<limit;i++) {
		printf("=");
	}
	
	printf("\nDanh sach tranh");
	
	printf("\n");
	for(i=0;i<limit;i++) {
		printf("=");
	}
	
	printf("\n%3s||%10s||%10s||%10s||%10s||%10s||%5s", 
		"STT", "Ten", "Tac Gia", "Chieu Dai", 
		"Chieu Rong", "Gia Ban", "Kho");
	//Hien thi du lieu
	for(i=0;i<3;i++) {
		char *kho = layKhoTranh(p[i]);
		
		printf("\n%3d||%10s||%10s||%10d||%10d||%10d||%5s", 
			i+1, p[i].ten, p[i].tacgia, p[i].chieudai, 
			p[i].chieurong, p[i].giaban, kho);
	}
	
	//Footer
	printf("\n");
	for(i=0;i<limit;i++) {
		printf("=");
	}
}

char *layKhoTranh(TranhTheu th) {
	int dt = th.chieudai * th.chieurong;
	
	if(dt >= 10000) {
		return "Lon";
	} else if(dt >= 2000) {
		return "Trung Binh";
	}
	return "Nho";
}

void thongKe(TranhTheu *p) {
	int i, j;
	int count[3];
	char *k1, *k2;
	
	for(i=0;i<3;i++) {
		count[i] = 1;
	}
	
	for(i=0;i<2;i++) {
		if(count[i] == 0) continue;
		k1 = layKhoTranh(p[i]);
		
		for(j=i+1;j<3;j++) {
			if(count[j] == 0) continue;
			k2 = layKhoTranh(p[j]);
			
			int cmp = strcmp(k1, k2);
			if(cmp == 0) {
				count[i]++;
				count[j]--;
			}
		}
	}
	
	for(i=0;i<3;i++) {
		if(count[i] == 0) continue;
		k1 = layKhoTranh(p[i]);
		
		printf("\nKho %s co %d buc tranh", k1, count[i]);
	}
}




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


Bình luận



Chia sẻ từ lớp học

Danh Sách Bài Học

Quick Quizzz!!!

User ImageUser ImageUser Image
User ImageUser ImageUser Image
User ImageUser ImageUser Image
User ImageUser ImageUser Image
User ImageUser ImageUser Image
User Image
User ImageUser ImageUser Image
>> Hiển Thị Quizzz
Đã sao chép!!!