Cau1
TalonEzio
c_cpp
3 years ago
3.3 kB
45
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...