c++编写的程序试调的时候没有错误但运行的时候有错误,求教

#include<string>
#include<iostream>
#include<iomanip>
using namespace std;
class staff
{
public:staff(){}//构造函数
~staff(){}//析构函数
friend void inputs (staff *p);//添加数据
friend void lookfor(staff *w);//查询数据
friend void change(staff *t);//修改数据
friend void display(staff *r);//浏览数据
private:
int birthday;//生日
string place;//住址
int time;//参加工作时间
string sex;//性别
string post;//职称
string name;//姓名
};//函数实现
void inputs (staff *p)//添加人事信息
{
cout<<"请输入人事信息"<<endl<<endl;
cout<<"birthday:";cin>>p->birthday;
cout<<"place:";cin>>p->place;
cout<<"time:";cin>>p->time;
cout<<"sex:";cin>>p->sex;
cout<<"post:";cin>>p->post;
cout<<"name:";cin>>p->name;
cout<<endl<<endl;
}
void lookfor (staff *w)//查询人事信息
{
cout<<"请输入人事信息(生日 name/性别 sex)"<<endl;
int a1;
cin>>a1;cout<<endl<<endl;
if
(a1==w->birthday||a1==w->time)
cout<<"birthday:"<<w->name<<endl<<"place:"<<w->place<<endl<<"time:"<<w->time<<endl<<"time:"<<w->time<<endl<<"post:"<<w->post<<endl<<endl;
else
cout<<"没有相关信息"<<endl<<endl;
}
void change(staff *t)//修改人事信息
{
cout<<"请重新输入人事信息"<<endl;
cout<<"birthday:";cin>>t->birthday;
cout<<"place:";cin>>t->place;
cout<<"timer:";cin>>t->time;
cout<<"sex:";cin>>t->sex;
cout<<"post:";cin>>t->post;
cout<<"name:";cin>>t->name;
cout<<endl<<endl;
}
void display(staff *r)//浏览人事信息
{
cout<<"birtday:"<<r->birthday<<endl<<"place:"<<r->place<<endl<<"time:"<<endl<<"sex:"<<r->sex<<endl<<"post:"<<r->post<<endl<<"name:"<<r->name<<endl;
}//主函数
void main()
{
system("color 5d");
int m,j;
staff people_1[100];
static int i;
cout<<"*******************************"<<endl<<endl;
cout<<" "<<"欢迎进入人事信息管理系统"<<endl<<endl;
cout<<"*******************************"<<endl<<endl;
while(1)
{
cout<<" "<<"请选择服务类别"<<endl<<endl;
cout<<"1 增加人事信息"<<endl<<"2 查询人事信息"<<endl<<"3 修改人事信息"<<endl<<"4 浏览人事信息"<<endl<<"5 退出系统"<<endl;
cin>>j;cout<<endl;
switch(j)
{
case 1:cout<<"请输入增加信息数目"<<endl;
cin>>i;
cout<<endl;
for(m=0;m<i;m++)
{
inputs(&people_1[m]);

break;
}
case 2:{
if(i==0) cout<<"无人事信息,请重新输入!"<<endl<<endl;
else for(int f=0;f<i;f++)
{
lookfor(&people_1[f]);
}
break;
}
case 3:{
if(i==0) cout<<"无人事信息,请重新输入!"<<endl<<endl;
else for(int h=0;h<i;h++)
{
change(&people_1[h]);
}
break;
}
case 4:{
if(i==0) cout<<"无人事信息,请重新输入!"<<endl<<endl;
else for(int k=0;k<i;k++)
{
display(&people_1[k]);
cout<<endl<<endl;
}
}
}
if(j==5)
{
break;
}
}
}

第1个回答  2011-07-07
给你全改好了
显示操作内容我就不贴完了

*******************************

欢迎进入人事信息管理系统

*******************************

请选择服务类别

1 增加人事信息
2 查询人事信息
3 修改人事信息
4 浏览人事信息
5 退出系统
1

