Thứ Ba, 20 tháng 8, 2019

Xây dựng chương trình quản lý sách bằng ngôn ngữ lập trình C

Xây dựng chương trình quản lý sách với yêu cầu tạo danh mục sách, tên sách, tác giả, nhà xuất bản . . . bằng ngôn ngữ C trong học phần kỹ thuật lập trình cơ bản của học viện kỹ thuật mật mã.


Xây dựng chương trình C quản lý sách như sau:
Cấu trúc Sach các trường:
MaSach: kiểu số nguyên
TenSach: kiểu mảng ký tự. Tối đa 100 ký tự
TacGia: kiểu mảng ký tư. Tối đa 100 ký tự
MaNXB: lưu mã số nhà xuất bản. kiểu int
 Các hàm sau:
Hàm main() thực hiện công việc sau:
Hiển thị menu nhu sau:
1. Chon 1 de Tao danh muc sach
2. Chon 2 de Hien thi cac sach trong cung nha xuat ban
3. Chon 3 de Ket thuc
Chon:
- Khi người dùng chọn 1 thì gọi hàm TaoDanhMucSach() cho phép người dùng nhập vào một số lượng đầu sách và nhập thông tin chi tiết cho từng đầu sách cụ thể. Hai đầu sách khác nhau phải có mã sách khác nhau
- Khi người dùng chọn 2 thì gọi hàm HienThiSachTrongNXB() cho phép người dùng nhập vào mã số nhà xuất bản (phải là một số nguyên dương). Hiển thị tất cả các đầu sách của cùng nhà xuất bản này. Đồng thời hiển thị số lượng đầu sách của nhà xuất bản.
- Chọn 3 để kết thúc chương trình.
Yêu cầu:
- Viết chương trình thực hiện các chức năng trên
- Cải tiến chương trình để tối ưu hiệu năng

Bài giải [Code]

#include<stdio.h>
#include<conio.h>
#include<windows.h>
typedef struct {
    int MaSach;
    char TenSach[100];
    char TacGia[100];
    int MaNXB;
} Sach;
void nhap(int *n,Sach s[100])
{
    printf("\nNhap so luong sach: ");
    scanf("%d",n);
    for(int i=0;i<*n;i++)
    {
        printf("\nNhap thong tin sach so %d",i+1);
        printf("\nMa sach: ");
        scanf("%d",&s[i].MaSach);
        printf("\nTen Sach: ");
        fflush(stdin);
        gets(s[i].TenSach);
        printf("\nTac Gia: ");
        fflush(stdin);
        gets(s[i].TacGia);
        printf("\nMa Nha Xuat Ban: ");
        scanf("%d",&s[i].MaNXB);
    }
}
void HienthisachtrongNXB(int n,Sach s[100])
{
    int i;
    int nxb;

    printf("\nNhap ma nha xuat ban: ");
    scanf("%d",&nxb);
    printf("\nMa Sach/Ten Sach/Tac Gia/Ma NXB");
    for(i=0;i<n;i++)
    {
        if(s[i].MaNXB == nxb)
            printf("\n%d\t%s\t%s\t%d",s[i].MaSach,s[i].TenSach,s[i].TacGia,s[i].MaNXB);
    }
}
main()
{
    int c,n;
    Sach s[100];
    while(c!=3)
    {
        printf("\nChon 1: Tao danh muc sach");
        printf("\nChon 2: Hien thi cac sach trong cung nha xuat ban");
        printf("\nChon 3: Ket thuc");
        printf("\nMoi ban chon: ");
        scanf("%d",&c);
        switch(c)
        {
            case 1:
                nhap(&n,s);
                break;
            case 2:
                HienthisachtrongNXB(n,s);
                break;
            default:
                printf("Khong hop le");
                system("pause");
                system("cls");
        }
    }  
}

------------------------------------
1. Bài giải trên được sưu tầm từ các bạn sinh viên khóa trước đã học tập tại học viện chia sẻ.
2. Để code chạy được bạn nên sử dụng phần mềm CodeBlock
Nếu máy tính bạn nào chưa được cài đặt thì có thể tải bản chạy luôn Tại Đây

SHARE THIS

Author:

Etiam at libero iaculis, mollis justo non, blandit augue. Vestibulum sit amet sodales est, a lacinia ex. Suspendisse vel enim sagittis, volutpat sem eget, condimentum sem.

0 nhận xét: