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

báo cáo bài tập lớn môn lập trình hướng đôi tượng viết chương trình cho phép nhập xuất các phiếu có dạng như sau

20 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Viết Chương Trình Cho Phép Nhập Xuất Các Phiếu
Tác giả Lý Thương, Nguyễn Thị PhiƯơng Thanh, Vũ Ngọc Đan
Người hướng dẫn Nguyễn Thỏi Sơn, Giảng Viên
Trường học Trường Đại học Đại Nam
Chuyên ngành Lập Trình Hướng Đối Tượng
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2021
Định dạng
Số trang 20
Dung lượng 1,46 MB

Nội dung

OOP được xem là giúp tăng năng xuất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn..

Trang 1

mF

Se

a

TRUONG DAI HOC DAI NAM KHOA CONG NGHE THONG TIN

ĐẠI NAM

BÁO/CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH

v HƯỚNG ĐÔI TƯỢNG

Đề số 23: Viế£ chương trình cho phép nhập, xuất các phiếu

iN có dạng như sau:

Phiếu kiểm kê

Mã phiếu: 01

Nhân viên kiể Ngày kiểm kê: 15

kê: Anh Huy Chức vụ: chuyên viên

Kiểm kê tại phãhg: Khoa học Mã phòng: 172

MT

Tên tài sản Số lượng Tình trạng

May vi tinh 01 Tốt

Máy in 01 Hong

Ban lam viéc 03 Tốt

Số tai san kié ê: 03 Tống số lượng: 05

———Ừm->«:†2»<= +©—=——————

Trang 2

cu

TRƯỜNG ĐẠI HỌC ĐẠI NAM

ĐẠI NAM

Z

BÁOCÁO BÀI TẬP LỚN MÔN LẬP TRÌNH

HƯỚNG ĐÔI TƯỢNG

Đề số 23: Viết.chương trình cho phép nhập, xuất các phiếu

có dạng như sau:

Giảng viên hướng dẫn : Nguyễn Thái Sơn

Nhóm sinh viên thực hiện:

Lớp: CNTT13-01

uyễn Thị : 1351020099 PhiƯơng Thanh

Vũ Ngọc Đan : 1351020019

tháng năm 2021 —

Trang 3

oo MUC LUC

LỜI MỞ ĐẦU 2 2222112222110 1021112121222 rree 1 LOL CAM ON oiiecccccccccccccccssssseeessssseessssssessssssensetssssesssseessssssiesssssenessesesssesteeees I CHƯƠNG 1 TONG QUAN ccccssssssssccssssesssssssssssssssssessssssssitiesessessasiseseeseeeseen 3

I Các khái niệm cơ bản của lập trình hướng đối tượng 3

1 Tóm tắt lý thuyết - 0S 22a 3 CHƯƠNG 2 : PHÂN TÍCH - S21 1122111111221 011012121 212121 creu 4

I Giới thiệu đề bài cccscseeescsssseesssssseesssssetsssseesesees 4

1 Mô tải yêu cầu của đề bài Q0 4

2 Mẫu 0Q SH n2 2122121211111 se 4

MW PRRAN CICK QC HH HH HH tt ng th nhat 4

CHƯƠNG 3 TRIỂN KHAI LẬP TRÌNH 222222222222225221112221211222256 5

I Tổng quan 0 2H H102 12121 ya 5

II Chương trình - 5-5: 1 121211211112112121112121101101111212112101 121 r re 8

CHUONG 4 CHAY CHUONG TRINH ccccccccccsssstscsssesssseessetsssrteseseesseees 14

1 Nhập các thông tin c1 21112 0 1110122111112 21 tan na He 14

Trang 4

LOI MO DAU Lập trình hướng đối tượng (gọi tắt là OOP, viết tắt của

từ object - oriented - propraming trong tiếng anh), hay còn gọi là lập trình hướng đối tượng OOP được xem là giúp tăng năng xuất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn

Ngoái ra, nhiều người còn cho rằng OOP dễ tiếp thu hơn

cho những người mới học về lập trình hơn là các phương pháp trước đó

Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thoa tác viết mã nguồn cho người lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên

ngoài có thể tương tác với các chương trình đó giống như

tương tác với các đối tượng vật lý

Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu mà chúng được nhìn nhận như là một đơn vị duy nhất Mỗi đối tượng có một tên riêng biệt

và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó Như vậy, mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữ liệu, và gửi hay trả lời đến các

đối tượng khác hay đến môi trường

Sau quá trình học tập và nghiên cứu bộ môn “Lập trình hướng đối tượng” và làm quen với ngôn ngữ lập

trình dưới sự hướng dẫn của giáo viên Nguyễn Thái

Sơn, nhóm chúng em đã đi tới nghiên cứu đề tài “số 23: Viết

