30/09/2018, 21:41

Xin mọi người giúp đỡ tối ưu đoạn code C#

Em mới học C# nhưng em chưa biết cách làm thế nào để tối ưu với rút gọn thuật toán,mọi ngườigiúp em tối đoạn code này của em với. Đây là đề " 4. Viết chương trình nhập họ tên,chỉ số điện kế tháng trước,chỉ số điện kế tháng này của 1 khách thuê điện kế. "

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BaiTap_4
{
    class KhachHang
    {
        private string TenKH;
        private double ChiSoCu, ChiSoMoi;
        
       public double TienDien()
        {
       return (ChiSoMoi-ChiSoCu)*452.45;
        }
       
        public void Nhap()
        {
            Console.Write("
Xin moi nhap ho ten Khach Hang: ");
            TenKH = Console.ReadLine();
           zildt:
            try
            {
                Console.Write("
Xin moi nhap chi so dien ke thang truoc: ");
                ChiSoCu = double.Parse(Console.ReadLine());
            }
            catch
            {
                Console.Write("
So dien ke phai la so. Xin moi nhap lai! ");
                goto zildt;
            }
           while (true)
           {
               try
               {
                   Console.Write("
Xin moi nhap chi so dien ke thang nay:");
                   ChiSoMoi = double.Parse(Console.ReadLine());
               }
               catch
               {
                   Console.Write("
So dien ke phai la so. Xin moi nhap lai!");
               }
               if (ChiSoMoi < ChiSoCu)
               {
                   Console.Write("
Chi so moi phai lon hon chi so cu. Xin vui long nhap lai!");
               }
               else
               {
                   break;
               }
           }
            
        }
        public void Xuat()
        {

            Console.Write("
Ten Khach Hang: {0}",TenKH);
            Console.Write("
Chi so cu cua khach hang la: {0}",ChiSoCu);
            Console.Write("
Chi so moi cua khach hang la: {0}",ChiSoMoi);
            Console.Write("
Chi so tieu thu thang nay la: {0}",(ChiSoMoi-ChiSoCu));
            Console.Write("
Tien Dien thang nay la: "+TienDien()+"VND");
        }

    }
    class Program
    {
        static void Main(string[] args)
        {


            KhachHang kh = new KhachHang();

            kh.Nhap();
            kh.Xuat();
            Console.ReadKey();





        }
    }
}
Trần Ngọc Khoa viết 23:57 ngày 30/09/2018

Mình không biết C# nhưng cái chương trình này chỉ dùng để nhập dữ liệu và tính toán đơn giản. Vậy thì có gì để tối ưu hơn nhỉ.

viết 23:41 ngày 30/09/2018

ý mình là còn cách nào ngắn gọn ko thôi ạ

Trần Ngọc Khoa viết 23:56 ngày 30/09/2018

Mình không rõ về C# nhưng nếu dùng C để kiểm tra thì mình nghĩ dùng do{} while(); ngắn hơn.

Văn Dương viết 23:56 ngày 30/09/2018

Thôi thì “Cò kè bớt một thêm hai”.
Từ 53 dòng xuống còn 43 dòng

using System;
namespace BaiTap_4 {
    class KhachHang {
        public string TenKH { get; private set; }
        private double ChiSoCu, ChiSoMoi;
        public double TienDien { get; private set; }
        public void Nhap() {
            Console.Write("\nXin moi nhap ho ten Khach Hang: ");
            TenKH = Console.ReadLine();
            NHAPTIENTHANGTRUOC: 
            Console.Write("\nXin moi nhap chi so dien ke thang truoc: ");
            if(double.TryParse(Console.ReadLine(),out ChiSoCu)) { 
                Console.Write("\nSo dien ke phai la so. Xin moi nhap lai! ");
                goto NHAPTIENTHANGTRUOC;
            }
            NHAPTIENTHANGNAY:
            Console.Write("\nXin moi nhap chi so dien ke thang nay:");
            if(double.TryParse(Console.ReadLine(), out ChiSoMoi)) {
                Console.Write("\nSo dien ke phai la so. Xin moi nhap lai!");
                goto NHAPTIENTHANGNAY;
            }
            if(ChiSoMoi < ChiSoCu) {
                Console.Write("\nChi so moi phai lon hon chi so cu. Xin vui long nhap lai!");
                goto NHAPTIENTHANGNAY;
            }
            TienDien = (ChiSoMoi - ChiSoCu) * 452.45;
        }
        public void Xuat() {
            Console.Write("\nTen Khach Hang: {0}", TenKH);
            Console.Write("\nChi so cu cua khach hang la: {0}", ChiSoCu);
            Console.Write("\nChi so moi cua khach hang la: {0}", ChiSoMoi);
            Console.Write("\nChi so tieu thu thang nay la: {0}", (ChiSoMoi - ChiSoCu));
            Console.Write("\nTien Dien thang nay la: " + TienDien + "VND");
        }
    }
    class Program {
        static void Main(string[] args) {
            KhachHang kh = new KhachHang();
            kh.Nhap();
            kh.Xuat();
            Console.ReadKey();
        }
    }
}
Hieu viết 23:50 ngày 30/09/2018

Cứ làm quen với kiểu “dài dòng” này đi bạn. Từ từ lên level cao hơn thì nhiều cái “ngắn gọn, súc tích” hơn rất nhiều ;).

Code của bạn tối ưu rồi
Không hiểu bạn cần “tối ưu” theo kiểu càng ngắn code càng tốt hay là về tốc độ, bộ nhớ

Bài liên quan
0