描述

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

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

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

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

各部分内容之间均用单个英文逗号","隔开,无多余空格。输出一行,按顺序输出:姓名,年龄,学号,四年平均成绩(向下取整)。

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

Tom,18,7817,80,80,90,70

样例输出

Tom,18,7817,80

Analysis:

how to let the string become stream, and split the stream with ',':

this is my first OOP's code, At the first time I think it will be easy, but when i was trying to solve it I found it is so difficute. The main question is that I am not familar with Object-Oriented Programming.

this is my code:

#include<bits/stdc++.h>
#include<iostream>using namespace std;class Student {string name;int age;int number;int grade[4];int averageSocre;public:void calculateAverageSocre() {int sum = 0;for (int i = 0; i < 4; ++i) {sum += grade[i];}averageSocre = (sum / 4);}int print() {cout << name << ',' << age << ',' << number << ',' << averageSocre << endl;}void init(string str) {stringstream ss;ss << str;string token;getline(ss, token, ',');name = token;getline(ss, token, ',');age = stoi(token);getline(ss, token, ',');number = stoi(token);int index = 0;while (getline(ss, token, ',')) {grade[index++] = stoi(token);}}
};int main() {Student A;string str;cin >> str;A.init(str);A.calculateAverageSocre();A.print();return 0;
}

  

The below code are more better:

/* by Guo Wei个人习惯:类名和函数名首字母大写,变量名第一个单词小写,后面的单词首字母大写*/
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
class Student
{
private:static const int GRADES = 4; //只和Student相关的常量,写在 CStudent类内部比较好string name;int id;int age;int score[GRADES];
public:int Average();string GetName() { return name; }//返回值不要设成 string & ,哪怕是 const string & 也不太好,因为这样等于向外暴露了 name 属性,“隐藏”的效果不好了//虽然效率低了点,但面向对象的思想本来就会用程序的运行效率换取工程实现的效率以及可维护性,可重用性等。int GetId() { return id; }int GetAge() { return age; }void SetName( const string & name_) { name = name_; }void SetAge( int age_) { age = age_; }void SetId( int id_) { id = id_; }void SetScore(int score_[]) {memcpy(score,score_,sizeof(score));}void Init(const char *);
};
void Student::Init(const char * line)
{const char * p = strchr(line,','); //p指向line中的第一个  ','string s = line;name = s.substr(0,p-line); // substr(i,l)取从下标i开始,长度为 l 的子串sscanf(p + 1, "%d,%d,%d,%d,%d,%d",&age,&id,score,score+1,score+2,score+3); // p + 1 指向后面的年龄,学号等的字符串
}
int Student::Average() {int sum = 0;for( int i = 0;i < Student::GRADES; ++i )sum += score[i];return sum / Student::GRADES;
}
int main()
{Student stu;char line[200];gets(line);stu.Init(line);printf("%s,%d,%d,%d",stu.GetName().c_str(),stu.GetAge(),stu.GetId(),stu.Average());return 0;
}

  

转载于:https://www.cnblogs.com/ruruozhenhao/p/10116186.html

C:简单的学生信息处理程序实现相关推荐

  1. 编程作业—C++初探 简单的学生信息处理程序实现

    简单的学生信息处理程序实现 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

  2. 编程填空:学生信息处理程序_项目学生:业务层

    编程填空:学生信息处理程序 这是Project Student的一部分. 其他职位包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server和带有 ...

  3. 用python设计学生管理系统_基于python和tkinter实现的一个简单的学生信息管理系统...

    一个简单的学生信息管理系统基于python和tkinter 1.需求分析1.大学生信息管理系统使用tkinter接口创建一个窗口.使界面更漂亮.2. 实现与数据库的连接,教师和学生的信息可以保存或读取 ...

  4. python成绩管理系统设计 gui csdn_用golang简单编写学生信息管理系统

    用golang简单编写学生信息管理系统 发布时间:2020-09-04 11:45:16编辑:三青(参考七米老师的视频)查看次数:187 student.gopackage main import & ...

  5. c++ stl list实现简单的学生信息管理系统

    c++ stl list实现简单的学生信息管理系统 问题描述: 已知有20个学生记录(包括学号.姓名.成绩)的文件student.dat.要求编程序实现查询.排序.插入.删除诸功能. 系统的基本功能: ...

  6. JavaWeb 入门 最简单的学生信息管理系统

    最近在学习JavaWeb,整理一下.写了个很简单的学生信息管理系统.系统只包括简单的对学生信息进行增删改查.系统采用三层设计模式. 先展示一下系统的业务处理逻辑图: 逻辑如图所示,获取前端用户交互信息 ...

  7. Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。

    我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...

  8. JavaWeb之简单的学生信息管理系统(二)

    JavaWeb之简单的学生信息管理系统(一) JavaWeb之简单的学生信息管理系统(二) JavaWeb之简单的学生信息管理系统(三) 今日任务:实现学生管理系统的查找和添加功能! 一. 查询学生信 ...

  9. 第二周测验 001:编程填空:学生信息处理程序

    总时间限制:  1000ms 内存限制:  1024kB 描述 实现一个学生信息处理程序,计算一个学生的四年平均成绩. 要求实现一个代表学生的类,并且类中所有成员变量都是[私有的]. 补充下列程序中的 ...

最新文章

  1. Android学习路线
  2. FormsAuthentication详解
  3. 重写修改重写的Dialog显示问题
  4. 全国计算机三级哪个容易一点,给考三级网络的朋友们一点儿真诚的建议
  5. ORB-SLAM2-金字塔求解-特征点的提取-描述子的计算
  6. c#10中的namespace
  7. 【渝粤题库】广东开放大学 静态网页技术 形成性考核
  8. asp.net模态窗口返回值
  9. notebook pip install 只有星号_每日一点,带你入门Python-星号拆包
  10. SAP License:MM模块审批策略问题
  11. Apache Maven --- [标准目录布局]
  12. python3 zip函数
  13. 我的第一次--我与51CTO的故事
  14. idea 红色文件处理方法
  15. 邮件系统html源码,SpringBoot系列—简单的邮件系统(附完整项目代码)
  16. Android广告图片轮播控件banner
  17. oracle 磁盘组掉了,Oracle 11g RAC ASM磁盘全部丢失后的恢复(一)
  18. “measure”(测量)、“measurement”(测度)和“metrics”(度量)
  19. java poi jar包下载_poi.jar下载-poi.jar包下载 (3.8/3.9/3.10)版--pc6下载站
  20. Flash Photography: Canon Speedlites 闪光摄影:佳能闪光灯 Lynda课程中文字幕

热门文章

  1. flutter重新配置sdk路径_在Android中配置flutter
  2. 基于触发机制的脚本系统
  3. pip install jieba安装慢,安装失败,安装不解决办法
  4. oracle行列转换总结
  5. 优雅地关闭资源,try-with-resource语法和lombok@Cleanup
  6. 2019年春季学期第二周作业
  7. Tunnel Warfare(HDU1540+线段树+区间合并)
  8. golang 防知乎 中文验证码 源码
  9. PrintWriter中的write与println方法居然就是这些区别
  10. 《Linux命令行与shell脚本编程大全》第十五章 呈现数据