chương trình cho phép nhập, xuất các phiếu có dạng như

sau” và hoàn thành báo cáo

LỜI CẢM ƠN

Trước tiên, chúng em xin gửi lời cảm ơn chân thành nhất tới thầy Nguyễn Thái Sơn - giảng viên đã trực tiếp giảng dạy, chỉ bảo chúng em trong quá trình học tập đặt biệt là trong quá trình làm bài tập lớn này Và cũng gửi lời

Trang 5

cảm ơn chân thành nhất tới đội ngũ giảng viên Trường Đại học Đại Nam đã tạo điều kiện tốt nhất trong quá trình học tập của chúng em

Cũng cảm ơn các bạn sinh viên lớp CNTT13-01 đã chia sẻ tài liệu và góp ý giúp chúng mình hoàn thiệt bài tập lớn này

Trong quá trình làm đồ án, chúng em có nhiều điều sơ xuất, kính mong nhận được lòng bao dung từ thầy về những sơ xuất trên và góp ý cho chúng em để chúng em hoàn thiện hơn về bài tập lớn của mình

Thay mặt nhóm, một lân nữa chúng em xin cảm ơn sự

dãy dỗ ân cần từ thầy!

Trang 6

CHU'ONG | TONG QUAN

l Các khái niệm cơ bản của lập trình hướng đối tượng

1 Tóm tắt lý thuyết

C++ là ngôn ngữ lập trình hướng đối tượng được mở

rộng từ ngôn ngữ C Do vậy, C++ có ưu điểm là kế thừa được các điểm mạnh truyền thống của ngôn ngữ C như uyển chuyển, tương thích với các thiết bị phần cứng Hiện nay, C++ là một ngôn ngữ lập trình phổ biến, được

giảng dạy tại các trường đại học trong nước và trên thế giới và đặc biệt được sử dụng rộng rãi cho nhu cầu phát triển của công nghiệp phần mềm hiện nay Tài liệu này không những nhằm giới thiệu cho sinh viên ngôn ngữ lập trình C++, mà còn mong muốn qua đó sinh viên có

thể hiểu được tư tưởng của phương pháp lập trình hướng đối tượng nói chung

Phần thứ nhất là lập trình nâng cao với C++, bao gồm

lập trình C++ với con trò và mảng, các kiểu dữ liệu có

cấu trúc cùng các thao tác vào ra trên tập

Phần thứ hai là lập trình hướng đối tượng với C++, bao gồm các định nghĩa và các thao tác trên lớp đối tượng, tính kế thừa và tương ứng bội trong C++, cách sử dụng một số lớp cơ bản trong thư viện C++.Mã phiếu, Tên người kiểm kê, Chức vụ của nhân viên kiểm kê, Ngày

kiểm kê, Phòng kiểm kê, Mã phòng kiểm kê, Tên tài sản,

Số lượng và Tình trạng sản phẩn kiểm kê

Tìm hiểu về cách tiếp cận hướng đối tượng, những ưu điểm, nhược điểm của lập trình truyền thống và các đặc

điểm của lập trình hướng đối tượng

Các khái niệm cơ sở của phương pháp hướng đối tượng: đối tượng, Lớp, Trừa tượng hóa dữ liệu và bao gói thông tin, kế thừa

Các bước cần thiết để thiết kế chương trình theo hướng đối tượng

Các ưu điểm của lập trình hướng đối tướng

Các ngôn ngữ hướng đối tượng

Trang 7

CHU'ONG 2 : PHAN TICH

1 Mô tải yêu cầu của đề bài

Viết chương trình tạo ra một phiếu ( phiếu kiểm kê) Cho phép nhập dữ liệu, xuất dữ liệu

Chức năng

+ Nhập thông tin như tờ mẫu

+ Xuất các thông tin mà mình vừa nhập như tờ mẫu

Mẫu Phiếu kiểm kê

Phiếu kiểm kê

Mã phiếu: 01 Ngày kiểm kê: 15 Nhân viên kiểm kê: Anh Chức vụ: Chuyên viên Huy Mã phòng: 172

Kiểm kê tại phòng: Khoa

học MT

Tên tài sản SỐ lượng | Tình

trạng May vi tính 01 Tốt

Máy in 01 Hong Ban lam viéc 03 Tốt

Số tài sản kiểm kê: 03 Tống số lượng: 05

Danh sách nhập:

Cho phép người dùng nhập vào phiếu kiểm kê các

thông tin gồm: Mã phiếu, Tên người kiểm kê, Chức vụ của nhân viên kiểm kê, Ngày kiểm kê, Phòng kiểm kê,

Mã phòng kiểm kê, Tên tài sản, Số lượng và Tình trạng sản phẩn kiểm kê

In ra danh sách:

In ra danh sách bao gồ tất cả các thông tin vừa

