Friday, May 13, 2016

Nhập một danh sách thời gian rồi sắp xếp danh sách thời gian đã nhập theo chiều tăng dần

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT
--------------------------------------------------------------------------------------------------------------------------
//thoigian.cpp
#include<iostream>

using namespace std;

//Khai bao lop
class thoigian
{
private:
int gio;
int phut;
int giay;
public:
void nhap();
void hien();
int operator>(thoigian &t);
};
//Chuong trinh chinh
int main()
{
  thoigian t[10];
int i,j;
int n;

cout<<"Nhap so luong thoi gian.";
cin>>n;
for(i=0;i<n;i++)
t[i].nhap();
       
        //Sắp xếp
for(i=0;i<n;i++)
for(j=n-1;j>i;j--)
if(t[j-1]>t[j])
{
thoigian temp=t[j];
t[j]=t[j-1];
t[j-1]=temp;
}

cout<<"Danh sach thoi gian da nhap:";
for(i=0;i<n;i++)
t[i].hien();

return 0;
}
//Dinh nghia ham
void thoigian::nhap()
{
cout<<"Nhap gio:";
cin>>gio;
cout<<"Nhap phut:";
cin>>phut;
  cout<<"Nhap giay:";
cin>>giay;
}
//-------------
void thoigian::hien()
{
cout<<gio<<":"<<phut<<":"<<giay<<endl;
}
//----------
int thoigian::operator>(thoigian &t)
{
if(gio>t.gio)
return 1;
else if(gio==t.gio&&phut>t.phut)
return 1;
else if(gio==t.gio&&phut==t.phut&&giay>t.giay)
return 1;
return 0;
}

Chương trình về Phân Số với C++ (Chồng toán tử )

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT

--------------------------------------------------------------------------------------------------------------------------
phanso.cpp
#include<iostream>

using namespace std;

class phanso
{
private:
int mau;
int tu;
public:
phanso();
phanso(float x,float y);
friend istream& operator>>(istream &cin,phanso &ps);
friend ostream& operator<<(ostream &cout,phanso &ps);
phanso operator+(phanso &ps2);
int operator>(phanso &ps2);
};
//===Chuong trinh chinh===
int main()
{
phanso ps[50],tong;
int i,n,j;
cout<<"Nhap so luong phan so:";
cin>>n;

for(i=0;i<n;i++)
{
cout<<"Nhap phan so thu "<<i+1<<":"<<endl;
cin>>ps[i];
}

cout<<"\nCac phan so da nhap la:"<<endl;
for(i=0;i<n;i++)
cout<<ps[i]<<"\t";
//sap xep
for(i=0;i<n;i++)
for(j=n-1;j>i;j--)
if(ps[j-1]>ps[j])
{
phanso temp=ps[j];
ps[j]=ps[j-1];
ps[j-1]=temp;
}
cout<<"\nCac phan so da nhap sau khi sap xep la:"<<endl;
for(i=0;i<n;i++)
cout<<ps[i]<<"\t";

tong=ps[0];
for(i=1;i<n;i++)
tong=tong+ps[i];
cout<<"\nTong cua cac phan so la:";
cout<<tong;
return 0;
}
//===Dinh nghia ham===
//---hàm tạo----
phanso::phanso():tu(0),mau(0)
{

}
//----------
phanso::phanso(float x,float y):tu(x),mau(y)
{

}
//------hàm nhập phân số--------
istream& operator>>(istream &cin,phanso &ps)
{
do
{
cout<<"Nhap tu so:";
cin>>ps.tu;
cout<<"Nhap mau so:";
cin>>ps.mau;
if(ps.mau==0)
cout<<"Mau phai khac 0,nhap lai:"<<endl;
}while(ps.mau==0);
return cin;
}
//-----hàm hiện phân số--------
ostream& operator<<(ostream &cout,phanso &ps)
{
int uc;
int a=ps.tu;
int b=ps.mau;

while(a!=0&&b!=0)
if(a>b)
a=a-b;
else
b=b-a;
if(a==0)
uc=b;
else
uc=a;
cout<<ps.tu/uc<<"/"<<ps.mau/uc<<endl;

return cout;
}
//-----hàm cộng hai phân số
phanso phanso::operator+(phanso &ps2)
{
phanso tong;
tong.tu=tu*ps2.mau+ps2.tu*mau;
tong.mau=mau*ps2.mau;
return tong;
}
//----hàm so sánh hai phân số----
int phanso::operator>(phanso &ps2)
{
return (tu*ps2.mau>ps2.tu*mau);
}
//----------

Chương trình cài đặt ngăn xếp bằng danh sách liên kết đơn cho phép chèn , xóa một số phần tử bằng C++

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT

DSLK.cpp
#include<iostream>

using namespace std;

//Khai bao lop
class dslkd
{
private:
struct node{
int info;
node *next;
}*F;
public:
dslkd();
~dslkd();
void chencuoi(int x);
void xoanode(int x);
void hien();

};

//==Chuong trinh chinh====
int main()
{

dslkd ds;
int x;
char kt;
do
{
cout<<"Nhap phan tu muon them vao danh sach:";
cin>>x;
ds.chencuoi(x);
cout<<"\nCo muon nhap them nua khong (C-K):";
cin>>kt;
}
while(kt=='c'||kt=='C');
cout<<"\nDanh sach da nhap la:";
ds.hien();
cout<<"\nNhap phan tu muon xoa:";
cin>>x;
ds.xoanode(x);
cout<<"Danh sach sau khi xoa la:";
ds.hien();
cout<<endl;
return 0;
return 0;
}
//Dinh nghia ham
dslkd::dslkd():F(NULL)
{

}
//------------
dslkd::~dslkd()
{
node *P;
while(F)
{
P=F;
F=F->next;
delete P;
}
}
//------------
void dslkd::chencuoi(int x)
{
node* N,*P;
N=new node;
N->info=x;
N->next=NULL;

P=F;
if(F==NULL)
F=N;
else
{
while(P->next)
P=P->next;
P->next=N;
}
}
//------------
void dslkd::xoanode(int x)
{
node *P;
node *Q;
P=F;
while(P)
{
if(P->info==x)
break;
Q=P;
P=P->next;
}
if(P)
{
if(P==F)
F=F->next;
else
{
Q->next=P->next;
}
delete P;
}

}
//------------
void dslkd::hien()
{
node*P;
P=F;
while(P)
{
cout<<P->info;
P=P->next;
}
}
//------------