Cau1
TalonEzio
c_cpp
2 years ago
3.3 kB
43
Indexable
#include <iostream> #include <string> using namespace std; struct KhachHang { int MaKhachHang; string TenKhachHang; string DiaChi; string SoDienThoai; int TongTienThanhToan; }; struct Node { KhachHang* data; Node* pNext; Node* pPrev; }; struct DoubleList { Node* pHead; Node* pTail; }; void init(DoubleList*& List) { List = new DoubleList(); List->pHead = List->pTail = NULL; } void CreateKhachHang(KhachHang*& KhachHang) { cout << "Ma khach hang: "; cin >> KhachHang->MaKhachHang; cin.ignore(); cout << "Ten khach hang: "; getline(cin, KhachHang->TenKhachHang); cout << "Dia chi: "; getline(cin,KhachHang->DiaChi); cout << "So dien thoai: "; getline(cin, KhachHang->SoDienThoai); cout<<"Tong tien thanh toan : "; cin>>KhachHang->TongTienThanhToan; } Node* CreateNode() { Node* pNode = new Node(); if (pNode == NULL) return NULL; pNode->data = new KhachHang; CreateKhachHang(pNode->data); pNode->pNext = pNode->pPrev = NULL; return pNode; } void InsertLast(DoubleList*& List) { Node* pNode = CreateNode(); if (List->pHead == NULL) { List->pHead = List->pTail = pNode; } else { List->pTail->pNext = pNode; pNode->pPrev = List->pTail; List->pTail = pNode; } } void PrintKhachHang(KhachHang* KhachHang) { cout << "Ma khach hang : " << KhachHang->MaKhachHang << endl; cout << "Ten khach hang : " << KhachHang->TenKhachHang << endl; cout << "Dia chi : " << KhachHang->DiaChi << endl; cout << "So dien thoai :" << KhachHang->SoDienThoai << endl; cout << "Tong tien thanh toan :" << KhachHang->TongTienThanhToan << endl; } void PrintList(DoubleList* List) { if (List->pHead == NULL)return; Node* pNode = List->pHead; cout << "Danh sach khach hang:\n"; while (pNode) { PrintKhachHang(pNode->data); pNode = pNode->pNext; } } void Cau3(DoubleList* List) { if (List->pHead == NULL)return; Node* pNode = List->pHead; while (pNode) { if(pNode->data->DiaChi == "Ha Noi") { PrintKhachHang(pNode->data); } pNode = pNode->pNext; } } void Cau4(DoubleList* List) { if (List->pHead == NULL)return; for(Node* pTemp1 = List->pHead;pTemp1->pNext;pTemp1 = pTemp1->pNext) { for(Node* pTemp2= pTemp1->pNext;pTemp2;pTemp2 = pTemp2->pNext) { if(pTemp1->data->TongTienThanhToan < pTemp2->data->TongTienThanhToan) { KhachHang *Temp = pTemp1->data; pTemp1->data = pTemp2->data; pTemp2->data = Temp; } } } cout<<"Danh sach sau khi sap xep tong tien thanh toan giam dan:\n"; PrintList(List); } int main() { DoubleList* List; init(List); int n; cout << "So luong khach hang : "; cin >> n; for (int i = 1; i <= n; ++i) { cout << "khach hang thu " << i <<":" << endl; InsertLast(List); } //cau 2 PrintList(List); //cau 3 Cau3(List); //Cau 4 Cau4(List); return 0; }
Editor is loading...