nhập:Mã phiếu, Tên người kiểm kê, Chức vụ của nhân

viên kiểm kê, Ngày kiểm kê, Phòng kiểm kê, Mã phòng kiểm kê, Tên tài sản, Số lượng và Tình trạng sản phẩn kiểm kê

Trang 8

, CHƯƠNG 3 TRIỂN KHAI LẬP TRÌNH

Tổng quan

Chương trình có 3 đối tượng là:

+ class KiemKe

+ class TaiSan

+ class PhieuKK

._ Class kiemke gồm các thuộc tinh như: string nguoiKK, string chucVu, int ngayKK, string phongKK, string maPhongKK Và các phương thức: void nhapTTKK(), void xuatTTKK() và các hàm: hàm tạo KiemKe(), hàm huy ~KiemKe()

+ code: class KiemKe

{

private:

string nguoiKK;

string chucVu;

int ngayKK;

string phongKK;

string maPhongkKK;

public:

KiemKe();

~KiemKe() ;

void nhapTTKK();

void xuatTTKK();

};

Class TaiSan gồm các thuộc tinh: string tenTS, int soLuong, string tinhTrang, Các phương thức: int traVeGT(), void nhapTTTS(), void xuatTTTS() và các hàm: hàm tạo TaiSan(), hàm hủy ~TaiSan()

+ code: class TaiSan

{

private:

// Thuoc tinh

string tenTS;

int soLuong;

string tinhTrang;

public:

// Ham tao, ham huy

TaiSan();

Trang 9

~TaiSan();

// Cac phuong thuc

int traVeGT(); // Tra ve gia tri cua thuoc tỉnh soLuong khi

nhap vao ban phim,

void nhapTTTS(); // Nhap thong tin tai san

void xuatTTTS(); // Xuat thong tin tai san

};

Class PhiêuKK gồm có: thuộc tính: string maPhieu, các

phương thức: void nhapTTPKK(); void xuatTTPKK(); void

nhapDSPKK(PhieuKK p[], int n, TaiSan t[][100], int &m, int arrSLTSP[], int sl); void xuatDSPKK(PhieuKK p[], int n, TaiSan t[][100], int arrSLTSP[], int sl); va cach ham: ham tạo PhieuKK(), hàm hủy ~PhieuKK()

+ code: class PhieuKK : public KiemKe, public TaiSan

{

private:

string maPhieu;

public:

PhieuKK();

~PhieuKK();

void nhapTTPKK();

void xuatTTPKK();

void nhapDSPKK(PhieukK p[], int n, TaiSan t[][100], int &m,

int arrSLTSP[], int sl);

void xuatDSPKK(PhieukK p[]J, int n, TaiSan t[][100], int arrSLTSP[], int sl);

};

Nhập thông tin cho phiếu kiểm kê

Code:

void nhapDSPKK(PhieukK p[], int n, TaiSan t[][100], int &m,

int arrSLTSP[][100], int &sl, int tong[][100], int &x)

{

int sum = 0;

for (inti = 0; i < n; i++)

{

pli].nhapTTPKK();

cout << " Nhap so luong tai san can nhap TT: "; cin >> m;

Trang 10

} }

arrSLTSP[i][sl] = m;

sl++;

cin.ignore();

for (int j = 0; | < m; j++)

{

t[i]UjI.nhapTTTSO;

Sum += t[i][j].traVeGT();

}

tong[il[x] = sum;

x++;

sum = 0;

5 Xuất thông tin các phiếu đã nhập

Code:

void xuatDSPKK(PhieuKK p[], int n, TaiSan t[][100], int

arrSLTSP[][100], int sl, int tong[][100], int x)

{

}

for (inti = 0; i < n; i++)

{

}

pli].xuatTTPKK();

for (int j = 0; j < sl; j++)

{

for (int k = 0; k < arrSLTSP[i][j]; k++)

{

t[i][k].xuatTTTS

}

if (i == j)

{

cout << " So tai san kiem ke: " << arrSLTSP[i][j] << setw(12) << " Tong so: " << tong[i][j] << endl;

}

}

cout << endl;

6 Ham MAIN

Code:

int main()

Trang 11

x);

PhieuKK p[100];

TaiSan t[100][100]; // Mang de nhap danh sach tai san intm = 0;

int soLuongPhieu = 0

int tong[100][100];

int x = 0;

int arrSLTSP[100][100];

int sl = 0;

cout << " Nhap so luong phieu: ";

cin >> soLuongPhieu;

cin.ignore();

nhapDSPKK(p, soLuongPhieu, t, m, arrSLTSP, sl, tong, xuatDSPKK(p, soLuongPhieu, t, arrSLTSP, sl, tong, x); return 0;

}

Chuong trinh

#include <iostream>

#include <string>

