C#——教務管理システム設計01(20181003)

6099 ワード

目次
タスクターゲット
初歩的な設計構想
デザインログ

  • タスク目標
  • 学生情報管理に基づくデータベースプロジェクト訓練(1)授業時間:4(2)教育目的は今回の課程訓練を通じて、学生にデータベースシステム設計の基本構想を初歩的に掌握させる.C#を使用してクライアントソフトウェアのプログラム作成を完了できます.(3)教育内容:学生管理システムのデータベース表の設計、学生管理システムクライアントソフトウェアの設計と実現.(4)教育の重点と難点今回の課程の教育の重点と難点:表設計結果の合理性、クライアント開発過程における各種技術の使用の正確性.(5)授業方法今回の授業はタスク駆動を主とする.(6)教育内容1、訓練説明タスクC#端要求:1)まずシステムは3種類のユーザーロールに分けられる:管理者ロールは学生、教師情報の追加、削除、修正、閲覧機能を持っている;教師の役割は学生の成績を入力し、成績を修正し、成績統計、成績ソート、学生の基本情報検索などの機能を持っている.学生の役割は本人の成績閲覧、本人情報閲覧などの機能を持っている.本システムを使用する場合はログイン検証を行い、異なるユーザーが上記の異なるシステム機能を提供します.2)学生情報入力時、データ項目に対して検証を行い、C#正側表現或いはその他の検証方式を使用して、データに対してフォーマット或いはその他の方面の検証を行い、例えば郵便番号フォーマット、身分証明書、携帯電話番号の検証などである.3)すべての統計結果をグラフィカルに示す.サードパーティクラスライブラリを統合して完了するか、独自に設計して完了することができます.自分で1つのクラスでグラフィック処理を完了するように設計する4)結果出力,例えば学生名簿,成績表などに対して,印刷出力およびプレビュー機能を提供する.印刷出力は同様にクラス完了処理を設計する.5)出力結果、例えば学生基本情報表、成績表をEXECLとWordファイルに出力して保存し、出力内容はレイアウト処理を完了する.wordとEXECLファイル処理インタフェースは同様にクラスを設計してデータのレイアウトと保存を完了する必要がある.6)その他の要求は『プログラム設計特別訓練』と一致する.データベース・セクションの要件:1)データベース・テーブルの設計には、データの有効性を確保するための制約またはルールが必要です.2)マルチテーブルクエリにはビューの使用が必要です.3)多表データ挿入は取引によって完成し、データの完全性を確保する4)複雑な統計作業はストレージプロセスを使用し、ストレージプロセスを利用して統計を完成する.2、プレゼンテーション要求1)データベースの作成スクリプトを作成し、保存する.sqlファイル;あるいは、データベースの分離と追加操作によって、システム環境の構築を迅速に完了します.2)PPTを用意し、データベース設計とクライアント設計の2つの部分を含む.
     
  • 初歩設計構想
  • 三層アーキテクチャを用いて教務管理システムを実現する
  • インタフェースは3つの部分に分かれている:
  • ログインインタフェース(ログインとパスワードの変更、パスワードの忘れインタフェースを含む)
  • 操作選択画面
  • ウェルカムインタフェース、自動識別アイデンティティ
  • アイデンティティを自動的に認識し、buttonプロパティをコードで変更し、イベント呼び出しの関数
  • をクリックします.
  • 展示台インタフェース
  • グラフィックディスプレイインターフェース
  • デジタルディスプレイインターフェース
  • プログラム三層アーキテクチャ対応:
  • ログイン画面:
  • 2つのテーブルでのpwdとIDのクエリに対応
  • 操作選択画面
  • 自動識別アイデンティティ、対応するテーブルで修正データ
  • を問い合わせる
  • 各データベースのテーブルはクラスを確立し、その操作をカプセル化

  • 展示台のインタフェース:
  • ログインインタフェースと同様に、返された結果に基づいてサードパーティクラスライブラリを呼び出して表示局(グラフィックス出力とデジタルフォーマット出力)
  • に出力する
  • コード確立コントロールを使用してデータを格納します(グラフィックデータをピクチャとして保存し、pictureboxで表示できます.
    設計ログ
  • 三層ステップ:分析機能
    管理者:学生、教師情報の追加、削除、修正、閲覧機能;
  • 教師:学生の成績を入力し、成績を修正し、成績統計、成績ランキング、学生基本情報検索
  • 学生:本人成績閲覧、本人情報閲覧
  • 学生情報入力時、データを検証し、正規表現またはその他、フォーマット検証などを要求する.
  • 統計結果グラフィック表示.サードパーティクラスライブラリまたはカスタムクラス
  • 結果出力(例えば学生名簿、成績表など)は印刷出力、印刷プレビュー機能を提供し、印刷出力設計はクラス完了
  • 出力結果をEXECLとWordファイルに出力して保存し、出力内容はレイアウト処理を完了する.ファイル処理インタフェースはクラス完了
  • を設計する.
  • データベース要件:
  • テーブルの設計には、データの有効性
  • を確保するための制約またはルールが必要です.
  • マルチテーブルクエリビューの使用
  • マルチテーブルデータ挿入はトランザクション処理で完了し、データ整合性を確保
  • 展示要求:
  • データベースの作成スクリプトを作成し、.sqlファイルとして保存するか、データベースの分離と追加操作によって、環境の構築を迅速に完了する
  • PPTを用意し、データベース設計とクライアント設計の2つの部分
  • に分けます.
  • 機能に基づいてSQL文を決定
  • データ・アクセス・レイヤ(DAL)でSQL文を実行する関数を記述
  • //この関数はどのクラスにあるべきですか.一般的に、現在のSQL文がどのテーブルを操作するかは、データ・アクセス・レイヤにクラスを作成します.このクラスの名前はテーブル名と同じで、このテーブルを操作するすべての関数がクラスに書き込まれます.
  • ビジネスロジック層を記述する方法
  • 表現層コード作成
  • 5.1収集データ5.2展示データ5.3対応するビジネスロジック層を呼び出して具体的な機能を実現する
  • timerリアルタイムモニタtextboxなどのコントロールを追加して検証できます.
  • 複雑な統計作業はストレージプロセスを使用し、ストレージプロセスを利用して統計を完成する
  • 日常メモ
  • Textbox.passwordchar = ‘*’;
    // textbox.text      (    *   )
            private void pictureBox4_Click(object sender, EventArgs e)
            {
                textBox2.PasswordChar = new char();
            }

  • //入力したテキストを「*」で表示させる
    WinFormにおけるTextBoxコントロールのPasswordChar属性のデフォルトは設定されていない、あるいはパスワードモードがオンになっていない.この属性が設定されているとパスワードモードがオンになり、入力された内容が設定されているその属性の値で表示される.ではどうやってPasswordCharの設定をキャンセルするのか.まとめると3つの方法があり、本質はPasswordCharの値をデフォルト値に割り当てることである.デフォルト値を指定すると、通常のテキストに従って表示されます.3つのメソッドコードは次のとおりです.
    this.textBox1.PasswordChar = new char();
    this.textBox1.PasswordChar = '\0';
    this.textBox1.PasswordChar = default(char);
    //入力したテキストを正常に表示する
  • Shift+Alt+F 10生成対応関数
  • データベースに接続し、データベース共通フォーマット(ログインボタン)
    //                   
            private void button2_Click(object sender, EventArgs e)
            {
                //1.    
                string loginID = textBox1.Text;
                string loginpwd = textBox2.Text;
                
    
                //2.             ,        
                string constr = "Data Source = localhost ; Initial Catalog = StudyOprationSytem ; Integrated Security = True;User ID=sa;Password=123456;Database=StudyOprationSystem;";
                using (SqlConnection con = new SqlConnection(constr))
                {
                    string sql = string.Format("select * from users where ID = '{0}'",loginID);
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        con.Open();
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            if (reader.HasRows)
                            {
                                //     
                                if (reader.Read())
                                {
                                    //3.        ,         
                                    //        ,            
                                    string dbpwd = reader.GetString(2);
                                    if (loginpwd == dbpwd)
                                    {
                                        //    
                                        MessageBox.Show("    ");
    
                                        //      
                                        button3.Enabled = true;
                                        button3.Visible = true;
    
                                        //           ID,   IDshare
                                        IDshare.ID = reader.GetString(1);
                                    }
                                    else
                                    {
                                        MessageBox.Show("    ");
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("     ");
                                //4.         ,    “      ”
                            }
                        }
                    }
                }    
            }
  • を使用
  • Formウィンドウ切り替え
  • This.hide;
    Form2 frm = new Form2();
    Frm.show();