⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 #6.cpp

📁 c++编程的一些简单例子
💻 CPP
字号:
#include <stdio.h>
#include <string.h>

enum year { freshman, sophomore, junior, senior };
enum support { ta, ra, fellowship, other };
enum level { undergraduate, graduate };

class student {

  private:               //private member only visible in base class
     level pr_member;    //equivalent to int pr_member;
     void set_pr_member() { pr_member = undergraduate; }  //private function

  protected:             //visible to subclasses derived from student
     int student_id;     
     float gpa;

  public:
     student (int id, float g) { set_pr_member(); student_id = id; gpa = g; }
     char name [15];
     char college [12];
     char major [14];
     year yr;
     void print() { printf("%-15s %-15s %4d %-12s %-14s %-9s %4.2f\n", 
                    l_char(pr_member), name, student_id, college, 
                    major, y_char(yr), gpa); 
     }
     friend char * y_char (year);	//convert year to characters
     friend char * l_char (level);	//convert level to characters
};

class grad_student : public student {
  private:
     support s;

  public:
     grad_student(support x, int id, float g) : (id, g) { s = x; }
     char dept [15];
     char thesis [50];
     void print() { printf("%-15s%-10s %-50s\n", dept, s_char(s), thesis); }

     friend char *s_char(support);	//convert support to characters
};

void proc1(student &), proc2(grad_student &);     //pass by reference

main() 
{
     student s1 (100, 2.99);
     grad_student gs1 (ta, 200, 3.01);

     proc1(s1);
     s1.print();

     proc2(gs1);
     gs1.print();
}

void proc1(student &sp)            //assign to sp
{ 
     strcpy(sp.name,    "Loope deLoop");
     strcpy(sp.college, "Art&Science"); 
     strcpy(sp.major,   "French"); 
     sp.yr = senior;
}

void proc2(grad_student &gsp)      //assign to gsp
{
     strcpy(gsp.name, "Yogi Bear");
     strcpy(gsp.dept, "Entertainment"); 
     strcpy(gsp.college, "Business");
     strcpy(gsp.thesis, "10000 ways to be smarter than the average bears");
     strcpy(gsp.major, ""); 
}

char * l_char (level l)  
{
     switch (l) {
          case undergraduate : return "Undergraduate";
          case graduate      : return "Graduate";
     }
}

char * y_char (year yr)  
{
     switch (yr) {
          case freshman : return "Freshman";
          case sophomore: return "Sophomore";
          case junior   : return "Junior";
          case senior   : return "Senior";
     }
}

char * s_char (support s)
{
     switch (s) {
          case ta : return "Ta";
          case ra : return "Ra";
          case fellowship : return "Fellowship";
          case other : return "Other";
     }
}
/* output:

Undergraduate   Loope deLoop     100 Art&Science  French         Senior    2.99
Entertainment  Ta         10000 ways to be smarter than the average bears   

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -