高分悬赏C++学生信息管理程序(必须用到文件和类)
使用文本命令行界面设计学生信息管理程序;用文件形式存储班上学生的信息表;能实现对学生信息增、删、改、查等功能。建立文件操作类、界面显示类及相关接口类,用文件读写实现。用C...
使用文本命令行界面设计学生信息管理程序;
用文件形式存储班上学生的信息表;
能实现对学生信息增、删、改、查等功能。
建立文件操作类、界面显示类及相关接口类,用文件读写实现。
用C++不要用C语言 展开
用文件形式存储班上学生的信息表;
能实现对学生信息增、删、改、查等功能。
建立文件操作类、界面显示类及相关接口类,用文件读写实现。
用C++不要用C语言 展开
4个回答
推荐于2016-03-08
展开全部
好不容易找到了以前交过的作业,你看看吧,好的话加点分哦:)
//学生个人信息类
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<iomanip.h>
#include<fstream.h>
#include<string.h>
#include<iomanip.h>
#include<stdlib.h>
class student
{
private:int maxnum;//学生学号最大值
int sno;//学号char name[5];
char sex[2];
char name[20];
int age;char birth[10];//出生日期
char folk[2];//民族
char mianmao[10];//政治面貌
char department[10];//系别
long banji;//班级
char speciality[10];//专业
char address[30];//学生详细家庭住址
public:
student();~
student();
void enter();//学生信息录入函数
void display();//学生信息输出函数
void setsno(int temp);
int getsno();
char *getname();
long getbanji();
char *getspeciality();
void read();
void write();
};
student::student()
{}
student::~student()
{}
int student::getsno()
{
return sno;
}
char *student::getspeciality()
{
return speciality;
}
long student::getbanji()
{
return banji;
}
void student::setsno(int temp)
{
sno=temp;
}
char *student::getname()
{
return name;
}
void student::display()
{
cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<age<<setw(4)<<folk<<setw(8)<<birth<<setw(8)<<mianmao<<setw(8)<<department<<setw(8)<<banji<<setw(8)<<speciality<<setw(8)<<address<<endl;
}
void student::enter()
{
ifstream tfile("max.txt",ios::binary|ios::nocreate);
if(tfile)
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=1000;//学生学号初始化
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum); tfile.close();
cout<<"请输入学生信息"<<endl;
cout<<"学生姓名:"<<endl;
cin>>name;
cout<<"性别(男(n),女(m)):"<<endl;
cin>>sex;
while(strcmp(sex,"n")!=0&&strcmp(sex,"m")!=0)
{
cout<<"错误请重新输入!"<<endl;
cin>>sex;
}
cout<<"出生日期:"<<endl;
cin>>birth;
cout<<"年龄:"<<endl;
cin>>age;
while(age<=15||age>=50)
{
cout<<"错误请重新输入!"<<endl;
cin>>age;
}
cout<<"政治面貌(团员(a),预备党员(b),党员(c)):"<<endl;
cin>>mianmao;
while(strcmp(mianmao,"a")!=0&&strcmp(mianmao,"b")!=0&&strcmp(mianmao,"c")!=0)
{
cout<<"错误请重新输入!"<<endl;
cin>>mianmao;
}
cout<<"民族:"<<endl; cin>>folk;
cout<<"系别:"<<endl; cin>>department;
cout<<"班级:"<<endl; cin>>banji;
cout<<"专业:"<<endl; cin>>speciality;
cout<<"家庭住址:"<<endl; cin>>address;
}
student stu;//student 类的全局变量
void read()
{
ifstream afile("student.txt",ios::nocreate); afile.read((char*)&stu,sizeof stu);
}
void write()
{
ofstream bfile("student.txt",ios::app);
bfile.write((char*)&stu,sizeof stu);
}
void input(void)
{
char ch;
stu.enter();
write();
cout<<"你还要输入下一位学生的信息吗(Y/N)!"<<endl;
cin>>ch;
if(ch=='Y'||ch=='y')
{
input();
}
}
void search()
{
int j,k,i,m=0;
char ch1[5],ch2[10];
cout<<"请输入你的查找类型:(1.学号 2.姓名 3.专业 4.班级)"<<endl;
cin>>j;
while(j<=0||j>=5)
{
cout<<"错误请重新选择!"<<endl;
cin>>j;
}
if(j==1)
{
cout<<"请输入你要查找的学生的学号:"<<endl;
cin>>i;
}
if(j==2)
{
cout<<"请输入你要查找的学生的姓名:"<<endl;
cin>>ch1;
}
if(j==3)
{
cout<<"请输入你要查找的学生所在的专业:"<<endl;
cin>>ch2;
}
if(j==4)
{
cout<<"请输入你要查找的学生所在的班级:"<<endl;
cin>>k;
}
ifstream dfile("student.txt",ios::nocreate);
while (dfile.good())
{
dfile.read((char *) &stu,sizeof stu);
if(i==stu.getsno()||strcmp(stu.getname(),ch1)==0||strcmp(stu.getspeciality(),ch2)==0||k==stu.getbanji())
{
cout<<"你要查找的学生信息如下:"<<endl;
cout<<setw(4)<<"学号"<<setw(4)<<"姓名"<<setw(4)<<"性别"<<setw(4)<< "年龄"<<setw(4)<<"民族"<<setw(8)<<"出生日期"<<setw(8)<<"政治面貌"<< setw(8)<<"系别"<<setw(8)<<"班级"<<setw(8)<<"专业"<<setw(8)<<"联系电话" <<setw(8)<<"家庭住址"<<endl;
stu.display();
i=0;
k=0;
m=1;
return;
}
}
if(m!=1)
cout<<"没有找到这名学生的信息!"<<endl;
}
void output()
{
int i=0;
ifstream cfile("student.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&stu,sizeof stu))
{
stu.display();
i++;
}
}
cout<<"一共有"<<i<<"个学生信息"<<endl;
}
void menu()
{
cout<<" * 学籍管理系统 *"<<endl;
cout<<"*******************************************************"<<endl;
cout<<" 0.退出系统 "<<endl;
cout<<" 1.学生信息录入 "<<endl;
cout<<" 2.学生信息查询 "<<endl;
cout<<" 3.学生信息输出 "<<endl;
cout<<"*******************************************************"<<endl;
cout<<" 请选择以上操作(0=======3) "<<endl;
}
void select()//选择菜单函数
{
int ch;
while(1)
{
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)"<<endl; break;
}
}
}
void main()
{
menu();
select();
}
//学生个人信息类
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<iomanip.h>
#include<fstream.h>
#include<string.h>
#include<iomanip.h>
#include<stdlib.h>
class student
{
private:int maxnum;//学生学号最大值
int sno;//学号char name[5];
char sex[2];
char name[20];
int age;char birth[10];//出生日期
char folk[2];//民族
char mianmao[10];//政治面貌
char department[10];//系别
long banji;//班级
char speciality[10];//专业
char address[30];//学生详细家庭住址
public:
student();~
student();
void enter();//学生信息录入函数
void display();//学生信息输出函数
void setsno(int temp);
int getsno();
char *getname();
long getbanji();
char *getspeciality();
void read();
void write();
};
student::student()
{}
student::~student()
{}
int student::getsno()
{
return sno;
}
char *student::getspeciality()
{
return speciality;
}
long student::getbanji()
{
return banji;
}
void student::setsno(int temp)
{
sno=temp;
}
char *student::getname()
{
return name;
}
void student::display()
{
cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<age<<setw(4)<<folk<<setw(8)<<birth<<setw(8)<<mianmao<<setw(8)<<department<<setw(8)<<banji<<setw(8)<<speciality<<setw(8)<<address<<endl;
}
void student::enter()
{
ifstream tfile("max.txt",ios::binary|ios::nocreate);
if(tfile)
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=1000;//学生学号初始化
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum); tfile.close();
cout<<"请输入学生信息"<<endl;
cout<<"学生姓名:"<<endl;
cin>>name;
cout<<"性别(男(n),女(m)):"<<endl;
cin>>sex;
while(strcmp(sex,"n")!=0&&strcmp(sex,"m")!=0)
{
cout<<"错误请重新输入!"<<endl;
cin>>sex;
}
cout<<"出生日期:"<<endl;
cin>>birth;
cout<<"年龄:"<<endl;
cin>>age;
while(age<=15||age>=50)
{
cout<<"错误请重新输入!"<<endl;
cin>>age;
}
cout<<"政治面貌(团员(a),预备党员(b),党员(c)):"<<endl;
cin>>mianmao;
while(strcmp(mianmao,"a")!=0&&strcmp(mianmao,"b")!=0&&strcmp(mianmao,"c")!=0)
{
cout<<"错误请重新输入!"<<endl;
cin>>mianmao;
}
cout<<"民族:"<<endl; cin>>folk;
cout<<"系别:"<<endl; cin>>department;
cout<<"班级:"<<endl; cin>>banji;
cout<<"专业:"<<endl; cin>>speciality;
cout<<"家庭住址:"<<endl; cin>>address;
}
student stu;//student 类的全局变量
void read()
{
ifstream afile("student.txt",ios::nocreate); afile.read((char*)&stu,sizeof stu);
}
void write()
{
ofstream bfile("student.txt",ios::app);
bfile.write((char*)&stu,sizeof stu);
}
void input(void)
{
char ch;
stu.enter();
write();
cout<<"你还要输入下一位学生的信息吗(Y/N)!"<<endl;
cin>>ch;
if(ch=='Y'||ch=='y')
{
input();
}
}
void search()
{
int j,k,i,m=0;
char ch1[5],ch2[10];
cout<<"请输入你的查找类型:(1.学号 2.姓名 3.专业 4.班级)"<<endl;
cin>>j;
while(j<=0||j>=5)
{
cout<<"错误请重新选择!"<<endl;
cin>>j;
}
if(j==1)
{
cout<<"请输入你要查找的学生的学号:"<<endl;
cin>>i;
}
if(j==2)
{
cout<<"请输入你要查找的学生的姓名:"<<endl;
cin>>ch1;
}
if(j==3)
{
cout<<"请输入你要查找的学生所在的专业:"<<endl;
cin>>ch2;
}
if(j==4)
{
cout<<"请输入你要查找的学生所在的班级:"<<endl;
cin>>k;
}
ifstream dfile("student.txt",ios::nocreate);
while (dfile.good())
{
dfile.read((char *) &stu,sizeof stu);
if(i==stu.getsno()||strcmp(stu.getname(),ch1)==0||strcmp(stu.getspeciality(),ch2)==0||k==stu.getbanji())
{
cout<<"你要查找的学生信息如下:"<<endl;
cout<<setw(4)<<"学号"<<setw(4)<<"姓名"<<setw(4)<<"性别"<<setw(4)<< "年龄"<<setw(4)<<"民族"<<setw(8)<<"出生日期"<<setw(8)<<"政治面貌"<< setw(8)<<"系别"<<setw(8)<<"班级"<<setw(8)<<"专业"<<setw(8)<<"联系电话" <<setw(8)<<"家庭住址"<<endl;
stu.display();
i=0;
k=0;
m=1;
return;
}
}
if(m!=1)
cout<<"没有找到这名学生的信息!"<<endl;
}
void output()
{
int i=0;
ifstream cfile("student.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&stu,sizeof stu))
{
stu.display();
i++;
}
}
cout<<"一共有"<<i<<"个学生信息"<<endl;
}
void menu()
{
cout<<" * 学籍管理系统 *"<<endl;
cout<<"*******************************************************"<<endl;
cout<<" 0.退出系统 "<<endl;
cout<<" 1.学生信息录入 "<<endl;
cout<<" 2.学生信息查询 "<<endl;
cout<<" 3.学生信息输出 "<<endl;
cout<<"*******************************************************"<<endl;
cout<<" 请选择以上操作(0=======3) "<<endl;
}
void select()//选择菜单函数
{
int ch;
while(1)
{
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)"<<endl; break;
}
}
}
void main()
{
menu();
select();
}
展开全部
最好参照人家的自己试着设计一个,这样有利于你更好的理解c++,楼上写的不错哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询