问题及代码:
main主函数的代码:
/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: 图书馆的书 .cpp *作 者:莉莉 *完成日期:2015年3月18日 *版 本 号:v1.0 *问题描述:下面提供了类Stu的数据成员定义,和用于测试的main函数,参考如图的运行结果,完成类的定义,并用多文件形式组织程序 */ #include<iostream> #include<string> #include "grade.h" using namespace std; int main() { Stu s1,s2; s1.setStudent("Lin daiyu", 98, 96); //对象置初值 s2.setStudent("Jia baoyu", 90, 88); //对象置初值 s1.show();//打印信息 s2.show();//打印信息 s1.setName("xue baochai");//重新置p1对象的名字 s1.show(); cout<<"s1.Name: "<<s1.getName()<<endl;//打印对象的名字 cout<<"s1.average: "<<s1.average()<<endl;//打印对象的成绩 return 0; }
类的声明:
#ifndef GRADE_H_INCLUDED #define GRADE_H_INCLUDED #include<string> using namespace std; class Stu { private: string name; //学生姓名 double chinese; //语文成绩 double math; //数学成绩 //接下去写 public: void setStudent(string ,double,double); void setName(string); void show(); double average(); double sum(); string getName(); }; #endif // GRADE_H_INCLUDED
成员函数的定义:
#include<iostream> #include <string> #include "grade.h" using namespace std; void Stu::setStudent(string names,double ch,double ma) { name=names; chinese=ch; math=ma; } void Stu::show() { cout<<"name:"<<name<<endl; cout<<"score:"<<chinese<<'\t'<<math<<endl; cout<<"average:"<<average()<<'\t'<<"sum:"<<sum()<<endl; } double Stu::sum() { return chinese+math; } double Stu::average() { return (chinese+math)/2; } void Stu::setName(string na) { name=na; } string Stu::getName() { return name; }
运行结果:
心得体会:在写程序的过程中还是比较顺利的,但是比较容易发的一个错误就是string在多文件的时候老是忘记都先声明,导致错误!看来贺老的视频还是要再看一遍啊