C言語のブログ求人 - 構造、ファイル

1.この章では、研究をまとめたもの(2点)

1.1学習コンテンツの概要

どのように(1)にどのように割り当てメンバーに、構造を定義

结构体的一般形式为:
     struct  结构体名
    {
     数据类型   成员名1;
     数据类型   成员名2;
     :
     数据类型   成员名n;
     };

。定義された構造と割付:
構造タイプを定義し、C言語、構造型の変数の方法の最も一般的な定義である変数名を定義します。

      struct 结构体名
     {
             成员列表;
     };
     struct 结构体名 变量名;

。B直下型変数の定義構造:

struct      //没有结构体名
 {
       成员列表;
 }变量名;
/*这是第一类结构体的形式,有结构体名,有结构体变量*/
struct str2{
int a;
int b;
};
/* 这是第二类结构体的形式,有结构体名,无结构体变量 */
typedef struct {
int a;
int b;
}STR3;
/* 这是第三类结构体的形式,把结构体重定义为STR3 */
typedef struct str4{
int a;
int b;
}STR4;

(2)実際の選別構造体の配列
構造体の配列をソートする場合、アレイは最初に決定キーワード順位であり、処理をソートする配列構造を有するように、キーワードの順序が、交換アドレスの構造を交換していませんはじめに。例えば:

#include<stdio.h>
typedef struct {           //结构体 定义时尽量放main()外面---方便 
    int grade;
    int age;
    char name[10];
}Student;

