Bài 37, Bài tập sử dụng Struct quản lý thuê bao điện thoại C/C++

Bài 37, Để quản lý thuê bao điện thoại, với mỗi thuê bao người ta cần lưu số thuê bao, họ tên khách hàng, cước phí phải trả, ngày lập. Hãy...

Bài 37, Để quản lý thuê bao điện thoại, với mỗi thuê bao người ta cần lưu số thuê bao, họ tên khách hàng, cước phí phải trả, ngày lập. Hãy viết chương trình con thực hiện các yêu cầu sau:

  • Nhập danh sách thuê bao điện thoại cho đến khi thuê bao là "0" và lưu vào mảng
  • Hiện danh sách đã nhập dưới dạng bảng
  • Sắp xếp danh sách giảm dần của tiền cước phí và hiện danh sách ra màn hình
  • Cho biết thuê bao nào có cước phí cao nhất
  • Thực hiện thêm mới một số thuê bao vào danh sách với vị trí thêm vào cuối danh sách, hiện danh sách sau khi thêm
  • Thực hiện xóa các thuê bao có số tiền cước dưới 10.000 và hiện danh sách sau khi xóa

Bài viết nằm trong: Series thực hành cơ sở lập trình

Code: 

[#include <iostream>
#include <iomanip>
#include <string.h>
//ndanh1.blogspot.com
using namespace std;

struct TB {
    int cuocPhi, soThueBao;
    char tenKH[30], ngayLap[20];
};
void nhapDS(int &n, TB ds[]);
void xuatDS(int n, TB ds[]);
void sapXepDS(int n, TB ds[]);
void thueBao(int n, TB ds[]);
void themThueBao(int &n, TB ds[]);
void xoaThueBao(int &n, TB ds[]);
int main()
{
    int n, dem;
    TB ds[100];

    cout<<"*********************************************\n";
    cout<<"**    CHUONG TRINH QUAN LY THUE BAO          **\n";
    cout<<"**      1. Nhap du lieu                      **\n";
    cout<<"**      2. In danh sach thue bao             **\n";
    cout<<"**      3. Thue bao cuoc phi cao nhat        **\n";
    cout<<"**      4. Sap xep thu tu theo cuoc phi      **\n";
    cout<<"**      5. Xoa cac thue bao phi duoi 10.000  **\n";
    cout<<"**      6. Them moi thue bao vao danh sach   **\n";
    cout<<"**      0. Thoat khoi chuong trinh           **\n";
    cout<<"**       Nhap lua chon cua ban          **\n";

    while(true) {
        cin>>dem;
        switch (dem) {
        case 1:
            cout<<"\nBan da chon nhap thong tin thue bao! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            nhapDS(n, ds);
            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 2:
            cout<<"Ban da chon xuat danh sach thue bao! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            xuatDS(n, ds);

            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 3:
            cout<<"\nBan da chon sap xep danh sach theo cuoc phi! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            sapXepDS (n, ds);
            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 4:
            cout<<"\nBan da chon tim thue bao cuoc phi cao nhat! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            thueBao(n, ds);
            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 5:
            cout<<"\nBan da chon them moi thue bao! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            themThueBao(n, ds);
            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 6:
            cout<<"\nBan da chon xoa thue bao cuoc duoi 10000! \n";
            cout<<setw(50)<<setfill('-')<<endl;
            xoaThueBao(n, ds);
            cout<<"\nNhap vao cac tuy chon khac!\n";
            break;
        case 0:
            cout<<"ban da chon thoat chuong trinh";
            exit(1);

            return 0;
        default:
            cout<<"Ban nhap so khong co trong danh sach!\n ";

            break;
        }
    }
}

//nhap vao danh sach thue bao

void nhapDS(int &n, TB ds[])
{
    int i =0;
    int stb, sdt;
    do {

        cout<<"\nNhap thong tin thue bao "<<i+1;
        cout<<"\nSo dien thoai thue bao: ";
        cin>>sdt;



        if(sdt == 0) {
            break;
        }
        else {
            ds[i].soThueBao = sdt;
            cout<<"Ho va ten thue bao: ";
            fflush(stdin);
            cin.getline(ds[i].tenKH, 30);
            cout<<"Cuoc Phi thue bao: ";
            cin>>ds[i].cuocPhi;
            cout<<"Ngay lap thue bao: ";
            fflush(stdin);
            cin>>ds[i].ngayLap;
            i++;

        }

    }
    while(stb != 0);
    n = i;
}

// in ra thong tin cua danh sach cac thue bao
void xuatDS(int n, TB ds[])
{
    cout<<setw(70)<<setfill('*');
    cout<<setw(20)<<setfill(' ')<<"STT";
    cout<<setw(20)<<setfill(' ')<<"So thue bao";
    cout<<setw(20)<<setfill(' ')<<"Ho Ten";
    cout<<setw(20)<<setfill(' ')<<"Cuoc Phi";
    cout<<setw(20)<<setfill(' ')<<"Ngay lap\n";
    for(int i = 0; i<n; i++ ) {
        cout<<setw(20)<<setfill(' ')<<i+1;
        cout<<setw(20)<<setfill(' ')<<ds[i].soThueBao;
        cout<<setw(20)<<setfill(' ')<<ds[i].tenKH;
        cout<<setw(20)<<setfill(' ')<<ds[i].cuocPhi;
        cout<<setw(20)<<setfill(' ')<<ds[i].ngayLap<<endl;
    }

}

// Sap xep thue bao theo thu tu giam dan cua tien phi cuoc
void sapXepDS ( int n, TB ds[])
{
    TB tg;
    for(int i = 0; i <n; i++) {
        for (int j =i+1; j< n; j++) {
            if(ds[i].cuocPhi < ds[j].cuocPhi ) {
                tg = ds[i];
                ds[i] = ds[j];
                ds[j] = tg;

            }
        }
    }
    cout<<"\nDanh sach sau khi sap xep giam dan cuoc phi "<<endl;
    xuatDS(n, ds);
}

void thueBao(int n, TB ds[])
{
    int MAX;
    MAX =0;
    for(int i = 0; i <n; i++) {
        if(MAX < ds[i].cuocPhi ) {
            MAX = ds[i].cuocPhi;
        }
    }
    cout<<"\nCuoc phi cao nhat la: "<<MAX<<endl;

}
void themThueBao (int &n, TB ds[])
{
    cout<<"Nhap vao thong tin thue bao muon them vao danh sach: "<<endl;



    cout<<"Ho va ten thue bao: ";
    fflush(stdin);
    cin.getline(ds[n].tenKH, 30);
    cout<<"So dien thoai thue bao: ";
    cin>>ds[n].soThueBao;
    cout<<"Cuoc Phi thue bao: ";
    cin>>ds[n].cuocPhi;
    cout<<"Ngay lap thue bao: ";
    cin>>ds[n].ngayLap;
    n++;

    xuatDS(n, ds);
}
void xoaThueBao(int &n, TB ds[])
{
    int dem =n;
    for (int i =0; i<n; i++) {

            if(ds[i].cuocPhi <10000) {
                ds[i] = ds[i+1];
                for(int j=i; j<n; j++) {
                    ds[j] = ds[j+1];
                }
                 i--;
                 n--;
            }
    }

    cout<<"\ndanh sach sau khi xoa  la: "<<endl;

    xuatDS(n, ds);
}]

