システムは、デザインテンプレートを使用してリンクリストの操作を実現します。この機能には、生徒情報の照会、生徒情報の追加と削除、生徒数と成績による生徒の並べ替えと出力などがあります。プログラムの最初に、生徒の情報がファイルから読み取られ、リンクリストに保存されます。その後、リンクリストに対してさまざまな操作が実行されます。プログラムを終了すると、リンクリストのデータを自動的にファイルに保存できます。
システム全体には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メンバー関数の実装(シンボルオーバーロード、動的メモリ)
メイン関数で読み書きできるファイルは
リンクリストを操作する関数は次のとおりです。
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.名前のクラスやその他の情報は繰り返すことができますが、学生番号は一意である必要があります