C ++学生情報管理システム

システムは、デザインテンプレートを使用してリンクリストの操作を実現します。この機能には、生徒情報の照会、生徒情報の追加と削除、生徒数と成績による生徒の並べ替えと出力などがあります。プログラムの最初に、生徒の情報がファイルから読み取られ、リンクリストに保存されます。その後、リンクリストに対してさまざまな操作が実行されます。プログラムを終了すると、リンクリストのデータを自動的にファイルに保存できます。

システム全体には4つの部分があります。

1.ノードクラス

2.リンクされたリスト

3.学生

4.主な機能

主な機能には、主に3つの部分があります。

1.ファイルの読み取りと書き込み

2.リンクリストの操作

3.機能選択

まずノードクラスを見てください:

template<class T> 
class StuNode
{
public:
	StuNode();//初始化
	StuNode<T> *pre;//前一结点
	StuNode<T> *next;//后一结点
	T data;//数据
};

リンクされたリスト:

template<class T>
class StuList
{
private:
	StuNode<T> *head;//链表的头结点
	StuNode<T> *tail;//链表的尾结点
	int length;//链表的长度
public:
	StuList();//默认构造函数
	StuList(StuList &list1);//拷贝构造函数
	~StuList();//析构函数
	int size();//返回长度
	void add(T e);//添加结点
	StuNode<T> *get_head();
	StuNode<T> *get_tail();
	void show();//按序输出
	void remove(T index);//移除
	void find(T index);//查找
};

生徒の属性は生徒のクラスで定義できます。また、一部の演算子はオーバーロードする必要があります。

CStringメンバー関数の実装(シンボルオーバーロード、動的メモリ)

メイン関数で読み書きできるファイルは

C ++ STLおよびファイル処理操作の要約

リンクリストを操作する関数は次のとおりです。

save_file(list);//保存
add_info(list);//添加
search_info(list);//查询
delete_info(list);//删除
stu_num_out(list);//学号排序
score_out(list);//分数排序

関数操作の選択では、次の構造を使用できます。

while(1)
{
    cin>>choice;
    switch(choice)
        {
            case  :    break;
            case  :    break;    
            case  :    break;

        }
}

さらに3つの重要なポイントがあると思います

1.特定のクラスのコンテンツをテンプレートクラスに表示できません。テンプレートはテンプレートです

2.リンクリストを操作するときは、実際のデータの操作とデータのコピーの操作を区別するように注意する必要があります。

3.名前のクラスやその他の情報は繰り返すことができますが、学生番号は一意である必要があります

 

 

125件の元の記事を公開 いいね31 60,000以上の訪問

おすすめ

転載: blog.csdn.net/Fiverya/article/details/97571394