C++面向对象实验三:模板与STL

C++面向对象实验三:模板与STL

一、实验目的

  1. 掌握模板函数和模板类的定义、实例化,学会应用模板来处理函数调用面临的不同的数据类型。
  2. 理解模板类的定义和实例化时的方法。
  3. 复习栈的出栈和入栈的相关操作。

二、实验要求

  1. 内容1:
    使用函数模板,求两个数的最大值。 例如:max(3,5)则输出5 max(’3’,’5’)则输出‘5’ max(3.0,5.0)则输出5.0 max(”3”,”5”)则输出”5”

  2. 内容2:
    设计一个CStudent类,可以存放学生的学号和姓名(其中,学号和姓名都为字符串)例如,学号为{“1001”,”1002” ,”1003” }这3个学号所对应的姓名是{“张三”,”李四” ,”王五” } 如果cs是CStudent类的对象,

三、实验过程

算法:
定义一个单独的函数Max_(T a,T b);
public部分:输入a,b; if (strcmp(a,b)>=0) 进行下标的安全检查,超出范围就退出程序 求两个T类型数最大值 { 返回主函数。 }
内容2: 算法:
定义一个类Class(CStudent)
private部分: 输入no_name
Public部分: 张三赋值1001; 李四赋值1002; 王五赋值1003; 最后输出”查无此人”; 返回主函数 ;

四、源码

#include 
using namespace std; 
template<typename T> 
T max(T a,T b) {   
    return a>b ? a:b; 
}  

char * max(char *a,char* b) 
{   
    if (strcmp(a,b)>=0) 
    {    
        return a;  
    }  else  {   
        return b;    
    }  
 }  
 int main() 
 {  
    cout<<"max(3,5)="<3,5)<cout<<"max(\'3\',\'5\')="<'3','5')<cout<<"max(3.0,5.0)="<3.0,5.0)<cout<<"max(\"3\",\"5\")="<"3","5")<cout<<"max(\"abc\",\"ABC\")="<"abc","ABC")<return 0;  
 }   

 #include 
 #include 
 #include #include 
 using namespace std; 
  class CStudent 
  {  
    private:   
        map<string,string> no_name; 
    public:  
        CStudent()  
        {   
            no_name["1001"]="张三";   
            no_name["1002"]="李四";    
            no_name["1003"]="王五";        
        }   
        string operator[](string index)  
        {   
            int ic=no_name.count(index);   
            if (ic!=0)     
                return no_name[index];   
            else      
                return "查无此人";   
        }  
    }; 
int main()  
{  
    CStudent cs;     
    cout<"1001"].c_str()<cout<"1004"].c_str()<return 0;  
}

你可能感兴趣的:(c/c++)