C++C++自学旅程(10):巨有成就感!:C++类类型结合运用实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++C++自学旅程(10):巨有成就感!:C++类类型结合运用实战相关的知识,希望对你有一定的参考价值。

  今天晚上花了好长好长的时间啊,终于把一个程序编完了。

  这是一个录入学生信息的小程序,写了Student、Date两个class,Date嵌套在Student里面,实战演练类类型,第一次用“针对对象编程”编了一个工程量相对算大的程序,还把他们分成了一个工程中的几个文件。巨有成就感!

 1 //main.cpp
 2 //主程序
 3 #include"fram.h"
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     Student *p[5];
 9     int i=0,j,n;
10     int choice;
11     for(n=0;n<5;n++) p[n]=0;
12     cout << "----Student Register Editor----" << endl<<"1.录入\t2.输出\t3.重置\t4.退出程序"<<endl<<endl;
13     start:for(;i<5;)
14     {
15         cout<<"请输入指令序号:";
16         lop: cin>>choice;
17         switch (choice)
18         {
19         case 1:
20             p[i]=new Student;
21             p[i]->input();
22             i++;
23             break;
24         case 2:
25             if(p[0]==0)
26             {
27                 cout<<"请先录入信息,录入后才能输出"<<endl<<endl;
28                 continue;
29             }
30             cout<<"----------输出结果----------"<<endl;
31             for(j=0;j<i;j++)
32             p[j]->output();
33             cout<<"----------输出完毕----------"<<endl<<endl;
34             break;
35         case 3:
36             cout<<"----------启动重置----------"<<endl;
37             if (p[0]!=0)
38             {
39                 for(j=0;j<i;j++)
40                 {
41                     delete p[j];
42                     cout<<"删除空间"<<j+1<<endl;
43                 }
44 
45             }
46             else cout<<"\t重置中......"<<endl;
47             cout<<"----------重置完成----------"<<endl<<endl;
48             goto start;
49         case 4:
50             return 0;
51         default:
52             cout<<"输入格式错误,请重新输入:";
53             goto lop;
54         }
55     }
56 }
 1 //Student.cpp
 2 //学生的相关函数
 3 #include"fram.h"
 4 using namespace std;
 5 Student::Student()
 6 {
 7     num=grade=0;
 8 }
 9 
10 int Student::input()
11 {
12     //姓名 学号 成绩 出生日期 年龄
13     cout<<"----------学生信息输入----------"<<endl;
14     cout<<"请输入姓名:";
15     cin>>name;
16     cout<<"请输入学号:";
17     cin>>num;
18     cout<<"请输入成绩:";
19     cin>>grade;
20     cout<<"请输入出生日期:";
21     bday.input();
22     age=Tyear-bday.gyear();
23     cout<<"----------输入完毕!----------"<<endl<<endl;
24 
25 }
26 int Student::output()
27 {
28     cout<<"学生姓名:"<<name<<endl;
29     cout<<"学号:    "<<num<<endl;
30     cout<<"成绩:    "<<grade<<endl;
31     cout<<"出生日期:";
32     bday.output();
33     cout<<"年龄:    "<<age<<endl;
34     cout<<endl;
35 }
 1 //Student.h
 2 //定义学生类类型
 3 #ifndef STUDENT_H_INCLUDED
 4 #define STUDENT_H_INCLUDED
 5 #include"fram.h"
 6 class Student
 7 {
 8 public:
 9     //姓名 学号 成绩 出生日期 年龄
10     Student();
11     int input();
12     int output();
13 
14 private:
15     float grade;
16     int age,num;
17     Date bday;
18     char name[20];
19 };
20 #endif // STUDENT_H_INCLUDED
 1 //Date.cpp
 2 //有关日期的一些函数
 3 #include"fram.h"
 4 using namespace std;
 5 Date::Date()
 6 {
 7     year=month=day=0;
 8 }
 9 int Date::input()
10 {
11     cin>>year;
12     cin>>month;
13     cin>>day;
14 }
15 int Date::output()
16 {
17     cout<<year<<""<<month<<""<<day<<""<<endl;
18 }
19 int Date::gyear()
20 {
21     return year;
22 }
23 int Date::gmonth()
24 {
25     return month;
26 }
27 int Date::gday()
28 {
29     return day;
30 }
 1 //Date.h
 2 //定义日期类类型
 3 #ifndef DATE_H_INCLUDED
 4 #define DATE_H_INCLUDED
 5 #include"fram.h"
 6 class Date
 7 {
 8 public:
 9     Date();
10     int input();
11     int gyear(),gmonth(),gday();
12     int output();
13 private:
14     int year,month,day;
15 };
16 
17 #endif // DATE_H_INCLUDED
 1 //fram.h
 2 //嫌麻烦干脆把所有要用的框架放到一起来
 3 #ifndef FRAM_H_INCLUDED
 4 #define FRAM_H_INCLUDED
 5 #include<iostream>
 6 #include<string>
 7 #include"Date.h"
 8 #include"Student.h"
 9 #define Tyear 2015
10 
11 
12 #endif // FRAM_H_INCLUDED

  通过这次实战演练,我学会了:

  1、一个程序多个文件

  2、用类类型写程序,切实感觉到后期更改起来非常的容易,程序像是许多个框架嵌套组合而成

  3、用了构造函数

  4、熟练了类类型的语法规则

  5、复习了很多语法的用法,例如for if...else语句等等

  该休息了……

  ~完~

以上是关于C++C++自学旅程(10):巨有成就感!:C++类类型结合运用实战的主要内容,如果未能解决你的问题,请参考以下文章

C++C++自学旅程:指针和引用

C++C++自学旅程:对象数组和对象指针

C++C++自学旅程:类类型初识——类的定义

自学C#WPF怎么获得编程的完整经验?

C++自学教材推荐

厉害了!0基础就能懂的C语言和C++编程自学教程