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 0 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

Nội dung

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

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 -= SSS > LS Đề 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

Phẩm Ý Thương : 1351020110

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

Vũ Ngọc Đan : 1351020019

2 OSS OO —

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

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

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ự

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

Trang 7

CHU'ONG 2 : PHAN TICH

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

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

II Phân tích

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

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:

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,

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;

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:

Trang 12

KiemKe(); ~KiemKe();

void nhapTTKK(); void xuatTTKK();

};

// Ham tao KiemKe::KiemKe()

{

nguoiKK = ""; chucVu = ""; ngayKK = 0; phongKK = ""; maPhongKK = "";

}

// Ham huy KiemKe::~KiemKe()

{

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:

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();

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() { cout <<" "<< 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;

}

Trang 16

void nhapDSPKK(PhieuKK p[], int n, TaiSan t[][100], int &m, int arrSLTSP[][100], int &sl, int tong[][100], int &x) {

int sum = 0; // Bién dé tính tổng số lượng của tất cả các

tài sản được kiểm kê trong 1 phiếu for (int i = 0; i < n; i++)

{

pli] nhapTTPKK(); // Nnap thong tin cho phieu thu i Cout << " Nhap so luong tai san can nhap TT: "; cin >> m;

// Them so luong tai san cua tung phieu vao mang co cac phan tu la so luong tai san duoc kiem ke trong 1 phieu

arrSLTSP[i][sl] = m;

sl++;

cin.ignore();

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

t[i][j].nhapTTTSQ; // Dánh sách các tài sản được

kiểm kê

// Tính tổng số lượng của tất cả tài sản được kiểm

kê trong 1 phiếu

sum += t[i]lj].traVeGTQ;

}

// Them cac gia tri cua Sum vao mang gom cac gia tri la tong so luong cua tat ca tai san duoc kiem ke trong 1 phieu

tong[i][x] = sum; x++;

sum = 0;

} }

/¡ Xuất thông tin của các phiếu đã nhập

Trang 17

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

{

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

{

t[i][k].xuatTTTSQ); //Xuất thông tin các tài sản

được kiểm kê của phiếu thứ i

} if (i == j) {

// Xuat ra s6 théng ké so S6 tài sản được kiểm

kê va tổng số lượng các tài sản của phiếu thứ i

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

} }

cout << endl;

} }

int main()

{

PhieuKK p[100]; // Mảng để nhập danh sách các

phiếu kiểm kê

TaiSan t[100][100]; // Mảng để nhập danh sách tài sản // Bien de truyen vao ham nhap danh sach phieu kiem ke, trong ham do tham so nay se dụng de nhap so luong tai san can kiem ke cua 1 phieu

int m = 0;

int soLuongPhieu = 0; // Biên số lượng phiếu cần nhập thông tin

int tong[100][100]; 7/ Mảng gồm các giá trị là tổng số

lượng của tất cả tài sản được kiểm kê trong 1 phiếu

int x = 0; // biến để đếm số lượng các giá trị được thêm vào mảng tổng

int arrSLTSP[100][100]; // Mảng chứa số lượng tài sản của từng phiếu vào mảng có các phần tử là số lượng tài

sản được kiểm kê trong 1 phiếu

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

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

TÀI LIỆU LIÊN QUAN

w