Bài 6.6: Làm lại tất cả các bài tập từ 2-5 theo cách không sử dụng tệp để lưu dữ liệu, thay vào đó hãy sử dụng mảng cấu trúc.


//Câu 6.2.6:
#include <stdio.h>
#include <stdio_ext.h>

int main(void)
{
struct
{
char hoTen[30], *loai;
float diemToan, diemLy, diemHoa, tongDiem;
}sv[50];

int i, n;

printf("Nhap so luong sinh vien n = ");
scanf("%d", &n);

printf("Nhap vao danh sach sinh vien:");
for(i=0;i<n;i++)
{
printf("\nap sinh vien thu %d:\n", i+1);
printf("\tHo ten: ");__fpurge(stdin); gets(sv[i].hoTen);
printf("\tDiem toan: ");scanf("%f", &sv[i].diemToan);
printf("\tDiem ly: ");scanf("%f", &sv[i].diemLy);
printf("\tDiem hoa: ");scanf("%f", &sv[i].diemHoa);

//Tinh tong, loai
sv[i].tongDiem = sv[i].diemToan + sv[i].diemLy + sv[i].diemHoa;
if(sv[i].tongDiem>19)
sv[i].loai ="DO";
else
sv[i].loai = "TRUOT";
}

//Hien ket qua ra man hinh
printf("------------------------BANG DIEM CUA SINH VIEN----------------------\n\n");
printf("Ho ten Diem toan Diem ly Diem hoa Tong diem Loai\n");
for(i=0;i<n;i++)
printf("%-30s %-10.2f %-8.2f %-9.2f %-10.2f %-6s\n",sv[i].hoTen,sv[i].diemToan,sv[i].diemLy,sv[i].diemHoa,sv[i].tongDiem,sv[i].loai);

return 0;
}
//===dinh nghia ham===
//Câu 6.3.6:
#include <stdio.h>
#include <stdio_ext.h>

int main(void)
{
struct
{
char hoTen[30];
int ngayCong;
float luongChinh, thuong, tong;
}nv[50];

int n, i;

printf("Nhap so luong nhanh vien: ");
scanf("%d", &n);

printf("Nhap vao danh sach nhan vien:");
for(i=0;i<n;i++)
{
printf("\nNhap nhan vien thu %d:\n", i+1);
printf("\tHo ten: ");__fpurge(stdin); gets(nv[i].hoTen);
printf("\tNgay cong: ");scanf("%d", &nv[i].ngayCong);
printf("\tLuong chinh: ");scanf("%f", &nv[i].luongChinh);

//tinh thuong, tong
if(nv[i].ngayCong>25)
nv[i].thuong = nv[i].luongChinh*2;
else
nv[i].thuong = nv[i].luongChinh;
nv[i].tong = nv[i].luongChinh + nv[i].thuong;
}
printf("\n\n---------------BANG LUONG NHAN VIEN-----------------\n\n");
printf("Ho ten Ngay cong Luong chinh Thuong Tong\n");
for(i=0;i<n;i++)
printf("%-30s %-12d %-14.2f %-9.2f %-.2f\n",nv[i].hoTen,nv[i].ngayCong,nv[i].luongChinh,nv[i].thuong,nv[i].tong);

return 0;
}
//Câu 6.4.6:
#include <stdio.h>
#include <stdio_ext.h>
int main(void)
{
struct
{
char tenMH[30], *loai;
int soLuong;
float donGia, tien;
}dsmh[50];

int n, i;

printf("Nhap so luong mat hang: ");
scanf("%d", &n);

printf("Nhap vao danh sach mat hang:");
for(i=0;i<n;i++)
{
printf("\nNhap mat hang thu %d:\n", i+1);
printf("\tTen mat hang: ");__fpurge(stdin); gets(dsmh[i].tenMH);
printf("\tSo luong: ");scanf("%d", &dsmh[i].soLuong);
printf("\tDon gia: ");scanf("%f", &dsmh[i].donGia);

//tinh tien, loai
dsmh[i].tien = dsmh[i].soLuong*dsmh[i].donGia;

if(dsmh[i].tien>500000)
dsmh[i].loai = "CAO";
else
dsmh[i].loai = "THAP";
}

printf("\n\n---------------BANG THONG KE HANG NHAP-----------------\n\n");
printf("Ten mat hang So luong Don gia Tien Loai\n");
for(i=0;i<n;i++)
printf("%-30s %-9d %-12.2f %-9.2f %-s\n",dsmh[i].tenMH,dsmh[i].soLuong, dsmh[i].donGia, dsmh[i].tien, dsmh[i].loai);

return 0;
}
//Câu 6.5.6:
#include <stdio.h>
#include <stdio_ext.h>
int main(void)
{
struct
{
char tenSach[30], tacGia[30], *loai;
int nam;
float gia;
}dmsach[50];

int n, i;

printf("Nhap so luong sach: ");
scanf("%d", &n);

printf("Nhap vao danh muc sach:");
for(i=0;i<n;i++)
{
printf("\nNhap danh muc sahc thu %d:\n", i+1);
printf("\tTen sach: ");__fpurge(stdin); gets(dmsach[i].tenSach);
printf("\tNam(yyyy): ");scanf("%d", &dmsach[i].nam);
printf("\tTac gia: "); __fpurge(stdin); gets(dmsach[i].tacGia);
printf("\tGia: ");scanf("%f", &dmsach[i].gia);

//tinh loai
if(dmsach[i].gia>50000)
dmsach[i].loai = "CAO";
else if(dmsach[i].gia>=20000)
dmsach[i].loai = "TB";
else
dmsach[i].loai ="THAP";
}

printf("\n\n---------------BANG DANH MUC SACH-----------------\n\n");
printf("Ten sach Nam Tac gia Gia Loai\n");
for(i=0;i<n;i++)
printf("%-30s %-4d %-30s %-9.2f %-s\n",dmsach[i].tenSach,dmsach[i].nam, dmsach[i].tacGia,dmsach[i].gia, dmsach[i].loai);

return 0;
}
Coding: Hải Dớ