c++基础-编译成功,运行出错,怎么回事? 帮帮忙呀

问题描述

编译成功,运行出错,怎么回事? 帮帮忙呀

我是初学者,编了好久,希望有人看看 ,帮帮忙咯!

#include
#include
#include
using namespace std;
typedef struct {
string time; //缺课日期
string order; //缺课节数
string status[3]; //缺课课程,姓名,缺课类型
}situation;
//顺序表的定义
#define MAXSIZE 1000
typedef struct {
situation *elem; //指向数据元素的基地址
int length; //线性表的当前长度

}sqlist;
void InitList_Sq(sqlist &L){
L.elem=new situation[MAXSIZE];
if(!L.elem) exit(0);
L.length=0;
}
int duhui(ifstream ifile,sqlist &L){
int i=0,j=0,n;
string c[100];
int jiexi(string s,string t,int a);
ifile.open("H:课程设计(向誉)data.txt");
while(getline(ifile,c[i])){
i++;
}
n=i;
ifile.close();
for(i=0;i
j=jiexi(c[i],L.elem[i].time,0);
j=jiexi(c[i],L.elem[i].order,j);
j=jiexi(c[i],L.elem[i].status[0],j);
j=jiexi(c[i],L.elem[i].status[1],j);
j=jiexi(c[i],L.elem[i].status[2],j);
}
return n;
}
int jiexi(string s,string t,int a){
int i=0;
while(s[a]!='40'){
t[i]=s[a];
i++;
a++;
}
return a+1;
}
void input(sqlist &L){
int i,n;
ofstream afile("H:\课程设计(向誉)\data.txt",ios::app);
if(!afile){
cerr
exit(1);
}
cout
cin>>n;
L.length=n;
for(i=0;i
cout
//gets(L.elem[i].time);
//gets(L.elem[i].order);
cin>>L.elem[i].time>>L.elem[i].order>>L.elem[i].status[0]>>L.elem[i].status[1]>>L.elem[i].status[2];
afile<<L.elem[i].time<<" "<<L.elem[i].order<<" "<<L.elem[i].status[0]<<" "<<L.elem[i].status[1]<<" "<<L.elem[i].status[2]<<endl;
}
afile.close();
}

void adjust(sqlist L){
string name;
int i,a,n;
ifstream afile("H:课程设计(向誉)data.txt");
n=duhui(afile,L);
afile.close();
cout<<"输入要修改的学生姓名:";
cin>>name;
for(i=0;i
if(name==L.elem[i].status[1]){
cout
cout
cout
cout
cin>>a;
switch(a)
{
case 1: cout<<"输入修改值:";cin>>L.elem[i].time;break;
case 2: cout<<"输入修改值:";cin>>L.elem[i].order;break;
case 3: cout<<"输入修改值:";cin>>L.elem[i].status[0];break;
case 4: cout<<"输入修改值:";cin>>L.elem[i].status[2];break;
}
cout<<"修改后的信息:"<<endl;
cout<<L.elem[i].time<<" "<<L.elem[i].order<<" "<<L.elem[i].status[0]<<" "<<L.elem[i].status[1]<<" "<<L.elem[i].status[2];
}
}
ofstream bfile("H:课程设计(向誉)data.txt");
for(i=0;i<n;i++){
bfile<<L.elem[i].time<<" "<<L.elem[i].order<<" "<<L.elem[i].status[0]<<" "<<L.elem[i].status[1]<<" "<<L.elem[i].status[2]<<endl;
}

}

void checkname(sqlist L){
int i,j=0,a[100],count,n;
string name;
void astime(sqlist &L,int a[],int n);
ifstream afile("H:课程设计(向誉)data.txt");
n=duhui(afile,L);
afile.close();
cout<<"输入要查询学生姓名:";
cin>>name;
for(i=0;i<n;i++){
if(name==L.elem[i].status[1]){
a[j]=i;
j++;
}
}
count=j;
astime(L,a,count);
for(i=0;i<count;i++){
cout<<L.elem[a[i]].time<<" ";
cout<<L.elem[a[i]].order<<" ";
cout<<L.elem[a[i]].status[0]<<" ";
cout<<L.elem[a[i]].status[1]<<" ";
cout<<L.elem[a[i]].status[2]<<endl;
}
}

