标题:给我看看这个有关电话号码查询的程序
只看楼主
松涛雨露
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-4-18
结帖率:50%
已结贴  问题点数:20 回复次数:4 
给我看看这个有关电话号码查询的程序
#include<iostream>
#include<string>
#define M 5
using namespace std;
typedef struct AddBook{
    char name[10];
    char num[20];
    //int Num;
}AddBook;
int IntoNum(AddBook *l,int count)//输入函数
{
    AddBook *head;
    cout<<"请输入姓名:";
    cin>>l[0].name;
    cout<<"请输入电话号码:";
    cin>>l[0].num;
    count++;
    head=&l[0];
    return count;
}
int EraseNum( AddBook *l,int count)//删除函数
{
    char Num[20];
    AddBook *head;
    if(count==0)
    {
        cout<<"电话本已空!"<<endl;
        cin.get();//按任意键退出
    }
    else if(count!=0){
        cout<<"请输入您要删除的电话号码:";
        cin>>Num;
        for(int i=0;i<count&& strcmp(Num,l[i].num)!=1;i++) ;
        for( int j=i+1;j<count;j++)
            l[j-1]=l[j];
        cout<<"已经删除:"<<Num<<endl;
        count--;
    }
    else {
        cout<<"该电话号码不存在!"<<endl;
        cin.get();
    }
    head=&l[0];
    return count;
}
int FindNum( AddBook *l,int count)//查找函数
{
        char Num[20];
        AddBook *head;
    if(count==0)
    {
        cout<<"电话本已空!"<<endl;
        cin.get();//按任意键退出
    }
    else if(count!=0){
        cout<<"请输入您要删除的电话号码:";
        cin>>Num;
        for(int i=0;i<count&&strcmp(Num,l[i].num)!=1;i++) ;
        cout<<"姓名:"<<l[i].name<<"  "<<l[i].num<<endl;
    }
        else {
        cout<<"该电话号码不存在!"<<endl;
        cin.get();
    }
    head=&l[0];
    return count;
   
}
void OutBook(AddBook *l,int count)//打印函数
{
    if (count==0)
        cout<<"电话本已空!"<<endl;
    else {
        cout<<"        姓名        号码         "<<endl;
        for(int i=0;i<count;i++)
            cout<<l[i].name<<"      "<<l[i].num<<endl;
        
    }
}
int menu_select( )
{
    char c;
    cout<<"==================="<<endl;
    cout<<"1.存入电话号码"<<endl;
    cout<<"2.删除电话号码"<<endl;
    cout<<"3.查找电话号码"<<endl;
    cout<<"4.打印电话号码"<<endl;
    cout<<"5.退出"<<endl;
    cout<<"==================="<<endl;
    cout<<endl<<"\3 请输入(1~5):";
    do{
        cin.get(c);
    }while(c<'1'||c>'5');
        return c-48;
}
int main( )
{
    int choice;
    AddBook L[M],*Head;
    //*Head.Num=0;
    //Head=&L[0];
    int Count=0;
    while(1){
    choice=menu_select( );
   
    {
    switch(choice){
    case 1: Count=IntoNum(Head,Count);
        break;
    case 2: Count=EraseNum(Head,Count);
        break;
    case 3: Count=FindNum(Head,Count);
        break;
    case 4: OutBook(Head,Count);
        break;
    case 5:exit(0);
    }
    }
    }
    return 0;
}
   
搜索更多相关主题的帖子: 电话号码 return 电话本 姓名 
2011-05-28 10:57
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
得分:10 
很明显的错误  指针没有分配空间
2011-05-28 11:30
松涛雨露
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-4-18
得分:0 
恩?麻烦您能说的详细一些吗?
2011-05-28 18:45
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:10 
程序代码:
#include <iostream>
#include <string>
#include <list>
using namespace std;

typedef struct AddBook
{
    string m_Name;
    string m_Num;
}AddBook;

typedef list<AddBook>::iterator Type;

int menu_select( )
{
    char c;
    cout<<"==================="<<endl;
    cout<<"1.存入电话号码"<<endl;
    cout<<"2.删除电话号码"<<endl;
    cout<<"3.查找电话号码"<<endl;
    cout<<"4.打印电话号码"<<endl;
    cout<<"5.退出"<<endl;
    cout<<"==================="<<endl;
    cout<<endl<<"\3 请输入(1~5):";
    do
    {
            cin.get(c);
    }while(c<'1'||c>'5');
    
    return c-48;
}

void IntoNum(list<AddBook> &list_ab)//输入函数
{
    AddBook ab;
    cout<<"请输入姓名:";
    cin>> ab.m_Name;
    cout<<"请输入电话号码:";
    cin>> ab.m_Num;

    list_ab.push_back(ab);
}

void EraseNum(list<AddBook> &list_ab)//删除函数
{
    list<AddBook>::size_type length = list_ab.size();

    if(0 == length)
    {
        cout<<"电话本已空!"<<endl;
        cin.get();//按任意键退出
    }
    else
    {
        string Num;

        cout<<"请输入您要删除的电话号码:";
        cin>>Num;
        for (Type cursor=list_ab.begin(); cursor!=list_ab.end(); )
        {
            if (cursor->m_Num == Num)
            {
                cursor = list_ab.erase(cursor);
            }
            else
            {
                ++cursor;
            }
        }
    }

    if (length == list_ab.size())
    {
        cout<<"该电话号码不存在!"<<endl;
        cin.get();
    }
}

void FindNum(Type begin, Type end)//查找函数
{
    string Num;

    cout<<"请输入您要删除的电话号码:";
    cin>>Num;        

    Type cursor=begin;
    for (; cursor!=end; ++cursor)
    {
        if (cursor->m_Num == Num)
        {
            cout << "姓名:" << cursor->m_Name << endl;   
            break;
        }
    }

    if (cursor == end)
    {
        cout<<"该电话号码不存在!"<<endl;
        cin.get();
    }
}
void OutBook(Type begin, Type end)//打印函数
{
    for (Type cursor=begin; cursor!=end; ++cursor)
    {
        cout << "\t姓名:" << cursor->m_Name << endl;   
        cout << "\t电话号码:" << cursor->m_Num << endl << endl;
    }
}
int main( )
{
    int choice;
    list<AddBook> list_ab;
    while(1)
    {
        choice=menu_select( );
   
        switch(choice)
        {
        case 1:
            IntoNum(list_ab);
            break;
        case 2:
            EraseNum(list_ab);
            break;
        case 3:
            FindNum(list_ab.begin(), list_ab.end());
            break;
        case 4:
            OutBook(list_ab.begin(), list_ab.end());
            break;
        case 5:
            exit(0);
        }
   
    }
    return 0;
}
2011-05-30 19:24
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:0 
应该是完成上面的功能

但是你的程序写的很乱   就看下面一个函数   不知道 你是想把信息存放到什么地方去
int IntoNum(AddBook *l,int count)//输入函数
{
    AddBook *head;
    cout<<"请输入姓名:";
    cin>>l[0].name;
    cout<<"请输入电话号码:";
    cin>>l[0].num;
    count++;
    head=&l[0];
    return count;
}
最起码 也应该是写成这样
int IntoNum(AddBook *l,int count)//输入函数
{
        cout<<"请输入姓名:";
        cin>>l[count].name;
        cout<<"请输入电话号码:";
        cin>>l[count].num;
        count++;

        return count;
}
2011-05-30 19:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-341214-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.146873 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved