Bài giảng C - Kiểu cấu trúc

16 345 1
Bài giảng C - Kiểu cấu trú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

Bài giảng C - Kiểu cấu trúc

11LẬP TRÌNH C++LẬP TRÌNH C++§9. Kiểu cấu trúc bản ghi§9. Kiểu cấu trúc bản ghi 22I. Khai báo kiểu bản ghiI. Khai báo kiểu bản ghiCú pháp Cú pháp structstruct < tên_cấu_trúc > < tên_cấu_trúc > { { Các kiểu dữ liệu thành phần ; Các kiểu dữ liệu thành phần ; }; }; Khai báo biến :Khai báo biến :struct < tên_cấu_trúc > < tên_biến > ; struct < tên_cấu_trúc > < tên_biến > ; Ví dụ:Ví dụ: Kiểu dữ liệu DATE gồm các thành phần: Kiểu dữ liệu DATE gồm các thành phần: Thứ (thu): kiểu chuỗi. Thứ (thu): kiểu chuỗi. Ngày (ngay): kiểu số nguyên 1 byte. Ngày (ngay): kiểu số nguyên 1 byte. Tháng (thang): kiểu số nguyên 1 byte. Tháng (thang): kiểu số nguyên 1 byte. Năm (nam): kiểu số nguyên 2 bytes. Năm (nam): kiểu số nguyên 2 bytes. 33Ta định nghĩa DATE như sau:Ta định nghĩa DATE như sau: struct DATE struct DATE { { string thu; string thu; unsigned char ngay; unsigned char ngay; unsigned char thang; unsigned char thang; unsigned int nam; unsigned int nam; }; }; DATE x ; // Khai bao bien x co kieu du lieu DATEDATE x ; // Khai bao bien x co kieu du lieu DATE Hoặc : Hoặc : struct DATE x ;struct DATE x ;Để truy xuất một thành phần dữ liệu :Để truy xuất một thành phần dữ liệu :< Tên cấu trúc >.< Biến thành phần >; < Tên cấu trúc >.< Biến thành phần >; DATE x ; // khai bao bien x kieu DATE DATE x ; // khai bao bien x kieu DATE x.ngay = 5 ; // gan ngay bang 5 x.ngay = 5 ; // gan ngay bang 5 44Bài tập : Bài tập : 3.3.đọc và in ra thứ, ngày, tháng, nămđọc và in ra thứ, ngày, tháng, năm#include <iostream>#include <iostream>#include <string>#include <string>#include <algorithm>#include <algorithm>using namespace std;using namespace std;struct DATE struct DATE { { string thu; string thu; unsigned char ngay; unsigned char ngay; unsigned char thang; unsigned char thang; unsigned int nam; unsigned int nam; }; }; struct DATE d; struct DATE d; 55void main()void main(){{cout<<"Cho thu : ";cout<<"Cho thu : ";getline(cin,d.thu);getline(cin,d.thu);cout<<"Cho ngay : ";cout<<"Cho ngay : ";cin>>d.ngay;cin>>d.ngay;cout<<"Cho thang : ";cout<<"Cho thang : ";cin>>d.thang;cin>>d.thang;cout<<"Cho nam : ";cout<<"Cho nam : ";cin>>d.nam;cin>>d.nam;cout<<"Du lieu vua doc vao la : "<<endl;cout<<"Du lieu vua doc vao la : "<<endl;cout<<"Thu : "<<d.thu<<endl;cout<<"Thu : "<<d.thu<<endl;cout<<"Ngay : "<<d.ngay<<endl;cout<<"Ngay : "<<d.ngay<<endl;cout<<"Thang : "<<d.thang<<endl;cout<<"Thang : "<<d.thang<<endl;cout<<"Nam : "<<d.nam<<endl;cout<<"Nam : "<<d.nam<<endl;}}* Cách 2 : dùng hàm đọc vào và in ra ngày tháng năm* Cách 2 : dùng hàm đọc vào và in ra ngày tháng năm 662. Đọc vào và in ra thông tin của một thí sinh thi đại học 2. Đọc vào và in ra thông tin của một thí sinh thi đại học gồm: SBD, hoten, gioitinh, dtoan, dly, dhoa (dùng hàm)gồm: SBD, hoten, gioitinh, dtoan, dly, dhoa (dùng hàm)Ta có thể khai báo kiểu thí sinh như sau:Ta có thể khai báo kiểu thí sinh như sau:struct THISINH struct THISINH { { string SBD; string SBD; string hoten; string hoten; string gt; string gt; double dtoan;double dtoan;double dly;double dly;double dhoa; double dhoa; }; }; struct THISINH ts; struct THISINH ts; 77II. II. Kiểu dữ liệu cấu trúc bản ghi lồng vào nhauKiểu dữ liệu cấu trúc bản ghi lồng vào nhau Định nghĩa kiểu dữ liệu của học sinh HOCSINH gồm: Định nghĩa kiểu dữ liệu của học sinh HOCSINH gồm: Mã số học sinh (MSHS): kiểu chuỗi. Mã số học sinh (MSHS): kiểu chuỗi. Họ tên (hoten): kiểu chuỗi. Họ tên (hoten): kiểu chuỗi. Ngày tháng năm sinh (ngaysinh): kiểu DATE. Ngày tháng năm sinh (ngaysinh): kiểu DATE. Địa chỉ (diachi): kiểu chuỗi. Địa chỉ (diachi): kiểu chuỗi. Giới tính (gt): kiểu chuỗi. Giới tính (gt): kiểu chuỗi. Điểm trung bình (diemtb): số thực. Điểm trung bình (diemtb): số thực. Ta định nghĩa kiểu HOCSINH có ngày sinh là kiểu DATE như Ta định nghĩa kiểu HOCSINH có ngày sinh là kiểu DATE như sau: sau: struct DATE struct DATE { { unsigned int ngay; unsigned int ngay; unsigned int thang; unsigned int thang; unsigned int nam; unsigned int nam; }; }; 88struct HOCSINH struct HOCSINH { { string MSHS; string MSHS; string hoten; string hoten; struct DATE ngaysinh; struct DATE ngaysinh; string diachi; string diachi; string gt; string gt; double diemtb; double diemtb; }; }; HOCSINH hs; // khai bao bien hs kieu HOCSINHHOCSINH hs; // khai bao bien hs kieu HOCSINH Muốn biết hs sinh vào tháng mấy ta phải truy cập như sau:Muốn biết hs sinh vào tháng mấy ta phải truy cập như sau:(hs.ngaysinh).thang; (hs.ngaysinh).thang; # Khi định nghĩa kiểu dữ liệu struct lồng nhau, ta cần lưu ý: # Khi định nghĩa kiểu dữ liệu struct lồng nhau, ta cần lưu ý: Kiểu dữ liệu được sử dụng phải khai báo phía trên. Kiểu dữ liệu được sử dụng phải khai báo phía trên. Bài tập :Bài tập : đọc vào và in ra thông tin cua một học sinh như trên bằng 2 đọc vào và in ra thông tin cua một học sinh như trên bằng 2 cách : cách 1: đọc in trực tiếp; cách 2 : thông qua 2 hàm đọc cách : cách 1: đọc in trực tiếp; cách 2 : thông qua 2 hàm đọc và in. và in. 99#include <iostream>#include <iostream>#include <string>#include <string>#include <conio.h>#include <conio.h>#include <algorithm>#include <algorithm>using namespace std;using namespace std;struct DATE struct DATE { { unsigned int ngay; unsigned int ngay; unsigned int thang; unsigned int thang; unsigned int nam; unsigned int nam; }; }; struct HOCSINH struct HOCSINH { { string MSHS; string MSHS; string hoten; string hoten; struct DATE ngaysinh; struct DATE ngaysinh; string diachi; string diachi; string gt; string gt; double diemtb; double diemtb; }; }; 1010HOCSINH hs; HOCSINH hs; void docns(DATE &d)void docns(DATE &d){{cout<<"Cho ngay : "; cin>>d.ngay;cout<<"Cho ngay : "; cin>>d.ngay;cout<<"Cho thang : "; cin>>d.thang;cout<<"Cho thang : "; cin>>d.thang;cout<<"Cho nam : "; cin>>d.nam;cout<<"Cho nam : "; cin>>d.nam;}}void dochs(HOCSINH &hs)void dochs(HOCSINH &hs){{cout<<"Cho MSHS : "; getline(cin,hs.MSHS);cout<<"Cho MSHS : "; getline(cin,hs.MSHS);getchar();getchar();cout<<"Cho ho ten : "; getline(cin,hs.hoten);cout<<"Cho ho ten : "; getline(cin,hs.hoten);getchar();getchar();cout<<"Vao ngay thang nam sinh : "<<endl;cout<<"Vao ngay thang nam sinh : "<<endl;docns(hs.ngaysinh); getchar();docns(hs.ngaysinh); getchar();cout<<"Cho dia chi : "; getline(cin,hs.diachi);cout<<"Cho dia chi : "; getline(cin,hs.diachi);getchar();getchar();cout<<"Cho gioi tinh : "; getline(cin,hs.gt); getchar();cout<<"Cho gioi tinh : "; getline(cin,hs.gt); getchar();cout<<"Cho diem trung binh : "; cin>>hs.diemtb;cout<<"Cho diem trung binh : "; cin>>hs.diemtb;}} [...]... " . kiểu dữ liệu c ma trận (Kiểu dữ liệu bây giờ là kiểu dữ liệu c c u tr c) . c u tr c) . C ch truy c p phần tử trong mảng c ng như truy C ch truy c p phần tử. bản ghi C pháp C pháp structstruct < tên _c u_tr c > < tên _c u_tr c > { { C c kiểu dữ liệu thành phần ; C c kiểu dữ liệu thành phần ; };

Ngày đăng: 14/11/2012, 15:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan