大一时候的作业。。。
#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;
}