我编了个小程序,第一步是输入学生信息并保存在文本中,第二步是实现查询功能
代码如下:
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
struct student
{
int ID;//学号
char name[20];//姓名
char address[20];//籍贯
int date;//出生年月
};
void getdata()
{
student str;
cout<<"学号:";
cin>>str.ID;
cout<<"姓名:";
cin>>str.name;
cout<<"籍贯:";
cin>>str.address;
cout<<"出生年月:";
cin>>str.date;
fstream fin;
fin.open("g:\\学生信息系统.txt",ios::out);
if(!fin)
{
cout<<"不能打开文件!"<<endl;
exit(0);
}
fin<<str.ID<<" "<<str.name<<" "<<str.address<<" "<<str.date<<endl;
fin.close();
}
void putdata()
{
int num;
cout<<"请输入要查询的学号:";
cin>>num;
int i;
struct student str[100];
fstream fin("g:\\学生信息系统.txt",ios::binary|ios::out);
if(!fin)
{
cout<<"不能打开文件!"<<endl;
exit(0);
}
for(i=0;i<100;i++)
{
fin.seekg(sizeof(str[i])*i,ios::beg);
fin.read((char*)&str[i],sizeof(str[i]));
if(num==str[i].ID)
{
cout<<"学号"<<" "<<"姓名"<<" "<<"籍贯"<<" "<<"出生年月"<<endl;
cout<<str[i].ID<<" "<<str[i].name<<" "<<str[i].address<<" "<<str[i].date<<endl;
}
else
cout<<"查无此人!"<<endl;
}
fin.close();
}
void thank()
{
cout<<"谢谢使用学生信息管理系统!"<<endl;
}
void main()
{
fstream fin;
fin.open("g:\\学生信息系统.txt",ios::out);
if(!fin)
{
cout<<"不能打开文件!"<<endl;
exit(0);
}
fin<<"学号"<<" "<<"姓名"<<" "<<"年龄"<<" "<<"出生年月"<<endl;
cout<<" 欢迎使用学生管理系统"<<endl;
fin.close();
while(1)
{
cout<<"1.添加学生信息"<<endl;
cout<<"2.查询学生信息"<<endl;
cout<<"0.退出系统"<<endl;
int num;
cout<<"请输入0~2进行操作"<<endl;
cin>>num;
if(num<0&&num>1)
{
cout<<"你不懂得操作吗?~~"<<endl;
}
switch(num)
{
case 0:thank();exit(1);
case 1:getdata();break;
case 2:putdata();break;
}
}
}
怎么第二步功能实现不了啊?每次都是显示查无此人的?各位高手帮帮忙,谢谢!