1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giới thiệu môn học ngôn ngữ lập trình c

122 70 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Định dạng
Số trang 122
Dung lượng 503,23 KB

Nội dung

Trang 1

ao + language

Trang 4

| comments

Trang 6

+ control statements

=» condition: if, switch

= loop: for, while, do while

=» jump: goto, return, break, continue

Trang 7

4 common functions

a string: strcpy, strcat, strlen, strcmp

=» math: cos, sin, pow, sart, exp, log, rand

Trang 8

4 comon libraries

string : both C and C+ +

memory : both C and C++ stdlib : both C and C++

stdio : both C and C++ conio : both C and C++

math: both C and C++

Trang 9

native to C++

=» the pointer this

= the type reference =» the concept class

Trang 10

Object Oriented Programming

with C++

Trang 13

4 Using Turbo C+ +

= Starting the tools =» create a new file = save the file

=» compile the file =» run the file

Trang 14

4 Using Microsoft Visual C+ +

= project is a collections of file

a Start the tool

=» create a new project = Create a file

=» compile the file

Trang 16

4 recommended books

= Pham Van At - C++ va lap trinh

hướng đối tượng

„ Nguyễn Cẩn - Tự học ngôn ngữ lập

Trang 18

Mt Glass declaration

Trang 19

4 contents

=» structure with member functions a inline and external definitions

=» Standalone and member functions =» declaration vs definition

= levels of hidding

Trang 20

4 contents (1)

= constructor

= Oestructor

=» the pointer this

= array of objects (initials)

=» dynamic object: new, delete, *, ->

Trang 21

4 From c struct to c++ struct struct SinhVien { char Ten| 50]; int NamSinh: double dk1, dk2;

int Tuoi() { NamSinh - getCurYear(); } double DIB() { return (dk1+ dk2)/2; }

Trang 22

