第二周作业

简单的学生信息处理程序实现

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的。

(注:评测系统无法自动判断变量是否私有。我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否则可能会影响作业成绩。)

输入

姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。

其中姓名、学号为字符串,不含空格和逗号;年龄为正整数;成绩为非负整数。

各部分内容之间均用单个英文逗号”,”隔开,无多余空格。

输出

一行,按顺序输出:姓名,年龄,学号,四年平均成绩(向下取整)。

各部分内容之间均用单个英文逗号”,”隔开,无多余空格。

输入:
Tom,18,7817,80,80,90,70
输出:
Tom,18,7817,80

作业源码:

#include <iostream>
#include <vector>
#include <string>
#include <math.h>
using namespace std;

class student{
public:
    void out(){
          cout<<name<<","<<a<<","<<b<<","<<aveg()<<endl;
    }
    void init(string a_){
        for(int i=0;i<a_.size();++i){
            if(ispunct(a_[i]) || i==a_.size()-1){
                if(i==a_.size()-1){
                    g=g+"0";
                    b_.push_back(g);
                    break;
                }
                b_.push_back(g);
                g="";
            }else{
                g=g+a_[i];
            }
        }
        name=b_[0];
        a=str2int(b_[1]);
        b=str2int(b_[2]);
        c=str2int(b_[3]);
        d=str2int(b_[4]);
        e=str2int(b_[5]);
        f=str2int(b_[6]);
    }
private:
    int a,b,c,d,e,f;
    string name,g;
    vector<string> b_;

    int aveg(){
        return((c+d+e+f)/4);
    }

    int str2int(string str){
        int sum=0;
        for(int i=str.size()-1;i>-1;--i){
            sum+=((int)str[i]-48)*(pow(10,(str.size()-i-1)));
        }
        return sum;
    }

};


int main(){
    string a;
    student d;
    getline(cin,a);
    d.init(a);
    d.out();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值