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

Báo cáo môn lập trình hướng đối tượ ng tạo class có tên sohoc gồm có các thành phần dữ liệu sau

34 5 0

Đ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 34
Dung lượng 2,1 MB

Nội dung

  BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MƠN LẬP TRÌNH HƯỚNG ĐỐI TƯỢ NG Giảng viên hướ ng dẫn: ThS Nguy ễn  H ữ u Ti ế n  Sinh viên thự c hiện:  PHAN LÊ PHÚC NGUYÊ N  –  H U Ỳ N H NG ỌC THÁI H ỌC Mssv: K13THO0031 –  K 13TH O0014 Lớ p: K13THO1   Bình Thuận, ngày 21 tháng 12 năm 2022  Câu Tạo class có tên SoHoc g ồm có thành phần dữ liệu sau: * private number1 (float) * private number2 (float) Phương thức * Phương thức khở i tạo mặc định * Phương thức khở i tạo có tham số  * Các property cho tất cả các trườ ng * Nhap(): Nhậ p hai số number1, number2 * Xuat(): Hiển thị hai số number1, number2 * Cong(): Dùng để cộng number1, number2 * Tru(): Dùng để tr ừ number1, number2 * Nhan(): Dùng để nhân number1, number2 * Chia(): Dùng để chia number1, number2 Code using System; namespace BaiThi { class SoHoc  { private float number1; private float number2; public SoHoc() { } public SoHoc(float number1, float number2) { this.number1 = number1; this.number2 = number2; } public float Number1 { get { return number1; } set { number1 = value; } }   public float Number2 { get { return number2; } set { number2 = value; } } public void Nhap() { Console.Write( "Nhap so thu nhat: " ); number1 = float.Parse(Console.ReadLine()); Console.Write( "Nhap so thu hai: " ); number2 = float.Parse(Console.ReadLine()); } public void Xuat() { Console.WriteLine( "So thu nhat: "+number1); Console.WriteLine( "So thu hai: "+number2); } public float Cong() { return number1 + number2; } public float Tru() { return number1 - number2; } public float Nhan() { return number1 * number2; } public float Chia() { if (number2 == 0) { Console.WriteLine( "Khong the chia cho so 0" ); return 0; } else  { return number1 / number2; } } } } Demo:   Câu Tạo class NhanVien gồm thuộc tính:   * Tên * Tuổi  * Địa chỉ  * Tiền lương (double)  * Số làm (int)   Viết phương thức sau:  * Khởi tạo mặc định  * Khởi tạo đầy đủ tham số  * Property cho trường  * NhapThongTin(): Nhập thông tin cho nhân viên   * XuatThongTin(): Hiển thị thơng tin nhân viên hình   * TinhTienThuong(): Tính tiền thưởng nhân viên theo cơng thức sau:   * Nếu tổng số làm nhân viên >=200 thưởng = Lương *20%   * Nếu tổng số làm nhân viên =100 thưởng = lương  * 10% * Nếu tổng số làm nhân viên = 200) return luong * 0.2; else if (soGioLam >= 100) return luong * 0.1; else  return 0; } } }   Demo: Câu 3: Tạo lớp Student lưu trữ thông tin sinh viên, gồm thành phần liệu sau: * Mã sinh viên : chứa ký tự  * Điểm trung bình: từ 0.0 -10.0 * Tuổi: phải lớn 18  * Lớp: Phải Bắt đầu ký tự ‘A’ ‘C’   Viết phương thức sau:  * Khởi tạo mặc định  * Khởi tạo có tham số  * Property cho trường  * Nhập thông tin cho sinh viên (theo ràng buộc liệu trên)   * Hiển thị thông tin sinh viên hình  * Kiểm tra xem sinh viên có học bổng khơng (điểm trung bình >=8.0)   Code: using System; namespace BaiThi.Cau3 { class Student  { private string maSV; private float diemTB; private int tuoi; private string lop; public Student()   { } public Student(string maSV, float diemTB, int tuoi, string lop) { this.maSV = maSV; this.diemTB = diemTB; this.tuoi = tuoi; this.lop = lop; } public string MaSV { get { return maSV; } set { maSV = value; } } public float DiemTB { get { return diemTB; } set { diemTB = value; } } public int Tuoi { get { return tuoi; } set { tuoi = value; } } public string Lop { get { return lop; } set { lop = value; } } public void NhapThongTin() { Console.Write( "Nhap ma sinh vien: " ); string tempMaSV = Console.ReadLine(); if (tempMaSV.Length != 8) { Console.WriteLine( "Ma sinh vien khong dung ki tu!" ); return; } Console.Write( "Nhap diem trung binh: " ); float tempDiemTB = float.Parse(Console.ReadLine()); if (tempDiemTB < || tempDiemTB > 10) { Console.WriteLine( "Diem sinh vien khong hop le !" ); return; } Console.Write( "Nhap so tuoi: " ); int tempTuoi = int.Parse(Console.ReadLine()); if (tempTuoi < 18) { Console.WriteLine( "Tuoi cua sinh vien phai lon hon bang 18" ); return; } Console.Write( "Nhap lop sinh vien: " ); string tempLopSV = Console.ReadLine(); if (!(tempLopSV.StartsWith( 'A') || tempLopSV.StartsWith( 'C'))) {   Console.WriteLine( "Ma lop phai bat dau bang A hoac C!" ); return; } maSV = tempMaSV; diemTB = tempDiemTB; tuoi = tempTuoi; lop = tempLopSV; } public void XuatThongTin() { Console.WriteLine( "Ma so sinh vien: " + maSV); Console.WriteLine( "Diem trung binh: "  + diemTB); Console.WriteLine( "Tuoi sinh vien: "  + tuoi); Console.WriteLine( "Lop sinh vien: "  + lop); } public bool KiemTraHocBong() { if (diemTB >= 8) return true; else  return false; } } } Demo: Câu 4: Xây dựng lớp Vector có thành phần liệu sau:   * Hoành độ đầu  * Tung độ đầu  * Hoành độ cuối  * Tung độ cuối  Viết phương thức sau:  * Kiểm tra hai Vector có khơng   * Tính góc hai vector   * Tính module vector     * Kiểm tra hai vector có phương khơng   * Cộng, trừ, nhân hai vector   Hàm Main(): Nhập vào hai vector thực phép tốn hai vector   Code: using System; namespace BaiThi { class Vector  { // X1, Y1 la diem bat dau   // X2, Y2 la diem ket thuc   public double X1 { get; set; public double Y1 { get; set; public double X2 { get; set; public double Y2 { get; set; } } } } public Vector(double x1, double y1, double x2, double y2) { X1 = x1; Y1 = y1; X2 = x2; Y2 = y2; // (x2 - x1, y2 - y1) = (a1, b1)   } public bool IsEquals(Vector v) { return X1 == v.X1 && Y1 == v.Y1 && X2 == v.X2 && Y2 == v.Y2; } public double TinhGoc(Vector v) { double tichVoHuong = TichVoHuong(v); double doDaiA = TinhModule(); double doDaiB = v.TinhModule(); double goc = Math.Acos(tichVoHuong / (doDaiA * doDaiB)); return goc; } public double TinhModule() { return Math.Sqrt(Math.Pow(X2 - X1, 2) + Math.Pow(Y2 - Y1, 2)); } public bool LaCungPhuong(Vector v) { // Hai vector cung phuong ca dung he so   double a1 = X2 - X1; double b1 = Y2 - Y1; double a2 = v.X2 - v.X1; double b2 = v.Y2 - v.Y1; double heSo1 = a1 / b1; double heSo2 = a2 / b2; if (heSo1 == heSo2)   sortedStudents[i].XuatThongTin(); Console.Write( "\n\n"); } } static void xuLy6() { //Hien thi danh sach duoc nhan hoc bong   if (isEmptyStudent()) { return; } Console.WriteLine( " Danh sach sinh vien duoc hoc bong -\n"); for (int i = 0; i < students.Length; i++) { if (students[i].KiemTraHocBong()) { students[i].XuatThongTin(); Console.Write( "\n"); } } } static bool isEmptyStudent() { if (students == null || students.Length == 0) { Console.WriteLine( "Danh sach sinh vien !" ); return true; } return false; } } } Demo: Câu 8: Tạo lớp Teacher kế thừa từ lớp Person, lưu trữ thông tin giảng viên Gồm thành  phần liệu sau: * Lớp dạy (phải bắt đầu chữ cái: G, H, I, K, L, M   19   * Lương dạy  * Số dạy tháng  Viết phương thức sau:  * Ghi đè phương thức nhập, xuất lớp Person.  * Tính lương giảng viên theo công thức sau:   Nếu lớp dạy lớp buổi sáng buổi chiều (Lớp G, H, I, K) thì:   Lương = lương dạy x Số dạy tháng   Nếu lớp dạy lớp buổi tối (Lớp L, M) thì:  Lương = lương dạy x Số dạy tháng + 200000đ  Code: using System; namespace BaiThi { class Teacher : Person { private string lopDay; private float luong1Gio; private float soGioDay; public Teacher() : base() { } public string LopDay { get { return lopDay; } set { lopDay = value; } } public float Luong1Gio { get { return luong1Gio; } set { luong1Gio = value; } } public float SoGioDay { get { return soGioDay; } set { soGioDay = value; } } public void NhapThongTin() { base.NhapThongTin(); Console.Write( "Nhap lop day: " ); lopDay = Console.ReadLine(); while (!(lopDay.StartsWith( 'G') || lopDay.StartsWith( 'H') || lopDay.StartsWith( 'I') || lopDay.StartsWith( 'K') || lopDay.StartsWith( 'L') || lopDay.StartsWith( 'M'))) { 20   Console.WriteLine( "Lop day khong hop le, vui long bat dau bang G, H, I, K, L, M" ); Console.Write( "Nhap lai lop day: " ); lopDay = Console.ReadLine(); } Console.Write( "Nhap luong gio day: " ); luong1Gio = float.Parse(Console.ReadLine()); while (luong1Gio < 0) { Console.WriteLine( "Luong gio day khong be hon !" ); Console.Write( "Nhap lai luong gio day: " ); luong1Gio = float.Parse(Console.ReadLine()); } Console.Write( "Nhap so gio day: " ); soGioDay = float.Parse(Console.ReadLine()); while (soGioDay < 0) { Console.WriteLine( "So gio day khong be hon !" ); Console.Write( "Nhap lai so gio day: " ); soGioDay = float.Parse(Console.ReadLine()); } } public void XuatThongTin() { base.XuatThongTin(); Console.WriteLine( "Lop day: " + lopDay); Console.WriteLine( "Luong gio day: " + luong1Gio); Console.WriteLine( "So gio day: " + soGioDay); Console.WriteLine( "Tong tien luong: "  + TinhLuong()); } public float TinhLuong() { Char startLetter = lopDay[0]; switch (startLetter) { case 'G': case 'H': case 'I': case 'K': return soGioDay * luong1Gio; case 'L': case 'M': return soGioDay * luong1Gio + 200000; } return 0; } } } Demo: 21   Câu 9: Tạo lớp TeacherTest chứa hàm Main() thực công việc sau:   Tạo menu lựa chọn với yêu cầu cụ thể sau:   1 –   Nhập vào danh sách n giảng viên (với n số lượng giảng viên nhập từ    bàn phím) 2 –  Hiển thị danh sách giảng viên nhập hình 3 –  Hiển thị giảng viên có số dạy cao   4 –  Hiển thị giảng viên có lương thực nhận cao   5 –  Thoát Code: using System; namespace BaiThi { class TeacherTest  { static Teacher[] teachers; public static void Main() { while (true) { printMenu(); luaChon(); } } 22   static void printMenu() { Console.WriteLine( " -MENU QUAN LY GIANG VIEN -" ); Console.WriteLine( "1 Nhap danh sach giang vien moi" ); Console.WriteLine( "2 Hien thi danh sach giang vien da nhap" ); Console.WriteLine( "3 Hien thi giang vien co gio day cao nhat" ); Console.WriteLine( "4 Hien thi giang vien co luong cao nhat" ); Console.WriteLine( "5 Thoat chuong trinh" ); } static void luaChon() { Console.Write( "Lua chon: "); int num = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (num) { case 1: xuLy1(); break; case 2: xuLy2(); break; case 3: xuLy3(); break; case 4: xuLy4(); break; case 5: // Thoat chuong trinh   Environment.Exit(0); break; default: Console.WriteLine( "Lua chon khong hop le" ); break; } Console.Write( "\n\n"); } static void xuLy1() { // Nhap danh sach giang vien   Console.Write( "Nhap so luong giang vien n: " ); int n = int.Parse(Console.ReadLine()); teachers = new Teacher[n]; for (int i = 0; i < teachers.Length; i++) { teachers[i] = new Teacher(); Console.WriteLine( " -Nhap thong tin giang vien thu "  + (i + 1) + " " ); teachers[i].NhapThongTin(); } } static void xuLy2() { if (isEmptyTeacher()) { return; } 23   // Hien thi danh sach giang vien   Console.WriteLine( " Danh sach giang vien -\n"); for (int i = 0; i < teachers.Length; i++) { Console.WriteLine( " -Giang vien thu "  + (i + 1) + " -"); teachers[i].XuatThongTin(); Console.Write( "\n"); } } static void xuLy3() { if (isEmptyTeacher()) { return; } // Khơi tạo giá tr ị đầu tiên  Teacher maxGioDay = teachers[0]; // Duy ệt từ 1 thay vì giá tr ị ban đầu 1  for (int i = 1; i < teachers.Length; i++) { Teacher teacher = teachers[i]; if (teacher.SoGioDay > maxGioDay.SoGioDay) maxGioDay = teacher; } Console.WriteLine( " Giang vien co gio day cao nhat "); maxGioDay.XuatThongTin(); Console.Write( "\n"); } static void xuLy4() { if (isEmptyTeacher()) { return; } // Khơi tạo giá tr ị đầu tiên  Teacher maxLuong = teachers[0]; for (int i = 1; i < teachers.Length; i++) { Teacher teacher = teachers[i]; if (teacher.TinhLuong() > maxLuong.TinhLuong()) maxLuong = teacher; } Console.WriteLine( " Giang vien co luong cao nhat "); maxLuong.XuatThongTin(); Console.Write( "\n"); } static bool isEmptyTeacher() { if (teachers == null || teachers.Length == 0) 24   { Console.WriteLine( "Danh sach giang vien !" ); return true; } return false; } } } Demo: Câu 10: Cuối năm học, nhà trường muốn trao phần thưởng cho sinh viên giỏi, giáo viên có tham gia nghiên cứu đề tài khoa học Trong thơng tin sinh viên là: Họ tên, ngày sinh, lớp, điểm trung bình Thơng tin giáo viên là: Họ tên, ngày sinh, khoa, số  bài báo Điều kiện khen thưởng sinh viên có điểm trung bình lớn Điều kiện khen thưởng giáo viên có báo nghiên cứu khoa học Áp dụng tính kế thừa đa hình, thực yêu cầu sau:   * Xây dựng lớp Person gồm thông tin chung hai lớp giáo viên sinh viên Sau xây dựng hai lớp giáo viên sinh viên kế thừa từ lớp Person   * Xây dựng phương thức nhập, xuất thông tin lớp Person, sau ghi đè lại  phương thức hai lớp sinh viên giáo viên * Khởi tạo mảng để lưu trữ đối tượng sinh viên giáo viên In hình danh sách sinh viên giáo viên khen thưởng Code 1: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaiThi.Cau10 { class Person  { protected string hoTen; 25   protected DateTime ngaySinh; public Person() { ngaySinh = DateTime.Now; } public Person(string hoTen, DateTime ngaySinh) { this.hoTen = hoTen; this.ngaySinh = ngaySinh; } public string HoTen { get { return hoTen; } set { hoTen = value; } } public DateTime NgaySinh { get { return ngaySinh; } set { ngaySinh = value; } } public void NhapThongTin() { Console.Write( "Nhap ho ten: " ); hoTen = Console.ReadLine(); Console.Write( "Nhap sinh (dd/mm/yyyy): " ); ngaySinh = DateTime.Parse(Console.ReadLine()); } public void XuatThongTin() { Console.WriteLine( "Ho ten: " + hoTen); Console.WriteLine( "Ngay sinh: " + ngaySinh.Date.ToString( "d")); } } } Code 2: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaiThi { class GiaoVien: Cau10.Person { private string khoa; private int soBaiBao; public GiaoVien() : base() { } public GiaoVien(string hoTen, DateTime ngaySinh, string khoa, int  soBaiBao) : base(hoTen, ngaySinh) { this.khoa = khoa; this.soBaiBao = soBaiBao; 26   } public string Khoa { get { return khoa; } set { khoa = value; } } public int SoBaiBao { get { return soBaiBao; } set { soBaiBao = value; } } public void NhapThongTin() { base.NhapThongTin(); Console.Write( "Nhap khoa cua giao vien: " ); khoa = Console.ReadLine(); Console.Write( "Nhap so bai bao: " ); soBaiBao = int.Parse(Console.ReadLine()); while (soBaiBao < 0) { Console.Write( "So bai bao khong duoc < !" ); Console.Write( "Nhap lai so bai bao: " ); soBaiBao = int.Parse(Console.ReadLine()); } } public void XuatThongTin() { base.XuatThongTin(); Console.WriteLine( "Khoa: " + khoa); Console.WriteLine( "So bai bao: " + soBaiBao); } public bool XetKhenThuong() { if (soBaiBao >= 1) return true; else  return false; } } } Code 3: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaiThi { class SinhVien : Cau10.Person { private string lop; private float diemTrungBinh; 27   public SinhVien() : base() { } public SinhVien(string hoTen, DateTime ngaySinh, string lop, float  diemTrungBinh) : base(hoTen, ngaySinh) { this.lop = lop; this.diemTrungBinh = diemTrungBinh; } public string Lop { get { return lop; } set { lop = value; } } public float DiemTrungBinh { get { return diemTrungBinh; } set { diemTrungBinh = value; } } public void NhapThongTin() { base.NhapThongTin(); Console.Write( "Nhap lop hoc: "); lop = Console.ReadLine(); Console.Write( "Nhap diem trung binh: " ); diemTrungBinh = float.Parse(Console.ReadLine()); while (diemTrungBinh < || diemTrungBinh > 10) { Console.WriteLine( "Diem sinh vien khong hop le !" ); Console.Write( "Nhap lai diem trung binh: " ); diemTrungBinh = float.Parse(Console.ReadLine()); } } public void XuatThongTin() { base.XuatThongTin(); Console.WriteLine( "Lop hoc: " + lop); Console.WriteLine( "Diem trung binh: "  + diemTrungBinh); } public bool XetKhenThuong() { if (diemTrungBinh > 8) return true; else  return false; } }   Code 4: } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 28   namespace BaiThi { class TestBai10  { static Cau10.Person[] danhSach; public static void Main() { while (true) { printMenu(); luaChon(); } } static void printMenu() { Console.WriteLine( " -MENU QUAN LY TRUONG HOC -" ); Console.WriteLine( "1 Nhap danh sach doi tuong" ); Console.WriteLine( "2 Hien thi danh sach da nhap" ); Console.WriteLine( "3 In cac doi tuong duoc khen thuong" ); Console.WriteLine( "4 Thoat chuong trinh" ); } static void luaChon() { Console.Write( "Lua chon: "); int num = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (num) { case 1: xuLy1(); break; case 2: xuLy2(); break; case 3: xuLy3(); break; case 4: // Thoat chuong trinh   Environment.Exit(0); break; default: Console.WriteLine( "Lua chon khong hop le" ); break; } Console.Write( "\n\n"); } static void xuLy1() { Console.Write( "Nhap so luong n: " ); int n = int.Parse(Console.ReadLine()); danhSach = new Cau10.Person[n]; for (int i = 0; i < danhSach.Length; i++) { Console.WriteLine( "\nChon doi tuong thu " +(i+1)+" muon nhap"); Console.WriteLine( "1 Nhap thong tin sinh vien" ); Console.WriteLine( "2 Nhap thong tin giang vien" ); Console.Write( "Lua chon: "); 29   int choice = int.Parse(Console.ReadLine()); while (choice > || choice < 1) { Console.WriteLine( "Lua chon khong hop le!" ); Console.Write( "Lua chon cua ban: " ); choice = int.Parse(Console.ReadLine()); } if (choice == 1) { SinhVien sv = new SinhVien(); sv.NhapThongTin(); danhSach[i] = sv; } else  { GiaoVien gv = new GiaoVien(); gv.NhapThongTin(); danhSach[i] = gv; } } } static void xuLy2() { if (isEmptyArray()) return; Console.WriteLine( " Danh sach doi tuong da nhap -\n"); for (int i = 0; i < danhSach.Length; i++) { if (danhSach[i] is GiaoVien) { Console.WriteLine( " -Giang vien thu "  + (i + 1) + " "); GiaoVien gv = (GiaoVien)danhSach[i]; gv.XuatThongTin(); Console.Write( "\n"); } else if (danhSach[i] is SinhVien) { Console.WriteLine( " -Sinh vien thu "  + (i + 1) + " -"); SinhVien sv = (SinhVien)danhSach[i]; sv.XuatThongTin(); Console.Write( "\n"); } } } static void xuLy3() { if (isEmptyArray()) return; Console.WriteLine( " Danh sach khen thuong -\n"); for (int i = 0; i < danhSach.Length; i++) { if (danhSach[i] is GiaoVien) { 30   GiaoVien gv = (GiaoVien)danhSach[i]; if (gv.XetKhenThuong()) { Console.WriteLine( " -Giao vien duoc khen thuong -" ); gv.XuatThongTin(); Console.Write( "\n"); } } else if (danhSach[i] is SinhVien) { SinhVien sv = (SinhVien)danhSach[i]; if (sv.XetKhenThuong()) { Console.WriteLine( " -Sinh vien duoc khen thuong -" ); sv.XuatThongTin(); Console.Write( "\n"); } } } } static bool isEmptyArray() { if (danhSach == null || danhSach.Length == 0) { Console.WriteLine( "Danh sach ! Vui long tao danh sach" ); return true; } return false; } }  } Demo: 31   Liên kết bài  File program.cs Gỡ comment để chạy   Code: using System; namespace BaiThi { class Program  { static void Main(string[] args) { //Test bai 1  //SoHoc so1 = new SoHoc();   //so1.Nhap();   //so1.Xuat();   //Console.WriteLine("Phep cong la: " + so1.Cong());   //Console.WriteLine("Phep tru la: " + so1.Tru());   //Console.WriteLine("Phep nhan la: " + so1.Nhan());   //Console.WriteLine("Phep chia la: " + so1.Chia());   // Test bai   //NhanVien nv = new NhanVien();   //nv.NhapThongTin();   //nv.XuatThongTin();   //double tienThuong = nv.TinhTienThuong();   //Console.WriteLine("Tien thuong cua nhan vien: " + tienThuong);   // Test bai   //Cau3.Student student = new Cau3.Student();   //student.NhapThongTin();   //student.XuatThongTin();   //student.KiemTraHocBong();   // Test bai   32   //Vector v = new Vector(1, 1, 2, 1);   //Vector v2 = new Vector(2, 2, 4, 2);   //Console.WriteLine("Goc: "+v.TinhGoc(v2));   //Console.WriteLine("Module: " + v.TinhModule());   //Console.WriteLine("La cung phuong: "+v.LaCungPhuong(v2));   //Vector v3 = v.Cong(v2);   //Vector v4 = v.Tru(v2);   //Console.WriteLine("Tich vo huong la: " + v.TichVoHuong(v2));   //StudentTest.Main();   //TeacherTest.Main();   TestBai10.Main(); } } } 33

Ngày đăng: 12/12/2023, 15:11

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

TÀI LIỆU LIÊN QUAN

w