请输入增加信息数目
1

请输入人事信息

birthday:111111
place:222222
time:33333
sex:4444
post:5555
name:6666

请选择服务类别

1 增加人事信息
2 查询人事信息
3 修改人事信息
4 浏览人事信息
5 退出系统
2

请输入人事信息(生日 name/性别 sex)
111111

name:6666
place:222222
time:33333
sex:4444
post:5555

请选择服务类别

1 增加人事信息
2 查询人事信息
3 修改人事信息
4 浏览人事信息
5 退出系统
..............................

#include<string>
#include<iostream>
#include<iomanip>
using namespace std;
class staff
{
public:staff(){}//构造函数
~staff(){}//析构函数
friend void inputs (staff *p);//添加数据
friend void lookfor(staff *w);//查询数据
friend void change(staff *t);//修改数据
friend void display(staff *r);//浏览数据
private:
int birthday;//生日
string place;//住址
int time;//参加工作时间
string sex;//性别
string post;//职称
string name;//姓名
};//函数实现
void inputs (staff *p)//添加人事信息
{
cout<<"请输入人事信息"<<endl<<endl;
cout<<"birthday:";cin>>p->birthday;
cout<<"place:";cin>>p->place;
cout<<"time:";cin>>p->time;
cout<<"sex:";cin>>p->sex;
cout<<"post:";cin>>p->post;
cout<<"name:";cin>>p->name;
cout<<endl<<endl;
}
void lookfor (staff *w)//查询人事信息
{
cout<<"请输入人事信息(生日 name/性别 sex)"<<endl;
int a1;
cin>>a1;cout<<endl<<endl;
if(a1==w->birthday||a1==w->time)
cout<<"name:"<<w->name<<endl<<"place:"<<w->place<<endl<<"time:"<<w->time<<endl<<"sex:"<<w->sex<<endl<<"post:"<<w->post<<endl<<endl;
else
cout<<"没有相关信息"<<endl<<endl;
}
void change(staff *t)//修改人事信息
{
cout<<"请重新输入人事信息"<<endl;
cout<<"birthday:";cin>>t->birthday;
cout<<"place:";cin>>t->place;
cout<<"timer:";cin>>t->time;
cout<<"sex:";cin>>t->sex;
cout<<"post:";cin>>t->post;
cout<<"name:";cin>>t->name;
cout<<endl<<endl;
}
void display(staff *r)//浏览人事信息
{
cout<<"birtday:"<<r->birthday<<endl<<"place:"<<r->place<<endl<<"time:"<<endl<<"sex:"<<r->sex<<endl<<"post:"<<r->post<<endl<<"name:"<<r->name<<endl;
}

//主函数
void main()
{
system("color 5d");
int m,j;
staff people_1[100];
static int i;
cout<<"*******************************"<<endl<<endl;
cout<<" "<<"欢迎进入人事信息管理系统"<<endl<<endl;
cout<<"*******************************"<<endl<<endl;
while(1)
{
cout<<" "<<"请选择服务类别"<<endl<<endl;
cout<<"1 增加人事信息"<<endl<<"2 查询人事信息"<<endl<<"3 修改人事信息"<<endl<<"4 浏览人事信息"<<endl<<"5 退出系统"<<endl;
cin>>j;cout<<endl;
switch(j)
{
case 1:cout<<"请输入增加信息数目"<<endl;
cin>>i;
cout<<endl;
for(m=0;m<i;m++)
{
inputs(&people_1[m]);
}
break;
case 2:
if(i==0)
cout<<"无人事信息,请重新输入!"<<endl<<endl;
else
{
for(int f=0;f<i;f++)
{
lookfor(&people_1[f]);
}
}
break;
case 3:
if(i==0)
cout<<"无人事信息,请重新输入!"<<endl<<endl;
else
{
for(int h=0;h<i;h++)
{
change(&people_1[h]);
}
}
break;
case 4:
if(i==0)
cout<<"无人事信息,请重新输入!"<<endl<<endl;
else
{
for(int k=0;k<i;k++)
{
display(&people_1[k]);
cout<<endl<<endl;
}
}
}
if(j==5)
{
break;
}
}
}
第2个回答  2011-07-07
调试了下,没有错误。你输入数据时注意格式应该就可以了。本回答被提问者采纳
第3个回答  2011-07-07
如果编译通过,我运行也没错(如果你不故意戏弄你这个不堪一击的东西的话)。
第4个回答  2011-07-07
c++编写的程序试调中忘了什么所以出错了吧

