C++カリキュラム設計:学生管理システム

8204 ワード

(一)新入生基本情報統計ソフト
新入生が来て、学生の名前、性別、専門、生年月日、家庭の住所、英語の入学成績などの情報を入力します.チェーンテーブルクラスを設計して実現し、学生数を統計する必要があります.テキストインタフェース:
1.学生情報の追加
2.学生情報の削除
3.学生情報のインポート(保存済みファイル情報)
4.学生情報検索(名前別)
5.学生情報統計(専門或いは性別或いは年齢---年齢は自動的に計算する)
6.英語の成績順
7.学生情報保存
8.終了
******を選択してください:1
————————————————————————————————————————————————
年齢の統計はシステムの現在の日付を抽出する必要があります
#include  time_t tt = time(NULL);//この文はただ1つの時間cuo tm*t=localtime(&tt); printf("%d-%02d-%02d %02d:%02d:%02d",    t->tm_year + 1900,   t->tm_mon + 1,   t->tm_mday,   t->tm_hour,   t->tm_min,   t->tm_sec);
#include 
#include 
#include 
#include 
#include 
using namespace std;
class Student           //      
{
	public:
		Student()       //   
		{
			id="/0";
			name="/0";
			sex="/0";
			major="/0";
			adress="/0";
			score=0;
			year=0;
			month=0;
			date=0; 
		}
		~Student()      //   
		{
			
		}
		void Creat_List(Student *head);           //    
		bool Unique_List(Student *head,string id);//     
		void Print_List(Student *head);           //    
		void Delete_List(Student *head);          //      (    )
		void Search_List(Student *head);          //     (    ) 
		void Find_List(Student *head);            //     (    )
		void Statistics_List(Student *head);      //     (        ) 
		void Sort_List(Student *head);            //      (    ) 
		void Out_File(Student *head);             //     
		void In_File(Student *head);              //     
		void Menu_List(Student *head);            //   
	private:                                      //    
	    string id; 
		string name;
		string sex;
		string major;
		string adress;
		int score;
		int year;
		int month;
		int date;
		Student *next;
};
bool Student::Unique_List(Student *head,string id)     //        
{
	Student *p1=head;
	while(p1->next!=NULL)
	{
		if(p1->id==id)
		{
			cout<next;
	}
	return false;
}
void Student::Creat_List(Student *head)      //        (        )
{
	Student *p1=head;
	int num;
	cout<>num;
	if(p1->next==NULL)
	{
	for(int i=0;i>p1->id;
		if(Student::Unique_List(head,p1->id))
		{
			return ;
		}
		cout<>p1->name;
		cout<>p1->sex;
		cout<>p1->major;
		cout<>p1->adress;
		cout<>p1->score;
		cout<>p1->year>>p1->month>>p1->date;
		p1->next=p2;
		p2->next=NULL;
		p1=p2;
	}		
	}
	else if(p1->next!=NULL)             //               
	{
		while(p1->next!=NULL)
		{
			p1=p1->next;
		}
		for(int i=0;i>p1->id;
		if(Student::Unique_List(head,p1->id))
		{
			return ;
		}
		cout<>p1->name;
		cout<>p1->sex;
		cout<>p1->major;
		cout<>p1->adress;
		cout<>p1->score;
		cout<>p1->year>>p1->month>>p1->date;
		p1->next=p2;
		p2->next=NULL;
		p1=p2;
		}
	}
}
void Student::Print_List(Student *head)     //        
{
	Student *p1=head;
	if(p1->next==NULL)
	{
		cout<next!=NULL)
		{
			cout<id<name<sex<major<adress<score<year<month<date<next;
		}
		cout<>num;
	if(p1->next==NULL)
	{
		cout<next!=NULL)
		{
			if(num==p1->id)
			{
				Student *temp;
				temp=p1->next;
				temp->next=p1->next->next;
				p1->next=temp->next;
				delete temp;
				temp=NULL;
				cout<next;
		}
	}
}
void Student::Search_List(Student *head)                   //           
{
	Student *p1=head;
	string exam;
	cout<>exam;
	if(p1->next==NULL)
	{
		cout<next!=NULL)
		{
			if(p1->name==exam)
			{
				cout<id<name<sex<major<adress<score<year<month<date<next;
		}
	}
}
void Student::Find_List(Student *head)                          //        
{
	Student *p1=head;
	string num;
	cout<>num;
	if(p1->next==NULL)
	{
		cout<id==num)
		{
			cout<id<name<sex<major<adress<score<year<month<date<next;
		}
	}
}
void Student::Statistics_List(Student *head)                           //         
{
	Student *p1=head;
	string a="  ",b="  ",c="  "; 
    string category;
	cout<>category;
	if(category==a)                                                    //      
	{
		string exam;
		cout<>exam;
		int sum=0;
		if(p1->next==NULL)
		{
			cout<next!=NULL)
			{
				if(p1->major==exam)
				{
					sum++;
				}
				p1=p1->next;
			}
			cout<>exam;
		int sum=0;
		if(p1->next==NULL)
		{
			cout<next!=NULL)
			{
				if(p1->sex==exam)
				{
					sum++;
				}
				p1=p1->next;
			}
			cout<>age;
		if(p1->next==NULL)
		{
			cout<next!=NULL)
			{
				int agenow=0;
				if(t->tm_year+1900>=p1->year&&t->tm_mon+1>=p1->month&&t->tm_mday>=p1->date)
				{
					agenow=t->tm_year+1900-p1->year;
				}
				else
				{
					agenow=t->tm_year+1900-p1->year-1;
				}
				if(agenow==age)
				{
					total++;
				}
				p1=p1->next;
		    }
		    cout<next==NULL)
	{
		cout<next!=NULL)
		{	
			Student *p2=p1->next;
			while(p2!=NULL)
			{
				if(p1->scorescore)
				{
					temp.id=p2->id;p2->id=p1->id;p1->id=temp.id;
					temp.name=p2->name;p2->name=p1->name;p1->name=temp.name;
					temp.sex=p2->sex;p2->sex=p1->sex;p1->sex=temp.sex;
					temp.major=p2->major;p2->major=p1->major;p1->major=temp.major;
					temp.adress=p2->adress;p2->adress=p1->adress;p1->adress=temp.adress;
					temp.score=p2->score;p2->score=p1->score;p1->score=temp.score;
					temp.year=p2->year;p2->year=p1->year;p1->year=temp.year;
					temp.month=p2->month;p2->month=p1->month;p1->month=temp.month;
					temp.date=p2->date;p2->date=p1->date;p1->date=temp.date;
				}
				p2=p2->next;
			}
            p1=p1->next;
		}
	}
}
void Student::Out_File(Student *head)
{
	Student *p1=head;
	ofstream file_d("students.dat",ios::out);
	if(file_d==NULL)
	{
		cout<next!=NULL)
		{
			file_d<id<name<sex<major<adress<score<year<month<date<next;
		}
		file_d.close();
		cout<next!=NULL)
		{
			file_t<id<sex<major<adress<score<year<month<date<next;
		}
		file_t.close();
		cout<>p->id>>p->name>>p->sex>>p->major>>p->adress>>p->score>>p->year>>p->month>>p->date;
			total++;
		}
		cout<>p1->id>>p1->name>>p1->sex>>p1->major>>p1->adress>>p1->score>>p1->year>>p1->month>>p1->date;
	    	p1->next=p2;
	    	p2->next=NULL;
	    	p1=p2;
	    	if(--total==1)
	    	{
	    		break;
			}
		}
		file_d.close();
	}
}
void Student::Menu_List(Student *head)
{
	Student STU;
	while(1)
	{  
	system("color B1");
	system("date/t");
	system("time/t");
	cout<>num;
	switch(num)
	{
		case 1 :system("CLS");STU.Creat_List(head);system("pause");break;	
		case 2 :system("CLS");STU.Delete_List(head);system("pause");break;
		case 3 :system("CLS");STU.In_File(head);system("pause");break;
		case 4 :system("CLS");STU.Search_List(head);system("pause");break;
		case 5 :system("CLS");STU.Statistics_List(head);system("pause");break;
		case 6 :system("CLS");STU.Sort_List(head);system("pause");break;
		case 7 :system("CLS");STU.Find_List(head);system("pause");break;
		case 8 :system("CLS");STU.Out_File(head);system("pause");break;
		case 9 :system("CLS");STU.Print_List(head);system("pause");break;
		case 0 :system("CLS");cout<