void astime(sqlist &L,int a[],int n){
int t;
for(int i=0;i
for(int j=0;j
if(L.elem[a[j]].time>L.elem[a[j+1]].time){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}else if(L.elem[a[j]].time==L.elem[a[j+1]].time){
if(L.elem[a[j]].order>L.elem[a[j+1]].order){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;

             }
         }
     }
 }

}

void checktime1(sqlist &L){
int i,j=0,p=0,n,count=0,d=0,s;
int a[100],b[100],c[100];
string name[100],rname[100];
string time1,time2;
void asclass(sqlist &L,string r[],int a[],int n);
ifstream afile("H:课程设计(向誉)data.txt");
s=duhui(afile,L);
afile.close();
cout<<"输入时间段:"; //2008-04-28 2008-04-30
cin>>time1>>time2;
for(i=0;i
if(L.elem[i].time>=time1&&L.elem[i].time<=time2){
name[j]=L.elem[i].status[1];
c[j]=i; //辅助数组
j++;
}
}
n=j;
for(i=0;i
a[i]=0; //辅助数组
b[i]=0; //辅助数组 旷课节数
}
for(i=0;i
for(j=0;j
if(name[i]==name[j]&&a[j]==0){
a[j]=1;
count+=((L.elem[c[j]].order[2]-L.elem[c[j]].order[0])+1)/2;
d++;
}
}
if(d>0){
b[p]=count; //计算旷课节数
rname[p]=name[i];
p++;
count=0;
}
}
asclass(L,rname,b,p);
cout<
for(i=0;i
cout
}
}
void asclass(sqlist &L,string r[],int a[],int n){
int t;
string st;
for(int i=0;i
for(int j=0;j
if(a[j]t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}else if(a[j]==a[j+1]){
if(r[j]>r[j+1]){
st=r[j+1];
r[j+1]=r[j];
r[j]=st;
}
}
}
}
}

void checktime2(sqlist &L){
int i,j=0,k=0,p=0,n,count=0,s;
int a[100],b[100];
string cls[100],rcls[100];
string time1,time2;
ifstream afile("H:课程设计(向誉)data.txt");
s=duhui(afile,L);
afile.close();
cout<<"输入时间段:"; //2008-04-28 2008-04-30
cin>>time1>>time2;
for(i=0;i
if(L.elem[i].time>=time1&&L.elem[i].time<=time2){
cls[j]=L.elem[i].status[0];
j++;
}
}
n=j;
for(i=0;i
a[i]=0; //辅助数组
b[i]=0; //辅助数组 旷课人次
}
for(i=0;i
for(j=0;j
if(cls[i]==cls[j]&&a[j]==0){
a[j]=1;
count++;
}
}
if(count>0){
b[p]=count;
rcls[p]=cls[i];
p++;
count=0;
}

 }
 asclass(L,rcls,b,p); //b:旷课人次
 cout<<time1<<"至"<<time2<<"期间旷课情况:"<<endl;
 for(i=0;i<n;i++){
     cout<<rcls[i]<<" "<<"旷课人次:"<<b[i]<<endl;
 }

}

void display(sqlist &L){
int i=0;
string a[100];
ifstream afile("H:课程设计(向誉)data.txt",ios::in);
if(!afile){
cerr<<"open error!"<<endl;
exit(1);
}
while(getline(afile,a[i])){
cout<<a[i]<<endl;
i++;
}
afile.close();
}

int main(){
int a;
sqlist L;
InitList_Sq(L);
cout<<"(1).录入学生的缺课记录"<
cout
cout
cout
cout
cout
cout
cin>>a;
while(a!='7'){

     switch(a){
     case 1: input(L);break;
     case 2: adjust(L);break;
     case 3: checkname(L);break;
     case 4: checktime1(L);break;
     case 5: checktime2(L);break;
     case 6: display(L);break;
     case 7: return 0;
     }
     cin>>a;
 }
 return 0;

}

解决方案

运行某些功能模块时 出现 unhandled exception in cpp1.exe:0xC0000005;access violation

解决方案二:

0xC0000005
明显说明你有指针没有分配空间。

