1. Trang chủ
  2. » Luận Văn - Báo Cáo

Code quản lý thuốc

13 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Code Quản Lý Thuốc
Thể loại code
Định dạng
Số trang 13
Dung lượng 19,07 KB
File đính kèm code quản lý thuốc.rar (17 KB)

Nội dung

cấu trúc dữ liệu và giải thuật code quản lý thuốc Xác định bài toán đối tượng được quản lý của bài toán - Lập một chương trình giúp nhân viên nhập liệu thuốc bao gồm tên, giá , hãng, loại, mã để quản lý và bao gồm thông kê được số lượng thuốc theo từng nhà cung cấp - Đối tượng sử dụng: nhân viên cửa hàng thuốc - Đối tượng được quản lý: Thuốc, giá, mã, nhà cung cấp, số lượng, loại

Trang 1

#include<string>

#include<bits/stdc++.h> using namespace std;

struct THUOC{

string maThuoc;

string tenThuoc;

string loaiThuoc;

int giaThuoc;

int Quantity;

string nhaCungCap;

};

struct Node{

THUOC info;

struct Node*next;

};

struct List{

Node *Head;

Node *Tail;

};

void CreateList(List &L){ L.Head = NULL;

L.Tail = NULL;

}

Node *getNode(THUOC a){ Node* thuoc;

thuoc = new Node;

if(thuoc == NULL){

cout<<"L?i c?p phát!!"<<endl;

Trang 2

return 0;

}

thuoc->info = a;

thuoc->next = NULL;

return thuoc;

}

void insertLast(List &L, Node *thuoc){ // ham them cuoi if(L.Head == NULL){

L.Head = thuoc;

L.Tail = L.Head;

}else{

L.Tail->next = thuoc;

L.Tail = thuoc;

}

}

void nhapThuoc(THUOC &a){// ham nhap thuoc

cout<<"Nhap MaThuoc(string): ";

cin>>a.maThuoc;

fflush(stdin);

cout<<"Nhap TenThuoc(string): ";

cin>>a.tenThuoc;

cout<<"Nhap LoaiThuoc(string): ";

cin>>a.loaiThuoc;

cout<<"Nhap GiaThuoc(int): ";

cin>>a.giaThuoc;

Trang 3

cout<<"Nhap SoLuongThuoc(int): ";

cin>>a.Quantity;

fflush(stdin);

cout<<"Nhap TenNhaCungCap(string): ";

cin>>a.nhaCungCap;

cout<<"============================================================="<

<endl;

} void NhapDSThuoc(List &L){// ham nhap danh sach thuoc int n;

Node *pThuoc;

THUOC a;

cout<<"Nhap so luong thuoc: ";cin>>n;

for(int i = 0; i<n;i++){

nhapThuoc(a);

pThuoc = getNode(a);

insertLast(L,pThuoc);

} } void In(){//ham xuat tieu de cout<<setw(10)<<left<<"Ma Thuoc"<<"\t"

<<setw(10)<<left<<"Ten Thuoc"<<"\t"

<<setw(10)<<left<<"Loai Thuoc"<<"\t"

<<setw(10)<<left<<"Gia Thuoc"<<"\t"

<<setw(10)<<left<<"So Luong Thuoc"<<"\t"

<<setw(10)<<left<<"Ten NhaCC"<<"\t"<<endl;

}

Trang 4

void xuatThuoc(THUOC a){// ham xuat 1 loai thuoc ko tieu de cout<<setw(10)<<left<<a.maThuoc<<"\t";

cout<<setw(10)<<left<<a.tenThuoc<<"\t";

cout<<setw(10)<<left<<a.loaiThuoc<<"\t";

cout<<setw(10)<<left<<a.giaThuoc<<"\t";

cout<<setw(10)<<left<<a.Quantity<<"\t";

cout<<setw(10)<<left<<a.nhaCungCap<<endl;

}

void XuatDSThuoc(List &L){//ham xuat danh sach thuoc

In();

if(L.Head!=NULL){

Node* pThuoc = L.Head;

while(pThuoc != NULL){

xuatThuoc(pThuoc->info);

pThuoc= pThuoc->next;

}

}

}

Node* SearchByMaThuoc(List L, string id){ // tim theo MaThuoc Node* pthuoc = L.Head;

while(pthuoc!= NULL){

if(pthuoc->info.maThuoc==id){

return pthuoc;

}

pthuoc = pthuoc->next;

}

Trang 5

return NULL;

}

Node* SearchByTenThuoc(List L, string ten){ // tim theo TenThuoc Node* pthuoc = L.Head;

while(pthuoc!= NULL){

if(pthuoc->info.tenThuoc==ten){

return pthuoc;

}

pthuoc = pthuoc->next;

}

return NULL;

}

Node* SearchByGia(List L, int gia){ // tim theo Gia

Node* pthuoc = L.Head;

while(pthuoc!= NULL){

if(pthuoc->info.giaThuoc==gia){

return pthuoc;

}

pthuoc = pthuoc->next;

}

return NULL;

}

Node* SearchMaxPrice(List L){ // tim Thuoc gia cao nhat

Node* pthuoc = L.Head;

int i = pthuoc->info.giaThuoc;

string ma = pthuoc->info.maThuoc;

pthuoc = pthuoc->next;

while(pthuoc!= NULL){

Trang 6

if(pthuoc->info.giaThuoc > i){

i = pthuoc->info.giaThuoc;

ma = pthuoc->info.maThuoc;

}

pthuoc = pthuoc->next;

}

return SearchByMaThuoc(L,ma);

};

