1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu ÔN TẬP BÀI TẬP THỰC HÀNH LẬP TRÌNH doc

16 724 3
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 đề Tài liệu ôn tập bài tập thực hành lập trình doc
Chuyên ngành Lập trình Windows
Thể loại Tài liệu ôn tập
Định dạng
Số trang 16
Dung lượng 428,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

double thuc; double ao; public: //phuong thuc cap nhat du lieu void SetComplexdouble t,double a; //nguyen mau phuong thuc tra ve phan thuc double GetThuc; //nguyen phuong thuc tra ve pha

Trang 1

ÔN TẬP BÀI TẬP THỰC HÀNH

LẬP TRÌNH WINDOW

******************************************************

Bài 1:

IDC_EDIT_A

IDC_EDIT_B

IDC_STATIC_KETQUA

IDC_BUTTON_TINH chọn BN_CLICKED

IDC_RADIO_CONG

Chọn Group

Radio Button

Group Box chọn Tab stop

void CBai1_1Dlg::OnButtonTinh()

{

UpdateData (true);

float kq;

switch (m_pheptinh)

{

case 0:

kq=m_a + m_b; break;

case 1:

kq=m_a - m_b; break;

case 2:

kq=m_a * m_b; break;

case 3:

kq=m_a / m_b; break;

}

m_ketqua.Format ("%0.0f",kq);

UpdateData (false);

}

Bài 2:

IDC_EDIT_NHAP

IDC_LIST

IDC_BUTTON_PHAI chọn BN_CLICKED IDC_BUTTON_TRAI chọn

BN_CLICKED IDC_BUTTON_NHAP chọn BN_CLICKED

void CBai1_2Dlg::OnButtonNhap() {

UpdateData (true);

m_list1.AddString (m_nhap);

m_nhap.Empty ();

UpdateData(false);

}

******************************************************

void CBai1_2Dlg::OnButtonPhai() //click button chuyen du lieu qua phai {

UpdateData (true);

CString s;

int i;

i=m_list1.GetCurSel ();

m_list1.GetText (i,s);

m_list2.AddString (s);

m_list1.DeleteString(i);

UpdateData (false);

}

******************************************************

void CBai1_2Dlg::OnButtonTrai() //click button chuyen du lieu qua trai {

int j,i,tong;

CString s;

//thuc hien viec chuyen cac gia tri duoc chon qua list1 tong=m_list2.GetCount ();//tinh tong cac dong trong listcontrol

Trang 2

for (j=0;j<tong;j++ )

{

if (m_list2.GetSel(j)==1) {

m_list2.GetText (j,s);

m_list1.AddString (s);

m_list2.DeleteString (j);

} }

//thuc hien xoa cac gia tri bi chuyen trong list2

tong=m_list2.GetCount ();

for (i=0;i<tong;i++ )

{

if (m_list2.GetSel(i)==1) {

m_list2.DeleteString (i);

} }

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Bài 3:

IDC_COMBO1 chọn:

à CBN_SELCHANGE

à CBN_SELENDOK

IDC_STATIC_1 chọn Group

Group Box

Vào ComboBox chuột phải chọn Properties à

Data: nhập dữ liệu vào (chọn Ctrl+Enter để xuống

hàng)

Trong thẻ General à Type:

+ DropDown: cho phép lựa chọn + nhập dữ liệu + DropList: không nhập được dữ liệu

+ Simple: hiển thị giống listbox

