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++类类型结合运用实战的主要内容,如果未能解决你的问题,请参考以下文章