Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
3.5 kB
5
Indexable
Never
#include <iostream>
#include <cstring>
#include <algorithm>
#include <time.h>
using namespace std;
struct congViec {
    int maSo;
    char* tenCongViec = new char[20];
    int thoiGian;
    char* nguoiThucHien = new char[30];
    int doUuTien;
};
void Xuat(congViec a) {
    cout << "===================================\n"; 
    cout << a.maSo << endl;
    cout << a.tenCongViec << endl;
    cout << a.thoiGian << endl;
    cout << a.nguoiThucHien << endl;
    cout << a.doUuTien << endl;
}
struct node {
    congViec data;
    node* next;
};
struct Stack {
    node* head;
};
Stack createStack(Stack& a) {
    a.head = NULL;
    return a;
}
Stack push(Stack& a, congViec& x) {
    node* tmp = new node;
    tmp->data = x;
    tmp->next = a.head;
    a.head = tmp;
    return a;
}
Stack pop(Stack& a) {
    if (a.head) return a;
    node* tmp = a.head;
    a.head = a.head->next;
    delete tmp;
    return a;
}
congViec top(Stack& a) {
    return a.head->data;
}
Stack KhoiTaoNgauNhien(Stack& a) {
    srand(time(NULL));
    int n = 1;
    char Ten[20][20]{ "Giang","Ky","Phi","Tan","Van","Vuong","Cong","Hien","Linh","Ngoc",
                    "Huy","Khang","Bao","Minh","Phuc","Anh","Khoa","Phat","Đat","Khoi" };
    char Ho[20][20] = { " NGUYEN"," TRAN"," LE"," PHAM"," HOANG"," VO"," PHAN"," TRUONG"," BUI"," DANG",
                    " DO"," NGO"," HO"," DUONG"," DINH"," DOAN"," LAM"," MAI"," TRINH"," DAO" };
    char Job[10][20] = { "Cau ca","Di boi","Lao cong","Cong nhan","Nhan vien",
                    "Ky su","Giao vien","Dau bep","Bao ve","Boi ban" };
    for (int i = 0; i < n; i++) {
        congViec tmp;
        tmp.maSo = rand();
        strcpy(tmp.tenCongViec,strcat(Job[rand() % 10],"\0"));
        tmp.thoiGian = rand() % 180 + 180;
        strcpy(tmp.nguoiThucHien,strcat(strcat(Ten[rand() % 20], Ho[rand() % 20]),"\0"));
        tmp.doUuTien = rand() % 10 + 1;
        Xuat(tmp);
        a = push(a, tmp);
    }
    return a;
}
// bool sosanh1(congViec a,congViec b){
//     return a.thoiGian>b.thoiGian;
// }
// congViec timCaoNhat(Stack& a){
//     node* p=a.head;
//     congViec tmp[100];
//     int n=0;
//     while(p->next!=NULL){
//         tmp[n]=p->data;
//         p=p->next;
//         n++;
//     }
//     sort(tmp,tmp+n,sosanh1);
//     if(tmp[0].thoiGian==tmp[1].thoiGian){
//         congViec ngoaiLe;
//         ngoaiLe.maSo=0;
//         char tmp1[20]="khong co";
//         ngoaiLe.tenCongViec=tmp1;
//         ngoaiLe.thoiGian=0;
//         char tmp2[20]="dung NGUYEN";
//         ngoaiLe.nguoiThucHien=tmp2;
//         return ngoaiLe;
//     }
//     return tmp[0];
// }
// Stack capNhap300(Stack& a){
//     node* p=a.head;
//     while(p->next!=NULL){
//         if(p->data.thoiGian>300){
//             p->data.thoiGian=300;
//         }
//     }
//     return a;
// }
// Stack sort(Stack& a){
//     for(node* i=a.head;i!=NULL;i=i->next){
//         for(node* j=i->next;j!=NULL;j=j->next){
//             if(i->data.doUuTien<j->data.doUuTien) swap(i->data,j->data);
//         }
//     }
//     return a;
// }
void printStack(Stack a) {
    node* p = a.head;
    while (p != NULL) {
        Xuat(p->data);
        p = p->next;
        cout << "--------------" << endl;
    }
}
int main() {
    Stack a;
    createStack(a);
    KhoiTaoNgauNhien(a);
    printStack(a);
    return 0;
}