大一時候的作業。。。
#include <iostream>
#include <conio.h>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
#include <string>
using namespace std;
void menu()
{
system("color 5f");
cout<<"學生成績綜合管理系統"<<endl<<endl;
cout<<"1.新增學生信息"<<endl<<endl;
cout<<"2.輸出學生信息"<<endl<<endl;
cout<<"3.修改學生信息"<<endl<<endl;
cout<<"4.查找學生信息"<<endl<<endl;
cout<<"5.按成績升序排序"<<endl<<endl;
cout<<"6.按成績降序排序"<<endl<<endl;
cout<<"7.按學號排序"<<endl<<endl;
cout<<"w 保存文件"<<endl<<endl;
cout<<"r 讀取文件"<<endl<<endl;
cout<<"e 退出系統"<<endl;
}
class student
{
public:
student();
~student();
void tianjia();
void shuchu();
void xiugai();
void chazhao();
void shengxu();
void jiangxu();
void anxuehaopai();
void savefile();
void readfile();
void tuichu()const;
void display()const;
void getdate();
int number;
string name;
int score;
private:
};
student *list[99999]={0};
int position=0;
void student::display ()const
{
cout<<"學號 "<<"姓名 "<<"分數 "<<endl;
cout<<left<<setw(6)<<number<<setw(10)<<name<<setw(6)<<score<<endl;
}
void student::getdate()
{
cin>>number;
cin>>name;
cin>>score;
}
student::student()
{
}
student::~student()
{
}
//1添加信息
void student::tianjia()
{
int n;
cout<<"請輸入要添加的人數: "<<endl;
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"請輸入要添加的數據:(學號 姓名 分數) "<<endl;
list[position++]=new student;
cin>>list[position-1]->number>>list[position-1]->name>>list[position-1]->score;
}
}
//2輸出內容
void student::shuchu()
{
system("cls");
for(int i=0;i<position;i++)
{
list[i]->display();
}
cout<<"按任意鍵返回主菜單"<<endl;
getch();
}
//3修改學生信息
void student::xiugai()
{
int num;
cout<<"請輸入要修改學生的學號: "<<endl;
cin>>num;
int i;
int a,c;
string b;
for(i=0;i<position;i++)
{
if(list[i]->number==num)
{
cout<<"找到該學生\n請輸入修改後的學號 姓名 成績"<<endl;
cin>>a>>b>>c;
list[i]->number=a;
list[i]->name=b;
list[i]->score=c;
}
}
if(i==position)
cout<<"沒有找到要改的人"<<endl;
}
//4查找學生
void student::chazhao()
{
int num;
cout<<"請輸入要搜的學號: "<<endl;
cin>>num;
int i;
for(i=0;i<position;i++)
{
if(list[i]->number==num)
break;
}
if(i==position)
cout<<"沒有找到"<<endl;
else
{
cout<<"匹配的結果: "<<endl;
list[i]->display();
}
}
//5升序排列
void student::shengxu()
{
for(int i=0; i<position-1; i++)
{
for(int j=i+1; j<position; j++)
if(list[j]->score<list[i]->score)
{
student *tem=list[i];
list[i]=list[j];
list[j]=tem;
}
}
}
//6降序排列
void student::jiangxu()
{
for(int i=0; i<position-1; i++)
{
for(int j=i+1; j<position; j++)
if(list[j]->score>list[i]->score)
{
student *tem=list[i];
list[i]=list[j];
list[j]=tem;
}
}
}
//7按學號排列
void student::anxuehaopai()
{
for(int i=0; i<position-1; i++)
{
for(int j=i+1; j<position; j++)
if(list[j]->number<list[i]->number)
{
student *tem=list[i];
list[i]=list[j];
list[j]=tem;
}
}
}
//w保存文件
void student::savefile()
{
system("cls");
cout<<"請輸出要存的位置: "<<endl;
char weizhi[200];
cin.getline(weizhi,200);
fstream output(weizhi,ios::out);
for(int i=0;i<position;i++)
{
output<<list[i]->number<<' '<<list[i]->name<<' '<<list[i]->score<<'\n';
}
output.close();
}
//r讀取文件
void student::readfile()
{
cout<<"請輸入完整的路徑名文件名:"<<endl;
char wenjianming[200];
cin.getline(wenjianming,200);
fstream input(wenjianming, ios::in);
while(1)
{
int number;
input>>number;
if(input.eof())
break;
list[position++]=new student;
list[position-1]->number=number;
input>>list[position-1]->name>>list[position-1]->score;
}
input.close();
}
//e退出系統
int main()
{
student hehe;
while(1)
{
system("cls");
menu();
char a=getch();
switch(a)
{
case '1':
{
system("cls");
hehe.tianjia();
hehe.shuchu();
break;
}
case '2':
system("cls");
hehe.shuchu();
break;
case '3':
hehe.xiugai();
break;
case '4':
system("cls");
hehe.chazhao();
getch();
break;
case '5':
system("cls");
hehe.shengxu();
hehe.shuchu();
break;
case '6':
system("cls");
hehe.jiangxu();
hehe.shuchu();
break;
case '7':
system("cls");
hehe.anxuehaopai();
hehe.shuchu();
break;
case 'w':
system("cls");
hehe.savefile();
break;
case 'r':
system("cls");
hehe.readfile();
break;
case 'e':
goto jieshu;
}
}
jieshu:cout<<"謝謝使用!O(∩_∩)O"<<endl;
cout<<"按任意鍵退出"<<endl;
getch();
return 0;
}