C++学生管理系统

x519942447 2017-11-03 09:09:02
课本上的一道题,老师改了一下,上机操作总是有错误,不知道怎么改,请教大神,谢谢

老师要求身份证号改为成绩A,B,C,D,和日期一样做一个类,不需要使用内联函数。
不会引用只能复制粘贴,可能看起来比较麻烦,求大神帮帮忙啦!!!
谢谢!!!


#include <iostream>
#include <string>
using namespace std;

class Date
{
public:
Date(int,int,int);
int getYear();
int getMonth();
int getDay();
private:
int year;
int month;
int day;
};
Date::Date(int Year,int Month,int Day):year(Year),month(Month),day(Day)
{
year=Year;
month=Month;
day=Day;
}
int Date::getYear()
{
return year;
}
int Date::getMonth()
{
return month;
}
int Date::getDay()
{
return day;
}

class Score
{
public:
Score(char);
char getScore();
private:
char score;
};
Score:: Score(char score)
{
score=score;
}
char Score::getScore ()
{
return score;
}
class Student
{
public:
Student(int,string,char,int,int,int,char);
Student(Student &s);
void Show();
int getNumber();
string getName();
char getSex();

~Student(){};
private:
int number;
string name;
char sex;

Date d;
Score score;
};
Student::Student(int Number,string Name,char Sex,int Year=0,int Month=0,int Day=0,char Score)
:number(Number),name(Name),sex(Sex),d(Year,Month,Day),score(score)
{}
int Student::getNumber()
{
return number;
}
string Student::getName()
{
return name;
}
char Student::getSex()
{
return sex;
}

Student::Student(Student &s):d(s.d.getYear(),s.d.getMonth(),s.d.getDay())
{
number=s.getNumber();
name=s.getName();
sex=s.getSex();

}
Score::Score()
{
return score;
}
void Student::Show()
{
cout<<"学号: "<<getNumber()<<endl;
cout<<"姓名: "<<getName()<<endl;
cout<<"性别: "<<getSex()<<endl;
cout<<"出生年月: "<<d.getYear()<<" "<<d.getMonth()<<" "<<d.getDay()<<" "<<endl;
cout<<"成绩:"<<score.getScore()<<endl;
}

void Set()
{
int inu,iye,imo,ida;
char cse,iscore;
string sna;
cout<<"请输入学号: ";
cin>>inu;
cout<<"请输入名字: ";
cin>>sna;
cout<<endl;
cout<<"请输入性别(男性输入M,女性输入W): ";
cin>>cse;
cout<<"请输入出生年月日(中间用空格隔开): ";
cin>>iye>>imo>>ida;
cout<<"请输入成绩: ";
cin>>iscore;

Student s(inu,sna,cse,iye,imo,ida,iscore);
s.Show();
}
int main()
{
for(int i=0;i<10000;i++)
{
cout<<"请输入第"<<i+1<<"个学生信息"<<endl;
Set();
cout<<endl;
}
return 0;
}

...全文
399 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
destory27 2017-11-08
  • 打赏
  • 举报
回复
引用 4 楼 x519942447 的回复:
[quote=引用 3 楼 destory27的回复:] Date::Date(int Year,int Month,int Day):year(Year),month(Month),day(Day) {     year=Year;     month=Month;     day=Day; } /* 有初始化列表,还需要赋值吗? 可以通过, 但概念不清*/ Student::Student(int Number,string Name,char Sex,int Year=0,int Month=0,int Day=0,char Score) /*形参含默认值, 但Score却没有,(含默认值形参项后都含默认值)*/
请问要怎么改啊?您说的看不太懂。[/quote] Date::Date(int Year,int Month,int Day):year(Year),month(Month),day(Day) { } Student::Student(int Number,string Name,char Sex,int Year=0,int Month=0,int Day=0,char Score = ‘ ’) ;或 Student::Student(int Number,string Name,char Sex,char Score,int Year=0,int Month=0,int Day=0);注意传参
x519942447 2017-11-07
  • 打赏
  • 举报
回复
引用 7 楼 le_silence_de_la_mer的回复:
我有一个疑惑,为什么成绩要用char 呢?用了char的话,输入成绩的时候不是只能接收一个字符即只有一个数字吗?要不你把它改成int 试试?
要求成绩以A,B,C,D的形式输出
  • 打赏
  • 举报
回复
我有一个疑惑,为什么成绩要用char 呢?用了char的话,输入成绩的时候不是只能接收一个字符即只有一个数字吗?要不你把它改成int 试试?
x519942447 2017-11-06
  • 打赏
  • 举报
回复
引用 5 楼 paschen的回复:
引用 2 楼 x519942447 的回复:
[quote=引用 1 楼 paschen 的回复:]参数char Score也需要一个默认值
不是要手动输入成绩吗,怎么设默认值?
你前面的参数既然有默认值,后面的参数也需要,这与需不需要手动输入无关,除非你把这个参数放到所有有默认值参数的前面[/quote] 放到前边也有错啊,在后边赋了初值最后输出成绩那栏没有输出,再帮忙看看,谢谢!
paschen 版主 2017-11-05
  • 打赏
  • 举报
回复
引用 2 楼 x519942447 的回复:
引用 1 楼 paschen 的回复:
参数char Score也需要一个默认值
不是要手动输入成绩吗,怎么设默认值?
你前面的参数既然有默认值,后面的参数也需要,这与需不需要手动输入无关,除非你把这个参数放到所有有默认值参数的前面
x519942447 2017-11-05
  • 打赏
  • 举报
回复
引用 3 楼 destory27的回复:
Date::Date(int Year,int Month,int Day):year(Year),month(Month),day(Day) {     year=Year;     month=Month;     day=Day; } /* 有初始化列表,还需要赋值吗? 可以通过, 但概念不清*/ Student::Student(int Number,string Name,char Sex,int Year=0,int Month=0,int Day=0,char Score) /*形参含默认值, 但Score却没有,(含默认值形参项后都含默认值)*/
请问要怎么改啊?您说的看不太懂。
destory27 2017-11-05
  • 打赏
  • 举报
回复
Date::Date(int Year,int Month,int Day):year(Year),month(Month),day(Day) {     year=Year;     month=Month;     day=Day; } /* 有初始化列表,还需要赋值吗? 可以通过, 但概念不清*/ Student::Student(int Number,string Name,char Sex,int Year=0,int Month=0,int Day=0,char Score) /*形参含默认值, 但Score却没有,(含默认值形参项后都含默认值)*/
x519942447 2017-11-05
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
参数char Score也需要一个默认值
不是要手动输入成绩吗,怎么设默认值?
paschen 版主 2017-11-04
  • 打赏
  • 举报
回复
参数char Score也需要一个默认值

64,642

社区成员

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

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