红豆泥! 2021-12-14 20:21 采纳率: 94.4%
浏览 16
已结题

请问这里该怎么改,Teacher类的Search()函数中的if判断好像有错


#include"iostream"
#include <fstream>
#include<string.h>
#include"stdlib.h"
#define MAX 100
#define PASSWORD 111//密码
using namespace std;
class person
{
public:
    int num;
    char name[200];
    char sex[4];
    int age;
};
class  Calculate
{
private:
    int m,j1,j2;
public:
     void calc();
};
//Teacher class
class Teacher:virtual public person
{
public:
    char dept[20];
    char special[20];
    char title[20];
    void Input()
    {
        cout<<"Input num:";cin>>num;
        cout<<"Input name:";cin>>name;
        cout<<"Input sex:";cin>>sex;
        cout<<"Input age:";cin>>age;
        cout<<"Input dept:";cin>>dept;
        cout<<"Input special:";cin>>special;
        cout<<"Input title:";cin>>title;
    }
    void Output()
    {
        cout<<"编号: "<<num<<"  "<<"姓名: "<<name<<"  "<<"性别: "<<sex<<"  "<<"年龄: "<<age<<
            "  "<<"所在系: "<<dept<<"  "<<"专业: "<<special<<"  "<<"职称: "<<title<<endl;
    }
};

Teacher Tea[MAX];
static int Teatop;



class TeaManager:public Calculate
{
public:
    int Add();
    int Search();
    void Show();
    void Edit();
    int Delete();
    void Save();
    void Read();
    void count();
};
int TeaManager::Add()
{
    Teacher t;
    int i,nu;
    if(Teatop==MAX) 
    {cout<<"人数已满"<<endl;
    return 0;
    }
    cout<<"请输入编号:";cin>>nu;
    for(i=0;i<Teatop;i++)
    {
        if(nu==Tea[i].num)
        {cout<<"已有编号,请重新输入"<<endl;
        return 0;
        }

    }
    t.Input();Tea[Teatop]=t;Teatop++;
    cout<<"添加成功!"<<endl;

    return 1;
}
int TeaManager::Search()
 {
    int j,n,s;
    char a[100];
      cout<<"请选择:1.按编号查找;"<<endl;
      cout<<"        2.按姓名查找:"<<endl;
      cin>>s;
      switch(s)
      {
          case 1:
              {
                cout<<"输入查询编号:";
                  cin>>n;
                  for(j=0;j<Teatop;j++)
                  {
                    if(n==Tea[j].num) break;
                }
                if(j==Teatop)
                {
                cout<<"查无此人;"<<endl;
                return 0;
                }
                if(j!=Teatop)
                 {Show();
                return 1;}
              }break;
          case 2:
              {
                  cout<<"输入查询姓名:";
                  cin>>a;
                  for(j=0;j<Teatop;j++)
                  {
                    if(strcmp(Tea[j].name,a)!=0) break;
                }
                if(j==Teatop)
                { cout<<"查无此人;"<<endl;
                   return 0;   
                }
                if(j!=Teatop)
             {  Show();
                return 1;}
                  
              }break;
    }
      
  }
void Tea_mune(TeaManager TM)
{
    int b;
    char c;
    do{
        cout<<"教师管理"<<endl;
        cout<<"=========================================================================================="<<endl;
        cout<<"1.添加    ";
        cout<<"2.查询    ";
        cout<<"0.退出 |"<<endl;
        cout<<"=========================================================================================="<<endl;
        cout<<"请选择:";cin>>b;
        switch(b)
        {
        case 1:TM.Add();break;
        case 2:TM.Search();break;
        default:cout<<"\n error"<<endl;break;
        case 0:break;
        }
        cout<<"按回车键继续"<<endl;
        system("pause");
        c=getchar();
        system("cls");
    }while(b!=0);
}
int main()
{
    TeaManager Tmer1;
    int a=1,m=0;
    int j;
    char c;
    cout<<"    *************************************";
    cout<<endl<<"    $         高校人员管理系统         $"<<endl;
    cout<<"    *************************************";
    cout<<endl;

    while(a)
    {
        flushall();
        c=getchar();         
        system("cls");
        cout<<endl;
        cout<<"              ****欢迎使用高校人员信息管理系统****"<<endl;
        cout<<"               ================================="<<endl;
        cout<<"               | 1.教师管理                    |"<<endl;
        cout<<"               | 0.退出                        |"<<endl;
        cout<<"               ================================="<<endl;
        cout<<"请选择:";cin>>a;    

        switch(a)
        {
        case 1:Tea_mune(Tmer1);break;
        case 0:break;
        default:cout<<"\n error"<<endl;
        cout<<"按回车键继续"<<endl;
        system("pause");
        c=getchar();         
        break;
        }
    }

    cout<<endl<<"谢谢使用"<<endl;
    system("pause");
    c=getchar();
    return 0;
}

Teacher类的Search()函数中,用名字搜索时在判断if(strcmp(Tea[j].name,a)!=0) 时一直出错,我在Add()函数中添加了信息后跟踪Tea[i].name时总是显示Tea[i].name为空,想问一下大家这样该怎么改呢

  • 写回答

1条回答 默认 最新

  • 书山客 2021-12-14 21:38
    关注

    img

    strcmp()判断两字符串相等时返回0,所以应该改为==

    img


    需要有构造函数,Show()函数后面有调用就需要有方法实现的地方

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月14日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度