| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 891 人关注过本帖
标题:小弟刚学C一个月,自己编写了个简易的电话簿管理系统,但就是功能实现不了, ...
只看楼主 加入收藏
h364437177
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-19
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:15 
小弟刚学C一个月,自己编写了个简易的电话簿管理系统,但就是功能实现不了,求帮助!
#include <stdio.h>
#include<string.h>
typedef struct{
char name[30];   
char sex;   
unsigned short age;   
char phone[20];        
char QQ[15];            
}PHLIST;

PHLIST telepho[100]={{"Li Ming",'m',18,"13888345234","4564323"},
                     {"Wang Lu",'f',19,"15902345678","93947865"},
                     {"An Na",'f',18,"15902377889","876899"}};
                                    
int tel_len=3;
int tel_search(){
    char a[30];
    int i;
    printf("请输入姓名:");
    scanf("%s",a);
    for(i=0;i<tel_len;i++);
        if(strcmp(a,telepho[i].name)==0)
           return i;
    return -1;
}

void tel_output(int k){
    int i;
    for(i=0;i<k;i++){
        printf("%s\n",telepho[i].name);
        printf("%c\n",telepho[i].sex);
        printf("%d\n",telepho[i].age);
        printf("%s\n",telepho[i].phone);
        printf("%s\n",telepho[i].QQ);
        printf("\n");

    }
}

void tel_add(){
    int i=tel_len;
    printf("请输入要添加的姓名:\n");
    scanf("%s",telepho[i].name);
    printf("请输入要添加的的性别:\n");
    scanf("%c",&telepho[i].sex);
    printf("请输入要添加的年龄:\n");
    scanf("%d",&telepho[i].age);
    printf("请输入要添加的电话:\n");
    scanf("%s",telepho[i].phone);
    printf("请输入要添加的QQ:\n");
    scanf("%s",telepho[i].QQ);
    tel_len++;
}

void change(){
    int m;
    m=tel_search();
    if(m>=0){
        printf("请输入要修改的姓名:");
        scanf("%s",telepho[m].name);
        printf("请输入要修改的性别:");
        scanf("%c",telepho[m].sex);
        printf("请输入要修改的年龄:");
        scanf("%d",telepho[m].age);
        printf("请输入要修改的电话:");
        scanf("%s",telepho[m].phone);
        printf("请输入要修改的QQ:");
        scanf("%s",telepho[m].QQ);
    }
       else
            printf("修改不存在");
}
   
void delet(){
    int i,t;
    t=tel_search();
    if(t>=0)
        for(i=t;i<=tel_len-1;i++)
            telepho[i]=telepho[i+1];
        else
            printf("删除目标不存在");
 tel_len--;
}

void meun(){
    printf("***********************菜单*************************\n");
    printf("*     1  添加通讯记录        2   查找通讯记录       *\n");
    printf("*     3  修改通讯记录        4   删除通讯记录       *\n");
    printf("*     5  输出通讯记录        0   退出管理系统       *\n");
    printf("*****************************************************\n");
}

int main(){
    int t,num;
    meun();
while(1){
        printf("请输入一个数字作出选择:");
        scanf("%d",&num);
        if(num==0) break;
        else
            switch(num){
            case 1:
                tel_add();
                break;
            case 2:
                t=tel_search();
                if(t>=0)
                    printf("查找的结果为:\n");
                    printf("%s",telepho[t].name);
                    printf("%c",telepho[t].sex);
                    printf("%d",telepho[t].age);
                     printf("%s",telepho[t].phone);
                    printf("%s",telepho[t].QQ);   
                break;
            case 3:
                change();
                break;
            case 4:
                delet();
                break;
            case 5:
                tel_output(tel_len);
                break;
            }
        }
}
搜索更多相关主题的帖子: 电话簿 include 管理系统 
2012-12-04 14:58
h364437177
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-19
收藏
得分:0 
我们要求不用指针的!
2012-12-04 15:14
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include <stdio.h>
#include<string.h>

typedef struct{
    char name[32];   
    char sex;   
    unsigned  age;   
    char phone[16];        
    char QQ[16];            
}PHLIST;

PHLIST telepho[100] = {
                      {"Li Ming",'m',18,"13888345234","4564323"},
                      {"Wang Lu",'f',19,"15902345678","93947865"},
                      {"An Na",  'f',18,"15902377889","876899"}
                      };
                                    
extern int tel_len = 3;

int tel_search(){
    char a[30];
    int i = 0;
    printf("请输入姓名:");
    scanf("%s",a);
    for(i = 0; i < tel_len;i++){
        if(strcmp(a,telepho[i].name)==0){
            return i;
        }else
            return -1;
    }
}

