一道简单的C++题目,高手帮帮忙答得好的有分加。
用较基础的,大一能看懂的(最好有解释,做的好的有分加)写一个关于学生信息的结构(学号,姓名,籍贯,成绩)要求:1,写简单菜单;2,录入函数;3,写一个以学号为关键字的排序...
用较基础的,大一能看懂的(最好有解释,做的好的有分加)
写一个关于学生信息的结构(学号,姓名,籍贯,成绩)
要求:
1, 写简单菜单;
2, 录入函数;
3, 写一个以学号为关键字的排序算法;
4, 在6月1号前上交。
老师说下面程序有问题请高手帮忙改。
老师说下面程序有问题请高手帮忙改。
#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,成绩
class CStudent
{
public: //公有类型声明
char strName[12]; //姓名
char strStuNO[15]; //学号
int intscore[3];//成绩
char str,strN,score;
CStudent(char str[15],char Name[12]) //构造函数
{
strcpy(strStuNO,str);
strcpy(strName,Name);
}
};
void main()
{
char str[15],strN[12],score[3];
//以下是调用,为简化问题,只输入三个同学
cout<<"开始录入学生信息,以@结束:"<<endl;
for (int i=0;i<3;i++)
{
cout<<"请输入学号:"<<endl;
cin>>str;
cout<<"请输入姓名:"<<endl;
cin>>strN;
cout<<"请输入成绩:"<<endl;
cin>>score;
CStudent Twostu1(str,strN);
cout<<"第"<<i+1<<"个学生"<<" 学号:"<<str<<" 姓名:"<<strN<<" 成绩:"<<score<<endl;
}
system("pause");
}
可以发到邮箱:623118351@qq.com 展开
写一个关于学生信息的结构(学号,姓名,籍贯,成绩)
要求:
1, 写简单菜单;
2, 录入函数;
3, 写一个以学号为关键字的排序算法;
4, 在6月1号前上交。
老师说下面程序有问题请高手帮忙改。
老师说下面程序有问题请高手帮忙改。
#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,成绩
class CStudent
{
public: //公有类型声明
char strName[12]; //姓名
char strStuNO[15]; //学号
int intscore[3];//成绩
char str,strN,score;
CStudent(char str[15],char Name[12]) //构造函数
{
strcpy(strStuNO,str);
strcpy(strName,Name);
}
};
void main()
{
char str[15],strN[12],score[3];
//以下是调用,为简化问题,只输入三个同学
cout<<"开始录入学生信息,以@结束:"<<endl;
for (int i=0;i<3;i++)
{
cout<<"请输入学号:"<<endl;
cin>>str;
cout<<"请输入姓名:"<<endl;
cin>>strN;
cout<<"请输入成绩:"<<endl;
cin>>score;
CStudent Twostu1(str,strN);
cout<<"第"<<i+1<<"个学生"<<" 学号:"<<str<<" 姓名:"<<strN<<" 成绩:"<<score<<endl;
}
system("pause");
}
可以发到邮箱:623118351@qq.com 展开
3个回答
展开全部
既然你学了c++,我建议你多用类,多用面对对象思维。实现菜单并不难,输出几个选项,并要求输入一个数值,根据数值判断用户选择,再根据选择执行不同的代码即可,不用想的那么复杂。你的程序太乱,有些定义的变量都没有用,我给你改装了一下。
#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,成绩
class CStudent
{
public: //公有类型声明
char strName[12]; //姓名
char strStuNO[15]; //学号
int intscore[3];//成绩
//char str,strN,score; //问题语句
CStudent() //构造函数
{
}
void CopyFrom(CStudent s)
{
strcpy(this->strName,s.strName);
strcpy(this->strStuNO,s.strStuNO);
int i;
for(i=0;i<3;i++)
{ this->intscore[i]=s.intscore[i]; }
}
//输入键枣燃学生信息
void Input()
{
cout<<"请输入学号:"<<endl;
cin>>strStuNO;
cout<<"请输入姓名:"<岩颤<endl;
cin>>strName;
cout<<"请输入成绩1:"<<endl;
cin>>intscore[0];
cout<<"请输入成绩2:"<<endl;
cin>>intscore[1];
cout<<"请输入成绩3:"<<endl;
cin>>intscore[2];
}
//输出学生信息
void Output()
{
cout<<"学号:"<<strStuNO<<",姓名:"<<strName<<", 成绩:"<<intscore[0]<<", "<<intscore[1]<<", "<<intscore[2]<<endl;
}
};
class MyProgram
{
//以下是调用,为简化问题,只输入三个同学
CStudent students[3];
//对n个学生排序
void Sort(int n,CStudent stus[])
{
CStudent tmp;
int i,j;
//用冒泡法从稿虚小到大排序
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
if(strcmp(stus[i].strStuNO,stus[j].strStuNO)<0)
{
//交换students[i]和students[j]
tmp.CopyFrom(stus[i]);
stus[i].CopyFrom(stus[j]);
stus[j].CopyFrom(tmp);
}
}
}
}
public:
void Run()
{
//cout<<"开始录入学生信息,以@结束:"<<endl; //问题语句
for (int i=0;i<3;i++)
{
students[i].Input();
students[i].Output();
}
//简单的选择菜单
cout<<"请选择菜单:0.排序;1.不排序"<<endl;
int ch;
cin>>ch;
if(ch==0)
{ Sort(3,students); }
for (int i=0;i<3;i++)
{
students[i].Output();
}
}
};
void main()
{
//char str[15],strN[12],score[3];
MyProgram program;
program.Run();
system("pause");
}
#include <iostream>
#include <string.h>
using namespace std;
//构造学生类 属性有:学号,姓名,成绩
class CStudent
{
public: //公有类型声明
char strName[12]; //姓名
char strStuNO[15]; //学号
int intscore[3];//成绩
//char str,strN,score; //问题语句
CStudent() //构造函数
{
}
void CopyFrom(CStudent s)
{
strcpy(this->strName,s.strName);
strcpy(this->strStuNO,s.strStuNO);
int i;
for(i=0;i<3;i++)
{ this->intscore[i]=s.intscore[i]; }
}
//输入键枣燃学生信息
void Input()
{
cout<<"请输入学号:"<<endl;
cin>>strStuNO;
cout<<"请输入姓名:"<岩颤<endl;
cin>>strName;
cout<<"请输入成绩1:"<<endl;
cin>>intscore[0];
cout<<"请输入成绩2:"<<endl;
cin>>intscore[1];
cout<<"请输入成绩3:"<<endl;
cin>>intscore[2];
}
//输出学生信息
void Output()
{
cout<<"学号:"<<strStuNO<<",姓名:"<<strName<<", 成绩:"<<intscore[0]<<", "<<intscore[1]<<", "<<intscore[2]<<endl;
}
};
class MyProgram
{
//以下是调用,为简化问题,只输入三个同学
CStudent students[3];
//对n个学生排序
void Sort(int n,CStudent stus[])
{
CStudent tmp;
int i,j;
//用冒泡法从稿虚小到大排序
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
if(strcmp(stus[i].strStuNO,stus[j].strStuNO)<0)
{
//交换students[i]和students[j]
tmp.CopyFrom(stus[i]);
stus[i].CopyFrom(stus[j]);
stus[j].CopyFrom(tmp);
}
}
}
}
public:
void Run()
{
//cout<<"开始录入学生信息,以@结束:"<<endl; //问题语句
for (int i=0;i<3;i++)
{
students[i].Input();
students[i].Output();
}
//简单的选择菜单
cout<<"请选择菜单:0.排序;1.不排序"<<endl;
int ch;
cin>>ch;
if(ch==0)
{ Sort(3,students); }
for (int i=0;i<3;i++)
{
students[i].Output();
}
}
};
void main()
{
//char str[15],strN[12],score[3];
MyProgram program;
program.Run();
system("pause");
}
展开全部
最直接的问题就是说用结构体,用了个类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int i=0;i<3;i++)
{
CStudent Twostu1(str,strN);
cout<<"第"<<i+1<<"个学生"<<" 学号:"<<str<<" 姓名:"<<strN<<" 成绩:"<<score<<endl;
}
你对同一空间,初始化了三次,吵橡举这是会出错的
可以改成这样
CStudent stu[3];
for (int i=0;i<3;i++)
{
stu[i] = new CStudent(str,strN);
cout<<"第升碧"<<i+1<<"个学生"<<如贺" 学号:"<<stu[i]->str<<" 姓名:"<<stu[i]->strN<<" 成绩:"<<stu[i]->score<<endl;
}
for(int i= 0 ;i<3;i++)
{
delete stu[i];
}
{
CStudent Twostu1(str,strN);
cout<<"第"<<i+1<<"个学生"<<" 学号:"<<str<<" 姓名:"<<strN<<" 成绩:"<<score<<endl;
}
你对同一空间,初始化了三次,吵橡举这是会出错的
可以改成这样
CStudent stu[3];
for (int i=0;i<3;i++)
{
stu[i] = new CStudent(str,strN);
cout<<"第升碧"<<i+1<<"个学生"<<如贺" 学号:"<<stu[i]->str<<" 姓名:"<<stu[i]->strN<<" 成绩:"<<stu[i]->score<<endl;
}
for(int i= 0 ;i<3;i++)
{
delete stu[i];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询