#include
#include
#include
#include
#include
struct student //定义一个学生结构体
{ char name[8];
int num;
char bj[20];
int GS,YY,JSJ,SUM; };
int s=0;
class student1 //定义一个学生类
{ private: student stu[40];
char name,bj;
int num; int GS,YY,JSJ,SUM;
public:
void sr(char *,int,char *,int,int,int);
void print(int);
int jc(int xxh) { int m=0;
while(m<=s+1)
if(xxh==stu[m++].num) break;
if(m>s+1) return 0;
else
return 1; }
void cz(int);
void sc(int);
void sum(int); };
void student1::sr(char *xm,int xh,char *dz,int gs,int yy,int jsj) //输入模块
{ strcpy(stu[s].name,xm);
stu[s].num=xh; strcpy(stu[s].bj,dz); stu[s].GS=gs;
stu[s].YY=yy;
stu[s].JSJ=jsj; }
void student1::print(int s) //输出模块
{ cout<cout<
{ int xxh,p;
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
if(s!=0)
{cout<<"请输入您要查找的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999) //判断输入的学号是否正确
{ cout<<"您输入的学号不正确,请输入一个六位数的学号"<
{ p=1;
if (xxh==stu[s].num)
{ cout<<"姓名\t学号\t班级\t高数\t英语\t计算机"<
else
p=0; s--; } if(p==0)
cout<<"很抱歉,没有找到您要查找的学号!"<
void student1::sc(int n) //删除模块
{ int xxh,p;
char da;
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"请输入您要删除的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999)
{ cout<<"您输入的学号不正确,请您输入一个六位数的学号" <
for(int i=1;i<=n;i++)
{ if(stu[i].num!=xxh) p=0;
if(stu[i].num==xxh)
{ cout<<"姓名\t学号\t班级\t高数\t英语\t计算机"<
cin>>da;
if(da=='y'||da=='Y')
{ for(int j=i;j<=n-1;j++) //删除记录
{ strcpy(stu[j].name,stu[j+1].name);
stu[j].num=stu[j+1].num;
strcpy(stu[j].bj,stu[j+1].bj);
stu[j].GS=stu[j+1].GS;
stu[j].YY=stu[j+1].YY;
stu[j].JSJ=stu[j+1].JSJ; }
cout<<"该记录已删除!"<
{ cout<<"该记录未删除!"<
if(p==0) cout<<"很抱歉,没有找到您要找的学号!"<
void student1::sum(int s) //排序模块
{ int chang;
int b[40];
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"姓名\t学号\t班级\t英语\t";
cout<<"高数\t计算机\t总分"<
{ b[k]=stu[k].GS+stu[k].YY+stu[k].JSJ;
stu[k].SUM=stu[k].GS+stu[k].YY+stu[k].JSJ;
} for(int i=1;i<=s;i++) //利用冒泡法对B[]进行排序
for(int j=1;j<=s-i;j++)
if(b[j]{ chang=b[j];
b[j]=b[j+1];
b[j+1]=chang; }
for(int h=1;h<=s;h++) //输出与B[]中相同总分所对应的内容
for(int e=1;e<=s;e++)
if(b[h]==stu[e].SUM)
{ cout<
} void main()
{ student1 st;
char da,a;
char *xm,*dz;
int gs,yy,jsj,xh;
time_t t;
while(1)
{ system("cls");
cout<
cout<<"2.显示学生资料"<< ' ';
cout<<"3.查找"<<' ';
cout<<"4.删除"<<' ';
cout<<"5.按总分进行排序"<
t: if(a=='6') break;
switch (a)
{ case '1':
{ cout<<"请依次输入学生的姓名,学号,班级,高数,英语,计算机:"<
while(st.jc(xh)) //调用JC模块判断学号是否重复
{ cout<<"学号重复,请重新输入!"<
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da;
while (da=='y'||da=='Y') //判断是否要继续输入
{ cout<<"请依次输入学生的姓名,学号,班级,高数,英语,计算机:"<
cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh))
{ cout<<"学号重复,请重新输入!"<
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da; }
getch();
};break;
case '2':
{ if(s==0) //判断是否有记录输入
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"序号"<<"\t"; cout<<"姓名"<<"\t"; cout<<"学号"<<"\t";
cout<<"班级"<<"\t";
cout<<"高数"<<"\t";
cout<<"英语"<<"\t";
cout<<"计算机"<
st.print(i);
getch(); } };
break;
case '3':st.cz(s);break;
case '4':st.sc(s);
break;
case '5':st.sum(s);break; default:
{ while(a=='0'||a>'6') //判断选项是否正确
{ cout<<"错误选项,请重新选择!"<
cout<<"谢谢您的使用!"<
另一个
#include
#include
class worker//社会保障对象的个人信息类
{
public:
worker();
~worker();
void enter();//保障对象信息录入构造函数
void display();//保障对象信息输出构造函数
void setsno(int temp);
int getsno();
char *getname();
long getgongzi();
void change();//保障对象信息修改构造函数
void read();
void write();
private:
int maxnum;//保障对象编号最大值
int sno;// 编号
char name[5];//姓名
char sex[2];//性别
int age;//年龄
char birth[10];//出生日期
char folk[2];//民族
char mianmao[10];//政治面貌
char department[50];//个人及家庭情况
long gongzi;//福利保障金额
char telephone[10];//联系电话
char address[30];//详细家庭住址
};
#include
#include
#include
#include
#include
worker::worker()
{}
worker::~worker()
{}
int worker::getsno()
{return sno;}
long worker::getgongzi()
{return gongzi;}
char *worker::getname()
{
return name;}
void worker::setsno(int temp)
{sno=temp;}
void worker::enter()
{
ifstream tfile("max.txt",ios::binary|ios::nocreate);
if(tfile)
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=100;//编号初始化
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum);
tfile.close();
cout<<"请输入人员信息"<
cout<<"性别(男(a),女(b)):"<
while(strcmp(sex,"a")!=0&&strcmp(sex,"b")!=0)
{ cout<<"错误请重新输入!"<
}
cout<<"年龄:"<
while(age<=15||age>=100)
{
cout<<"错误请重新输入!"<
}
cout<<"出生日期:"<
cout<<"政治面貌(团员
while(strcmp(mianmao,"t")!=0&&strcmp(mianmao,"y")!=0&&strcmp(mianmao,"d")!=0)
{
cout<<"错误请重新输入!"<
}
cout<<"民族:"<
cout<<"个人及家庭情况:"<
cout<<"福利保障金额:"<
cout<<"联系电话:"<
cout<<"家庭住址:"<
}
void worker::display()
{
cout<
void worker::change()
{
cout<<"请输入要修改人员的信息:"<
cin>>ch;
if(ch=='Y'||ch=='y')
{
cout<<"请输入新姓名:"<
}
cout<<"性别(男(a),女(b)):"<
cout<<"年龄:"<
while(age<=15||age>=50)
{
cout<<"错误请重新输入!"<
}
cout<<"出生日期:"<
cout<<"民族:"<
cout<<"政治面貌(t,y,d):"<
while(strcmp(mianmao,"t")!=0&&strcmp(mianmao,"y")!=0&&strcmp(mianmao,"d")!=0)
{
cout<<"错误请重新输入!"<
}
cout<<"个人及家庭情况:"<
cout<<"福利保障金额:"<
cout<<"联系电话:"<
cout<<"家庭住址:"<
cout<<"你刚刚输入的信息如下:"<
}
#include
#include
#include
#include
#include
worker information;//worker 类的全局变量
void menu()
{ cout<<"********欢迎使用社会福利保障系统********"<
void read()
{
ifstream afile("worker.txt",ios::nocreate);
afile.read((char*)&information,sizeof information);
}
void write()
{
ofstream bfile("worker.txt",ios::app);
bfile.write((char*)&information,sizeof information);
}
void input(void)
{
char ch;
information.enter();
write();
cout<<"你还要输入下一位人员的信息吗(Y/N)!"<
if(ch=='Y'||ch=='y')
{
input();
}
}
void search()
{
cout<<"请输入你的查找类型:(1.编号 2.姓名 3.保障金额)"<
char j,ch1[5];
cin>>j;
while((j!='1')&&(j!='2')&&(j!='3'))
{ cout<<"错误请重新选择!"<
}
if(j=='1')
{
cout<<"请输入你要查找的人员编号:"<
}
if(j=='2')
{
cout<<"请输入你要查找的人员姓名:"<
}
if(j=='3')
{
cout<<"请输入你要查找人员的社会福利保障金额:"<
}
ifstream dfile("worker.txt",ios::nocreate);
while (dfile.good())
{
dfile.read((char *) &information,sizeof information);
if(i==information.getsno()||strcmp(information.getname(),ch1)==0||k==information.getgongzi())
{cout<<"你所要查找的信息如下:"<
i=0;
k=0;
m=1;
return;
}
}
if(m!=1)
cout<<"对不起,你所查找的信息不存在!"<
void output()
{
int i=0;
ifstream cfile("worker.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&information,sizeof information))
{
information.display();
i++;
}
}
if(i!=0)
cout<<"一共有"<else
cout<<"还没有输入此人信息"<
void select()//选择菜单函数
{
int ch;
do{
cin>>ch;
switch(ch)
{
case 0:
exit(0);
menu();
break;
case 1:
input();
menu();
break;
case 2:
search();
menu();
break;
case 3:
output();
menu();
break;
default :
menu();
cout<<"输入无效请重新输入(0======== 3)"<
}
}while(1);
}
void main()
{
menu();
select();
}
我去年做的,看看这个行不行
PS:你编译运行一下就知道怎么做了,去年就是这么做,老师也要求要存盘,不过后来好像就这样也行
#include
#include
#include
#include
#include
struct student //定义一个学生结构体
{ char name[8];
int num;
char bj[20];
int GS,YY,JSJ,SUM; };
int s=0;
class student1 //定义一个学生类
{ private: student stu[40];
char name,bj;
int num; int GS,YY,JSJ,SUM;
public:
void sr(char *,int,char *,int,int,int);
void print(int);
int jc(int xxh) { int m=0;
while(m<=s+1)
if(xxh==stu[m++].num) break;
if(m>s+1) return 0;
else
return 1; }
void cz(int);
void sc(int);
void sum(int); };
void student1::sr(char *xm,int xh,char *dz,int gs,int yy,int jsj) //输入模块
{ strcpy(stu[s].name,xm);
stu[s].num=xh; strcpy(stu[s].bj,dz); stu[s].GS=gs;
stu[s].YY=yy;
stu[s].JSJ=jsj; }
void student1::print(int s) //输出模块
{ cout<cout<
{ int xxh,p;
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
if(s!=0)
{cout<<"请输入您要查找的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999) //判断输入的学号是否正确
{ cout<<"您输入的学号不正确,请输入一个六位数的学号"<
{ p=1;
if (xxh==stu[s].num)
{ cout<<"姓名\t学号\t班级\t高数\t英语\t计算机"<
else
p=0; s--; } if(p==0)
cout<<"很抱歉,没有找到您要查找的学号!"<
void student1::sc(int n) //删除模块
{ int xxh,p;
char da;
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"请输入您要删除的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999)
{ cout<<"您输入的学号不正确,请您输入一个六位数的学号" <
for(int i=1;i<=n;i++)
{ if(stu[i].num!=xxh) p=0;
if(stu[i].num==xxh)
{ cout<<"姓名\t学号\t班级\t高数\t英语\t计算机"<
cin>>da;
if(da=='y'||da=='Y')
{ for(int j=i;j<=n-1;j++) //删除记录
{ strcpy(stu[j].name,stu[j+1].name);
stu[j].num=stu[j+1].num;
strcpy(stu[j].bj,stu[j+1].bj);
stu[j].GS=stu[j+1].GS;
stu[j].YY=stu[j+1].YY;
stu[j].JSJ=stu[j+1].JSJ; }
cout<<"该记录已删除!"<
{ cout<<"该记录未删除!"<
if(p==0) cout<<"很抱歉,没有找到您要找的学号!"<
void student1::sum(int s) //排序模块
{ int chang;
int b[40];
while(s==0)
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"姓名\t学号\t班级\t英语\t";
cout<<"高数\t计算机\t总分"<
{ b[k]=stu[k].GS+stu[k].YY+stu[k].JSJ;
stu[k].SUM=stu[k].GS+stu[k].YY+stu[k].JSJ;
} for(int i=1;i<=s;i++) //利用冒泡法对B[]进行排序
for(int j=1;j<=s-i;j++)
if(b[j]{ chang=b[j];
b[j]=b[j+1];
b[j+1]=chang; }
for(int h=1;h<=s;h++) //输出与B[]中相同总分所对应的内容
for(int e=1;e<=s;e++)
if(b[h]==stu[e].SUM)
{ cout<
} void main()
{ student1 st;
char da,a;
char *xm,*dz;
int gs,yy,jsj,xh;
time_t t;
while(1)
{ system("cls");
cout<
cout<<"2.显示学生资料"<< ' ';
cout<<"3.查找"<<' ';
cout<<"4.删除"<<' ';
cout<<"5.按总分进行排序"<
t: if(a=='6') break;
switch (a)
{ case '1':
{ cout<<"请依次输入学生的姓名,学号,班级,高数,英语,计算机:"<
while(st.jc(xh)) //调用JC模块判断学号是否重复
{ cout<<"学号重复,请重新输入!"<
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da;
while (da=='y'||da=='Y') //判断是否要继续输入
{ cout<<"请依次输入学生的姓名,学号,班级,高数,英语,计算机:"<
cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh))
{ cout<<"学号重复,请重新输入!"<
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da; }
getch();
};break;
case '2':
{ if(s==0) //判断是否有记录输入
{ cout<<"没有记录,请先输入记录!"<
{ cout<<"序号"<<"\t"; cout<<"姓名"<<"\t"; cout<<"学号"<<"\t";
cout<<"班级"<<"\t";
cout<<"高数"<<"\t";
cout<<"英语"<<"\t";
cout<<"计算机"<
st.print(i);
getch(); } };
break;
case '3':st.cz(s);break;
case '4':st.sc(s);
break;
case '5':st.sum(s);break; default:
{ while(a=='0'||a>'6') //判断选项是否正确
{ cout<<"错误选项,请重新选择!"<
cout<<"谢谢您的使用!"<
另一个
#include
#include
class worker//社会保障对象的个人信息类
{
public:
worker();
~worker();
void enter();//保障对象信息录入构造函数
void display();//保障对象信息输出构造函数
void setsno(int temp);
int getsno();
char *getname();
long getgongzi();
void change();//保障对象信息修改构造函数
void read();
void write();
private:
int maxnum;//保障对象编号最大值
int sno;// 编号
char name[5];//姓名
char sex[2];//性别
int age;//年龄
char birth[10];//出生日期
char folk[2];//民族
char mianmao[10];//政治面貌
char department[50];//个人及家庭情况
long gongzi;//福利保障金额
char telephone[10];//联系电话
char address[30];//详细家庭住址
};
#include
#include
#include
#include
#include
worker::worker()
{}
worker::~worker()
{}
int worker::getsno()
{return sno;}
long worker::getgongzi()
{return gongzi;}
char *worker::getname()
{
return name;}
void worker::setsno(int temp)
{sno=temp;}
void worker::enter()
{
ifstream tfile("max.txt",ios::binary|ios::nocreate);
if(tfile)
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=100;//编号初始化
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum);
tfile.close();
cout<<"请输入人员信息"<
cout<<"性别(男(a),女(b)):"<
while(strcmp(sex,"a")!=0&&strcmp(sex,"b")!=0)
{ cout<<"错误请重新输入!"<
}
cout<<"年龄:"<
while(age<=15||age>=100)
{
cout<<"错误请重新输入!"<
}
cout<<"出生日期:"<
cout<<"政治面貌(团员
while(strcmp(mianmao,"t")!=0&&strcmp(mianmao,"y")!=0&&strcmp(mianmao,"d")!=0)
{
cout<<"错误请重新输入!"<
}
cout<<"民族:"<
cout<<"个人及家庭情况:"<
cout<<"福利保障金额:"<
cout<<"联系电话:"<
cout<<"家庭住址:"<
}
void worker::display()
{
cout<
void worker::change()
{
cout<<"请输入要修改人员的信息:"<
cin>>ch;
if(ch=='Y'||ch=='y')
{
cout<<"请输入新姓名:"<
}
cout<<"性别(男(a),女(b)):"<
cout<<"年龄:"<
while(age<=15||age>=50)
{
cout<<"错误请重新输入!"<
}
cout<<"出生日期:"<
cout<<"民族:"<
cout<<"政治面貌(t,y,d):"<
while(strcmp(mianmao,"t")!=0&&strcmp(mianmao,"y")!=0&&strcmp(mianmao,"d")!=0)
{
cout<<"错误请重新输入!"<
}
cout<<"个人及家庭情况:"<
cout<<"福利保障金额:"<
cout<<"联系电话:"<
cout<<"家庭住址:"<
cout<<"你刚刚输入的信息如下:"<
}
#include
#include
#include
#include
#include
worker information;//worker 类的全局变量
void menu()
{ cout<<"********欢迎使用社会福利保障系统********"<
void read()
{
ifstream afile("worker.txt",ios::nocreate);
afile.read((char*)&information,sizeof information);
}
void write()
{
ofstream bfile("worker.txt",ios::app);
bfile.write((char*)&information,sizeof information);
}
void input(void)
{
char ch;
information.enter();
write();
cout<<"你还要输入下一位人员的信息吗(Y/N)!"<
if(ch=='Y'||ch=='y')
{
input();
}
}
void search()
{
cout<<"请输入你的查找类型:(1.编号 2.姓名 3.保障金额)"<
char j,ch1[5];
cin>>j;
while((j!='1')&&(j!='2')&&(j!='3'))
{ cout<<"错误请重新选择!"<
}
if(j=='1')
{
cout<<"请输入你要查找的人员编号:"<
}
if(j=='2')
{
cout<<"请输入你要查找的人员姓名:"<
}
if(j=='3')
{
cout<<"请输入你要查找人员的社会福利保障金额:"<
}
ifstream dfile("worker.txt",ios::nocreate);
while (dfile.good())
{
dfile.read((char *) &information,sizeof information);
if(i==information.getsno()||strcmp(information.getname(),ch1)==0||k==information.getgongzi())
{cout<<"你所要查找的信息如下:"<
i=0;
k=0;
m=1;
return;
}
}
if(m!=1)
cout<<"对不起,你所查找的信息不存在!"<
void output()
{
int i=0;
ifstream cfile("worker.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&information,sizeof information))
{
information.display();
i++;
}
}
if(i!=0)
cout<<"一共有"<else
cout<<"还没有输入此人信息"<
void select()//选择菜单函数
{
int ch;
do{
cin>>ch;
switch(ch)
{
case 0:
exit(0);
menu();
break;
case 1:
input();
menu();
break;
case 2:
search();
menu();
break;
case 3:
output();
menu();
break;
default :
menu();
cout<<"输入无效请重新输入(0======== 3)"<
}
}while(1);
}
void main()
{
menu();
select();
}