intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài thực hành số 8: Kiểu cấu trúc

Chia sẻ: Hoangthi Luong | Ngày: | Loại File: DOC | Số trang:13

59
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nắm vững định nghĩa kiểu cấu trúc, biến cấu trúc. Nắm vững một số thao tác cơ bản trên xâu ký tự cấu trúc...

Chủ đề:
Lưu

Nội dung Text: Bài thực hành số 8: Kiểu cấu trúc

  1. Bài thực hành số 8: Kiểu cấu trúc Mục tiêu A. Nắm vững định nghĩa kiểu cấu trúc, biến cấu trúc.  Nắm vững một số thao tác cơ bản trên xâu ký tự cấu trúc  Rèn luyện cách gọi hàm, truyền tham số.  Ôn tập: B. Các định nghĩa kiểu cấu trúc  Các thao tác cơ bản trên cấu trúc  Truyền tham số  Kiểu cấu trúc – biến cấu trúc I. Các định nghĩa kiểu cấu trúc 1. Dạng 1 Dạng 2 Dạng 3 struct KCT //Tên kiểu struct KCT //Tên kiểu struct //Không có Tên kiểu { { { //Các thành phần //Các thành phần //Các thành phần }DS các biến }DS các biến } struct NHANVIEN struct NHANVIEN struct { { { int Ms; char HoTen[MAX]; char HoTen[MAX]; char HoTen[MAX]; int Namsinh; int Namsinh; NTM NTNsinh; char DiaChi[MAX]; char DiaChi[MAX]; char DiaChi[MAX]; int Sdt; int Sdt; int Sdt; }NV; }NV; }; struct NTM { int Ngay; int Thang; int Nam; } Các thao tác bên trong cấu trúc (các thành phần cấu trúc) 2. Như các biến thông thường. Truy cập vào các thành phần của cấu trúc 3. Theo cú pháp: • TenCauTruc.TenTruong Nếu tên trường là một cấu trúc thì: • TenCauTruc. TenCauTruc.TenTruong Ví dụ:
  2. • NV.HoTen //Truy cập vào trường HoTen của NV • NV.NTNsinh.Ngay //Truy cập vào trường Ngay của cấu trúc NTNsinh của NV Nhập dữ liệu cho biến cấu trúc NV 4. (Nhập từng thành phần cấu trúc) chẳng hạn: • cin>>NV.NTNsinh.Nam; // Nhập năm sinh của NV • gets(NV.DiaChi); //Nhập Địa chỉ của NV • ... Xuât dữ liệu cho biến cấu trúc NV 5. (Nhập từng thành phần cấu trúc) chẳng hạn: • cout
  3. cin>>Ds[i].NTNsinh.Thang; coutDs[i].NTNsinh.Nam; cout
  4. Đối của hàm Truyền tham số Biến cấu trúc Giá trị cấu trúc Tên mảng cấu Tên mảng cấu trúc cùng kiểu, cùng kích thước trúc Luyện tập: C. Ví dụ 1: Để quản lý nhân viên ta xây dựng cấu trúc gồm: • Mã nhân viên, • Họ nhân viên, • Tên nhân viên, • Địa chỉ, • Điện thoại, • Mức lương, • Phòng làm việc. Viết chương trình tổ chức menu thực hiện các chức năng sau: • Xem danh sách nhân viên. • Xem danh sách nhân viên thuộc một phòng. • Sắp xếp danh sách nhân viên theo thứ tự giảm dần của mức lương. Thực hiện: Bước 1: Tạo Project với tên “Lab8_Vd1”. Bước 2: Tạo tập tin chương trình vd1.cpp Bước 3: Trong tập tin vd1.cpp, soạn code theo cấu trúc: #include #include #include #include #include #define MAX 100 using namespace std; //Dinh nghia kieu du lieu struct NHANVIEN { char MaNV[10];
  5. char HoNV[15]; char TenNV[10]; unsigned int Tuoi; char Dc[10]; int Sdt; double Luong; char Phong[20]; }; //Khai bao nguyen mau ham //Nhap,xuat void Nhap ( NHANVIEN Ds[MAX], int n); void Xuat ( NHANVIEN Ds[MAX], int n); //Chuc nang void DSPhong ( NHANVIEN Ds[MAX], int n, char Phong[20]); void DSLuong_Tang ( NHANVIEN Ds[MAX], int n); //To chuc menu void XL_Menu(NHANVIEN Ds[MAX], int n, int Chon); int ChonMenu(); void Menu(); void main() { NHANVIEN Ds[MAX]; int n, Chon; coutn; Nhap (Ds,n); do { Chon = ChonMenu(); XL_Menu(Ds,n,Chon); } while(1); } void Menu() { cout
  6. int Chon; for(;;) { Menu(); cout>Chon; if (1
  7. break; case 5: cout
  8. Ví dụ 2: Như ví dụ 1, nhưng yêu cầu khởi tạo danh sách nhân viên Ds (không nhập từ bàn phím theo hàm nhập) và thêm chức năng sau: • Sửa đổi thông tin một nhân viên khi biết mã nhân viên Thực hiện: Bước 1: Tạo Project với tên “Lab8_Vd2”. Bước 2: Tạo tập tin chương trình vd2.cpp Bước 3: Trong tập tin vd2.cpp, soạn code theo cấu trúc: //... (Như ví dụ 1) //. . . //Thêm hàm sửa thông tin void SuaTT(NHANVIEN Ds[MAX], int n, char MaNV[10]); void main() { int Chon; //Khoi dau danh sach nhan vien NHANVIEN Ds[MAX]= { {"TV0001", "Tran ", "Ngoc Hoa",32,"Da Lat",910345321,3.5,"Tai vu"}, {"TV0002", "Truong Ve", "Kien",38,"Da Lat",911345189,4.0,"Tai vu"}, {"TC0002", "Ly Nhuoc ", "Dong",24,"Bao Loc",900100040,2.0,"To chuc"}, {"TC0005", "Nguyen ", "Thi",33,"Bao Loc",911675341,3.0,"To chuc"}, {"TC0008", "Vu ", "Thuy",58,"Da Lat",901605308,4.0,"To chuc"}, {"DT0003", "Duong ", "Tu Quynh",30,"Sai gon",900786453,3.0,"Dao tao"}, // . . . {"DT0005", "Trinh Y ", "Kien",30,"Hong Kong",901,6.0,"Dao tao"} }; int n = 7; do { Chon = ChonMenu(); XL_Menu( Ds, n, Chon); } while(1); } //Hàm menu thêm : cout
  9. void XL_Menu(NHANVIEN Ds[MAX], int n, int Chon) { char MaNV[10]; char Phong[20]; switch(Chon) { //Case 1: như vd1 //Case 2: //Case 3: case 4: cout
  10. double Luong; char Phong[20]; for( i = 0; i < n-1; i++) if(stricmp(Ds[i].MaNV, MaNV)==0) { _flushall(); cout
  11. cout
  12. mã số học sinh,  Họ,  Tên,  tuổi,  điểm trung bình.  Chương trình tổ chức menu thực hiện các chức năng sau: • Nhập vào danh sách lớp • In ra danh sách lớp theo thứ tự giảm dần theo điểm trung bình. (theo thứ tự tự điển). • Tìm và in thông tin sinh viên theo tên ( tên sinh viên đ ược nh ập vào  thực hiện tìm theo tên đã nhập). • In ra danh sách học sinh phải thi lại và tổng số học sinh thi l ại. Biết r ằng phải thi lại nếu điểm trung bình nhỏ hơn 5 và lớn hơn hoặc bằng 3. • In ra danh sách học sinh có điểm trung bình >=8 và
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2