3个回答
展开全部
/*
这是本人刚学习C++不久时写的一个学生信息管理系统,基本功能没问题。
*/
/*下面分几个文件
你可以先建立一个空工程,然后将这几个文件分别添加到工程中(应该会吧?),或者你把文件分别保存,最后打开“学生信息管理系统.cpp”直接编译、连接(会询问建立一个默认的工程)。此程序在VC6.0环境下测试通过。
*/
//文件“学生信息管理系统.cpp”
#include<iostream>
#include<fstream>
#include"common.h"
#include"信息录入.cpp"
#include"信息查询.cpp"
#include"信息排序.cpp"
#include"信息修改.cpp"
#include"信息删除.cpp"
using namespace std;
int main()
{
int a;
h1: cout<<" —*—*—学生信息管理系统—*—*—"<<endl<<endl;
cout<<"1----学生基本信息录入 2----学生信息查询"<<endl;
cout<<"3----学生信息排序 4----学生信息修改"<<endl;
cout<<"5----学生信息删除 0----退出"<<endl;
ifstream infile("record_n.txt",ios::in);
infile>>record_n; //读取record_n,获知文件student.dat中保存有几个学生的数据
infile.close();
h2: cout<<"已经记录有"<<record_n<<"个学生的数据,请选择:";
cin>>a;
switch(a)
{
case 0:return 0;break;
case 1:info_input();break;
case 2:info_inquire();break;
case 3:info_sort();break;
case 4:info_update();break;
case 5:info_delete();break;
default:cout<<"Error!"<<endl<<endl;goto h2;
}
cout<<endl;
goto h1;
return 0;
}
//文件“信息修改.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息修改函数——————————————*/
void info_update()
{
int i,j,answer,num;
student stud1[n],stud2[n];
cout<<"请输入要修改的学生学号(返回请输入0):";
cin>>num;
if(num==0)goto h0;
else
{
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++) //读取所有数据到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
/*进行对比,找到相应学号*/
infile.close();
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
j=i; //记录要修改学号的序号
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)
{
cout<<"Error!\n未找到该学号,";
goto h0;
}
for(i=0;i<j;i++)
stud2[i]=stud1[i];
for(i=j+1;i<record_n;i++)
stud2[i]=stud1[i];
cout<<"请按照姓名、性别、出生年、月、电话号码、省份的顺序输入学生新信息(若要修改学号请删除该记录后重新录入新信息):"<<endl;
/*将对应学号的信息和其他学号信息记录到stud2[],清空原文件后写入文件*/
stud2[j].num=stud1[j].num;
cin>>stud2[j].name>>stud2[j].sex>>stud2[j].birthday.year>>stud2[j].birthday.month>>stud2[j].phone>>stud2[j].address;
ha: cout<<"是否确定修改该记录?确定输入1,返回输入0"<<endl;
cin>>answer;
if(answer==0)goto h0;
if(answer!=0&&answer!=1)
{
cout<<"Error!"<<endl;
goto ha;
}
if(answer==1)
{
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
iofile.write((char *)&stud2[i],sizeof(stud2[i]));
}
iofile.close();
cout<<"该学生信息修改完毕!"<<endl;
}
}
h0: cout<<endl;
}
//文件“信息删除.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息删除函数——————————————*/
void info_delete()
{
int i,j,answer,num;
student stud1[n],stud2[n];
cout<<"返回请输入0,删除全部学生信息请输入-1"<<endl;
cout<<"请输入要删除的学生学号:";
cin>>num;
if(num==-1)
{
ofstream outfile("record_n.txt",ios::out);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile<<0; //数据个数恢复为0
outfile.close();
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
iofile.close();
cout<<"学生信息已经全部删除"<<endl;
}
else
{
if(num==0)goto h0;
else
{
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++) //读取所有数据到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
infile.close();
/*进行对比,找到相应学号*/
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
j=i; //记录要删除学号的序号
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)
{
cout<<"Error!\n未找到该学号,";
goto h0;
}
ha: cout<<"是否确定删除该记录?确定输入1,返回输入0"<<endl;
cin>>answer;
if(answer==0)goto h0;
if(answer!=0&&answer!=1)
{
cout<<"Error!"<<endl;
goto ha;
}
if(answer==1)
{
/*将对应学号去掉后,剩余学生信息用stud2[]记录,清空原文件,再写入文件*/
for(i=0;i<j;i++)
stud2[i]=stud1[i];
for(i=j;i<record_n-1;i++)
stud2[i]=stud1[i+1];
ofstream outfile("record_n.txt",ios::out);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile<<record_n-1; //记录数据个数
outfile.close();
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n-1;i++)
{
iofile.write((char *)&stud2[i],sizeof(stud2[i]));
}
iofile.close();
cout<<"该学号已经删除"<<endl;
}
}
}
h0: cout<<endl;
}
//文件“信息排序.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息排序函数————————————*/
void info_sort()
{
int i;
cout<<endl<<"1—按学号排序,2—按出生年月排序,0—返回"<<endl;
h3: cout<<"请选择:";
cin>>i;
switch(i)
{
case 0:goto h7;
case 1:sort_num();break;
case 2:sort_day();break;
default:cout<<"Error!"<<endl<<endl;goto h3;
}
h7: cout<<endl;
}
/*—————按照学号排序函数—————*/
void sort_num()
{
int i,j;
student stud1[n],t;
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
for(i=0;i<record_n-1;i++) //用起泡法对所有学号进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].num>stud1[j+1].num)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
infile.close();
/*将排序好的数据写入文件*/
ofstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
outfile.write((char *)&stud1[i],sizeof(stud1[i]));
}
outfile.close();
cout<<"排序完成";
cout<<endl;
}
/*————按照出生年月排序函数————*/
void sort_day()
{
int i,j;
student stud1[n],t;
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
/*以下对学生的出生年月进行排序*/
for(i=0;i<record_n-1;i++) //用起泡法对学生出生年份进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].birthday.year>stud1[j+1].birthday.year)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
for(i=0;i<record_n-1;i++) //用起泡法对出生年份相同的学生的出生月份进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].birthday.year==stud1[j+1].birthday.year)
{
if(stud1[j].birthday.month>stud1[j+1].birthday.month)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
}
infile.close();
/*将排序好的数据写入文件*/
ofstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
outfile.write((char *)&stud1[i],sizeof(stud1[i]));
}
outfile.close();
cout<<endl<<"排序完成"<<endl;
}
//文件“信息录入.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*——————信息录入函数——————*/
void info_input()
{
int i=0,j;
student stud1[n];
student *p,*p1;
p=stud+i;
p1=stud1+record_n;
ifstream infile("student.dat",ios::binary);
if(record_n==0)cout<<endl;
else
{
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++) //for语句读取记录到一个数组,便于进行比较,使输入学号不重复
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
cout<<endl;
}
cout<<"请按以下顺序输入学生信息:学号、姓名、性别、出生年、月、电话号码、省份";
cout<<endl<<"如果要终止录入学生信息,请输入0,然后回车"<<endl<<endl;
for(i=0;i<n;i++,p++,p1++)
{
cout<<"请输入第"<<record_n+i+1<<"个学生的信息:";
cin>>p->num;
p1->num=p->num;
if(p->num==0)break;
for(j=0;j<record_n+i;j++)
{
if(p->num==stud1[j].num)
{
cout<<"Error!\n输入的学号与已有记录重复!"<<endl;
goto hi;
}
}
cin>>p->name>>p->sex;
cin>>p->birthday.year>>p->birthday.month;
cin>>p->phone>>p->address;
ofstream outfile("student.dat",ios::app|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile.write((char *)&stud[i],sizeof(stud[i]));
outfile.close();
fstream iofile("record_n.txt",ios::out);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
abort();
}
iofile<<record_n+i+1; //记录数据个数
iofile.close();
}
hi: cout<<endl;
}
//文件“信息查询.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*——————————————信息查询函数————————————*/
void info_inquire()
{
int i;
h6: cout<<endl<<"1—按学号查询, 2—按姓名查询, 3—按性别查询,"<<endl;
cout<<"4—输出全部学生信息, 0—返回"<<endl;
h3: cout<<"请选择:";
cin>>i;
switch(i)
{
case 0:goto h7;
case 1:acc_num();break;
case 2:acc_name();break;
case 3:acc_sex();break;
case 4:output_all();break;
default:cout<<"Error!"<<endl<<endl;goto h3;
}
goto h6;
h7: cout<<endl;
}
/*————按照学号查询函数—————*/
void acc_num()
{
int i;
int num;
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的学号(返回请输入0):"<<endl;
cin>>num;
if(num==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++) //for语句读取记录到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)cout<<"Error!\n未找到该学号,";
goto h4;
h5: cout<<endl;
}
/*————按照姓名查询函数—————*/
void acc_name()
{
int i;
char name[20];
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的姓名(返回请输入0):"<<endl;
cin>>name;
if(strcmp(name,"0")==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(strcmp(name,stud1[i].name)==0)
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该姓名,无则提示
{
if(strcmp(name,stud1[i].name)==0)break;
}
if(i>=record_n)cout<<"Error!\n未找到该姓名,";
goto h4;
h5: cout<<endl;
}
/*————按照性别查询函数—————*/
void acc_sex()
{
int i;
char sex[5];
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的性别(返回请输入0):"<<endl;
cin>>sex;
if(strcmp(sex,"0")==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(strcmp(sex,stud1[i].sex)==0)
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该性别的学生记录,无则提示
{
if(strcmp(sex,stud1[i].sex)==0)break;
}
if(i>=record_n)cout<<"Error!\n未找到该性别的学生记录,";
goto h4;
h5: cout<<endl;
}
/*————输出全部学生信息—————*/
void output_all()
{
int i;
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h0;
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
cout<<"第"<<i+1<<"个学生数据:"<<endl;
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
infile.close();
h0: cout<<endl;
}
//文件“common.h”
/*—————————定义类—————————定义类——————*/
struct Day //定义结构体类型Day
{
int year;
int month;
};
class student //定义类student
{
public:
int num;
char name[20];
char sex[5];
Day birthday;
char phone[15];
char address[15];
};
/*—————全局变量、函数声明————全局变量、函数声明—————*/
const int n=200; //n=200,表示最多可记录200个学生的数据,可以修改,以适应需要
int record_n=0; //记录数据个数,初始化为0
student stud[n];
void info_input(); //信息录入函数
void info_inquire(),acc_num(),acc_name(),acc_sex(),output_all();//信息查询函数
void info_sort(),sort_num(),sort_day(); //信息排序函数
void info_update(); //信息修改函数
void info_delete(); //信息删除函数
这是本人刚学习C++不久时写的一个学生信息管理系统,基本功能没问题。
*/
/*下面分几个文件
你可以先建立一个空工程,然后将这几个文件分别添加到工程中(应该会吧?),或者你把文件分别保存,最后打开“学生信息管理系统.cpp”直接编译、连接(会询问建立一个默认的工程)。此程序在VC6.0环境下测试通过。
*/
//文件“学生信息管理系统.cpp”
#include<iostream>
#include<fstream>
#include"common.h"
#include"信息录入.cpp"
#include"信息查询.cpp"
#include"信息排序.cpp"
#include"信息修改.cpp"
#include"信息删除.cpp"
using namespace std;
int main()
{
int a;
h1: cout<<" —*—*—学生信息管理系统—*—*—"<<endl<<endl;
cout<<"1----学生基本信息录入 2----学生信息查询"<<endl;
cout<<"3----学生信息排序 4----学生信息修改"<<endl;
cout<<"5----学生信息删除 0----退出"<<endl;
ifstream infile("record_n.txt",ios::in);
infile>>record_n; //读取record_n,获知文件student.dat中保存有几个学生的数据
infile.close();
h2: cout<<"已经记录有"<<record_n<<"个学生的数据,请选择:";
cin>>a;
switch(a)
{
case 0:return 0;break;
case 1:info_input();break;
case 2:info_inquire();break;
case 3:info_sort();break;
case 4:info_update();break;
case 5:info_delete();break;
default:cout<<"Error!"<<endl<<endl;goto h2;
}
cout<<endl;
goto h1;
return 0;
}
//文件“信息修改.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息修改函数——————————————*/
void info_update()
{
int i,j,answer,num;
student stud1[n],stud2[n];
cout<<"请输入要修改的学生学号(返回请输入0):";
cin>>num;
if(num==0)goto h0;
else
{
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++) //读取所有数据到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
/*进行对比,找到相应学号*/
infile.close();
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
j=i; //记录要修改学号的序号
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)
{
cout<<"Error!\n未找到该学号,";
goto h0;
}
for(i=0;i<j;i++)
stud2[i]=stud1[i];
for(i=j+1;i<record_n;i++)
stud2[i]=stud1[i];
cout<<"请按照姓名、性别、出生年、月、电话号码、省份的顺序输入学生新信息(若要修改学号请删除该记录后重新录入新信息):"<<endl;
/*将对应学号的信息和其他学号信息记录到stud2[],清空原文件后写入文件*/
stud2[j].num=stud1[j].num;
cin>>stud2[j].name>>stud2[j].sex>>stud2[j].birthday.year>>stud2[j].birthday.month>>stud2[j].phone>>stud2[j].address;
ha: cout<<"是否确定修改该记录?确定输入1,返回输入0"<<endl;
cin>>answer;
if(answer==0)goto h0;
if(answer!=0&&answer!=1)
{
cout<<"Error!"<<endl;
goto ha;
}
if(answer==1)
{
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
iofile.write((char *)&stud2[i],sizeof(stud2[i]));
}
iofile.close();
cout<<"该学生信息修改完毕!"<<endl;
}
}
h0: cout<<endl;
}
//文件“信息删除.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息删除函数——————————————*/
void info_delete()
{
int i,j,answer,num;
student stud1[n],stud2[n];
cout<<"返回请输入0,删除全部学生信息请输入-1"<<endl;
cout<<"请输入要删除的学生学号:";
cin>>num;
if(num==-1)
{
ofstream outfile("record_n.txt",ios::out);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile<<0; //数据个数恢复为0
outfile.close();
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
iofile.close();
cout<<"学生信息已经全部删除"<<endl;
}
else
{
if(num==0)goto h0;
else
{
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++) //读取所有数据到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
infile.close();
/*进行对比,找到相应学号*/
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
j=i; //记录要删除学号的序号
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)
{
cout<<"Error!\n未找到该学号,";
goto h0;
}
ha: cout<<"是否确定删除该记录?确定输入1,返回输入0"<<endl;
cin>>answer;
if(answer==0)goto h0;
if(answer!=0&&answer!=1)
{
cout<<"Error!"<<endl;
goto ha;
}
if(answer==1)
{
/*将对应学号去掉后,剩余学生信息用stud2[]记录,清空原文件,再写入文件*/
for(i=0;i<j;i++)
stud2[i]=stud1[i];
for(i=j;i<record_n-1;i++)
stud2[i]=stud1[i+1];
ofstream outfile("record_n.txt",ios::out);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile<<record_n-1; //记录数据个数
outfile.close();
fstream iofile("student.dat",ios::out|ios::binary);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n-1;i++)
{
iofile.write((char *)&stud2[i],sizeof(stud2[i]));
}
iofile.close();
cout<<"该学号已经删除"<<endl;
}
}
}
h0: cout<<endl;
}
//文件“信息排序.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*————————————信息排序函数————————————*/
void info_sort()
{
int i;
cout<<endl<<"1—按学号排序,2—按出生年月排序,0—返回"<<endl;
h3: cout<<"请选择:";
cin>>i;
switch(i)
{
case 0:goto h7;
case 1:sort_num();break;
case 2:sort_day();break;
default:cout<<"Error!"<<endl<<endl;goto h3;
}
h7: cout<<endl;
}
/*—————按照学号排序函数—————*/
void sort_num()
{
int i,j;
student stud1[n],t;
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
for(i=0;i<record_n-1;i++) //用起泡法对所有学号进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].num>stud1[j+1].num)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
infile.close();
/*将排序好的数据写入文件*/
ofstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
outfile.write((char *)&stud1[i],sizeof(stud1[i]));
}
outfile.close();
cout<<"排序完成";
cout<<endl;
}
/*————按照出生年月排序函数————*/
void sort_day()
{
int i,j;
student stud1[n],t;
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
}
/*以下对学生的出生年月进行排序*/
for(i=0;i<record_n-1;i++) //用起泡法对学生出生年份进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].birthday.year>stud1[j+1].birthday.year)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
for(i=0;i<record_n-1;i++) //用起泡法对出生年份相同的学生的出生月份进行排序
{
for(j=0;j<record_n-i-1;j++)
{
if(stud1[j].birthday.year==stud1[j+1].birthday.year)
{
if(stud1[j].birthday.month>stud1[j+1].birthday.month)
{
t=stud1[j];
stud1[j]=stud1[j+1];
stud1[j+1]=t;
}
}
}
}
infile.close();
/*将排序好的数据写入文件*/
ofstream outfile("student.dat",ios::out|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++)
{
outfile.write((char *)&stud1[i],sizeof(stud1[i]));
}
outfile.close();
cout<<endl<<"排序完成"<<endl;
}
//文件“信息录入.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*——————信息录入函数——————*/
void info_input()
{
int i=0,j;
student stud1[n];
student *p,*p1;
p=stud+i;
p1=stud1+record_n;
ifstream infile("student.dat",ios::binary);
if(record_n==0)cout<<endl;
else
{
if(!infile)
{
cerr<<"Open file error!"<<endl;
exit(1);
}
for(i=0;i<record_n;i++) //for语句读取记录到一个数组,便于进行比较,使输入学号不重复
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
cout<<endl;
}
cout<<"请按以下顺序输入学生信息:学号、姓名、性别、出生年、月、电话号码、省份";
cout<<endl<<"如果要终止录入学生信息,请输入0,然后回车"<<endl<<endl;
for(i=0;i<n;i++,p++,p1++)
{
cout<<"请输入第"<<record_n+i+1<<"个学生的信息:";
cin>>p->num;
p1->num=p->num;
if(p->num==0)break;
for(j=0;j<record_n+i;j++)
{
if(p->num==stud1[j].num)
{
cout<<"Error!\n输入的学号与已有记录重复!"<<endl;
goto hi;
}
}
cin>>p->name>>p->sex;
cin>>p->birthday.year>>p->birthday.month;
cin>>p->phone>>p->address;
ofstream outfile("student.dat",ios::app|ios::binary);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
abort();
}
outfile.write((char *)&stud[i],sizeof(stud[i]));
outfile.close();
fstream iofile("record_n.txt",ios::out);
if(!iofile)
{
cerr<<"Open file error!"<<endl;
abort();
}
iofile<<record_n+i+1; //记录数据个数
iofile.close();
}
hi: cout<<endl;
}
//文件“信息查询.cpp”
#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;
/*——————————————信息查询函数————————————*/
void info_inquire()
{
int i;
h6: cout<<endl<<"1—按学号查询, 2—按姓名查询, 3—按性别查询,"<<endl;
cout<<"4—输出全部学生信息, 0—返回"<<endl;
h3: cout<<"请选择:";
cin>>i;
switch(i)
{
case 0:goto h7;
case 1:acc_num();break;
case 2:acc_name();break;
case 3:acc_sex();break;
case 4:output_all();break;
default:cout<<"Error!"<<endl<<endl;goto h3;
}
goto h6;
h7: cout<<endl;
}
/*————按照学号查询函数—————*/
void acc_num()
{
int i;
int num;
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的学号(返回请输入0):"<<endl;
cin>>num;
if(num==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++) //for语句读取记录到一个数组
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(num==stud1[i].num) //判断,如果符合查询条件则输出到屏幕
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(16)<<stud1[i].phone<<" 来自省份:"<<setw(16)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该学号,无则提示
{
if(num==stud1[i].num)break;
}
if(i>=record_n)cout<<"Error!\n未找到该学号,";
goto h4;
h5: cout<<endl;
}
/*————按照姓名查询函数—————*/
void acc_name()
{
int i;
char name[20];
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的姓名(返回请输入0):"<<endl;
cin>>name;
if(strcmp(name,"0")==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(strcmp(name,stud1[i].name)==0)
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该姓名,无则提示
{
if(strcmp(name,stud1[i].name)==0)break;
}
if(i>=record_n)cout<<"Error!\n未找到该姓名,";
goto h4;
h5: cout<<endl;
}
/*————按照性别查询函数—————*/
void acc_sex()
{
int i;
char sex[5];
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h5;
}
h4: cout<<"请输入要查询的学生的性别(返回请输入0):"<<endl;
cin>>sex;
if(strcmp(sex,"0")==0)
{
infile.close();
goto h5;
}
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
}
infile.close();
for(i=0;i<record_n;i++)
{
if(strcmp(sex,stud1[i].sex)==0)
{
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
for(i=0;i<record_n;i++) //此句和下一句if语句是判断有无该性别的学生记录,无则提示
{
if(strcmp(sex,stud1[i].sex)==0)break;
}
if(i>=record_n)cout<<"Error!\n未找到该性别的学生记录,";
goto h4;
h5: cout<<endl;
}
/*————输出全部学生信息—————*/
void output_all()
{
int i;
student stud1[n];
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cerr<<"Open file error!"<<endl;
goto h0;
}
if(record_n==0)cout<<"Error!\n没有记录"<<endl;
else
{
for(i=0;i<record_n;i++)
{
infile.read((char *)&stud1[i],sizeof(stud1[i]));
cout<<"第"<<i+1<<"个学生数据:"<<endl;
cout<<"学号:"<<setw(20)<<stud1[i].num<<" 姓名:"<<setw(20)<<stud1[i].name<<endl;
cout<<"性别:"<<setw(20)<<stud1[i].sex<<" 出生年月:"<<setw(10)<<stud1[i].birthday.year<<"年"<<stud1[i].birthday.month<<"月 "<<endl;
cout<<"电话号码:"<<setw(15)<<stud1[i].phone<<" 来自省份:"<<setw(15)<<stud1[i].address<<endl<<endl;
}
}
infile.close();
h0: cout<<endl;
}
//文件“common.h”
/*—————————定义类—————————定义类——————*/
struct Day //定义结构体类型Day
{
int year;
int month;
};
class student //定义类student
{
public:
int num;
char name[20];
char sex[5];
Day birthday;
char phone[15];
char address[15];
};
/*—————全局变量、函数声明————全局变量、函数声明—————*/
const int n=200; //n=200,表示最多可记录200个学生的数据,可以修改,以适应需要
int record_n=0; //记录数据个数,初始化为0
student stud[n];
void info_input(); //信息录入函数
void info_inquire(),acc_num(),acc_name(),acc_sex(),output_all();//信息查询函数
void info_sort(),sort_num(),sort_day(); //信息排序函数
void info_update(); //信息修改函数
void info_delete(); //信息删除函数
深圳市校管家教育科技有限公司_
2024-02-23 广告
2024-02-23 广告
选择培训学校管理系统,需要考虑多方面因素,如系统功能。培训学校管理系统实现了动态的网络化管理,提高了各职能部门的协同办公效能。培训学校管理系统是针对培训学校的管理和教学特点而设计的高效协同工作平台和优秀的综合管理系统。具体费用不是一定的,和...
点击进入详情页
本回答由深圳市校管家教育科技有限公司_提供
展开全部
/*
数据描述:学号 姓名 班级 高数 英语 总分
程序完成功能:
(1) 浏览数据 (2) 增加数据 (3) 修改数据
(4) 查询数据(按姓名,按总分) (5) 退出
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class student
{
public:
student(int , string ,int ,int ,int );
string getName(){return _name;};
int getID(){return _ID;};
void setID(int i){_ID=i;};
void setName(string);
void setClass(int c){_class=c;};
void setMath(int m){_math=m;_total=_math+_english;};
void setEnglish(int e){_english=e;_total=_math+_english;}
void print();
static int _stNum;
private:
int _ID;
string _name;
int _class;
int _math;
int _english;
int _total;
};
int student::_stNum=0;
student::student(int id, string name, int iclass, int ma, int en)
{
_ID=id;
_name=name;
_class=iclass;
_math=ma;
_english=en;
_total=_math+_english;
_stNum++;
};
void student::setName(string s)
{
_name=s;
};
void student::print()
{
cout<<_ID
<<"\t"<< _name
<<"\t"<<_class
<<"\t"<<_math
<<"\t"<<_english
<<"\t"<<_total <<endl;
}
void printMenu(void);
void printHead(void);
void printTail(int);
void main()
{
int tmp_ID;
string tmp_name;
int tmp_class;
int tmp_math;
int tmp_english;
int order=0;
vector<student> stvec;
printMenu();
cin>>order;
while(order!=5)
{
switch(order)
{
case 1:
if (stvec.size()==0)
{
cout<<"ERR:---->No data in the system!"<<endl<<endl;
printMenu();
cin>>order;
break;
}
else
{
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
printHead();
for(;iter!=iter_end;iter++)
{
(*iter).print();
}
printTail(stvec.size());
printMenu();
cin>>order;
break;
}
case 2:
cout<<"Insert-->ID:";
cin>>tmp_ID;
cout<<"Insert-->Name:";
cin>>tmp_name;
cout<<"Insert-->Class:";
cin>>tmp_class;
cout<<"Insert-->Mark of Math:";
cin>>tmp_math;
cout<<"Insert-->Mark of English:";
cin>>tmp_english;
stvec.push_back(student(tmp_ID,tmp_name,tmp_class,tmp_math,tmp_english));
printMenu();
cin>>order;
break;
case 3:
{
string search_name;
bool isFind=false;
cout<<"\nOrignal_Update-->Name:";
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
isFind=true;
cout<<"New_Update-->ID:";
cin>>tmp_ID;
cout<<"New_Update-->Name:";
cin>>tmp_name;
cout<<"New_Update-->Class:";
cin>>tmp_class;
cout<<"New_Update-->Mark of Math:";
cin>>tmp_math;
cout<<"New_Update-->Mark of English:";
cin>>tmp_english;
(*iter).setID(tmp_ID);
(*iter).setName(tmp_name);
(*iter).setClass(tmp_class);
(*iter).setMath(tmp_math);
(*iter).setEnglish(tmp_english);
}
}
if(!isFind)
{
cout<<"There no student named "<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
case 4:
string search_name;
int search_ID;
int name_ID=0;
bool isFind=false;
cout<<"-----------"<<endl;
cout<<"1.Name:"<<endl;
cout<<"2.ID:"<<endl;
cout<<"-----------"<<endl;
cin>>name_ID;
if (name_ID==1)
{
cout<<"\nSearch-->name:"<<endl;
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
if(!isFind)
{
cout<<endl<<"Your search:"<<endl;
printHead();
}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student named :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
if (name_ID==2)
{
cout<<"\nSearch-->ID:"<<endl;
cin>>search_ID;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getID()==search_ID)
{
if(!isFind)
{cout<<endl<<"Your search:"<<endl;
printHead();}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student ID :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
}
}
}
void printMenu(void)
{
cout<<endl<<"*************Make**your**choice***************"<<endl;
cout<<"1. View the data"<<endl;
cout<<"2. ADD the data"<<endl;
cout<<"3. Update the data"<<endl;
cout<<"4. Search the data"<<endl;
cout<<"5. Quit"<<endl;
cout<<"********************************************"<<endl<<endl;
}
void printHead(void)
{
cout<<"-------------------------------------------------"<<endl;
cout<<"ID\tName\tClass\tMath\tEnglish\tTotal"<<endl;
}
void printTail(int i)
{
cout<<"There are total ";
if (i ==1)
{cout<< i<<" student"<<endl;}
else if(i >1)
{cout<<i<<" students"<<endl;}
cout<<"-------------------------------------------------"<<endl;
}
数据描述:学号 姓名 班级 高数 英语 总分
程序完成功能:
(1) 浏览数据 (2) 增加数据 (3) 修改数据
(4) 查询数据(按姓名,按总分) (5) 退出
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class student
{
public:
student(int , string ,int ,int ,int );
string getName(){return _name;};
int getID(){return _ID;};
void setID(int i){_ID=i;};
void setName(string);
void setClass(int c){_class=c;};
void setMath(int m){_math=m;_total=_math+_english;};
void setEnglish(int e){_english=e;_total=_math+_english;}
void print();
static int _stNum;
private:
int _ID;
string _name;
int _class;
int _math;
int _english;
int _total;
};
int student::_stNum=0;
student::student(int id, string name, int iclass, int ma, int en)
{
_ID=id;
_name=name;
_class=iclass;
_math=ma;
_english=en;
_total=_math+_english;
_stNum++;
};
void student::setName(string s)
{
_name=s;
};
void student::print()
{
cout<<_ID
<<"\t"<< _name
<<"\t"<<_class
<<"\t"<<_math
<<"\t"<<_english
<<"\t"<<_total <<endl;
}
void printMenu(void);
void printHead(void);
void printTail(int);
void main()
{
int tmp_ID;
string tmp_name;
int tmp_class;
int tmp_math;
int tmp_english;
int order=0;
vector<student> stvec;
printMenu();
cin>>order;
while(order!=5)
{
switch(order)
{
case 1:
if (stvec.size()==0)
{
cout<<"ERR:---->No data in the system!"<<endl<<endl;
printMenu();
cin>>order;
break;
}
else
{
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
printHead();
for(;iter!=iter_end;iter++)
{
(*iter).print();
}
printTail(stvec.size());
printMenu();
cin>>order;
break;
}
case 2:
cout<<"Insert-->ID:";
cin>>tmp_ID;
cout<<"Insert-->Name:";
cin>>tmp_name;
cout<<"Insert-->Class:";
cin>>tmp_class;
cout<<"Insert-->Mark of Math:";
cin>>tmp_math;
cout<<"Insert-->Mark of English:";
cin>>tmp_english;
stvec.push_back(student(tmp_ID,tmp_name,tmp_class,tmp_math,tmp_english));
printMenu();
cin>>order;
break;
case 3:
{
string search_name;
bool isFind=false;
cout<<"\nOrignal_Update-->Name:";
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
isFind=true;
cout<<"New_Update-->ID:";
cin>>tmp_ID;
cout<<"New_Update-->Name:";
cin>>tmp_name;
cout<<"New_Update-->Class:";
cin>>tmp_class;
cout<<"New_Update-->Mark of Math:";
cin>>tmp_math;
cout<<"New_Update-->Mark of English:";
cin>>tmp_english;
(*iter).setID(tmp_ID);
(*iter).setName(tmp_name);
(*iter).setClass(tmp_class);
(*iter).setMath(tmp_math);
(*iter).setEnglish(tmp_english);
}
}
if(!isFind)
{
cout<<"There no student named "<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
case 4:
string search_name;
int search_ID;
int name_ID=0;
bool isFind=false;
cout<<"-----------"<<endl;
cout<<"1.Name:"<<endl;
cout<<"2.ID:"<<endl;
cout<<"-----------"<<endl;
cin>>name_ID;
if (name_ID==1)
{
cout<<"\nSearch-->name:"<<endl;
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
if(!isFind)
{
cout<<endl<<"Your search:"<<endl;
printHead();
}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student named :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
if (name_ID==2)
{
cout<<"\nSearch-->ID:"<<endl;
cin>>search_ID;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getID()==search_ID)
{
if(!isFind)
{cout<<endl<<"Your search:"<<endl;
printHead();}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student ID :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
}
}
}
void printMenu(void)
{
cout<<endl<<"*************Make**your**choice***************"<<endl;
cout<<"1. View the data"<<endl;
cout<<"2. ADD the data"<<endl;
cout<<"3. Update the data"<<endl;
cout<<"4. Search the data"<<endl;
cout<<"5. Quit"<<endl;
cout<<"********************************************"<<endl<<endl;
}
void printHead(void)
{
cout<<"-------------------------------------------------"<<endl;
cout<<"ID\tName\tClass\tMath\tEnglish\tTotal"<<endl;
}
void printTail(int i)
{
cout<<"There are total ";
if (i ==1)
{cout<< i<<" student"<<endl;}
else if(i >1)
{cout<<i<<" students"<<endl;}
cout<<"-------------------------------------------------"<<endl;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要别人跟你写程序,不给钱不说。才给5分悬赏,你还是自己想办法吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询