iSAMrx72's思いつきBlog

twitterが使いこなせない管理人のメモです。思いついたとき書きます。
トップスポンサー広告スポンサーサイト

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/ (--) --:--| スポンサー広告 | コメント(-) | トラックバック(-) | 編集
トッププログラミング言語C#興味有る人、居ませんよね。今回でこのシリーズは終了です。

C#興味有る人、居ませんよね。今回でこのシリーズは終了です。

最後は泥臭い、むちゃくちゃになりましたが、一応この版で考えていたことは完成です。

動作上の改善点としては、最初に表示するときに、全データで無く選択後のデータを

表示しないと、件数が多くなると全データ表示は意味が無くなりますね。

後はシステムで用意されてるListですか、これと配列のデータの移動、適用ですか

良く理解してません。

ソートから始めて、住所録をつくる、そんな感じに仕上がりました。

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

namespace ConsoleApplication1
{
    public class Entry : IComparable<Entry>
    {
        private string yomi;
        private string namae;

        public Entry(string yomi, string namae)
        {
            this.yomi = yomi;
            this.namae = namae;
        }

        public Entry()
        {
            this.yomi = "未定";
            this.namae = "未定";
        }

        int IComparable<Entry>.CompareTo(Entry other)
        {
            return this.yomi.CompareTo(other.yomi);
        }

       
        public string Yomi
        {
            get { return yomi; }
            set { yomi = value; }
        }

        public string Namae
        {
            get { return namae; }
            set { namae = value; }

        }


        public void OneDataInput()
        {
            Console.WriteLine("読み方 カタカナハンカク:");
            yomi = Console.ReadLine();
            Console.WriteLine("漢字氏名:");
            namae = Console.ReadLine();

        }


    }
}




namespace ConsoleApplication1
{
    class Meibo:Entry
    {
        private string jyusyo;

        public Meibo(string yo, string si, string jyu)
            : base(yo, si)
        {
            this.jyusyo = jyu;
        }

        public Meibo()
        {
            this.jyusyo = "";
            base.Yomi = "";
            base.Namae = "";
        }

        public string Jyusyo
        {
            set { this.jyusyo = value; }
            get { return this.jyusyo; }
        }

        public new void OneDataInput()
        {
            Console.WriteLine("読み方 カタカナハンカク:");
            string w = Console.ReadLine();
            if (w == "")
            {
                Yomi = this.Yomi;
                Console.WriteLine("{0}", Yomi);
            }
            else
                Yomi = w;

            Console.WriteLine("漢字氏名:");
            w = Console.ReadLine();
            if (w == "")
            {
                Namae = this.Namae;
                Console.WriteLine("{0}", Namae);
            }
            else
                Namae = w;

            Console.WriteLine("漢字住所:");
            w = Console.ReadLine();
            if (w == "")
            {
                Jyusyo = this.Jyusyo;
                Console.WriteLine("{0}", Jyusyo);
            }
            else
                Jyusyo = w;


        }

    }
  
}

 

namespace ConsoleApplication1
{
    class Program
    {
        public static void ShellSort<T>(T[] a)
            where T : IComparable<T>
        {
            int n = a.Length;
            int h;
            for (h = 1; h < n / 9; h = h * 3 + 1) ;
            for (; h > 0; h /= 3)
                for (int i = h; i < n; i++)
                    for (int j = i; j >= h && a[j - h].CompareTo(a[j]) > 0; j -= h)
                        Swap(ref a[j], ref a[j - h]);
        }


        public static void Swap<T>(ref T a, ref T b)
        {
            T c = a; a = b; b = c;
        }


        public static void AllDataWrite(Entry []llist)
        {
            StreamWriter sw = new StreamWriter(@"d:\c#src\test.txt");
           
                for (int i = 0; i < llist.Length; ++i)
                {
                    string w1 = llist[i].Yomi + "," + llist[i].Namae;
                    sw.WriteLine(w1);

                }
                sw.Close();
            
        }

