永发信息网

类和对象的程序问题

答案:1  悬赏:10  手机版
解决时间 2021-06-01 19:02
大家帮我看看出现什么问题了?
我学艺不精,实在是不明白
#include<iostream>
#include<conio.h>
#include<cstring>
using namespace std;
unsigned no;
void cover()
{
cout<<"\n\n\n\n\t\t\t\t学生成绩管理系统"
<<"\n\n\n\n\n\n\t\t\t\t 制作人:"
<<"\n\n\n\n\n\n\t\t\t\t 版本号1.2.0"
<<"\n\n\n\n\n\n\t\t\t\t\t\t\t 2009-*-*"
<<"\n按任意键继续。。。";
getch();
}
void menu()
{
system("cls");
cout<<"\n\n\n\n\n\t\t\t\t学生成绩管理系统"
<<"\n\n\n\t\t\t\t 1.输 入"
<<"\n\n\n\t\t\t\t 2.显 示"
<<"\n\n\n\t\t\t\t 3.删 除"
<<"\n\n\n\t\t\t\t 4.修 改"
<<"\n\n\n\t\t\t\t 0.退 出"
<<endl
<<"\n\n请输入你要进行的操作:";
}
class Student{
unsigned num;
char name[10],sex;
int eng,cpp;
public:
void Student::disp(Student* p,int n)
{
system("cls");
cout<<"全班成绩表\n"
<<"学号\t姓名\t性别\t英语\tC++\t平均\n";
for(int i=0;i<n;i++,p++)
{
cout<<(*p).num<<'\t';
cout<<p->name<<'\t';
cout<<p->sex<<'\t';
cout<<p->eng<<'\t';
cout<<p->cpp<<'\t';
cout<<endl
<<"\n按任意键继续。。。";
}
getch();

}
void Student::input(Student *p,int n)
{
system("cls");
for(int i=0;i<n;i++,p++)
{
cout<<"请输入第"<<i+1<<"个学生的学号:";
cin>>p->num;
cout<<"姓名:";
cin>>p->name ;
cout<<"性别:";
cin>>p->sex ;
cout<<"英语成绩:";
cin>>p->eng ;
cout<<"C++成绩:";
cin>>p->cpp;
disp(p,no);
}
}
void Student::dele(Student *p,int n)
{
system("cls");
int x;
cout<<"\n\n请输入需要删除同学的学号:";
cin>>x;
if(x>no)
{
cout<<"该学生不存在!"
<<"按任意键继续。。。";
getch();
dele(p,no);
}
else
p[x-1].eng=p[x-1].cpp=0;
strcpy(p[x-1].name," ");
cout<<"删除成功!";
cout<<endl;
cout<<"按任意键继续。。。";
getch();
disp(p,no);
}
void Student::update(Student *p,int n)
{
system("cls");
int x;
cout<<"\n\n请输入需要修改同学的学号:";
cin>>x;
if(x>no)
{cout<<"该学生不存在!"
<<"按任意键继续。。。";
getch();
update(p,no);
}
else
cout<<"请重新输入第"<<x<<"号同学姓名:";
cin>>p[x-1].name;
cout<<"性别:";
cin>>p[x-1].sex;
cout<<"英语成绩:";
cin>>p[x-1].eng;
cout<<"C++成绩:";
cin>>p[x-1].cpp;
cout<<"修改成功!"
<<"按任意键继续。。。";
getch();
disp(p,no);
}
};
void main()
{
int a;
Student *p;
cover();
while(1)
{
menu();
cin>>a;
switch(a)
{
case 1:system("cls");
cout<<"\n\n\n\n\n\n\n\t\t\t\t请输入班级人数";
cin>>no;
p=new Student[no];
if (p==0)
{
cout<<"未申请到足够的动态内存!\n";
system("cls");
}
else
p->input(p,no);
break;
case 2:p->disp(p,no);
break;
case 3:p->dele(p,no);
break;
case 4:p->update(p,no);
break;
case 0:
delete []p;
cout<<"THANKS FOR USING !!";
exit(0);
break;
}
}

}








最佳答案

关键有一点,input函数里最后调用disp函数放到循环外边去。


disp函数中输出的最后一部分"按任意键继续"也放到循环外边去。


其他的小问题我就没仔细看了。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样能国战上榜?
我的Q币在哪里呢
游戏人生!
QQ群名字统一前缀
诺基亚7610怎么挂两个手机QQ还不容易掉线。
有谁喜欢多啦A梦!
一把30级的光剑强化到8能卖多少
电脑一开机就显示“没有找到 MFC71U.DLL,因
公司医保卡怎么办理,办理医保卡,小孩子可以
廣州動感地帶2g网聊校園卡完成任務贈送240話
好友把我黑名单如何恢复我成为他的好友
樱 字 的 戒指图标
豆豆粉赤出油怎么办?
谁来出几个关于关联词的题啊
买啥车好???
推荐资讯
我要在淘宝买东西、我开通了网银、接下来要怎
中国的灾难是不是最多的?
怎么样才能打台湾输入法
QQ农场方便
电脑系统装不上了急急急!!!!高手来
凸透镜所成的像的性质与什么因素有关?
为什么淘宝助理上传的宝贝 店铺里面都没的显
小孩子头发很差怎么办?
为什么爱与被爱都是如此的痛啊!
我的CF老掉线
这烟到底怎么戒
宝宝起名、父亲姓刘!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?