Website-Blog
要耐心、細心、關心,毅力、努力、決斷力。
Love was spring
when feelings bloomed
as we first said hello
and looked into each other's eyes.
Love became summer
when passions rose
as we held hands
and said our vows.
Love turned to autumn
when we fell apart
as things went sour
and we just can't stay together.
Love changed to winter
when the nights grew cold
as we traveled life's road
without each other.
override new
base.X();
static
protected public private
try{} catch(Exception ex){}
int dog2;
public int dog1 { set { dog2 = value; } get { return dog2; } }
int a, b;
CallRef(ref a, ref b);
public static void CallRef(ref int x, ref int y){...}
{
private string info; //Private屬性,其他繼承的類別無法改變它的值
public string id, name, sex, position; //其他繼承的類別可以使用這些屬性
public int age, days, salary; //其他繼承的類別可以使用這些屬性
public void ShowPrivateInfo() //透過繼承類別呼叫ShowPrivateInfo()
{
info = "This is a program about class inheritance.";
Console.WriteLine(info);
}
public void ShowBaseInfo() //透過繼承類別呼叫ShowBaseInfo()
{
Console.WriteLine(position + "的基本資訊:") ;
Console.WriteLine("編號:[" + id + "]");
Console.WriteLine("姓名:[" + name + "]");
Console.WriteLine("性別:[" + sex + "]");
Console.WriteLine("年齡:[" + age+ "]");
Console.WriteLine("本月工作天數:[" + days + "]");
}
}
//-----------------------------------------------------------------------------------------
class Manager : Employee //Manager繼承Employee,但薪水算法不同
{
public void CountSalary() //Manager的薪水計算方式:將工作天數帶入薪水計算公式
{
salary = 60000 + days * 1000;
Console.WriteLine(position + "的本月薪水:[" + salary + "]");
}
}
class Normal : Employee //Normal繼承Employee,但薪水算法不同
{
public void CountSalary() //Normal的薪水計算方式:將工作天數帶入薪水計算公式
{
salary = days * 1500;
Console.WriteLine(position + "的本月薪水:[" + salary + "]");
}
}
class HourCount : Employee //HourCount繼承Employee,但薪水算法不同
{
public void CountSalary() //HourCount的薪水計算方式:將工作天數帶入薪水計算公式
{
salary = days * 100 * 8 ;
Console.WriteLine(position + "的本月薪水:[" + salary + "]");
}
}
//-----------------------------------------------------------------------------------------
class Program
{
static void Main(string[] args)
{
string choice;
bool exit = false;
Console.Write("請選擇要輸的的員工資訊:(a)經理 (b)一般員工 (c)時薪人員 (d)離開程式:");
choice = Console.ReadLine();
while (exit == false)
{
if (choice == "a")
{
Manager mm = new Manager(); //宣告一個Manager類別
mm.position = "經理";
mm.ShowPrivateInfo();
//輸入經理的各項資訊
Console.WriteLine("請輸入" + mm.position + "訊息");
Console.Write("編號:");
mm.id = Console.ReadLine();
Console.Write("姓名:");
mm.name = Console.ReadLine();
Console.Write("性別:");
mm.sex = Console.ReadLine();
Console.Write("年齡:");
mm.age = Int32.Parse(Console.ReadLine());
Console.Write("本月工作天數:");
mm.days = Int32.Parse(Console.ReadLine());
Console.WriteLine("-----------------------------------------------------");
//顯示經理的基本訊息與該月薪水
mm.ShowBaseInfo();
mm.CountSalary();
}
else if (choice == "b")
{
Normal nn = new Normal();
nn.position = "一般員工";
nn.ShowPrivateInfo();
//輸入一般員工的各項資訊
Console.WriteLine("請輸入" + nn.position + "訊息");
Console.Write("編號:");
nn.id = Console.ReadLine();
Console.Write("姓名:");
nn.name = Console.ReadLine();
Console.Write("性別:");
nn.sex = Console.ReadLine();
Console.Write("年齡:");
nn.age = Int32.Parse(Console.ReadLine());
Console.Write("本月工作天數:");
nn.days = Int32.Parse(Console.ReadLine());
Console.WriteLine("-----------------------------------------------------");
//顯示一般員工的基本訊息與該月薪水
nn.ShowBaseInfo();
nn.CountSalary();
}
else if (choice == "c")
{
HourCount hh = new HourCount();
hh.position = "時薪人員";
hh.ShowPrivateInfo();
//輸入時薪人員的各項資訊
Console.WriteLine("請輸入" + hh.position + "訊息");
Console.Write("編號:");
hh.id = Console.ReadLine();
Console.Write("姓名:");
hh.name = Console.ReadLine();
Console.Write("性別:");
hh.sex = Console.ReadLine();
Console.Write("年齡:");
hh.age = Int32.Parse(Console.ReadLine());
Console.Write("本月工作天數:");
hh.days = Int32.Parse(Console.ReadLine());
Console.WriteLine("-----------------------------------------------------");
//顯示時薪人員的基本訊息與該月薪水
hh.ShowBaseInfo();
hh.CountSalary();
}
else if (choice == "d") //按 d 離開程式
{
exit = true;
break;
}
else //輸入錯誤時顯示錯誤訊息
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("請輸入正確的選項或是按(d)離開程式!!");
}
Console.WriteLine("-----------------------------------------------------");
Console.Write("請選擇要輸的的員工資訊:(a)經理 (b)一般員工 (c)時薪人員 (d)離開程式:");
choice = Console.ReadLine();
}
}
}
Employee 阿狗 15.5
Manager 阿貓 40
code:
using System;
using System.IO;
class Employee
{
private string name;
protected float billingRate;
protected float salary;
public Employee(string name, float billingRate)
{
this.name = name;
this.billingRate = billingRate;
}
public float CalculateCharge(float hours)
{
return (salary = hours * billingRate);
}
public float GetSalary()
{
return salary;
}
public string TypeName()
{
return ("Employee");
}
}
class Manager : Employee
{
private float allowance;
public Manager(string name, float billingRate): base(name, billingRate)
{
allowance = 1000;
}
public new float CalculateCharge(float hours)
{
if (hours < 1.0F)
hours = 1.0F;
return (salary = hours * billingRate+allowance);
}
public new string TypeName()
{
return ("Civil Employee");
}
}
class Test
{
public static void Main()
{
Console.Write("請輸入檔案位置:");
string path2 = Console.ReadLine();
StreamReader sr = new StreamReader(@path2,System.Text.Encoding.Default);
string str = sr.ReadToEnd();
string[] s = str.Split('\n');
Employee[] e = new Employee[s.Length];
for (int i = 0; i < s.Length; i++)
{
string[] tmp = s[i].Split(' ');
if (tmp[0] == "Manager")
e[i] = new Manager(tmp[1], float.Parse(tmp[2]));
else if (tmp[0] == "Employee")
e[i] = new Employee(tmp[1], float.Parse(tmp[2]));
}
for (int i = 0; i < e.Length; i++)
{
e[i].CalculateCharge(i * 1.0F + 20.0F);
Console.WriteLine("{0} charge = {1}", e[i].TypeName(), e[i].GetSalary());
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConvertTest
{
class zzz
{
public double to10(string value, int based)
{
double sum = 0.0;
int count = 0;
if (value.Contains("."))
count = value.IndexOf('.') - 1;
else
count = value.Length - 1;
for (int i = 0; i < value.Length; i++) //n=>10
if (value[i] != '.')
{
if (char.Parse(value[i].ToString().ToUpper()) >='A')
sum += (char.Parse(value[i].ToString().ToUpper())-'A'+10) * Math.Pow(based, count--);
else
sum += Int32.Parse(value[i].ToString()) * Math.Pow(based, count--);
}
return sum;
}
public void TentoN(double sum,int gg)
{
string[] arr = sum.ToString().Split('.');
ArrayList dog1 = new ArrayList();
int left = Int32.Parse(arr[0]);
while (left != 0)
{
dog1.Add(left % gg);
left /= gg;
}
dog1.Reverse();
if (sum.ToString().Contains("."))
{
dog1.Add(".");
double right = double.Parse("0." + arr[1].ToString());
for (int i = 0; i < 10; i++)
{
if (Math.Floor(right) == Math.Ceiling(right))
break;
right = right * gg;
dog1.Add(Math.Floor(right));
right = right - Math.Floor(right);
}
}
for (int i = 0; i < dog1.Count; i++)
{
if (Int32.Parse(dog1[i].ToString())>9)
Console.Write((char)('A' + 10 - Int32.Parse(dog1[i].ToString())));
else
Console.Write(dog1[i]);
}
}
}
class Program
{
static void Main(string[] args)
{
Console.Write("請輸入數值:");
string value = Console.ReadLine();
Console.Write("請輸入基底:");
int based = Int32.Parse(Console.ReadLine());
zzz dog = new zzz();
double sum = dog.to10(value,based);
Console.WriteLine("10進位是 " + sum);//10
//=========================TO 10==================
Console.Write("請輸入基底:");
int gg = Int32.Parse(Console.ReadLine());
//int a=Convert.ToInt32(arr[0]);
dog.TentoN(sum, gg);
Console.ReadKey();
}
}
}