当前位置:编程学习 > C/C++ >>

来个C++高手啊~

#include<iostream.h>
#include<iomanip.h>
#include<windows.h>
#include <conio.h>
#include <string.h>
#include <fstream>
void back();//返回开始菜单
void out();//输出信息
int w=1; //用于记录学生人数,全局变量


class Data//日期类
{public:
double Year,Month,Day;
Data()
{ Year=0;Month=0;Day=0;   }
};


 

 

class student //学生类
{
public:
char name[10];
char 易做图[5];
char minzu[10];
int num,age;
char adr[30];
Data year;
friend class Data;//date作为student的友元                                 //定义一个日期类
void operator=(student s); //=重载
int operator == (student s);//==重载
}stu[100];

void main()
{
int i;
void input();
void find();
void alt() ;
void del();
void exit();
void show();


system("cls");
cout<<setw(53)<<"欢迎进入学生管理系统!"<<endl;
cout<<setw(49)<<"1 添加学生信息"<<endl<<endl;
cout<<setw(49)<<"2 查询学生信息"<<endl<<endl;
cout<<setw(49)<<"3 删除学生信息"<<endl<<endl;
cout<<setw(49)<<"4 修改学生信息"<<endl<<endl;
cout<<setw(49)<<"5 显示学生信息"<<endl<<endl;
cout<<setw(45)<<"0 退出系统"<<endl;

cout<<"请选择:";
cin>>i;
if(i>5||i<0)
{
cout<<"输入有误!"<<endl;
    back();
}
switch(i)
{
case 1:input();break;
case 2:find();break;
case 3:del();break;
case 4:alt();break;
case 5:show();break;
case 0:exit();break;
default:cout<<"你的输入有误!\n";
}
}


void input() //添加学生
{
system("cls");
int n;
cout<<"请输入要添加的学生个数:\n";
cin>>n;
if(n>=100||n<=0)
{cout<<"输入有误!<<endl";
main(); }

else
{
for(;n>0;w++,n--)
    {
cout<<"请输入姓名、性别、民族,年龄,学号,住址:"<<endl;
     cin>>stu[w].name>>stu[w].易做图>>stu[w].minzu>>stu[w].age >>stu[w].num>>stu[w].adr ;
     cout<<"请输入该生生日(年 月 日)"<<endl;
cin>>stu[w].year.Year;
cin>>stu[w].year.Month;
cin>>stu[w].year.Day;
}

   out();
}

}


void find() //查找学生
{
system("cls");
int i,k,l,id,j=0;//j是用以记录是否有信息被找到
char name1[10];
cout<<setw(55)<<"1按姓名查找学生信息 2 按学号查询学生信息"<<endl<<endl;
cin>>k;
switch(k)
{
case 1:
 cout<<"请输入你要查找学生的姓名:";
cin>>name1;

for(i=1;i<w;i++){

 l=(strcmp(stu[i].name ,name1));
    if ( l==0){
cout<<i<<"   "<<stu[i].name<<" "<<stu[i].易做图<<" "<<stu[i].minzu<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl;
    }
 j++;
}
if(j==0)
cout<<"没有你要查找的信息"<<endl;
back();
break;
case 2:
cout<<"请输入你要查找学生的学号:";
cin>>id;
for(i=1;i<w;i++)
if(stu[i].num ==id)
{
cout<<i<<"   "<<stu[i].name<<" "<<stu[i].易做图<<" "<<stu[i].minzu<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl;
    j++;
}
if(j==0)
cout<<"没有你要查找的信息"<<endl;
back();
}
}

void del()//删除指定学号学生信息
{
system("cls");
int i,a,y=0;
char x;
cout<<"请输入要删除的学生学号";
cin>>a;
for(i=1;i<w;i++)
if(stu[i].num==a)
{
cout<<"该生情况:"<<endl;
    cout<<i<<"   "<<stu[i].name<<"   "<<stu[i].易做图<<"    "<<stu[i].minzu<<"   "<<stu[i].age<<"   "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<"   "<<stu[i].adr<<endl;
    cout<<"是否确认删除?(Y/N)"<<endl;
    cin>>x;
    if(x=='Y'||x=='y')
{
y++;
    for(;i<w-1;i++)
stu[i]=stu[i+1];
w--;
}
}


if(y==0)
   {
    cout<<"该学生不存在!"<<endl;
    back();
   }
else
   {
    cout<<"删除后的信息为:"<<endl;
    out();
    back();
   }
}

