private int idtoidx(int id) { for (int i = 0; i < array.Size; i++) { account acc = (account)array[i]; if (acc.Id.Equals(id) == true) { return(i); } } throw new Exception("잘못된 계좌"); }
public static void filesersave(object[] arr, int size) { Stream ws = new FileStream("mlist.txt", FileMode.Create); BinaryFormatter serializer = new BinaryFormatter(); int max = arr.Length; serializer.Serialize(ws, max); serializer.Serialize(ws, size); for (int i = 0; i < size; i++) { account mem = (account)arr[i]; serializer.Serialize(ws, mem); } ws.Close(); }
public static account[] fileserload(out int max) { Stream rs = new FileStream("mlist.txt", FileMode.Open); BinaryFormatter deserializer = new BinaryFormatter(); max = (int)deserializer.Deserialize(rs); int size = (int)deserializer.Deserialize(rs); Console.WriteLine("불러온 최대저장개수 : {0}개", max); Console.WriteLine("불러온 개수 : {0}개", size); account[] memlist = new account[size]; for (int i = 0; i < size; i++) { memlist[i] = (account)deserializer.Deserialize(rs); } rs.Close(); return(memlist); }
public void fileload() { try { //member[] arr=wbfile.fileload(); int max; account[] arr = wbfile.fileserload(out max); array = new wbarray(max); for (int i = 0; i < arr.Length; i++) { account mem = arr[i]; array.insert(mem); } } catch (FileNotFoundException) { //파일이 없으니깐 배열객체를 생성하겠다. int size = wblib.inputnumber("배열의 크기"); array = new wbarray(size); } }
public void Withdraw() { try { int id = wblib.inputnumber("계좌 ID"); int money = wblib.inputnumber("출금액"); account mem = (account)array[idtoidx(id)]; if (money < 0 || mem.Balance < money) { Console.WriteLine("잘못된 금액"); return; } mem.MinMoney(money); } catch (Exception ex) { Console.WriteLine("출금 오류"); Console.WriteLine(">> " + ex.Message); } }
public void deposit() { try { int id = wblib.inputnumber("계좌 ID"); int money = wblib.inputnumber("입금액"); if (money < 0) { Console.WriteLine("잘못된 금액"); return; } account mem = (account)array[idtoidx(id)]; //new 키워드를 사용하면 기반 형식의 변수로 다양한 파생개체를 참조할때 //실제개체에 정의된 멤버가 사용되지않는다. //그래서 virtual ,override로 바꿨습니다 //if (mem is contriaccount) //{ // contriaccount conmem = (contriaccount)mem; // conmem.addmoney(money); //} //else if (mem is faithaccount) //{ // faithaccount faitmem = (faithaccount)mem; // faitmem.addmoney(money); //} //else mem.addmoney(money); } catch (Exception ex) { Console.WriteLine("입금 오류"); Console.WriteLine(">> " + ex.Message); } }