Shibeizdabet

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

#include <iostream>

#include <cstring>

#include <iomanip>

using namespace std;

struct mh{

int ma; // cai nay la ma sach

string ten; // cai nay la ten sach

int solg; // cai nay la so luong sach ton kho

float gia; // cai nay la don gia ton kho

float don; // cai nay la don gia ban

};

void nhap(mh ds[]);

void xuat(mh ds[]);

void xoa(mh ds[]);

void sx(mh ds[]);

void menu();

int dem(mh ds[], int);

int main (){

mh ds[1000];

int a = 0, b;

ds[1].ma = 1;

ds[1].ten = "Co so lap trinh";

ds[1].solg = 10 ;

ds[1].gia = 1000;

ds[1].don = 1200;

ds[2].ma = 2;

ds[2].ten = "Ki thuat lap trinh";


ds[2].solg = 10 ;

ds[2].gia = 1200 ;

ds[2].don = 1700 ;

xuat ( ds);

cout << "hay nhap 1 cuon sach moi : \n\n";

cout << "so thu tu : 1\n";

cout << "nhap ma sach : ";

cin >> b;

for (int i = 1; i <= dem (ds, a ); i++){

if (b == 0 || b == ds [i].ma){

if (b == ds[i].ma){

cout << "da co sach ma sach so " << b << ", hay nhap lai\n\n";

cout << "nhap ma sach : ";

if (b ==0 ){

cout << "khong hop le, ma sach phai lon hon 0\n\n";

cout << "nhap ma sach : ";

cin >> b;

i = 0;

for (int i= 0; dem (ds,a)-i >=1 ; i++ ){

ds[dem (ds,a)+1-i].ma = ds[dem (ds,a)-i].ma;

ds[dem (ds,a)+1-i].ten = ds[dem (ds,a)-i].ten;

ds[dem (ds,a)+1-i].solg = ds[dem (ds,a)-i].solg;

ds[dem (ds,a)+1-i].gia = ds[dem (ds,a)-i].gia;

ds[dem (ds,a)+1-i].don = ds[dem (ds,a)-i].don;

}
// while (ds [1].ma ==0 ){

// cout << "khong hop le, ma sach phai lon hon 0\n";

// cout << "nhap ma sach : ";

// cin >> ds[1].ma;

//

// }

ds[1].ma = b;

cin.ignore();

cout << "nhap ten sach : ";

getline (cin, ds[1 ].ten);

cout << "so luong sach ton kho : ";

cin >> ds[1 ].solg;

cout << "don gia ton kho : ";

cin >> ds[1 ].gia;

cout << "don gia ban : ";

cin >> ds[1].don;

int k;

menu ();

cout << "chon chuc nang : ";

cin >> k;

// while ( 1 == 1){

// if( !cin.fail())

// break;

// else {

// cout << "khong hop le, chon chuc nang tu 0 den 4\n";

// cout << "chon chuc nang : ";

// cin.clear();

// cin.ignore();
// cin >> k;

// }

while (k != 0 ){

if ( k== 1) {

nhap (ds);

menu ();

cout << "chon chuc nang : ";

cin >> k;

if ( k== 2) {

xoa ( ds);

menu();

cout << "chon chuc nang : ";

cin >> k;

if (k == 3){

sx (ds);

menu ();

cout << "chon chuc nang : ";

cin >> k ;

if (k == 4){

xuat (ds);

menu ();

cout << "chon chuc nang : ";

cin >> k;

}
}

int dem (mh ds[], int b){

for (int i=1; ds[i].ma !=0 ; i++){

b= b+1;

return b;

void nhap( mh ds[]){

int a=0, k,r;

cout << "nhap vi tri muon them : ";

cin >> k;

// while ( 1 == 1){

// if( !cin.fail())

// break;

// else {

// cout << "khong hop le, vi tri phai la so nguyen\n";

// cout << "nhap vi tri muon them : ";

// cin.clear();

// cin.ignore();

// cin >> k;

// }

// }

if ( k == 0 || k> dem (ds,a) +1 ){

cout << "khong hop le, chi dc them vi tri tu 1 den " << dem (ds, a) +1 << endl ;

}
else {

for (int i= 0; dem (ds,a)-i >=k ; i++ ){

ds[dem (ds,a)+1-i].ma = ds[dem (ds,a)-i].ma;

ds[dem (ds,a)+1-i].ten = ds[dem (ds,a)-i].ten;

ds[dem (ds,a)+1-i].solg = ds[dem (ds,a)-i].solg;

ds[dem (ds,a)+1-i].gia = ds[dem (ds,a)-i].gia;

ds[dem (ds,a)+1-i].don = ds[dem (ds,a)-i].don;

cout << "nhap ma sach : ";

cin >> ds[k].ma;

while (ds [k].ma ==0 ){

cout << "khong hop le, ma sach phai lon hon 0\n";

cout << "nhap ma sach : ";

cin >> ds[k].ma;

cin.ignore(100, '\n');

cout << "nhap ten sach : ";

getline (cin, ds[k].ten);

cout << "so luong sach ton kho : ";

cin >> ds[k].solg;

cout << "don gia ton kho : ";

cin >> ds[k].gia;

cout << "don gia ban : ";

cin >> ds[k].don;

for (int i= 1; i<= k-1; i++){

if ( ds[k].ma == ds[i].ma){
ds [i].gia = ( ds[i].solg * ds[i].gia + ds[k].solg * ds[k].gia )/( ds[i].solg +
ds[k].solg );

ds [i].solg += ds[k].solg;

for (int z = 0; k+z <= dem(ds, a); z++){

ds[k+z].ma = ds[k+1+z].ma;

ds[k+z].ten = ds[k+1+z].ten;

ds[k+z].solg = ds[k+1+z].solg;

ds[k+z].don = ds[k+1+z].don;

ds[k+z].gia = ds[k+1+z].gia;

for (int i= 1; k+i<= dem(ds, a); i++){

if ( ds[k+i].ma == ds[k].ma){

ds [k+i].gia = ( ds[k+i].solg * ds[k+i].gia + ds[k].solg * ds[k].gia


)/( ds[k+i].solg + ds[k].solg );

ds [k+i].solg += ds[k].solg;

for (int z = 0; k+z <= dem(ds, a); z++){

ds[k+z].ma = ds[k+1+z].ma;

ds[k+z].ten = ds[k+1+z].ten;

ds[k+z].solg = ds[k+1+z].solg;

ds[k+z].don = ds[k+1+z].don;

ds[k+z].gia = ds[k+1+z].gia;

}
void xuat (mh ds[]){

int a = 0;

if (dem (ds, a) == 0){

cout << "khong co sach nao ca \n";

for (int i=1; i <= dem(ds, a) ; i++){

cout << "****so thu tu : " << i <<"\n";

cout << " ma mat sach : " << ds[i].ma << "\n";

cout << " ten mat sach : " << ds[i].ten << "\n";

cout << " so luong ton kho : " << ds[i].solg << "\n";

cout << " don gia ton kho : " << ds[i].gia << "\n";

cout << " thanh tien : " << ds[i].gia * ds[i].solg << "\n";

cout << " don gia ban : " << ds[i].don << "\n\n" ;

void xoa (mh ds[]){

int k ;

int a=0 , r = dem (ds,a);

cout << "xoa sach ma so : " ;

cin >> k;

for (int i=1; i<= dem (ds, a)+1; i++){

if(ds[i].ma == k ){

for (int z =0; i+z <= dem (ds, a) ;z++){

ds[i+z].ma = ds[i+1+z].ma;

ds[i+z].ten = ds[i+1+z].ten;

ds[i+z].solg = ds[i+1+z].solg;

ds[i+z].gia = ds[i+1+z].gia;

ds[i+z].don = ds[i+1+z].don;
}

if (dem(ds,a) == r ){

cout << "khong hop le, khong co ma sach so " << k << endl ;

void sx(mh ds[]){

cout << "da sap xep theo don gia ban \n" ;

int a=0;

for (int i=1; i <= dem (ds, a); i++){

for (int j=1; j <= dem (ds, a); j++ ){

if (ds[i].don > ds[j].don){

swap (ds[i].ten , ds[j].ten);

swap (ds[i].don , ds[j].don);

swap (ds[i].solg , ds[j].solg);

swap (ds[i].gia , ds[j].gia);

swap (ds[i].ma , ds[j].ma);

void menu(){

cout << " Menu\n";

cout << " 1.Them mat sach\n";

cout << " 2.Xoa mat sach\n";

cout << " 3.Sap xep mat sach theo don gia ban\n";
cout << " 4.In danh sach\n";

cout << " 0.Thoat ra ngoai\n";

You might also like