        public static void AllDataWrite(Meibo[] llist)
        {
            StreamWriter sw = new StreamWriter(@"d:\c#src\test.txt");

            for (int i = 0; i < llist.Length; ++i)
            {
                string w1 = llist[i].Yomi + "," + llist[i].Namae + "," + llist[i].Jyusyo;
                sw.WriteLine(w1);

            }
            sw.Close();

        }

        public static void AllDataDisp(Entry []list)
        {
            for (int i = 0; i < list.Length; ++i)
                Console.Write("{0}, {1}, {2}\n", i, list[i].Yomi, list[i].Namae);
            Console.WriteLine();
        }

        public static void AllDataDisp(Meibo[] list)
        {
            for (int i = 0; i < list.Length; ++i)
                Console.Write("{0}, {1}, {2}, {3}\n", i, list[i].Yomi, list[i].Namae, list[i].Jyusyo);
            Console.WriteLine();
        }

        public static void AllDataGet(Entry[] list, string[] lines, int AllLines)
        {
            for (int linecount = 0; linecount < AllLines; linecount++)
            {
                string[] stArrayData = lines[linecount].Split(','); //この場合は、読みと氏名だけです。
                list[linecount].Yomi = stArrayData[0];              //','でデータを区切ってあります。
                list[linecount].Namae = stArrayData[1];             //Meiboクラス追加でこれでは駄目です。

            }

        }

        public static void AllDataGet(Meibo[] list, string[] lines, int AllLines)
        {
            for (int linecount = 0; linecount < AllLines; linecount++)
            {
                string[] stArrayData = lines[linecount].Split(','); //この場合は、読みと氏名だけです。
                list[linecount].Yomi = stArrayData[0];              //','でデータを区切ってあります。
                list[linecount].Namae = stArrayData[1];             //Meiboクラス追加でこれでは駄目です。
                list[linecount].Jyusyo = stArrayData[2];            //この部分が追加

            }

        }

        
        static void Main(string[] args)
        {
            string[] lines = System.IO.File.ReadAllLines(@"d:\c#src\test.txt");
            Meibo[] list = new Meibo[lines.Length];
            for (int w = 0; w < lines.Length; w++)
                list[w] = new Meibo();
           
            bool saisyo = true;
            bool done = false;

            int AllLines = lines.Length;

            while (!done)
            {
               
            ee:
                if (saisyo)
                {
                    Console.WriteLine("R=ファイルを読み込み");
                    Console.WriteLine("Q=終了\n");
                }
                else
                {
                    Console.WriteLine("R=ファイルを読み込み");
                    Console.WriteLine("E=訂正");
                    Console.WriteLine("W=ファイルへ書き出し");
                    Console.WriteLine("A=データの追加");
                    Console.WriteLine("D=削除");
                    Console.WriteLine("Q=終了\n");
                }

                string judge = Console.ReadLine().ToUpper();
               
                if (saisyo == true )
                {
                    if (!((judge == "R")|(judge == "Q")))
                        goto ee;

                }
                if( !( (judge == "R") | (judge == "E") | (judge == "W") | (judge == "Q")|(judge == "A") |(judge == "D") ) )
                    goto ee;                                        //Rデータ読み込み、E編集、Wファイルへ書き出し
                                                                    //Q終了、D一件のデータ削除、A一件のデータ追加
                switch ( judge )
                {
                    case "E":

                saido:
                        done = false;
                        Console.WriteLine("訂正する番号を入力");
                        int k = int.Parse(Console.ReadLine());

                        if (!(k >= 0 & k <= list.Length))
                            goto saido;

                        list[k].OneDataInput();
                        break;

                    case "Q":
                        done = true;
                        break;

                    case "W":
             

スポンサーサイト
11/29/ (木) 09:57| プログラミング言語コメント(0) | トラックバック(-) | 編集
URL
コメント
パスワード
秘密
管理者にだけ表示を許可する
 
プロフィール

isamrx73

Author:isamrx73
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック

月別アーカイブ
カテゴリ
検索フォーム

RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。