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;
}

...全文
412 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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也需要一个默认值
修正了已发现的所有错误.欢迎大家下载试用.. 一、项目名称:学校学生信息管理系统。 二、项目目标:实现对学校学生的信息管理——信息的建立和维护、信息的检索。 三、主要功能: 1.信息的输入:建立学生档案文件。 2.信息维护: 添加:增加新学生; 修改:学生信息的改变; 删除:学生减少。 3.信息处理 按要求检索学生信息; 按要求统计信息。 四、界面系统 1.系统管理员进入 (请输入密码) 2.一级菜单 (1 信息维护 2 信息检索 3 信息统计 4 退出) 3. 二级菜单 信息维护 (1 建立学生成绩文件 2 添加学生记录 3 删除学生记录 4 修改学生记录 5 返回上级菜单) 信息检索 (1 按班级查找 2 返回上级菜单) 信息统计 (1 成绩统计 2 返回上级菜单) 五、主要功能说明: 1.用口令(密码)形式验证管理员身份(可输入三次),合法者可进入,否则程序结束。 2.有关功能说明 1)建立学生成绩表(模块a) 建立新的学生成绩文件; 建立若干学生记录,包括姓名、学号、班级、课程编号、成绩。 2)添加学生记录(模块b) 在已存在的学生成绩文件中添加新记录。 3)删除学生记录(模块c) 在学生成绩文件中删除有三门课程不及格的学生记录; 删除前,逐条显示符合删除条件的学生姓名、成绩,确认后再删除。 4)修改学生信息(模块d) 输入学生学号,在学生成绩文件中找出该学生记录; 在屏幕上逐条显示该学生的各条记录; 每显示一条,询问是否修改,如果“Y”,输入修改后数据, 将文件原记录删除,保存新的记录; 5)按姓名和班级查找(模块e) 输入姓名显示相应信息。 6)信息统计(模块f) 同时按照班级和课程统计每门课程、每个班级的平均成绩,最高分、最低分; 在屏幕上先依次显示各门课程,对应的各个班级的统计数据。 7)退出信息管理系统,返回操作系统。

65,186

社区成员

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

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