int main()
{
    int i, j;
    Student temp;

    Student student[3] = {
    {550,19,"小红"},
    {700,20,"tom"},
    };

    
    Student* p = student;
    for (i = 1; i <= 2; i++)
    {
        for (j = 0; j <= 3 - i - 1; j++)//大-->小 
        {
            if ((p + j)->grade < (p + j + 1)->grade)
            {
                temp = *(p + j);
                *(p + j) = *(p + j + 1);
                *(p + j + 1) = temp;//注意 temp 的类型为Student 

             /*
             temp=(p+j)->grade;
                (p+j)->grade = (p+j+1)->grade;
                (p+j+1)->grade = temp;
                   错误代码 why? 注意 整体交换 
             */
            }
        }
    }

    /*以表的形式输出*/
    printf("姓名    年龄    分数  \n\n");//表头 
    for (i = 0; i <= 2; i++)
    {
        printf("%-4s   %4d     %4d\n", (p + i)->name, (p + i)->age, (p + i)->grade);
    }

    getchar();
    return 0;

(3)どのように構造のポインタを使用するが、
構造及び構造体変数は、2つの異なる概念であることに留意すべきである:構造は、変数を作成するためのテンプレートであるデータ型で、コンパイラは、それのためにメモリを割り当てません、 int型、float型、これらのキーワードをchar型のように自身が同じメモリを取ることはありません;構造体変数は実際のデータが含まれている、唯一の必要なメモリを格納する。
構造体ポインタ変数に変数ポイントのタイプを定義します。

struct stu *p1, *p2 ;

インジケータ変数のP1、P2、各変数ポイント構造タイプの定義。見積フォーム:メンバー→ポインタ変数、それを行うためのシンプルなアプリケーション。構造型入力変数と出力のメンバー:

#include <stdlib.h> 
#include<stdio.h>
struct data
{
    int day;
    int month;
    int year;
};
struct stu
{
    char name[20];
    long num;
    struct data birthday;
};
int main()
{
    struct stu* student;
    student = (stu*)malloc(sizeof(struct stu));
    printf("Input name,number,year,month,day:\n");
    scanf("%s", student->name);
    scanf("%ld", &student->num);
    scanf("%d%d%d", &student->birthday.year, &student->birthday.month, &student->birthday.day);
    printf("\nOutputname,number,year,month,day\n");
    /*打印输出各成员项的值*/
    printf("%20s%10ld%10d//%d//%d\n", student->name, student->num, student->birthday.year, student->birthday.month, student->birthday.day);
}

構造体のポインタ参照型のメンバー変数を使用して、プログラム構造は、関数のmalloc Cの必要が割り当てられたアドレスポインタのためのセキュリティを提供するために()。sizeof()値の関数は、データの所与のタイプによって占められるメモリのバイト数を返すように計算されます。
形式でポインタのメンバー:
スチューデント>名前
スチューデント> NUM
スチューデント> birthday.year
スチューデント> birthday.month
スチューデント> birthday.day

  • ユニオン、列挙された練習

    組合は、共有ストレージ・スペースに構成多変量型であり、それはいくつかの異なる変数が同じメモリ空間を共有することができます。共通本体と構造との間の差:各メンバーの1構造は、特定のトランザクションの特性を表すために使用され、組合員は、様々な属性を表すことができる(同一のメモリ空間は、異なるタイプのデータを格納します)。総空間構造は、空間が最大部材によって占められる空間の和に等しい、部材の長さの合計に等しいです。組合ではない初期値。
    列挙型はすべて、列挙を定義する変数リストの値であり、変数の値は、定義を決定しました。そして、その構造は、違いが労働組合、列挙型の要素しか定義フェーズに割り当てることができ、一定であるということです。

  • 構造体の配列にデータファイルを読むためにどのようにファイルの読み取りと書き込み、

1.2この章の学習体験

学習経験の説明は、また、あなたがそうで提案を教える教師の場所を理解し、していないことをここで行うことができます。
目標かどうか、2週間のコードの量を計算します。

2.統合された操作 - 「私はイディオムを愛する」(8点)

イディオムのゲームを書き込むための仕事。ランダム慣用句の数のうちシステム、ユーザーがログインした後、答えが得点する場合。ユーザーのスコアファイルの書き込みパフォーマンス。システムユーザーが結果ランク付けすることができます
。主な機能
着陸を。あなたはログインに正しいユーザー名とパスワードを入力する必要があります。エラーエラーメッセージが表示されます。
イディオムゲーム。推測するフレーズ、ランダムショーの2つの文字からランダムイディオムファイル、残りの文字のユーザー。答えは得点された場合。適切な情報に、エラー。
ランキング。ユーザーとランキングシステムをスコア。
終了
条件:
ジョブは、マルチファイルC.の構築を実現しなければなりません 構造が定義され、関数定義は、カスタムヘッダファイルにパッケージされます。.Cファイルと.hファイルへのモジュールに対応します。データ定義及びデータ分離。
ユーザーログイン、データのランキング情報は、カプセル化してください構造が達成されます。
3は、データファイルに関する:USER.TXT、ranking.txtは、idiom.txt
パラメータを渡し、アドレスによるデータ転送をグローバル変数の使用を最小限に抑えます。関数のパラメータを使用することを学ぶ、機能は独立の値を返します。
ユーザーフレンドリーなメニューは、任意のステップは、任意の時点で起動することができ、プログラムがクラッシュすることはありません。プログラムは、明確な画面を持っているインタフェース。
機能をデバッグする関数を記述しようとすると、この関数は、データは以下の内容を実行することを確認するために読み取りと書き込みのファイルをすることができます。
データ説明:
USER.TXT:ユーザー名、パスワードの
ranking.txt:ユーザー名は、総得点、最終的な答えの時間に答えます。注:解答スコアは、このような正解5ポイントとしてスコアを、蓄積されるたびに、データが蓄積または更新することができ、同じユーザー名、と遊ぶために次の時間。
idiom.txt:イディオム、イディオムは説明しました。注:データはまた、すべての人のための番号が含まれ、それは前処理データを下げるために推奨され、データは標準的な形式に変換されます。イディオム:イディオムの解釈。こうした[]が表示されますので、デジタルフィルタアウトなどその他。統一されたデータフォーマットは、読み書きすることができません。
拡張
この問題は、イディオム辞書、イディオムのユーザ入力することができ、あなたは適切なイディオムの説明を確認することができます。このクエリはあいまいクエリすることができ、ユーザの入力は、すべての関連する慣用句の内容を確認することができるだけの文字です。
ゲームプレイは、ソリティアのできるシステムの下で最後の漢字、イディオムによると、例えば、イディオム行うことができます、あなたはフレーズを書き、変更することができます。あなたは、マンマシンインタラクションを再生している場合ではなく、ソリティアのルール、促すことができます

2.1。文書のプレゼント

はじめにヘッダー
1.Hヘッダファイル
ヘッダファイルの構造と機能の宣言を紹介し、その機能は何ですか?リストグリッドは、より明確かつ直感的にすることができ
ヘッダコードショット
2.Hヘッダファイル
の構造と機能の宣言、その機能は何であるヘッダファイルを導入しますか?リストグリッドは、より明確かつ直感的にすることができ
ヘッダコードショット
3.hヘッダファイル
の構造と機能の宣言を持っている、ヘッダファイル、どのような彼らの機能について説明しますか?列のテーブルには、より明確かつ直感的にすることができ
、ヘッダコードのテーマ
2.はじめ、機能実装ファイル。
ファイル1:main.cの
プレゼンテーションファイル機能とデザインのアイデア。
スクリーンショットメインコード
ファイル2:Login.cが
主な機能と機能コードを紹介します。
スクリーンショットメインコード
ファイル3:idiom.cが
主な機能と機能コードを紹介します。
スクリーンショット主要なコード
など他のファイルに

2.2オペレーティング結果

1.ログイン画面
2.ゲームのインターフェイス
3.ランキングインターフェース

2.3の大きな仕事の概要

1.発生した問題と解決策は、
番組を一覧表示することができます。
2.概要
主要な操作コードの配信は
、大きな仕事書かれたコード、Word文書内のすべてのコピーを送信してください。(スクリーンショット、この割り当て0、スクリーンショット、あなたが過去をコピーしたい、ではない覚えておいてください)、学校の教室で良い仕事をして提出してください文書を保存します。私たちは、あなたが書いたコードは、教室で再チェックすることと模倣を発見した、完全な独立に必ず、リストを公開しますでしょうパーティーします。
評価の考慮事項。
注マークダウン構文組版で、あるいは逆に1ポイントダウンしています。
変数名が標準化されていない、ノーコメント、ノーインデントは、中括弧は5ポイント減、揃っていないされていません。
大きな仕事は、教育・アシスタントに示さなければなりません。

おすすめ

転載: www.cnblogs.com/shenchao123/p/12026348.html