int Length(List L){//tinh tong so thuoc

int count =0;

Node* node = L.Head;

while(node != NULL){

count++;

node = node->next;

}

return count;

}

double AvgPrice(List L){// tinh trung binh gia tien cua kho thuoc Node* pthuoc = L.Head;

int total = 0;

while(pthuoc != NULL){

total = total + pthuoc->info.giaThuoc;

pthuoc=pthuoc->next;

}

double avg = (double)total/Length(L);

return avg;

Trang 7

Node* SearchMinPrice(List L){ // tim Thuoc gia thap nhat Node* pthuoc = L.Head;

int i = pthuoc->info.giaThuoc;

string ma = pthuoc->info.maThuoc;

pthuoc = pthuoc->next;

while(pthuoc!= NULL){

if(pthuoc->info.giaThuoc < i){

i = pthuoc->info.giaThuoc;

ma = pthuoc->info.maThuoc;

}

pthuoc = pthuoc->next;

}

return SearchByMaThuoc(L,ma);

}

void Arrange(List L){//sap xep giam dan theo gia

Node* p;

Node* q;

THUOC a;

cout<<"Sap xep theo Gia thuoc: "<<endl;

p = L.Head;

//q= p->next;

while (p != NULL)

{

q= p->next;

while (q != NULL)

{

if(p->info.giaThuoc<q->info.giaThuoc){

Trang 8

p->info = q->info;

q->info = a;

}

q = q->next;

}

p = p->next;

}

XuatDSThuoc(L);

}

double Statistics(List L, string ncc){//thong ke int count =0;

Node* node = L.Head;

while(node != NULL){

if(node->info.nhaCungCap == ncc){

count++;

}

node = node->next;

}

double percent = ((double)count/Length(L))*100; return percent;

}

int main(){

List L;

Node* p;

CreateList(L);

int s;

Trang 9

cout<<"VUI LONG CHON 1 MUC: "<<endl;

cout<<"1 Nhap DS Thuoc"<<endl;

cout<<"2 Xuat DS Thuoc"<<endl;

cout<<"3 Tim theo Ma"<<endl;

cout<<"4 Tim theo Ten"<<endl;

cout<<"5 Tim theo Gia"<<endl;

cout<<"6 Tim thuoc co gia cao nhat"<<endl;

cout<<"7 Tim thuoc co gia thap nhat"<<endl;

cout<<"8 Tinh gia tien trung binh cua kho thuoc"<<endl; cout<<"9 Sap xep giam dan theo Gia thuoc"<<endl; cout<<"10 Thong ke % theo nha cung cap"<<endl; cout<<"0 Thoat"<<endl;

cin>>s;

switch(s){

case 1://nhap ds

NhapDSThuoc(L);

break;

case 2://xuat ds

XuatDSThuoc(L);

break;

case 3://tim theo ma

{

string str;

cout<<"Nhap ma thuoc can tim: ";

cin>>str;

Trang 10

p = SearchByMaThuoc(L,str);

if(p!=NULL){

In();

xuatThuoc(p->info);

}else{

cout<<"Khong tim thay du lieu!!"<<endl; }

break;

}

case 4://tim theo ten

{

string str1;

cout<<"Nhap ten thuoc can tim: "; cin>>str1;

fflush(stdin);

p = SearchByTenThuoc(L,str1);

if(p!=NULL){

In();

xuatThuoc(p->info);

}else{

cout<<"Khong tim thay du lieu!!"<<endl; }

break;

}

case 5: //tim theo gia

{

Trang 11

int timgia;

cout<<"Nhap gia thuoc can tim: ";

cin>>timgia;

p = SearchByGia(L,timgia);

if(p!=NULL){

In();

xuatThuoc(p->info);

}else{

cout<<"Khong tim thay du lieu!!"<<endl; }

break;

}

case 6://tim thuoc co gia cao nhat

{

p = SearchMaxPrice(L);

if(p!=NULL){

cout<<"Thuoc co gia tri cao nhat: "<<endl; In();

xuatThuoc(p->info);

}else{

cout<<"Khong tim thay!!"<<endl;

}

break;

}

case 7://tim thuoc co gia thap nhat {

Trang 12

p = SearchMinPrice(L);

if(p!=NULL){

cout<<"Thuoc co gia tri cao nhat: "<<endl;

In();

xuatThuoc(p->info);

}else{

cout<<"Khong tim thay!!"<<endl;

}

break;

}

case 8://tinh gia tien trung binh cua kho thuoc

{

cout<<"Gia tri trung binh cua kho thuoc: "<<AvgPrice(L)<<endl; break;

}

case 9://sap xep giam dan theo gia thuoc

{

Arrange(L);

break;

}

case 10://thong ke % theo nha cung cap

{

string str;

cout<<"Nhap ten nha cung cap: ";

cin>>str;

cout<<"Nha cung cap "<<str<<"co "<<Statistics(L,str)<<endl; break;

}

Trang 13

}while(s!=0);

system("pause"); return 0;

}

Ngày đăng: 03/05/2024, 15:18

TỪ KHÓA LIÊN QUAN

w