出现这样的错误fatal error C1083: Cannot open include file: 'student.h': No such file or

u011106674 2013-06-17 09:18:54
#include <iostream.h>  
#include "student.h"
#include "dbstudent.h"

  void main()
  {
   int choice=-9999;
   Dbstudent s;
while(choice!=0)
   {
   cout<<"\n\n\t\t**** 学生信息管理系统 ****\n\n";
    cout<<"\t\t**** 1 添加学生信息 ****\n";
    cout<<"\t\t**** 2 显示学生信息 ****\n";
    cout<<"\t\t**** 3 查询学生信息 ****\n";
    cout<<"\t\t**** 4 修改学生信息 ****\n";
    cout<<"\t\t**** 5 删除一个信息 ****\n";
    cout<<"\t\t**** 6 删除全部信息 ****\n";
    cout<<"\t\t**** 0 退出 系统 ****\n";
    cout<<"请选择所需要的操作:";
    cin>>choice;
   switch(choice)
   {
   case 1:
   s.addstudent();
   break;
   case 2:
   s.display();
   break;
   case 3:
   s.query();
   break;
   case 4:
   s.modifystudent();
   break;
   case 5:
   s.deletestudent();
  
  
   break;
   case 6:
   s.clear();
   break;
   case 0:
   break;
   default:
   break;
  
   };
   }
   学生头文件
class Student
{
private:
int num;
char name[10];
char sex;
int age;
int tag; //定义一个标志位,0:未删除 1:已经删除
public:
// 写出set和get函数,和其他的函数
void setnum(int num);
void setname(char name[]);
void setsex(char sex);
void setage(int age);
void settag(); //此处不需要参数,写在具体的函数体内,这样,用户不知道。
//注意:get函数是有返回值类型的
int getnum();
char* getname(); //一定不能写成:char getname();
char getsex();
int getage();
int gettag();

//打印函数
void display();
//增加一个学生新信息


void addstudent(int num,char name[],char sex,int age);

//删除一个学生信息
void deletestudent();
};

创建一个长度为100的对象数组
class Dbstudent
{
private:
int top; //数组下标指示器,
Student student[100];
public:
Dbstudent();
~Dbstudent();
void addstudent();//添加学生
void display(); //打印,显示
void clear();//删除数据库中所有的信息
void deletestudent();//按照给定的学号进行单个的删除
void query();//查询模块
Student* querybynum(int num); //根据指定的学号进行查找
Student* querybyname(char name[]);//
void modifystudent();

};
/*student.cpp是对 student.h这个接口的具体的函数实现*/
#include "student.h"
#include <string.h>
#include <iostream.h>
#include <iomanip.h>
// 写出set和get函数,和其他的函数
void Student::setnum(int num)
{
this->num=num;
}
void Student::setname(char name[])
{
//this->name=name; //error
strcpy(this->name,name);
}
void Student::setsex(char sex)
{
this->sex=sex;
}
void Student::setage(int age)
{
this->age=age;
}
函数体内,这样,用户不知道。
{
this->tag=0;
}
//注意:get函数是有返回值类型的
int Student::getnum()
{
return num;
}
char* Student::getname() //一定不能写成:char getname();
{
return name;
}
char Student::getsex()
{
return sex;
}
int Student::getage()
{
return age;
}
int Student::gettag()
{
return tag;
}

//打印函数
void Student::display()
{
cout<<setw(8)<<num<<setw(8)<<name<<setw(8)<<sex<<setw(8)<<age<<endl;
cout<<" -------------------------------"<<endl;
}
//增加一个学生新信息
void Student::addstudent(int num,char name[],char sex,int age)
{
this->num=num;
strcpy(this->name,name);
this->sex=sex;
this->age=age;
this->tag=0;
}
//删除一个学生信息
void Student::deletestudent()
{
this->tag=1;
}
/*dbstudent.cpp是对 dbstudent.h这个接口的具体的函数实现构造函数*/
Dbstudent::Dbstudent()
{
//构造函数负责从磁盘中读取数据,放置到对象数组中(内存)
top=-1;
Student s;//定义一个临时的对象
fstream file("student.txt",ios::in);
while(1)
{
file.read((char*)&s,sizeof(s));
if(!file) break;//如果读取为空,则终止
top++;
student[top]=s;
}
file.close();//文件使用完毕后,一定要及时关闭
}
析构函数
Dbstudent:: ~Dbstudent()
{
//析构函数负责在退出程序时,把当前编辑的内容保存到磁盘上。
fstream file("student.txt",ios::out);
for(int i=0;i<=top;i++)
{
if(student[i].gettag()==0) //只有没删除的,才存盘
file.write( (char*)&student[i], sizeof(student[i]) );
}
file.close();//关闭文件

cout<<"数据已经存入数据库,可以关闭当前控制台程序..."<<endl;
}
添加学生
Dbstudent:: ~Dbstudent()
{
//析构函数负责在退出程序时,把当前编辑的内容保存到磁盘上。
fstream file("student.txt",ios::out);
for(int i=0;i<=top;i++)
{
if(student[i].gettag()==0) //只有没删除的,才存盘
file.write( (char*)&student[i], sizeof(student[i]) );
}
file.close();//关闭文件

cout<<"数据已经存入数据库,可以关闭当前控制台程序..."<<endl;
}
查询学生信息
void Dbstudent::query()//查询模块
{
int choice =-999;
Student* s; //一个临时的指针
cout<<"1 按照学号查询:"<<endl;
cout<<"2 按照姓名查询:"<<endl;
cout<<"请选择:";
cin>>choice;
switch(choice)
{
case 1:
cout<<"请输入要查询学生的学号:";
int num;
cin>>num;
s = querybynum(num);
if(s==NULL)
cout<<"在数据库中没有该生的信息..."<<endl;
else
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"年龄"<<endl;
cout<<" -------------------------------"<<endl;
s->display();


break;
case 2:
cout<<"请输入要查询学生的姓名:";
char name[10];
cin>>name;
s = querybyname(name);
if(s==NULL)
cout<<"在数据库中没有该生的信息..."<<endl;
else
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"年龄"<<endl;
cout<<" -------------------------------"<<endl;
s->display();

break;
default:
break;

};

}
Student* Dbstudent::querybynum(int num) //根据指定的学号进行查找
{
for(int i=0;i<=top;i++)
if (student[i].getnum()==num && student[i].gettag()==0 )
return &student[i]; //在数组中找到了,并且没有被删除,就返回他的地址
return NULL;//找不到,返回一个NULL
}

Student* Dbstudent::querybyname(char name[])
{
for(int i=0;i<=top;i++)
if (strcmp(student[i].getname(),name)==0 && student[i].gettag()==0 )
return &student[i]; //在数组中找到了,并且没有被删除,就返回他的地址
return NULL;//找不到,返回一个NULL
}
修改学生信息
void Dbstudent::modifystudent()
{
int num;
char name[10];
char sex;
int age;
Student* s; //一个临时的指针
char yn;//定一个接受y 或n 的字符

cout<<"请输入要修改学生的学号:"<<endl;
cin>>num;

s=querybynum(num);
if(s==NULL)
cout<<"在数据库中没有该生的信息,无法修改"<<endl;
else
{
//提示学生学号是否需要修改
cout<<"学生的学号是否需要修改?(yes/no)"<<endl;
cin>>yn;
if(yn=='Y' || yn=='y')
{
cout<<"请输入学生的新学号:";
cin>>num;
s->setnum(num);
}
//提示学生姓名是否需要修改
cout<<"学生的姓名是否需要修改?(yes/no)"<<endl;
cin>>yn;
if(yn=='Y' || yn=='y')
{
cout<<"请输入学生的新姓名:";
cin>>name;
s->setname(name);
}
//提示学生性别是否需要修改
cout<<"学生的性别是否需要修改?(yes/no)"<<endl;
cin>>yn;
if(yn=='Y' || yn=='y')
{
cout<<"请输入学生的新性别:";
cin>>sex;
s->setsex(sex);
}
//提示学生年龄是否需要修改
cout<<"学生的年龄是否需要修改?(yes/no)"<<endl;
cin>>yn;
if(yn=='Y' || yn=='y')
{
cout<<"请输入学生的新年龄:";
cin>>age;
s->setage(age);
}
cout<<"学生信息修改完毕,修改后的信息如下:\n\n\n";
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"年龄"<<endl;
cout<<" -------------------------------"<<endl;
s->display();

}

}
...全文
326 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2013-06-18
  • 打赏
  • 举报
回复
student.h 在同一个文件夹下?
图灵狗 2013-06-18
  • 打赏
  • 举报
回复
把student.h配置到搜索路径中。
zcm_xh2008 2013-06-18
  • 打赏
  • 举报
回复
你看看你工程目录中的dsp文件或者set文件里面是否包含了这个文件的路径。。。
Carl_CCC 2013-06-17
  • 打赏
  • 举报
回复
是不是文件名单词敲错了,

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