void alt()//修改指定学号学生
{
   system("cls");
   int id,y=0;
   char x;
   cout<<"请输入要修改学生的学号:";
   cin>>id;
for(int i=1;i<w;i++)
   if(stu[i].num ==id)
   {
    cout<<"该生情况:"<<endl;
    cout<<i<<"   "<<stu[i].name<<"   "<<stu[i].易做图<<"    "<<stu[i].minzu<<"   "<<stu[i].age<<"   "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<"   "<<stu[i].adr<<endl;
    cout<<"是否确认修改?(Y/N)"<<endl;
    cin>>x;
if(x=='Y'||x=='y')
    {
y++;
     cout<<"请输入姓名、性别、民族,年龄,学号,住址:"<<endl;
     cin>>stu[i].name>>stu[i].易做图>>stu[i].minzu>>stu[i].age >>stu[i].num>>stu[i].adr ;
     cout<<"请输入该生生日(年 月 日)"<<endl;
cin>>stu[i].year.Year;
cin>>stu[i].year.Month;
cin>>stu[i].year.Day;
    }
else
{
    back();
}
   }
if(y==0)
   {
     cout<<"                                该学生不存在!"<<endl<<endl;
     back();
   }
else
   {
     cout<<"修改后的信息为:"<<endl;
     out();
     back();
   }
}


void student::operator =(student stu)//对=运算符重载函数的实现
{
num=stu.num;
for(int i=0;i<9;i++)
name[i]=stu.name[i];
for(i=0;i<4;i++)
易做图[i]=stu.易做图[i];
age=stu.age;
for(i=0;i<9;i++)
minzu[i]=stu.minzu[i] ;
for(i=0;i<29;i++)
adr[i]=stu.adr[i] ;
year.Year=stu.year.Year ;
year.Month =stu.year.Month ;
year.Day =stu.year.Day ;
}

int student::operator == (student stu)//对==运算符重载函数的实现
{
if(*name==*stu.name && *易做图==*stu.易做图 && age==stu.age && *minzu==*stu.minzu && *adr==*stu.adr&&year.Year ==stu.year.Year&&year.Month ==stu.year.Month&&year.Day ==stu.year.Day )
   return 1;
else
        return 0;

}


void show()//显示
{
system("cls");
out();
back();
}

void exit()//退出
{
exit(0);
}

void back()//返回
{
cout<<"                                按任意键返回菜单!"<<endl;
getch();
main();
}

void out()//输出
{
int i;
cout<<"    姓名    性别   民族   年龄   学号    生日      住址"<<endl;
for(i=1;i<w;i++)
cout<<i<<"   "<<stu[i].name<<"   "<<stu[i].易做图<<"    "<<stu[i].minzu<<"    "<<stu[i].age<<"     "<<stu[i].num<<"   "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<"   "<<stu[i].adr<<endl;
back();
}

 

 

求教程序高手 怎么在我上面的代码加上一个文件读写类 把我输入的信息保存在文件,查询的时候从文件里面读取?急用

追问:但读取那里不怎么会弄~

答案:帮你加了个 read 类,实现实在show函数里实现的。看看吧!

#include<iostream>
#include<iomanip>
#include<windows.h>
#include <conio.h>
#include <string.h>
#include <fstream>
using namespace std;
void back();//返回开始菜单
void out();//输出信息
int w=1; //用于记录学生人数,全局变量

 


class Data//日期类
{public:
int Year,Month,Day;
Data()
{ Year=0;Month=0;Day=0;   }
};


 

 

class student //学生类
{
public:
char name[10];
char 易做图[5];
char minzu[10];
int num,age;
char adr[30];
Data year;
friend class Data;//date作为student的友元                                 //定义一个日期类
void operator=(student s); //=重载
int operator == (student s);//==重载
}stu[100];
class read
{
public:
 read(){   }
 void readin(char * filename,student stu[],int n)
 {
  ofstream fout(filename);
  for(int i=0;i<n;i++)
  {
   fout<<stu[i].name<<"  "<<stu[i].易做图<<"  "<<stu[i].minzu<<"  "<<stu[i].age<<"  "<<stu[i].num<<"  "<<stu[i].adr<<"  ";
   fout<<stu[i].year.Year<<"  "<<stu[i].year.Month<<"  "<<stu[i].year.Day<<endl;
  }
 }
};

