向文件写东西。
代码如下:#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
class Student //定义学生类
{
private:
char number[20]; //学号
char name[20]; //姓名
float score_math; //数学成绩
float score_english; //英语成绩
float score_computer; //计算机成绩
public:
Student(); //构造函数
~Student(); //析构函数
void Input(); //函数设置学生信息的内容
void Display(); //显示学生信息
};
Student::Student()
{ }
Student::~Student()
{ }
void Student::Input()
{
char number_in[20];
char name_in[20];
float score_math_in;
float score_english_in;
float score_computer_in;
cout<<"学号:";
cin>>number_in[20];
cout<<"姓名:";
cin>>name_in[20];
cout<<"数学成绩:";
cin>>score_math_in;
cout<<"英语成绩:";
cin>>score_english_in;
cout<<"计算机成绩:";
cin>>score_computer_in;
strcpy(number,number_in);
strcpy(name,name_in);
score_math=score_math_in;
score_english=score_english_in;
score_computer=score_computer_in;
}
void Student::Display()
{
cout<<"学号:"<<number<<" 姓名"<<name<<endl;
cout<<"数学成绩:"<<score_math<<" 英语成绩:"<<score_english<<" 计算机成绩:"<<score_computer<<endl;
}
class Select
{
private:
Student st;
Student *stu;
public:
Select();
~Select();
void Entering();
void Add();
void Seek();
void Alter();
void Omit();
void Statistics();
void Show();
friend void Menu();
};
Select::Select()
{ }
Select::~Select()
{ }
void Select::Entering()
{
int count;
int flag_Entering=0;
fstream s;
do
{
cout<<"请输入要录入的学生人数:";
cin>>count;
if(count>0)
flag_Entering=1;
else
{
cout<<"输入错误!请重新输入:";
cin>>count;
}
}while(flag_Entering==0);
cout<<endl;
stu=new Student[count];
s.open("student.txt",ios::out|ios::app);
for(int i=0;i<count;i++)
{
cout<<"请输入第"<<i+1<<"位学生信息:"<<endl;
(stu+i)->Input();
s.write( reinterpret_cast<char *>(stu+i) , sizeof(Student) );
delete[](stu+i);
}
s.clear();
s.close();
}
void Select::Add()
{}
void Select::Seek()
{}
void Select::Alter()
{}
void Select::Omit()
{}
void Select::Statistics()
{}
void Select::Show()
{}
void Menu()
{
Select sel;
char choose;
int flag=0;
int flag1=0;
int choose_return;
cout<<" *----------------------------*"<<endl;
cout<<" * 1、录入学生信息 *"<<endl;
cout<<" * 2、添加学生信息 *"<<endl;
cout<<" * 3、查找学生信息 *"<<endl;
cout<<" * 4、修改学生信息 *"<<endl;
cout<<" * 5、删除学生信息 *"<<endl;
cout<<" * 6、统计学生信息 *"<<endl;
cout<<" * 7、显示全部信息 *"<<endl;
cout<<" * 8、退出管理系统 *"<<endl;
cout<<" *----------------------------*"<<endl;
do
{
cout<<"请选择(1-8):";
cin>>choose;
if(choose>'0'&& choose<='8')
flag=1;
else
{
cout<<endl<<endl<<" 指令错误!请重新输入! "<<endl;
cout<<"请选择(1-8):";
cin>>choose;
}
}while(flag==0);
switch(choose)
{
case '1':
sel.Entering();
break;
case '2':
sel.Add();
break;
case '3':
sel.Seek();
break;
case '4':
sel.Alter();
break;
case '5':
sel.Omit();
break;
case '6':
sel.Statistics();
break;
case '7':
sel.Show();
break;
case '8':
cout<<endl<<" 欢迎使用!"<<endl;
break;
}
do
{
cout<<"是否进行其他操作? 1、Yes 2、No"<<endl;
cout<<"请选择(1-2):";
cin>>choose_return;
if( (choose_return==1) || (choose_return==2 ) )
{
flag1=1;
}
else
{
cout<<endl<<" 指令错误!请重新输入! "<<endl;
cout<<"请选择(1-2):";
cin>>choose_return;
}
}while(flag1==0);
if(choose_return==1)
Menu();
else
{
cout<<endl;
cout<<" ********************"<<endl;
cout<<" *---- 欢迎使用!----*"<<endl;
cout<<" ********************"<<endl;
exit(0);
}
}
int main()
{
cout<<" ******************************"<<endl;
cout<<" * 学生信息管理系统 *"<<endl;
Menu();
return 0;
}
这段代码调试没错,但是运行有问题。
目前就写了一个录入的函数。
就是 比如先输入1个学生的信息完之后,会提示是否继续输入,选择继续输入,比如这时候输入2个学生,这时候问题就出来了。