#include<iostream.h>
#include<string.h>
#include<fstream.h>
class Student
{
private:
int num;
char name[10];
int score;
public:
Student(){};
friend void Daolu();
friend void Liulan();
friend void Chaxun();
friend void Xiugai();
friend void Shanchu();
~Student(){};
};
Student stu[80];
void Daolu()
{
ofstream out;
out.open("stu.txt",ios::ate);
int m=1;
for(int i=0;i<=79&&m==1;i++)
{
cout<<"請輸入該學生學號: ";
cin>>stu[i].num;
cin.get();
cout<<"輸入該學生姓名: ";
cin.getline(stu[i].name,10);
cout<<"輸入該學生成績:";
cin>>stu[i].score;
out.write((char *)&stu[i],sizeof(stu[i]));
cout<<"是否繼續輸入?是按1,否按0:";
cin>>m;
}
out.close();
}
void Liulan()
{
ifstream in;
in.open("stu.txt");
if(!in)cout<<"Can't open file!"<<endl;
int i=0;
while(!in.eof())
{
in.read((char *)&stu[i],sizeof(stu[i]));
if(stu[i].num!=0)
{
cout<<"學生學號:"<<stu[i].num<<endl<<"學生姓名:"<<stu[i].name<<endl<<"學生成績:"<<stu[i].score<<endl;
i++;
}
}
in.close();
}
void Chaxun()
{
ifstream in;
in.open("stu.txt");
if(!in)cout<<"Can't open file!"<<endl;
int i=0,x,n=0;
while(!in.eof())
{
in.read((char *)&stu[i],sizeof(stu[i]));i++;}
do
{
cout<<"按學生學號查詢----1:"<<endl<<"按學生名字查詢----2:"<<endl;
cout<<"請輸入需要查詢的方式:";
cin>>x;
if(x==1)
{
int m;
cout<<"請輸入查詢的學生的學號:";
cin>>m;
for(int j=0;j<=i;j++)
if(stu[j].num==m)
{
cout<<"學生學號:"<<stu[i].num<<endl<<"學生姓名:"<<stu[i].name<<endl<<"學生成績:"<<stu[i].score<<endl;
n=1;
}
if(n==0)cout<<"無該學號學生資訊!"<<endl;
}
else
{
char a[10];
cout<<"請輸入查詢的學生的姓名: ";
cin.get();
cin.getline(a,10);
for(int j=0;j<=i;j++)
if(strcmp(stu[j].name,a)==0)
{
cout<<"學生學號:"<<stu[i].num<<endl<<"學生姓名:"<<stu[i].name<<endl<<"學生成績:"<<stu[i].score<<endl;
n=1;
}
if(n==0)cout<<"無該學生資訊!"<<endl;
}
cout<<"是否繼續查詢?是按1,否按0:";
cin>>x;
}while(x==1);
in.close();
}
void Xiugai()
{
ifstream in;
in.open("stu.txt");
if(!in)cout<<"Can't open file!"<<endl;
int i=0,x,n,c,j;
while(!in.eof())
{
in.read((char *)&stu[i],sizeof(stu[i]));
i++;
}
in.close();
do
{
cout<<"請輸入需要修改的學生的學號:";
cin>>x;
for(j=0;j<=i-1;j++)
if(stu[j].num==x)
{
cout<<"學生學號:"<<stu[i].num<<endl<<"學生姓名:"<<stu[i].name<<endl<<"學生成績:"<<stu[i].score<<endl;
n=1;
do
{
cout<<"修改該學生學號----1:"<<endl<<"修改該學生姓名----2:"<<endl<<"修改該學生成績----3:"<<endl<<"請輸入需要修改的資訊的編號:";
cin>>c;
switch(c)
{
case 1:
cout<<"請輸入正確的學號:";
cin>>stu[j].num;
break;
case 2:
cout<<"請輸入正確的姓名:";
cin.get();cin.getline(stu[j].name,10);
break;
case 3:
cout<<"請輸入正確的成績:";
cin>>stu[j].score;
break;
}
cout<<endl<<"是否繼續修改該學生資訊?是按1,否按0:";cin>>c;
}while(c==1);
}
if(n==0)cout<<"無該學號學生的資訊!"<<endl;
cout<<endl<<"是否繼續修改學生資訊?是按1,否按0:";cin>>x;
}while(x==1);
ofstream out;
out.open("stu.txt",ios::out);
for(j=0;j<=i-1;j++)
out.write((char *)&stu[j],sizeof(stu[j]));
out.close();
}
void Shanchu()
{
ifstream in;
int n=1;
do
{
in.open("stu.txt");
if(!in)cout<<"Can't open file!"<<endl;
int i=0,j,a,x;
while(!in.eof())
{
in.read((char *)&stu[i],sizeof(stu[i]));
i++;
}
in.close();
cout<<"請輸入需要洗掉的學生的學號:";
cin>>x;
for(j=0;j<=i-1;j++)
if(stu[j].num==x)a=j;
ofstream out;
out.open("stu.txt",ios::out);
for(j=0;j<=a-1;j++)out.write((char *)&stu[j],sizeof(stu[j]));
for(j=a+1;j<=i-1;j++)out.write((char *)&stu[j],sizeof(stu[j]));
out.close();
cout<<"是否繼續洗掉?是按1,否按0:";
cin>>n;
}while(n==1);
}
void main()
{
int k;
do
{
cout<<"錄入學生資訊----1"<<endl<<"瀏覽學生資訊----2"<<endl<<"查詢學生資訊----3"<<endl<<"修改學生資訊----4"<<endl<<"洗掉學生資訊----5"<<endl<<"退出系統----6"<<endl;
cout<<"請輸入需要執行的操作:";
cin>>k;
switch(k)
{
case 1:
Daolu();
break;
case 2:
Liulan();
break;
case 3:
Chaxun();
break;
case 4:
Xiugai();
break;
case 5:
Shanchu();
break;
}
}while(k!=5);
}
uj5u.com熱心網友回復:
好長啊,自己設定斷點調式吧uj5u.com熱心網友回復:
直接貼錯誤提示吧uj5u.com熱心網友回復:
直接貼錯誤提示好一些uj5u.com熱心網友回復:
幾個error 幾個warning?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/119877.html
標籤:基礎類