void tel_output(int k){
    int i = 0;
    for(i = 0;i < k;i++){
        printf("%s\n",telepho[i].name);
        printf("%c\n",telepho[i].sex);
        printf("%d\n",telepho[i].age);
        printf("%s\n",telepho[i].phone);
        printf("%s\n",telepho[i].QQ);
        printf("\n");
    }
}

void tel_add(){
    int i = tel_len;
    printf("请输入要添加的姓名:\n");
    scanf("%s",telepho[i].name);
    printf("请输入要添加的的性别:\n");
    scanf("%c",&telepho[i].sex);
    printf("请输入要添加的年龄:\n");
    scanf("%d",&telepho[i].age);
    printf("请输入要添加的电话:\n");
    scanf("%s",telepho[i].phone);
    printf("请输入要添加的QQ:\n");
    scanf("%s",telepho[i].QQ);
    tel_len++;
}

void change(){
    int m = 0;;
    m = tel_search();
    if(m >= 0){
        printf("请输入要修改的姓名:");
        scanf("%s",telepho[m].name);
        printf("请输入要修改的性别:");
        scanf("%c",telepho[m].sex);
        printf("请输入要修改的年龄:");
        scanf("%d",telepho[m].age);
        printf("请输入要修改的电话:");
        scanf("%s",telepho[m].phone);
        printf("请输入要修改的QQ:");
        scanf("%s",telepho[m].QQ);
    }
       else
            printf("修改不存在");
}
   
void delet(){
    int i = 0;
    int t = 0;
    t = tel_search();
    if(t >= 0)
        for(i = t;i <= tel_len-1;i++)
            telepho[i] = telepho[i+1];
        else
            printf("删除目标不存在");
tel_len--;
}

void meun(){
    printf("***********************菜单*************************\n");
    printf("*     1  添加通讯记录        2   查找通讯记录       *\n");
    printf("*     3  修改通讯记录        4   删除通讯记录       *\n");
    printf("*     5  输出通讯记录        0   退出管理系统       *\n");
    printf("*****************************************************\n");
}

int main(){
    int t = 0;
    int num = 0;
    meun();
while(1){
        printf("请输入一个数字作出选择:");
        scanf("%d",&num);
        if(num == 0){
            break;
        }else{
            switch(num){
            case 1:
                tel_add();
                break;
            case 2:
                t = tel_search();
                if(t >= 0)
                    printf("查找的结果为:\n");
                    printf("%s",telepho[t].name);
                    printf("%c",telepho[t].sex);
                    printf("%d",telepho[t].age);
                     printf("%s",telepho[t].phone);
                    printf("%s",telepho[t].QQ);   
                break;
            case 3:
                change();
                break;
            case 4:
                delet();
                break;
            case 5:
                tel_output(tel_len);
                break;
            }
            }
        }
    return 0;
}

----------------
稍微给你做了一下修改
你看下
2012-12-04 16:12
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
    for(i=0;i<tel_len;i++);
        if(strcmp(a,telepho[i].name)==0)
           return i;
这里的红色部分空循环啊
 telepho[i]=telepho[i+1];
我感觉好像似乎只能对结构体的元素赋值,而不能对整个结构体赋值
主函数好像少了一层循环
void delet(){
    int i,t;
    t=tel_search();
    if(t>=0)
        for(i=t;i<=tel_len-1;i++)
            telepho[i]=telepho[i+1];
        else
            printf("删除目标不存在");
tel_len--;
这个tel_len--位置好像不对
个人感觉做电话本用链表更好些,便于管理

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-04 16:38
c语言新手yu
Rank: 2
等 级:论坛游民
帖 子:38
专家分:17
注 册:2012-11-5
收藏
得分:0 
刚学一个月?
2012-12-04 19:44
h364437177
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-19
收藏
得分:0 
回复 3楼 daniel_
请问extern是什么意思?还有那i=0为什么在前面赋值等于零?for那又赋值为零不显得多于?
2012-12-05 12:27
h364437177
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-19
收藏
得分:0 
回复 5楼 c语言新手yu
确切说差不多2个月了吧!
2012-12-05 12:29
h364437177
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-11-19
收藏
得分:0 
回复 4楼 yaobao
链表还没学过,现在刚刚学指针,还有谢谢你的指导,现在我没电脑,等我去机房看看!
2012-12-05 12:32
q13678986740
Rank: 4
等 级:业余侠客
帖 子:114
专家分:245
注 册:2012-7-7
收藏
得分:0 
晕,大一第一学期还不开专业课,给他气死。
2012-12-05 16:15
茶未凉
Rank: 1
来 自:湖北十堰
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-6-15
收藏
得分:0 
在大学刚学一个月,这样已经很不错了啊

  为目标  奋斗!!
2012-12-05 17:10
快速回复:小弟刚学C一个月,自己编写了个简易的电话簿管理系统,但就是功能实现 ...
数据加载中...
 
   



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

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