程序设计实习MOOC/6908/C:简单的学生信息处理程序实现
C:简单的学生信息处理程序实现
总时间限制: 1000ms 内存限制: 65536kB
描述
在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的。
(注:评测系统无法自动判断变量是否私有。我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否则可能会影响作业成绩。)
输入
姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
其中姓名、学号为字符串,不含空格和逗号;年龄为正整数;成绩为非负整数。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
输出
一行,按顺序输出:姓名,年龄,学号,四年平均成绩(向下取整)。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
样例输入
Tom,18,7817,80,80,90,70
样例输出
Tom,18,7817,80
题解分析
主要是处理字符串的问题。我把输入当作一个字符串放在sting类型的input变量里,然后用string自带的find()和substr()方法对字符串进行处理,分割出7个字符串,存放在字符串数组inputArr中。然后把这7个字符串传入student类的构造函数中,在自定义的student类的构造函数里,利用stringstream类把string类型转换成int类型。再分别写四个getX()函数返回私有成员变量。
处理输入字符串的代码片段
while(-1 != posEnd) { posEnd = input.find(",", posStart); len = posEnd - posStart; inputArr[arrPos++] = input.substr(posStart, len); posStart = posEnd + 1; }
string转换成int代码片段
stringstream sa; sa > age; //int age;
完整代码
# include# include# include# include# include# includeusing namespace std;class student{private: string name; string sno; int age; int avgGrade;public: student(string sName, string sAge, string sSno, string grade1, string grade2, string grade3, string grade4): name(sName), sno(sSno) { int sum = 0; int tgrade = 0; stringstream s1; stringstream s2; stringstream s3; stringstream s4; stringstream sa; sa > age; s1 > tgrade; sum += tgrade; s2 > tgrade; sum += tgrade; s3 > tgrade; sum += tgrade; s4 > tgrade; sum += tgrade; avgGrade = sum / 4; } string getName() { return name; } string getSno() { return sno; } int getAge() { return age; } int getAvgGrade() { return avgGrade; }};int main(){ //freopen("in.txt", "r", stdin); //freopen("mout.txt", "w", stdout); string input; string inputArr[7]; int arrPos = 0; int posStart = 0; int posEnd = 0; int len = 0; while(cin >> input) { arrPos = 0; posStart = 0; posEnd = 0; len = 0; while(-1 != posEnd) { posEnd = input.find(",", posStart); len = posEnd - posStart; inputArr[arrPos++] = input.substr(posStart, len); posStart = posEnd + 1; } student stud(inputArr[0], inputArr[1], inputArr[2], inputArr[3], inputArr[4], inputArr[5], inputArr[6]); cout << stud.getName() << "," << stud.getAge() << "," << stud.getSno() << "," << stud.getAvgGrade(); }}
c++
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!