程序运行错误,附件是全部代码,急!!

securityworld 2009-01-02 02:34:37
我输入A录入,进入录入菜单,再输入Q退出时会报student.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
然后就退出了。
...全文
236 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx红杉树 2009-02-27
  • 打赏
  • 举报
回复
运行到这一句, cout < <"还有学生信息需要录入吗?(y/n)" < <endl;
当我输入n时就报错了,输入y会继续,不会报错。
securityworld 2009-01-03
  • 打赏
  • 举报
回复
在debug模式下就会出现错误,在release模式下就不报错误了,我在网上搜了下,说debug模式下可以捕获内存错误,所以报错。
wx红杉树 2009-01-02
  • 打赏
  • 举报
回复
运行到这一句, cout<<"还有学生信息需要录入吗?(y/n)"<<endl;
当我输入n时就报错了,输入y会继续,不会报错。
securityworld 2009-01-02
  • 打赏
  • 举报
回复
就是信息不为空,show出信息来了,但是show完后就报程序出错了
securityworld 2009-01-02
  • 打赏
  • 举报
回复
show显示后还是有错误,.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
securityworld 2009-01-02
  • 打赏
  • 举报
回复
哦,我再试试,有问题再问,谢谢帮助
wiowei 2009-01-02
  • 打赏
  • 举报
回复
我的不是vc6,我可能改了一些标准C++的东西,比如主菜单.cpp里面的#include<iostream>改回#include<iostream.h>
securityworld 2009-01-02
  • 打赏
  • 举报
回复
都报如下这样的错误:

e:\yq\课程类.h(177) : error C2297: '<<' : illegal, right operand has type 'char [15]'
e:\yq\课程类.h(178) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
e:\yq\课程类.h(180) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(181) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
e:\yq\课程类.h(184) : error C2297: '<<' : illegal, right operand has type 'char [11]'
e:\yq\课程类.h(191) : error C2297: '<<' : illegal, right operand has type 'char [13]'
e:\yq\课程类.h(193) : error C2297: '<<' : illegal, right operand has type 'char [21]'
e:\yq\课程类.h(194) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
e:\yq\课程类.h(196) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(197) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
e:\yq\课程类.h(204) : error C2297: '<<' : illegal, right operand has type 'char [28]'
e:\yq\课程类.h(205) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(206) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(207) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(208) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(209) : error C2297: '<<' : illegal, right operand has type 'char [29]'
e:\yq\课程类.h(210) : error C2297: '<<' : illegal, right operand has type 'char [28]'
e:\yq\课程类.h(211) : error C2297: '<<' : illegal, right operand has type 'char [22]'
e:\yq\课程类.h(212) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
e:\yq\课程类.h(225) : error C2297: '<<' : illegal, right operand has type 'char [37]'
e:\yq\课程类.h(227) : error C2297: '<<' : illegal, right operand has type 'char [23]'
e:\yq\成绩类.h(56) : error C2297: '<<' : illegal, right operand has type 'char [7]'
e:\yq\成绩类.h(60) : error C2297: '<<' : illegal, right operand has type 'char [9]'
e:\yq\成绩类.h(65) : error C2297: '<<' : illegal, right operand has type 'char [8]'
e:\yq\成绩类.h(67) : error C2296: '<<' : illegal, left operand has type 'double'
e:\yq\成绩类.h(67) : error C2297: '<<' : illegal, right operand has type 'double'
e:\yq\成绩类.h(68) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
e:\yq\成绩类.h(79) : error C2297: '<<' : illegal, right operand has type 'char [20]'
e:\yq\成绩类.h(80) : warning C4552: '<<' : operator has no effect; expected operator with side-effect
securityworld 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wiowei 的回复:]
我把我改过的给你吧,覆盖掉你目录下的.h/.cpp就行了http://hwliu.cn/大作业.rar
只改了构造和析构函数,只是可以运行了,你的程序小问题挺多的
[/Quote]

我覆盖了,编译不通过,出好多错误。
麻烦再帮我看下,谢谢
securityworld 2009-01-02
  • 打赏
  • 举报
回复
先谢谢楼上,我先运行下。
wiowei 2009-01-02
  • 打赏
  • 举报
回复
我把我改过的给你吧,覆盖掉你目录下的.h/.cpp就行了http://hwliu.cn/大作业.rar
只改了构造和析构函数,只是可以运行了,你的程序小问题挺多的
securityworld 2009-01-02
  • 打赏
  • 举报
回复
我改了,还是不行,到底怎么弄阿,谁能帮我弄好阿,时间太急了,弄好了加分,再谢谢了,同志们,帮我吧~
wiowei 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 securityworld 的回复:]
按你说的改了,还是同样的错误。
[/Quote]
那是因为你的course、grade、mark类都有同样的问题
1 每个类的默认构造函数都要把char* 变量赋值 NULL
2 每个类的析构函数都要在delete[] X; 前判断此变量是不是 if(X != NULL)
就呆在云上 2009-01-02
  • 打赏
  • 举报
回复

我看了下,单步执行了一下,关键在后面,而不是输入q的问题
有一个getn()函数返回n,而你的student的基类mark,和grade, 但是构造函数没有初始化mark的基类,
在course也就是说n没有设置。
记得在派生类中调用基类的构造函数!
securityworld 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wiowei 的回复:]
student S;没有初始化,下面的S.show()就完了
printf("|%s\t %s\t %6s%8s",Getnum(),Getname(),Getsex(),Getg());全是NULL
1 你的student默认构造函数里要把char*的都置NULL
2 你在S.show()之前要做判断,S里面有没有数据,没数据show他干嘛
[/Quote]

按你说的改了,还是同样的错误。
wdz609 2009-01-02
  • 打赏
  • 举报
回复
那是因为,当按下Q调用show()时,student里的成员变量没有初始化,导致引用时异常了
wiowei 2009-01-02
  • 打赏
  • 举报
回复
最简单的:加一句
void student::Show(){
if (num == NULL) return;
...
这个最好也改下:
//默认构造函数
student(){name = num = sex = NULL; }
wiowei 2009-01-02
  • 打赏
  • 举报
回复
student S;没有初始化,下面的S.show()就完了
printf("|%s\t %s\t %6s%8s",Getnum(),Getname(),Getsex(),Getg());全是NULL
1 你的student默认构造函数里要把char*的都置NULL
2 你在S.show()之前要做判断,S里面有没有数据,没数据show他干嘛
securityworld 2009-01-02
  • 打赏
  • 举报
回复
帮我修改一下吧,我都急昬了,晚上还要交。先谢谢!
xiaoyisnail 2009-01-02
  • 打赏
  • 举报
回复
上面说错了,不能在student的默认构造函数里直接调init,发现你的init不是用来做最初的初始化的
加载更多回复(7)

65,211

社区成员

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

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