解决方案三:

  1. 检查 xxx.cpp 里有是否已经包含 #include "stdafx.h"
  2. 执行【build】—>clean
  3. 删除以下四个文件

    xxx.ncb文件 (支持ClassView )

    xxx.aps文件 (支持ResourceView)

    xxx.opt文件 (保存工作空间的配置,删除此文件后,xxx的工作空间配置将恢复到默认的设置)

    xxx.clw文件 (支持ClassWizard)

  4. 重新编译

解决方案四:

没包含那个文件呀 怎样删除那四个文件呢?不知道在哪里

解决方案五:

main里面的sqlist L是一个结构,没有分配空间就直接使用了。

解决方案六:

喂喂喂#include 好不好

解决方案七:

你的代码指针出错了,这种问题用编译器断点调试一下是最简单的,而且你能更快的熟悉你的代码逻辑。

时间: 2024-08-01 20:45:08

c++基础-编译成功,运行出错,怎么回事? 帮帮忙呀的相关文章

数据结构-简单的图实现,编译成功运行不了,求指导

问题描述 简单的图实现,编译成功运行不了,求指导 包括4个部分代码 [ 主函数: ]1 #include #include typedef char DataType; #define MaxSize 100 #define MaxVertices 10 #define MaxEdges 100 #define MaxWeight 10000 #include"AdjMGragh.h" #include"AdjMGraghCreate.h" int main() {

maven运行出错,求大神帮忙解决

问题描述 maven运行出错,求大神帮忙解决 java.lang.ArrayIndexOutOfBoundsException: 24444 at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.eclipse.jetty.annotati

用VS2008自带模板创建的WCF服务库项目,什么都没改过,编译没问题但启动时出错,请帮帮忙。

问题描述 用VS2008自带模板创建的WCF服务库项目,代码配置全都没改过,编译没问题但启动时出错,请帮帮忙.本人用的是win7+vs2008后台输出如下:"WcfSvcHost.exe"(托管):已加载"C:WindowsassemblyGAC_32mscorlib2.0.0.0__b77a5c561934e089mscorlib.dll""WcfSvcHost.exe"(托管):已加载"E:ProgramFilesMicrosoft

c++-为什么这个程序不能正确运行? 求大家帮帮忙

问题描述 为什么这个程序不能正确运行? 求大家帮帮忙 #include<iostream> #include<string> #include<vector> #include<algorithm> #include"HasPtr.h" //#include"TreeNode.h" using namespace std; //13.27 30 31编写自己版本的使用引用计数的HasPtr int main(int a

新人小白求助 很简单的一个修改密码的代码,但密码一直修改不成功,求大神帮帮忙

问题描述 这是我的修改密码的代码,要求输入用户名,密码,原密码和确认密码四个内容usingSystem;usingSystem.Linq;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebC

菜鸟用Editplus 编译和运行出错(低级问题 请各位GGMM帮我解决哈 附出错提示)

问题描述 安装好jdk1.6并已经设置好环境变量编辑一个简单程序在编译是报错具体是:javac:无效的标记:C:program用法:javac<option><sourcefiles>-help用于列出可能的选项请按任意键继续...运行是的报错是:Exceptioninthread"main"java.lang.NoclassDeFoudError:HelloCausedby:java.lang.classNotFoundexception:helloatjav

eclipse下运行hadoop的单词计数程序出错,大家帮帮忙

问题描述 log4j:WARNNoappenderscouldbefoundforlogger(org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARNPleaseinitializethelog4jsystemproperly.log4j:WARNSeehttp://logging.apache.org/log4j/1.2/faq.html#noconfigformoreinfo. 解决方案

安装时出错 请大家帮帮忙

问题描述 安装一半的时候出现此窗口!请大家帮帮忙谢谢feature;defaultfeaturecomponent;newcomponent4file;c;programfiles......data1.2libdependenciesorojaka28c8.rraerror;系统找不到指定的文件, 解决方案 解决方案二:安装什么的?解决方案三:安eclipse解决方案四:卸干净了再重装吧解决方案五:关键是没安上怎么卸载啊

网站能够正确编译,但是编译出来运行却有错

问题描述 未编译运行正常,编译正常,编译后运行出错? 解决方案 解决方案二:肯定是代码有问题啦..解决方案三:仔细检查代码解决方案四:把错误贴出来解决方案五:出错信息?解决方案六:是啊,为什么这样呢解决方案七:code??解决方案八:你网站配置的时候的问题吧?