大家帮我看看出现什么问题了?
我学艺不精,实在是不明白
#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;
}
}
}
类和对象的程序问题
答案:1 悬赏:10 手机版
解决时间 2021-06-01 19:02
- 提问者网友:佞臣
- 2021-06-01 06:59
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-06-01 07:06
关键有一点,input函数里最后调用disp函数放到循环外边去。
disp函数中输出的最后一部分"按任意键继续"也放到循环外边去。
其他的小问题我就没仔细看了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