运行程序的时候出现C++错误怎么办
运行程序的时候出现C++错误这样的问题一般是因为DLL文件出错或者VC运行库没有安装导致的,解决方法 一、下载VC运行库进行安装修复,修复后再进行测试。二、以管理员身份运行命令提示符,打开开始菜单,搜索cmd。在命令提示符上单击右键,选择“以管理员身份运行”;在命令提示符中输入以下命令:for%iin(%win...

在C++中运行程序,为什么在编译时没有问题,但是回到程序的执行时,就会...
其中最常见的是数组访问越界和野指针问题,当然也有部分野引用问题也会造成运行时崩溃。所以你要通过改变编程风格或者确保每次进行内存的相关操作的时候尽力谨慎。前者可以参考 effective C++ 系列和imperfect C++这些书。另外你编写的代码有很大的问题:Bitnode *gen;\/\/根节点 int sum;全局变量只在本文件有...

我装了c++程序本身没有错误,可是运行后总是提示有一个错误,求教!!!
你试试打开工程菜单,选择Settings,看C\/C++面版中选择Precompiled Headers里面是不是选择的Use precompiled Header file(.pch),如果是的话,建议选中t第一项Not using precompliled headers,因为从你代码里看,你是没有用上stdafx.h文件,如果不取消的话,编译会报错的。以上都是猜想,因为看不到错误...

c++程序运行时产生错误报告
回答:这样的问题一般都是“内存非法访问”引起的。请将你的左值初始化好,并查看一下你的指针是不是指到一个不应该指的地方了,内存分配正确不?

C++程序,为什么编译通过了,执行时却出现错误
编译通过是因为你没有语法问题,运行出错是你的程序有逻辑问题,空指针,内存漏洞等程序问题

为什么我的c++编译运行时有错误啊!
解决方法:一对花括号一对的找,肯定少了一个。注意:不要直接点击”编译并且运行”,而是应该点击”编译”按钮,这样可以保证警告不会被忽略,一些警告是非常有用的。有多个错误,要先处理最前面的错误,因为后面的错误可能前面的错误引发的.所以修改最前面的错误后就可以立即重新编译,往往可以看到所有...

C++源程序运行时有错误,求大神指教
一般这种运行时出错的都是进入死循环了,就是循环条件写错了,你可以自己检查一下循环条件。

为什么C++编写的程序第一次运行没错,之后运行就出现 出现程序错误
可能是第二次运行时,这句没成功,而你没有判断就直接操作文件,所以出现未知错误,你在这里设一个断点看看。fp=fopen("data2.txt","w+");

我编写了一则c++程序,可是电脑运行时显示有错,我没看出有错,请高人指...
你的问题就在于,你的case语句没有用大括号括起来,编译器没有分出来,他是switch的语句。加一个大括号,就没错误了。include "stdio.h"int main(){ int t,s;float I,award;printf("enter I=");scanf("%f",&award);t=100000;s=I\/t;if(s>=10){ award=t*0.1+t*0.075+2*t*0....

我编了一个c++程序,语法没有错误,但是不能执行,每次那个黑框就弹出一...
这是因为你生成的程序是命令行方式的,不是windows的GUI方式. 命令行方式在"命令提示符"环境下运行才正常,用"开始"-"运行"或在集成调试环境下运行要加getch();或system("pause");让它暂停以便观察."开始"-"运行"-, 输入cmd命令即可进入命令行方式....

相似回答
大家正在搜