void CBai1_4Dlg::OnSelendokCombo1() {

UpdateData (true);

m_ketqua.Empty ();

int i=m_combo.GetCurSel ();

CString s,s1,s2;

m_combo.GetLBText (i,s);

int gt=i+1,tinh;

for(int j=1;j<=10;j++) {

tinh=gt*j;

s1.Format ("%.0d",j);

s2.Format ("%.0d",tinh);

m_ketqua=m_ketqua + s +" x "+ s1 +"= "+ s2 +"\n";

}

UpdateData (false);

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Bài 4:

IDC_EDIT_at IDC_EDIT_bt IDC_EDIT_kqt

IDC_EDIT_a a IDC_EDIT_b a IDC_EDIT_kqa

IDC_RADIO_CONG chọn

Group

IDC_BUTTON_TINH chọn BN_CLICKED

Group Box chọn Tab stop

Bài này chúng ta phải khai báo thêm lớp COMPLEX

Insert à New Class à - ClassType: Generic Class

- Name: COMPLEX

- FileName: COMPLEX.cpp

- Base class(es): + Derived From: CObject

+ As: public

******************************************************

COMPLEX.h

class COMPLEX : public CObject {

protected:

Trang 3

double thuc;

double ao;

public:

//phuong thuc cap nhat du lieu

void SetComplex(double t,double a);

//nguyen mau phuong thuc tra ve phan thuc

double GetThuc();

//nguyen phuong thuc tra ve phan ao

double GetAo();

//nguyen mau phuong thuc cong hai so phuc

COMPLEX cong(COMPLEX z);

//nguyen mau phuong thuc tru hai so phuc

COMPLEX tru(COMPLEX z);

//nguyen mau phuong thuc nhan hai so phuc

COMPLEX nhan(COMPLEX z);

//nguyen mau phuong thuc chia hai so phuc

COMPLEX chia(COMPLEX z);

//nguyen mau ham tao hai tham so

COMPLEX(double t,double a);

//nguyen mau ham tao khong tham so

COMPLEX();

//nguyen mau ham huy

virtual ~COMPLEX();

//nguyen mau ham tao sao chep

COMPLEX(COMPLEX& z);

//nguyen mau phuong thuc toan tu +

COMPLEX operator +(COMPLEX z);

//nguyen mau phuong thuc toan tu -

COMPLEX operator -(COMPLEX z);

//nguyen mau phuong thuc toan tu *

COMPLEX operator *(COMPLEX z);

//nguyen mau phuong thuc toan tu /

COMPLEX operator /(COMPLEX z);

//nguyen mau phuong thuc toan tu =

COMPLEX& operator =(COMPLEX& z);

};

******************************************************

COMPLEX.cpp

//dinh nghia phuong thuc toan tu =

COMPLEX& COMPLEX::operator =(COMPLEX& z)

{

thuc=z.thuc;

ao=z.ao;

return *this;

} //dinh nghia phuong thuc toan tu + COMPLEX COMPLEX::operator +(COMPLEX z) {

COMPLEX t(thuc+z.thuc,ao+z.ao); return t;

} //dinh nghia phuong thuc toan tu - COMPLEX COMPLEX::operator -(COMPLEX z) {

COMPLEX t(thuc-z.thuc,ao-z.ao); return t;

} //dinh nghia phuong thuc toan tu * COMPLEX COMPLEX::operator *(COMPLEX z) {

COMPLEX t(thuc*z.thuc,ao*z.ao); return t;

} //dinh nghia phuong thuc toan tu / COMPLEX COMPLEX::operator /(COMPLEX z) {

COMPLEX t(thuc/z.thuc,ao/z.ao); return t;

} //dinh nghia ham tao sao chep COMPLEX::COMPLEX(COMPLEX& z) {

thuc=z.thuc;

ao=z.ao;

} //dinh nghia ham huy COMPLEX::~COMPLEX() {

} //dinh nghia ham tao khong tham so COMPLEX::COMPLEX()

{

thuc=0;

ao=0;

} //dinh nghia ham tao hai tham so COMPLEX::COMPLEX(double t,double a)

Trang 4

{

thuc=t;

ao=a;

}

//dinh nghia phuong thuc cong hai so phuc

COMPLEX COMPLEX::cong(COMPLEX z)

{

COMPLEX t;

t.thuc=thuc+z.thuc;

t.ao=ao+z.ao;

return t;

}