void main()
{
int i;
void input();
void find();
void alt() ;
void del();
void exit();
void show();


system("cls");
cout<<setw(53)<<"欢迎进入学生管理系统!"<<endl;
cout<<setw(49)<<"1 添加学生信息"<<endl<<endl;
cout<<setw(49)<<"2 查询学生信息"<<endl<<endl;
cout<<setw(49)<<"3 删除学生信息"<<endl<<endl;
cout<<setw(49)<<"4 修改学生信息"<<endl<<endl;
cout<<setw(49)<<"5 显示学生信息"<<endl<<endl;
cout<<setw(45)<<"0 退出系统"<<endl;

cout<<"请选择:";
cin>>i;
if(i>5||i<0)
{
cout<<"输入有误!"<<endl;
    back();
}
switch(i)
{
case 1:input();break;
case 2:find();break;
case 3:del();break;
case 4:alt();break;
case 5:show();break;
case 0:exit();break;
default:cout<<"你的输入有误!\n";
}
}


void input() //添加学生
{
system("cls");
int n;
cout<<"请输入要添加的学生个数:\n";
cin>>n;
if(n>=100||n<=0)
{cout<<"输入有误!<<endl";
main(); }

else
{
for(;n>0;w++,n--)
    {
cout<<"请输入姓名、性别、民族,年龄,学号,住址:"<<endl;
     cin>>stu[w].name>>stu[w].易做图>>stu[w].minzu>>stu[w].age >>stu[w].num>>stu[w].adr ;
     cout<<"请输入该生生日(年 月 日)"<<endl;
cin>>stu[w].year.Year;
cin>>stu[w].year.Month;
cin>>stu[w].year.Day;
}

   out();
}

}


void find() //查找学生
{
system("cls");
int i,k,l,id,j=0;//j是用以记录是否有信息被找到
char name1[10];
cout<<setw(55)<<"1按姓名查找学生信息 2 按学号查询学生信息"<<endl<<endl;
cin>>k;
switch(k)
{
case 1:
 cout<<"请输入你要查找学生的姓名:";
cin>>name1;

for(i=1;i<w;i++){

 l=(strcmp(stu[i].name ,name1));
    if ( l==0){
cout<<i<<"   "<<stu[i].name<<" "<<stu[i].易做图<<" "<<stu[i].minzu<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl;
    }
 j++;
}
if(j==0)
cout<<"没有你要查找的信息"<<endl;
back();
break;
case 2:
cout<<"请输入你要查找学生的学号:";
cin>>id;
for(i=1;i<w;i++)
if(stu[i].num ==id)
{
cout<<i<<"   "<<stu[i].name<<" "<<stu[i].易做图<<" "<<stu[i].minzu<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl;
    j++;
}
if(j==0)
cout<<"没有你要查找的信息"<<endl;
back();
}
}

void del()//删除指定学号学生信息
{
system("cls");
int i,a,y=0;
char x;
cout<<"请输入要删除的学生学号";
cin>>a;
for(i=1;i<w;i++)
if(stu[i].num==a)
{
cout<<"该生情况:"<<endl;
    cout<<i<<"   "<<stu[i].name<<"   "<<stu[i].易做图<<"    "<<stu[i].minzu<<"   "<<stu[i].age<<"   "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<"   "<<stu[i].adr<<endl;
    cout<<"是否确认删除?(Y/N)"<<endl;
    cin>>x;
    if(x=='Y'||x=='y')
{
y++;
    for(;i<w-1;i++)
stu[i]=stu[i+1];
w--;
}
}


if(y==0)
   {
    cout<<"该学生不存在!"<<endl;
    back();
   }
else
   {
    cout<<"删除后的信息为:"<<endl;
    out();
    back();
   }
}

void alt()//修改指定学号学生
{
   system("cls");
   int id,y=0;
   char x;
   cout<<"请输入要修改学生的学号:";
   cin>>id;
for(int i=1;i<w;i++)
   if(stu[i].num ==id)
   {
    cout<<"该生情况:"<<endl;
    cout<<i<<"   "<<stu[i].name<<"   "<<stu[i].易做图<<"    "<<stu[i].minzu<<"   "<<stu[i].age<<"   "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<"   "<<stu[i].adr<<endl;
    cout<<"是否确认修改?(Y/N)"<<endl;
    cin>>x;
if(x=='Y'||x=='y')
    {
y++;
     cout<<"请输入姓名、性别、民族,年龄,学号,住址:"<<endl;
     cin>>stu[i].name>>stu[i].易做图>>stu[i].minzu>>stu[i].age >>stu[i].num>>stu[i].adr ;
     cout<<"请输入该生生日(年 月 日)"<<endl;
cin>>stu[i].year.Year;
cin>>stu[i].year.Month;
cin>>stu[i].year.Day;
    }
else
{
    back();
}
   }
if(y==0)
   {
     cout<<"                                该学生不存在!"<<endl<<endl;
     back();
   }
else
   {
     cout<<"修改后的信息为:"<<endl;
     out();
   &nb

上一个:如何才能学好C++?
下一个:求C++的好书推荐

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,