COMMENTS

BLOGGER
Tên

bài viết hay,4,Bài viết khác,1,cấu trúc dữ liệu và giải thuật,3,fithou,36,ghim,4,giải tích 2,1,Hướng dẫn,5,Lập trình C,1,lập trình hướng đối tượng,3,Lập trình java,1,phần mềm,2,phần mềm lập trình,2,sách,1,tác phẩm đồ họa,3,tản mạn,4,Thiết kế web,3,thực hành lập trình cơ sở,18,thực hành lập trình hướng đối tượng,16,
ltr
item
Blog NDanh: Bài 37, Bài tập sử dụng Struct quản lý thuê bao điện thoại C/C++
Bài 37, Bài tập sử dụng Struct quản lý thuê bao điện thoại C/C++
https://1.bp.blogspot.com/-utPAh1glMnk/XjfTyCijX5I/AAAAAAAAcgQ/IBXaXQSllJMIECm3epQwc0y_WDMH2K-1ACLcBGAsYHQ/s400/37.png
https://1.bp.blogspot.com/-utPAh1glMnk/XjfTyCijX5I/AAAAAAAAcgQ/IBXaXQSllJMIECm3epQwc0y_WDMH2K-1ACLcBGAsYHQ/s72-c/37.png
Blog NDanh
https://blog.ndanh.com/2020/02/bai-37-bai-tap-su-dung-struct-quan-ly.html
https://blog.ndanh.com/
https://blog.ndanh.com/
https://blog.ndanh.com/2020/02/bai-37-bai-tap-su-dung-struct-quan-ly.html
true
1596452775547375681
UTF-8
Tải tất cả bài viết Không tìm thấy bài viết nào XEM TẤT CẢ Đọc thêm Trả lời Hủy trả lời Xóa Bởi Trang chủ PAGES POSTS Xem tất cả Bài viết đề xuất CHỦ ĐỀ LƯU TRỮ SEARCH TẤT CẢ BÀI VIẾT Không tìm thấy nội dung của bạn Quay về trang chủ Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow CHIA SẺ ĐỂ XEM NỘI DUNG Bước 1: Chia sẻ lên facebook chế độ công khai Bước 2: Vào facebook, ấn vào bài đã chia sẻ công khai để hiện nội dung! Click Copy All Code Select All Code Code của bạn đã được copy Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content