//dinh nghia phuong thuc tru hai so phuc

COMPLEX COMPLEX::tru(COMPLEX z)

{

COMPLEX t;

t.thuc=thuc-z.thuc;

t.ao=ao-z.ao;

return t;

}

//dinh nghia phuong thuc nhan hai so phuc

COMPLEX COMPLEX::nhan(COMPLEX z)

{

COMPLEX t;

t.thuc=thuc*z.thuc;

t.ao=ao*z.ao;

return t;

}

//dinh nghia phuong thuc chia hai so phuc

COMPLEX COMPLEX::chia(COMPLEX z)

{

COMPLEX t;

t.thuc=thuc/z.thuc;

t.ao=ao/z.ao;

return t;

}

//dinh nghia phuong thuc cap nhat du lieu

void COMPLEX::SetComplex(double t,double a)

{

//this->thuc=t;

//this->ao=a;

thuc=t;

ao=a;

}

//dinh nghia phuong thuc tra ve phan thuc double COMPLEX::GetThuc()

{

return thuc;

} double COMPLEX::GetAo() {

return ao;

}

******************************************************

Viết trong Dialog chính.cpp oid CBai2Dlg::OnButtonTinh() {

COMPLEX a,b,kq;

UpdateData(true);

a.SetComplex(m_a_thuc,m_a_ao);

b.SetComplex(m_b_thuc,m_b_ao);

switch (m_pheptinh) {

case 0:

kq=a+b; break;

case 1:

kq=a-b; break;

case 2:

kq= a*b; break;

case 3:

kq=a/b; break;

} m_ketqua_thuc=kq.GetThuc();

m_ketqua_ao=kq.GetAo();

UpdateData(false);

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cách tạo môt ứng dụng trong Microsoft Visual C++

File à New àXuất hiện cửa sổ New, ta chọn thẻ Projects, sau đó chọn đủ 3 bước sau:

B1: Chọn MFC AppWizard(exe) B2: Xác định thư mục chứa ứng dụng trong mục Location B3: Đặt tên cho ứng dụng trong mục Project Name àXuất hiện cửa sổ MFC AppWizard àChọn Dialog Based

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Trang 5

Bài 5:

Tương tự như bài 4 chúng ta cũng khai báo thêm lớp COMPLEX

Viết trong Dialog chính.cpp

void CBai3Dlg::OnButtonNhap()

{

UpdateData(true);

COMPLEX* p;

p=new COMPLEX(m_thuc,m_ao);

ds.Add(p);

m_list1.AddString(p->Print());

}

void CBai3Dlg::OnButtonCong()

{

COMPLEX* p;

COMPLEX s;

for(int i=0;i<ds.GetSize();i++)

{

p=(COMPLEX*)ds.GetAt(i);

s=s+(*p);

}

m_static_cong=s.Print();

UpdateData(false);

}

IDC_STATIC_CONG

IDC_LIST1

IDC_BUTTON_NHAP chọn BN_CLICKED

IDC_BUTTON_CONG chọn BN_CLICKED List Box chọn

tap stop

Bài 6:

Editbox

Các nút nhớ add BN_CLICKED

Group Box

List Box chọn Tap stop

Khai báo thêm lớp RATIO:

RATIO.h

class RATIO : public CObject {

private:

int tuso;

int mauso;

public:

virtual ~RATIO(); // ham huy // ham tao

RATIO();

RATIO(int a,int b);

RATIO(RATIO& c); // ham tao sao chep

void SetPhanSo(int a, int b); // gan gia tri phan so // tra ve tu so va mau so

int GetTu();

int GetMau();

// nguyen mau cac toan tu ket hop, co ban, so sach

RATIO operator=(RATIO a);

RATIO operator+(RATIO a);

RATIO operator-(RATIO a);

Trang 6

RATIO operator*(RATIO a);

RATIO operator/(RATIO a);

RATIO operator+=(RATIO a);

RATIO operator-=(RATIO a);

RATIO operator*=(RATIO a);

RATIO operator/=(RATIO a);

bool operator==(RATIO a);

bool operator>(RATIO a);

bool operator>=(RATIO a);

// ham rut gon phan so:

RATIO Reduce(RATIO a);

CString Print();

};

*************************************************************

RATIO.cpp

ATIO::RATIO()

{

tuso=mauso=0;

}

RATIO::RATIO(int a,int b)

{

tuso=a;

mauso=b;

}

RATIO::RATIO(RATIO& c)

{

tuso=c.tuso;

mauso=c.mauso;

}

RATIO:: ~RATIO()

{

}

void RATIO::SetPhanSo(int a, int b)

{

tuso=a;

mauso=b;

}

int RATIO::GetTu()

{

return tuso;

}

int RATIO::GetMau()

{

return mauso;

} RATIO RATIO::operator=(RATIO a) {

tuso=a.tuso;

mauso=a.mauso;

return *this;

} RATIO RATIO::operator+(RATIO a) {

tuso=tuso*a.mauso+a.tuso*mauso; mauso=mauso*a.mauso;

return Reduce(*this);

} RATIO RATIO::operator-(RATIO a) {

tuso=tuso*a.mauso-a.tuso*mauso; mauso=mauso*a.mauso;

return Reduce(*this);

} RATIO RATIO::operator*(RATIO a) {

tuso=tuso*a.tuso;

mauso=mauso*a.mauso;

return Reduce(*this);

} RATIO RATIO::operator/(RATIO a) {

tuso=tuso*a.mauso;

mauso=mauso*a.tuso;

return Reduce(*this);

} RATIO RATIO::operator+=(RATIO a) {

*this=a+(*this);

return *this;

} RATIO RATIO::operator-=(RATIO a) {

*this=a-(*this);

return *this;

} RATIO RATIO::operator*=(RATIO a) {

Trang 7

*this=a*(*this);

return *this;

}

RATIO RATIO::operator/=(RATIO a)

{

*this=a/(*this);

return *this;

}

bool RATIO::operator==(RATIO a)

{

RATIO b;

b= Reduce(*this);

a=Reduce(a);

if((a.tuso=b.tuso)&&(a.mauso=b.mauso))

return true;

return false;

}

bool RATIO::operator>(RATIO a)

{

if((((double)tuso/(double)mauso)-((double)a.tuso/(double)a.mauso))>0)

return true;

return false;

}

bool RATIO::operator>=(RATIO a)

{

if(((double)tuso/(double)mauso)>=((double)tuso/(double)mauso))

return true;

return false;

}

RATIO RATIO::Reduce(RATIO p)

{

int a=abs(p.tuso);

int b=abs(p.mauso);

while(a!=b)

{

if(a>b)

a-=b;

else

b-=a;

}

p.tuso=p.tuso/a;

p.mauso=p.mauso/a;

return p;

}

CString RATIO::Print() {

CString s_tuso,s_mauso,s;

if(tuso>0) {

s_tuso.Format("%d",tuso);

s_mauso.Format("%d",mauso);

s=s_tuso +"/"+s_mauso;

} else {

s_tuso.Format("%d",tuso);

s_mauso.Format("%d",mauso);

s="-"+s_tuso +"/"+s_mauso;

} return s;

}

******************************************************

Viết trong dialog chính cpp

void CBaitapTH_5_PhansoDlg::OnButton1() {

UpdateData(true);

RATIO* p;

p=new RATIO(m_tuso,m_mauso);

ds.Add(p);

m_list.AddString(p->Print());

UpdateData(false);

} void CBaitapTH_5_PhansoDlg::OnButton2() {

UpdateData(true);

if(ds.GetSize()==0) {

MessageBox("Ko co phan tu nao de tin kiem !","Thong bao"); }

else { RATIO* p;

RATIO s=(*(RATIO*)ds.GetAt(0));

for(int i =0;i<ds.GetSize();i++) {

p=(RATIO*)ds.GetAt(i);

if(s>(*p))

Trang 8

s=(*p);

}

m_kq_tuso=s.GetTu();

m_kq_mauso = s.GetMau();

UpdateData(false);

}

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Bài 7:

IDC_STATIC_CHUCHAY

IDC_CHECK1 chọn BN_CLICKED

Viết trong BOOL CBai1_3Dlg::OnInitDialog()

UpdateData (true);

m_chuchay="- DOC LAP - TU DO - HANH PHUC ";

i=1;

UpdateData (false);

******************************************************

void CBai1_3Dlg::OnCheck1()

{

UpdateData (true);

if(m_check)

{

SetTimer (1,100,NULL);

}

else

{

KillTimer (1);

}

UpdateData (false);

}

void CBai1_3Dlg::OnTimer(UINT nIDEvent)

{

UpdateData (true);

switch(nIDEvent )

{

case 1:

int dodai;

CString s,s1,s2;

s=m_chuchay;

dodai=s.GetLength ();

s1=m_chuchay.Left (dodai-1);

s2=m_chuchay.Right (1);

s.Replace (s,s1);

m_chuchay=s2+s;

break;

}

UpdateData (false);

CDialog::OnTimer(nIDEvent);

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Bài 8:

Tên menu: IDR_MENU1

IDC_EDIT_HOTEN

IDC_DATETIMEPICKER_NGAYDE

N IDC_DATETIMEPICKER_NGAYDI

IDC_EDIT_SONGAY IDC_EDIT_TIENTRA

IDC_BUTTON_TINHTIEN

IDC_BUTTON_RESET IDC_LIST1

Radio Button Group Box chọn Tap

stop

ID_FILE_OPEN

COMMAND ID_FILE_EXIT

ID_FILE_SAVE IDC_BUTTON_RESET

BN_CLICKED IDC_BUTTON_TINHTIEN

Trang 9

IDC_LIST1 NM_DBLCLK

Khai báo thêm một lớp thông tin

thongtin.h

class Cthongtin : public CObject

{

public:

DECLARE_SERIAL(Cthongtin)

void Serialize(CArchive& ar);

long mtientra;

int msongay;

int mloai;

CString mhoten,mngayden,mngaydi;

Cthongtin();

virtual ~Cthongtin();

};

thongtin.cpp

void Cthongtin::Serialize(CArchive& ar)

{

if (ar.IsStoring())

{ // storing code

ar<<mhoten<<mngayden <<mngaydi <<mloai<<msongay <<mtientra;

}

else

{ // loading code

ar>>mhoten>>mngayden >>mngaydi >>mloai>>msongay >>mtientra;

}

}

Khachsan.cpp

void CKhachsanDlg::OnButtonTinhtien()

{

UpdateData (true);

CString s1,s2,s3,s4,s5;

if(m_ngayden >=m_ngaydi || m_hoten.IsEmpty () || m_loai ==-1)

MessageBox ("Chua nhap, hay chon gia tri roi? ","Thong

bao",MB_ICONEXCLAMATION);

else

{

COleDateTimeSpan giatri;

giatri=m_ngaydi - m_ngayden;

//todo:phai ep kieu du lieu ngay thang nam khi lay ra //m_static.Format ("%d",(int)giatri.GetTotalDays ());

m_songay=(int)giatri.GetTotalDays ();

m_tientra=(long)m_songay * loaiphong ();//co phuong thuc go ham loaiphong()

UpdateData (false);

s1.Format ("%d",m_songay);

s2.Format ("%.0ld",m_tientra);

s3.Format ("%ld",loaiphong ());

s4.Format ("%d/%d/%d",m_ngayden.GetDay (),m_ngayden .GetMonth (),m_ngayden GetYear ());

s5.Format ("%d/%d/%d",m_ngaydi.GetDay (),m_ngaydi .GetMonth (),m_ngaydi GetYear ());

int n;

n=m_list.GetItemCount ();

m_list.InsertItem (n,m_hoten);

m_list.SetItemText (n,1,s4); //add ngay den vao ListCtrl m_list.SetItemText (n,2,s5); //add ngay di vao ListCtrl m_list.SetItemText (n,3,s3); //add loai phong vao ListCtrl m_list.SetItemText (n,4,s1); //add so ngay thue vao ListCtrl m_list.SetItemText (n,5,s2 +" " "VND"); //add tien tra vao ListCtrl

Cthongtin *p=new Cthongtin ();

p->mhoten =m_hoten;

p->mngayden =s4;

p->mngaydi =s5;

p->mloai =loaiphong();

p->msongay =m_songay;

p->mtientra =m_tientra;

mArray.Add (p);

m_reset.ShowWindow (true);

m_tinhtien.ShowWindow (false);

} }

long CKhachsanDlg::loaiphong() {

switch(m_loai) {

case 0: return 100000; break;

case 1: return 150000; break;

case 2: return 200000; break;

case 3: return 250000; break;

} return 0;

} void CKhachsanDlg::OnFileExit() {

exit(1);

Trang 10

}

void CKhachsanDlg::OnFileOpen()

{

CFileDialog dlg(true);

CFile f;

BOOL b;

if(dlg.DoModal()==IDOK)

{

b=f.Open (dlg.GetFileName (),CFile::modeRead|CFile::typeBinary);

if(b)

{

CArchive ar(&f,CArchive::load);

mArray.Serialize (ar);

Cthongtin *p;

int n;

CString s1,s2,s3;

for(int i=0;i<mArray.GetSize ();i++) {

p=(Cthongtin*)mArray.GetAt (i);

n=m_list.GetItemCount ();

m_list.InsertItem (n,p->mhoten );

m_list.SetItemText (n,1,p->mngayden );

m_list.SetItemText (n,2,p->mngaydi );

s1.Format ("%d",p->mloai );

s2.Format ("%d",p->msongay );

s3.Format ("%ld",p->mtientra );

m_list.SetItemText (n,3,s1);

m_list.SetItemText (n,4,s2);

m_list.SetItemText (n,5,s3+ " ""VND");

} ar.Close();

}f.Close ();

}

}

void CKhachsanDlg::OnFileSave()

{

CFileDialog dlg(false);

CFile f;

if(dlg.DoModal ()==IDOK)

{

f.Open (dlg.GetFileName(),CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);

CArchive ar(&f,CArchive::store);

mArray.Serialize (ar);

ar.Close();

f.Close ();

} }

void CKhachsanDlg::Serialize(CArchive& ar) {

if (ar.IsStoring()) { // storing code }

else { // loading code }

} void CKhachsanDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) {

CString s1,s2,s3,s4,s5;

for(int i=0;i<m_list.GetItemCount ();i++) {

if(m_list.GetItemState (i,LVIS_SELECTED)==LVIS_SELECTED)

{ m_hoten =m_list.GetItemText (i,0);

//lay gia tri ho ten tu ListCtrl va dua len Dlg s1=m_list.GetItemText (i,1);//lay gia tri ngay den s2=m_list.GetItemText (i,2);//lay gia tri ngay di s3=m_list.GetItemText (i,3);//lay gia tri loai phong s4=m_list.GetItemText (i,4);//lay gia tri so ngay thue s5=m_list.GetItemText (i,5);//lay gia tri tien tra //todo: dua gia tri ngay den tu ListCtrl len Dlg

CString strngden;

int ngden,thden,namden;

strngden.Format ("%s",s1);

if(strngden.GetLength ()==8) {

ngden=atoi(strngden.Left (1));

thden=atoi(strngden.Mid (2,1));

namden=atoi(strngden.Right (4));

} else {

if(strngden.GetLength ()==10) {

Ngày đăng: 19/01/2014, 12:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w