#include <iomanip>

#include <ctime>

using namespace std;

#define soCotTTTS 1

class KiemKe

{

private:

string nguoiKK;

string chucVu;

int ngayKK;

string phongKK;

string maPhongKK;

public:

Trang 12

KiemKe();

~KiemKe();

void nhapTTKK();

void xuatTTKK();

};

// Ham tao

KiemKe::KiemKe()

{

nguoiKK = "";

chucVu = "";

ngayKK = 0;

phongKK = "";

maPhongKK = "";

}

// Ham huy

KiemKe::~KiemKe()

{

nguoiKK = "";

chucVu = "”;

ngayKK = 0;

phongKK = "";

maPhongKK = "";

}

// Nhap thong tin can kiem ke

void KiemKe::nhapTTKK()

{

cout << " Nhap nguoi kiem ke: "; cin.ignore(0);

getline(cin, nguoiKK);

Cout << " Nhap chục vu: "; cin.ignore(0);

getline(cin, chucVu);

cout << " Nhap ngay kiem ke: "; cin >> ngayKK;

cout << " Nhap phong kiem ke: ";

cin.ignore(1);

getline(cin, phongKK);

cout << " Nhap ma phong kiem ke:

Trang 13

cin.ignore(0);

getline(cin, maPhongKK);

}

/J Xuất thông tin cần kiểm kê

void KiemKe::xuatTTKK()

{

cout << setw(20) << " Ngay kiem ke: " << ngayKK << endl;

cout << " Nhan vien kiem ke: " << nguoiKK <<

setw(15) << " Chuc vu: " << chucVu << endl;

cout << " Kiem ke tai phong: "<< phongKK << setw(15) << "Ma phong: " << maPhongKK << endl;

}

class TaiSan

{

private:

string tenTS;

int soLuong;

string tinhTrang;

public:

TaiSan();

~TaiSan();

int traVeGT(); ,

void nhapTTTS();

void xuatTTTS();

};

// Ham tao

TaiSan::TaiSan()

{

tenTS = "";

soLuong = 0;

tinhTrang = "”;

}

// Ham huy

TaiSan::~TaiSan()

{

tenTS = "";

soLuong = 0;

tinhTrang = "”;

Trang 14

}

// Phuong thuc nhap thong tin tai san

void TaiSan::nhapTTTS()

{

cout << " Nhap ten tai san: ";

cin.ignore(0);

getline(cin, tenTS);

Cout << " Nhap so luong: ";

cin >> soLuong;

Cout << " Nhap tinh trang: ";

cin.ignore(1);

getline(cin, tinhTrang);

cout << endl;

}

/¡ Phương thức trả về giá trị của thuộc tính soLuong int TaiSan::traVeGT()

{

return soLuong;

}

// Phương thức xuất thông tin tài sản

void TaiSan::xuatTTTS()

{

cout << setw(5) << tenTS << setw(20) << soLuong

<< setw(15) << tinhTrang << endl;

}

// Class phieu kiem ke ke thua class kiem ke va class tai san

class PhieuKK : public KiemKe, public TaiSan //ke thua

{

private:

string maPhieu; // Thuoc tinh ma so cua phieu kiem ke public:

// Ham tao ham huy

PhieuKK();

~PhieuKK();

// Cac phuong thục

void nhapTTPKK();

// Nhap thong tin cho 1 phieu kiem ke

void xuatTTPKK();

// Xuat thong tin cho 1 phieu kiem ke

Trang 15

12

void nhapDSPKK(PhieuKK p[], int n, TaiSan t[][100], int

&m, int arrSLTSP[], int sl); // Nhap thong tin cho nhieu phieu kiem ke

void xuatDSPKK(PhieukK pf], int n, TaiSan t[][100], int

arrSLTSP[], int sl); // Xuat thong tin nhieu phieu kiem

ke

};

// Ham tao

PhieuKK::PhieuKK()

{

maPhieu = "";

}

// Ham huy

PhieuKK::~PhieuKK()

{

maPhieu = "";

}

//¡ Nhập thông tin cho 1 phiếu kiểm kê

void PhieuKK::nhapTTPKK()

{

cout << endl

<< " Nhap ma phieu: ";

cin.ignore(0);

getline(cin, maPhieu);

KiemKe::nhapT TKK();

}

/J Xuất thông tin cho 1 phiếu

void PhieuKK::xuatTTPKK()

{

endl;

cout << " PHIEU KIEM KE" << endl;

cout << " Ma phieu: " << maPhieu;

KiemKe::xuatT TKK();

cout << " Ten tai san” << setw(20) << " So luong" <<

setw(15) << "Tinh trang" << endl;

}

// NHap théng tin cho nhiéu phiéu kiém ké

Ngày đăng: 18/07/2024, 16:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w