4 From c++ struct to c++ class class SinhVien { private: char Ten[50]; int ns; double dk1, dk2; public:

int Tuoi() { ns - getCurYear(); }

double DIB() { return (dk1+dk2)/2; }

Trang 23

Standalone and member

4 functions

=» standalone functions belong to no class, eg cos, sin, printf, scanf,

=» member functions belong to a specific class, eg

=» the definition of member functions has a LITTLE different from that of

Trang 25

4 declaration vs definition

= declaration tells the existence, the type or the prototypes of the object

Trang 28

5 Constructor

=» Constructor is automatically called when the object is created / constructed

=» constructor Is used to Initiate data members

Trang 29

4 Destructor

= destructor is automatically called when the object is destroyed / destructed

= destructor is designed to clear dynamic

members and close files and devices

Trang 30

4 Debugger (class)

=» constructor: print the message = destructor: print the message

Trang 31

4 IntegerList (class)

=» constructor: initiate members =» Oestructor: clear the array

= append: add a number into the list = sort: sort the list

Trang 32

4 string (class)

=» constructor: initiate the pointer = destructor: free the pointer

Trang 33

4 text1024 (class)

=» contains at most 1024 lines

= print: print the text

=» save: save the text to a file

= append: add a line to the text

Trang 34

4 text (class)

a» with unlimited number of line

Trang 35

4 The pointer this

=» Io discern the data member from the

member function arguments

=» Can be known as an implicit argument

of anormal member function

a Static member does not have the

Trang 36

4 example of using this

Trang 37

4 Array of objects

=» Declare an object array (Same as C) a Initiate an object array

=» Scan through the array

=» The constructor is called n times

Trang 38

+ Initiate an array

=» The requirements

=» constructor with args

=» constructor without args

Trang 40

4 Dynamic object =» Ihe object that must be created before being used

=» Create the object / new

=» Destroy the object / delete =» The operator arrow

Trang 42

4 Array of dynamic objects

=» constructing the array =» scanning the array

Trang 45

j¡ TP

=» Static member function = Virtual member function

Trang 46

cdplex - class declaration

cdp1ex - class declaration

(Từ Trung Hiéu, apr-04-2006)

vector (vec to’)

Viết lớp vector gồm

e các thành phan x, y, z,

e ham getLength tra vé d6 dai Euclide cua véc tơ Trong ham main,

e khai bao mang gém 10 phần tử các đối tượng kiêu vector, e_ tiến hành nhập các giá trị cho các véc tơ,

® và Inra các tọa độ cũng như độ dài của các véc tơ, mỗi véc tơ in trên một dòng

student (sinh viên)

Viết lớp student gồm

e_ name kiểu chuỗi dài 50 ký tự,

e vearBirth kiểu int,

e fsem kiéu double,

e ssem kiéu double,

e ham getAge tra vé gid tri 2006-yearBirth,

e ham getGpa tra vé gid tri trung bình của fsem và ssem Trong ham main,

e khai bdo mang g6m 10 phan tir kiéu student,

e©_ tiến hành nhập giá trị cho các thành viên,

e inra cdc thong tin name, getAge, getGpa (mỗi sinh viên trên một dòng)

matrix (ma trận)

Viết lớp matrix gom cac thanh phan

e width kiéu int, height kiéu int,

e mang pix hai chiéu 8x8 c6 cdc phan tir kiéu long,

e ham save ghi ma tran ra tap tin nhi phan,

e ham load tai thong tin tu tap tin nhị phân Trong ham main,

e khai bao mt va mt! kiéu matrix,

e_ tiến hành nhập thông tin width (từ 1 tới 8) va height (ttr 1 tới 8) và các phần tử e ghi ma tran mt xu6ng tap tin "matran.dat" bang save,

e doc théng tin lén ma tran mtl tl tap tin "matran.dat” vừa tạo,

e va in cac thong tin mtl ra man hinh

date (ngay thang)

Viết lớp date có các thành phan

Trang 47

cdplex - class declaration

e day kiéu int

e month kiéu int

e year kiéu int

e ham cmp tra vé gid trị so sánh với một ngày khác Trong hàm maIn e Khai bdo dl va d2 kiéu date e Nhập các giá trị cho dI và d2 e In ra kết quả ngày d1 đứng trước hay sau d2 string (chuỗi) Viết lớp chuỗi gồm

e data kiéu mang ky tự gồm 128 ký tự e ham assign gan gid tri chuỗi cho data e ham concat găn thêm chuỗi mới vào data Trong hàm maIn

e_ Khai báo chuỗi

e_ gọi hàm assign với gia tri "Hanoi" e goi ham concat v6i gia tri "Vietnam" e inra két qua data

CatalogFile (tap tin danh muc)

Viét tap tin danh muc g6m

e hàm open mở và tìm tập tin dau tiên e hàm close đóng danh mục đang mở e hàm ¡isEnd xác định còn tập tin hay khơng e©_ hàm MoveNext chuyền tới mục tiếp theo

e_ hàm GetFileName trả về tên của mục hiện tại e ham GetFileSize tra vé cỡ của mục hiện tại

e hàm IsFileCatalog xác định mục hiện tại có phải danh mục con

Trong hàm maIn

e Khai bao cf kiéu CatalogFile

e m6 tap tin cf bang cách goi open

e lap lai viéc in ra gid tri cua GetFileName, GetFileSize,

và chuyển tới mục tiếp theo cho tới khi IsEnd trả về giá trị đúng e_ đóng tập tin cf bằng cách gọi close

Trang 48

" Aggregation

Trang 49

4 contents

=» understand the concept

m commonly used classes: intlist, stringlist =» construction / destruction in aggreggation

=» destruction of container that handles dynamics =» nested class and access path

a linking vs handling =» hiding / messaging

Trang 50

+ Commonly used classes

Trang 51

4 The number list (static) a Static array =» constructor: no item at first =» destructor: no need

» Additem: advance counter and copy

=» Deleteltem: mass copy =» LoadList:

Trang 52

4 The number list (dynamic)

=» dynamic array

=» constructor: the array and the counter = destructor: free the array

=» additem: alloc / realloc

= delete: realloc / free a Save List:

Trang 53

4 The string list (static)

commonly used class, eg order, payroll static array of string

constructor: initiate the counter destructor: free strings

Addstring: advance the counter

DeleteString: mass copy

saveList: to a file

Trang 54

4 The string list (dynamic)

» Dynamic array of string

=» constructor: initiate the counter and the array =» destructor: free strings and the array

=» AddString: alloc / realloc =» DeleteString: realloc / free

a SaveList: to a file

Trang 55

4 container of objects

the static array of objects

Trang 56

container of dynamic objects 4 (static array)

= Static array of pointer

=» constructor: clear the counter

=» destructor: free all dynamic objects =» additem: add a dynamic object

=» deleteltem: mass copy of pointer a Save List:

=» LoadList:

Trang 57

container of dynamic objects

4 (dynamic array)

=» dynamic array of pointer

=» constructor: initiate the array and the counter =» destructor: clear objects and the array

» additem: alloc / realloc =» deleteltem: realloc / free a» SaveList:

=» LoadList:

Trang 59

nested class / access path

» Aclass is allowed to contain another class as Its member

=» eg, student contains date

m A class can not contains itself or another class mutually

=» eg, hen contains egg, egg contains hen

Trang 60

4 Construction / Destruction

=» When the container is created

=» The constructor of the container does =» in case there is no default constructor =» When the container is destroyed

Trang 61

Bp Pestruction of dynamic objects

=» The container may have the statement delete in its destructor

=» Remember to CLOSE all opened devices and CLEAR all dynamic allocated

variables under the control of the container on the destruction of It

=» Ihe container may refer to or link to It

Trang 62

4 linking vs handling

=» handle:

=» the disappearance of the container (handler) implies that of the member

= delete statements are required in the destructor

m link:

=» the container (linker) does not care about the existence of member objects

=» many linkers may share the same object

Trang 63

4 Hidding / Messaging

m |1he member class should not be revealed

=» Messages should be sent to the

Trang 64

Multiplicity, Optionality, Cardinality =» Multiplicity: the container may handle one / many member

» eg, achild has one and only one mother =» amother may have more than one child

=» QOptionality: some containers may handle no object (optional), some containers must have one (required)

=» eg, student to country

» awoman may has no child, a mother must have at least one

=» Cardinality: more specific than multiplicity

Trang 66

=» diagram, connector, node

= picture, shape

= font, charpattern

=» category file: to display a directory

Trang 67

cdp2ex - aggregation cdp2ex - aggregation (Tu Trung Hiéu, 08-04-2006) StringList

Viết lớp StringList trong đó oo -

e bién item gdm 100 phân tử kiêu chuôi, môi chuôi 30 phân tử e©_ biến card đếm số lượng

e ham Addltem(chuỗi) để thêm chuỗi vào danh sách

e_ hàm SaveList(tên tệp) để ghi danh sách xuống tệp tin nhị phân

e©_ hàm LoadList(tên tệp) để tải tệp từ tập tin nhị phân e_ hàm PrintList(tên tệp) để ghi danh sách ra tập tin văn bản Sử dụng lớp StringList trong ham main nhu sau

e Khai bao bién sl kiéu StringList e Thém chudi "Ha Noi” vao sl e Thém chudi "Hue" vao sl

e Thém chudi "Ho Chi Minh" vao sl

e Ghi danh sach sl vao tap tin "diaphuong.dat”

e Khai bdo bién Is kiểu StringList

e Doc ls tu tap tin "diaphuong.dat"

e In ls ra màn hình bằng cách gọi PrintList

IntegerList

Viết lớp IntegerList trong đó

e©_ có biến item gôm 100 phân tử kiểu long

e_ có biến card lưu số phân tử của danh sách

e©_ hàm Addltem(số nguyên) thêm vào danh sách một số nguyên e_ hàm SaveList(tên tệp) ghi danh sách xuống tệp tin nhị phân ® hàm LoadList(tên tệp) tải danh sách từ tệp tin nhị phân e hàm PrintList(tên tệp) ghi danh sách xuống tệp tin văn bản Su dung IntegerList trong ham main nhu sau

e Khai bdo L kiéu StringList

e thém vao L các số 1234, 2345, 3456, 4567 e_ ghi danh sách L xuống tập tin songuyen.dat

e©_ khai báo LA kiểu StringList

e đọc danh sách LA từ tap tin songuyen.dat

e in danh sách LA ra man hinh voi PrintList

Trang 68

cdp2ex - aggregation

StudentList

Viết lớp StudentList trong đó

e_ có mảng item gồm 100 sinh viên (họ tên, tuổi, điểm trung bình) e_ có số phần tử card là số nguyên

e co ham AddStudent(tén, tudi, dtb) thém sinh vién vao danh sách

e c6 ham SaveList(tén tép) dé in danh sdch ra tap tin van ban

e c6 ham LoadList(tén tệp) dé đọc danh sách từ tập tin văn bản e_ có hàm tạo StudentListQ khởi tạo số phần tử ban đầu là rỗng

Sử dụng lớp trong hàm maIn

e_ Khai báo đối tượng sI kiểu StudentList

e thêm sinh viên "Nguyen Van A", 21 tuổi, 8.5 điểm vao sl

e_ thêm sinh viên "Tran Van B", 20 tuổi, 7.0 điểm vào sỉ

e_ thêm sinh viên "Pham Van C", 23 tuổi, 8.2 điểm vào sÏ

e chi danh sách sÏÌ ra tập tin "d:/dssv.txt”

Payroll

Hàng tháng, chị Thu Hương của công ty Thịnh Vượng thường phải tính bảng lương để trả cho các nhân viên

Bảng lương chị ta tính có dạng như sau Tên nhân viên Số ngày làm Số ngày nghỉ Lương Ký nhận Nguyễn Văn A 15 0 1'500'000 Pham Van B 13 2 1'200'000 Tran Van C 26 0 2'600'000 Hoang Dinh D 20 6 1°700'000

Trang 69

cdp2ex - aggregation câu Đơn hàng dùng dé chuyên hàng đi và thanh toán với khách Đơn hàng có dạng như sau Tên hàng Số lượng Don gia Thanh tién Ban 80x140 1 400'000 400'000 Tu 986 1 950'000 950'000 Bàn phoóc nhỏ 500000 2'500000 Tổng sô tiên khách hàng phải trả 3'850'000 Hãy viết lớp cho phép thêm các mục hàng và in ra hóa đơn như trên Giả sử người lập trình sẽ dùng lớp như sau void main() { Order od; od.AddItem("Ban 80x140", 1, 400000); od.AddItem("Tu 986", 1, 950000); od.AddItem("Ban phooc nho”, 5, 500000); od.SaveList("d:/order.txt"); RectList

Trong quan ly thong tin dia ly, mỗi đối tượng địa lý trong bản đồ được biểu diễn băng hình chữ nhật, và tồn

bộ bản đơ là tập hợp các hình chữ nhật Môi khi người dùng ân chuột vào một hình chữ nhật, thông tin địa lý sẽ được hiện ra trong cửa sô bên cạnh

Hãy viết lớp RectList để lưu thông tin địa lý sao cho nguời dùng có thể thêm một hình chữ nhật vào danh sách, shi danh sách xuống tập tin, tải danh sách từ tập tin Người dùng có thể sử dụng lớp như sau

void main() { RectList rl;

rl.AddRect(1, 1, 10, 10, "Ha noi");

Ngày đăng: 07/01/2021, 09:48

w