?? 學生管理系統.txt
字號:
//學生類.h
#include <string>
#include <iostream>
using namespace std;
class student
{
private:
int num;
string name;
float score1;
float score2;
float score3;
float average;
public:
student();
void output();
int numm();
float aver(){return average;}
student *next;
friend student* array(student * head);//排序
student& operator=(student &b);//沒有準備
};
//存于構造函數.cpp文件
#include <iostream>
#include <string>
#include "學生類.h"
using namespace std;
student::student()//構造中
{
cout<<"請輸入該名學生的信息"<<endl;
cin>>num;cin>>name;
cin>>score1>>score2>>score3;
average=(score1+score2+score3)/3;
}
//輸出函數
void student::output()
{
cout<<num<<" "<<name<<" "<<score1<<" "<<score2<<" "<<score3<<" "<<average<<endl;
}
//判斷接口函數
int student::numm()
{return num;
}
student& student::operator=(student& b)
{
num=b.num;
name=b.name;
score1=b.score1;
score2=b.score2;
score3=b.score3;
average=b.average;
return *this;
}
//存于有關鏈表操作.cpp
//有關鏈表的操作
//建立鏈表
#include <iostream>
#include <string>
#include "學生類.h"
using namespace std;
template <typename T>
void exchange(T &a,T &b)
{
T c;
c=a;
a=b;
b=c;
}
student* creat()
{
student *p1,*p2,*head;
head=p2=p1=new student;
while(p1->numm())
{
p2->next=p1;
p2=p1;
p1=new student;
} cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"現在學生信息建立完畢,返回上一層"<<endl;
cout<<'\n';
cout<<"***********************************************************"<<endl;
p2->next=NULL;
return head;
}
//鏈表的數據增加
student *add(student * head)
{
student *p1=head,*p3; cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;
cout<<"現在操作您的插入數據"<<endl;
p3=new student;
while(p1->next!=NULL)
p1=p1->next;
p1->next=p3;
p3->next=NULL;
cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"插入數據成功,返回上一層"<<endl;
cout<<"*****************************************"<<endl;
cout<<'\n'; cout<<'\n'; cout<<'\n';
return head;
}
//鏈表數據刪除
student *del(student* head)
{
student* p1,* p2;int num;
p1=p2=head;cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;
cout<<"請輸入您想要刪除學生的學號"<<endl;
cin>>num;
while(p1->numm()!=num&&p1->next!=NULL)
{if(p1!=head)
p2->next=p1;
p2=p1;
p1=p1->next;
}
if(p1==head)
{head=p1->next;cout<<"刪除成功"<<endl;cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;}
else if( p1->next==NULL&&p1->numm()!=num)
{cout<<'\n'; cout<<"您想刪除的學生不存在,返回上一層"<<endl; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;}
else
{p2->next=p1->next;cout<<"刪除成功"<<endl;cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;}
return head;
}
//鏈表數據排序
student* array(student* head)
{
student *p1;
int n;
p1=head;
for( n=1;p1->next!=NULL;p1=p1->next)
n++;
p1=head;
for(int i=0;i<n-1;i++)
{ for(int j=0;j<n-1-i;j++)
{
if(p1->aver()<p1->next->aver())
{exchange(p1->average,p1->next->average);
exchange(p1->name,p1->next->name);
exchange(p1->num,p1->next->num);
exchange(p1->score1,p1->next->score1); exchange(p1->score2,p1->next->score2); exchange(p1->score3,p1->next->score3);
}
p1=p1->next;
}
p1=head;
}
return head;
}
//存于其他函數.cpp
#include <iostream>
#include <string>
#include "學生類.h"
using namespace std;
//有關的輸出函數
void display(student* head)
{ cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;
cout<<"學號 姓名 語文 數學 外語"<<endl;
head=array(head);
student* p1=head;
while(p1!=NULL)
{
p1->output();
p1=p1->next;
}
cout<<'\n'; cout<<'\n'; cout<<'\n';cout<<"現在輸出完成,返回上一層"<<endl;
cout<<"*****************************************"<<endl;
}
//學生查找
void search(student* head)
{
student* p=head;cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;
cout<<"請輸入您要查找學生的學號"<<endl;
int n;
cin>>n;
while(p->numm()!=n&&p->next!=NULL)
p=p->next;
if(p->numm()!=n&&p->next==NULL)
{cout<<'\n'; cout<<"您要找的學生不存在,返回上一層"<<endl; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;}
else
{ cout<<"您要找的學生的信息為:"<<endl;
p->output();cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;}
}
//主函數.cpp
#include <iostream>
#include <string>
#include "學生類.h"
using namespace std;
int main()
{
void display(student* head);
void search(student* head);
student* creat();
student *add(student * head);
student *del(student* head);
student* array(student* head);
cout<<"*******************************歡迎使用學生管理系統*****************************"<<endl;
student* head;
loop:
cout<<"1.學生信息建立"<<endl;
cout<<"2.學生信息增加"<<endl;
cout<<"3.學生信息刪除"<<endl;
cout<<"4.學生信息綜合輸出"<<endl;
cout<<"5.單個學生信息查詢"<<endl;
cout<<"6.退出"<<endl;
int n;
cin>>n;
if(n==1)
{ cout<<'\n'; cout<<'\n'; cout<<'\n';
cout<<"*****************************************"<<endl;
cout<<"請按照以下方式輸入成績:"<<endl;
cout<<"請按照 學號 姓名 語文 數學 外語 的順序輸入"<<endl;
cout<<"當輸入0 0 0 0 0時結束輸入"<<endl;
cout<<"其中由于系統不夠完善姓名只能為英文且中間不能有空格請見諒"<<endl;
head=creat();}
if(n==2)
head=add(head);
if(n==3)
head=del(head);
if(n==4)
display(head);
if(n==5)
search(head);
if(n!=6)
goto loop;
delete head;
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -