| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:求高手帮忙解答 急急急
只看楼主 加入收藏
kaiqiang1015
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2010-9-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求高手帮忙解答 急急急
小弟刚学C语言不久,现要编写一个通讯录,代码如下。希望这个程序能实现输入,输出,查找,按学号排序这些功能。运行时检查无错,但是实施时输出,排序,查找,添加的功能无法实现。请各位高手帮忙看看是哪里出错了,帮忙改改····谢谢了


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
void write();   //输入成员函数//
void print6();   //输出成员函数*//
void print();   //界面//
void sord();    //按照学号排序函数//
void search_sex(char sex[]);   //按照性别查找函数//
void search(char num[]);    //按照学号查找函数//
void search_name(char name[]);   //按照姓名查找函数*//
void search_QQ(char QQ[]);    //按QQ查找函数//
void add();         //添加函数//

struct stu
{
char num[35];//学号//
char name[30];
char sex[10];
char ph[12];//电话号码//
char QQ[10];
char addr[40];//地址//


}stu[SIZE];

void print()//界面//
{
printf("\n*******************************09测控通讯录************************************\n");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
printf("请选择您所需要的操作:\n");
   printf("\t\t\t\t 1:    输入成员列表\n");
   printf("\t\t\t\t 2:    输出成员列表\n");
   printf("\t\t\t\t 3:    将成员按学号排序\n");
   printf("\t\t\t\t 4:    按照性别查找\n");
   printf("\t\t\t\t 5:    按照学号查找\n");
   printf("\t\t\t\t 6:    按照姓名查找\n");
   printf("\t\t\t\t 7:    按照QQ查找\n");
   printf("\t\t\t\t 8:    添加成员\n");
   printf("\t\t\t\t 9:    出口\n");

}

void print6()//输出成员//
{
    int i,j;
    while(1)
    {
    for(i=0;i<SIZE;i++)
        {
            printf("\t学号:");
            printf("%d",stu[i].num);
            printf("\t姓名:");
            printf("%s",stu[i].name);
            printf("\t性别:");
            printf("%s",stu[i].sex);
            printf("\t手机号:");
            printf("%d",stu[i].ph);
            printf("\tQQ:");
            printf("%d",stu[i].QQ);
            printf("\t地址:");
            printf("%s\n",stu[i].addr);
        }
        printf("结束请按0\n");
        scanf("%d",&j);
        if(j==0) break;
    }
}



void write()//输入成员函数//
{
     int j;
    while(1)
    {
      
        printf("请输入学号:");
        scanf("%s",&stu[SIZE].num);
        printf("请输入姓名:");
        scanf("%s",&stu[SIZE].name);
        printf("请输入性别:");
        scanf("%s",&stu[SIZE].sex);
        printf("请输入手机号:");
        scanf("%s",&stu[SIZE].ph);
        printf("请输入QQ号:");
        scanf("%s",&stu[SIZE].QQ);
        printf("请输入住址:");
        scanf("%s",&stu[SIZE].addr);
        
        printf("您是否要继续?\n1.继续\n0.退出\n");
        scanf("%d",&j);   
        if(j==0)  break;
    }
           

      }

void sord()//按照学号排序函数//

{
     int i,k,j; struct stu *a[SIZE],*temp;
     for(i=0;i<SIZE;i++)
     a[i]=stu+i;       //将结构体指针指向结构体//
     for(i=0;i<SIZE-1;i++)
     { k=i;
      for(j=i+1;j<SIZE;j++)
       if(strcmp(stu[k].num,stu[j].num)>0) k=j;
      if(k!=i)
      {temp=a[k];a[k]=a[i];a[i]=temp;} //交换指针的指向//
     }
       for(i=0;i<SIZE;i++)
     printf("%s %-6s     %s    \t%s %s%s\n",a[i]->num,a[i]->name,a[i]->sex,a[i]->ph,a[i]->QQ,a[i]->addr); //排序后输出//
 }

void  search(char num[])//按照学号查找函数//
{
int i,t;
scanf("%s",num);
for(i=0,t=1;i<=SIZE;i++,t++)
{ if(strcmp(stu[i].num,num)==0)
      {printf("%s %-6s     %s    \t%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
       printf("------------------------------------------------------------------\n");
       break;}
     else
        if(t==SIZE) printf("没有找到该学生\n");
     }



}

void search_sex(char sex[])//按照性别查找函数//
{
int i;
for(i=0;i<=SIZE;i++)
   { if(strcmp(stu[i].sex,sex)==0)     //按照性别输出//
       { printf("%s %-6s     %s    \t%s %s%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
         printf("------------------------------------------------------------------\n"); }
   }

}

void search_name(char name[])//按照姓名查找函数*//
{
int i,t;
for(i=0,t=1;i<=SIZE;i++,t++)
   { if(strcmp(stu[i].name,name)==0)
         {printf("%d %-6s     %s    \t%d %d %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
          printf("------------------------------------------------------------------\n");      
          break;}
     else     
        if(t==SIZE)   printf("没有找到该学生\n");
                           
   }
}

void search_QQ(char QQ[])//按QQ查找函数//
{
   int i,t;
   for(i=0,t=1;i<=SIZE;t++,i++)
     if(strcmp(QQ,stu[i].QQ)==0)
        {printf("%s %-6s     %s    \t%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
        printf("------------------------------------------------------------------\n"); }
     else
        if(t==SIZE)   printf("没有使用该QQ的学生\n");

}


void add() //添加函数//
{
    printf("请输入要添加学生的信息:");
    write();
   sord();
}

void main()//主函数//
{
    int i;  char sex[10];char num[12]; char name[20];char QQ[10];
   
   
    do
    {
      print();
      scanf("%d",&i);
      switch(i)
     {case 1: write(); break;
      case 2: print6(); break;
      case 3: sord(); break;
      case 4: {printf("请输入要查找的性别:");scanf("%s",sex);search_sex(sex);} break;
      case 5: {printf("请输入要查找的学号:");scanf("%s",num);search(num);} break;
      case 6: {printf("请输入要查找的姓名:");scanf("%s",name);search_name(name);} break;
      case 7: {printf("请输入要查找的QQ号:");scanf("%s",QQ);search_QQ(QQ);} break;
      case 8: add(); break;
      case 9: exit(0); break;
      }
    }while(1);
}


[ 本帖最后由 kaiqiang1015 于 2010-9-25 21:40 编辑 ]
搜索更多相关主题的帖子: 解答 
2010-09-25 20:03
wuzhanghao88
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:146
注 册:2009-10-25
收藏
得分:20 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
int write();   //输入成员函数//
void print6();   //输出成员函数*//
void print();   //界面//
void sord();    //按照学号排序函数//
void search_sex(char sex[]);   //按照性别查找函数//
void search(char num[]);    //按照学号查找函数//
void search_name(char name[]);   //按照姓名查找函数*//
void search_QQ(char QQ[]);    //按QQ查找函数//
void add();         //添加函数//

struct stu
{
    char num[12];//学号//
    char name[20];
    char sex[6];
    char ph[12];//电话号码//
    char QQ[10];
    char addr[20];//地址//


}stu[SIZE];

void print()//界面//
{
printf("\n*******************************09测控通讯录************************************\n");
printf("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
printf("请选择您所需要的操作:\n");
   printf("\t\t\t\t 1:    输入成员列表\n");
   printf("\t\t\t\t 2:    输出成员列表\n");
   printf("\t\t\t\t 3:    将成员按学号排序\n");
   printf("\t\t\t\t 4:    按照性别查找\n");
   printf("\t\t\t\t 5:    按照学号查找\n");
   printf("\t\t\t\t 6:    按照姓名查找\n");
   printf("\t\t\t\t 7:    按照QQ查找\n");
   printf("\t\t\t\t 8:    添加成员\n");
   printf("\t\t\t\t 9:    出口\n");

}

void print6(int a)//输出成员//
{
    int i,j;
    for(i=0;i<a;i++)
        {
            printf("\t学号:");
            printf("%s",stu[i].num);
            printf("\t姓名:");
            printf("%s",stu[i].name);
            printf("\t性别:");
            printf("%s",stu[i].sex);
            printf("\t手机号:");
            printf("%s",stu[i].ph);
            printf("\tQQ:");
            printf("%s",stu[i].QQ);
            printf("\t地址:");
            printf("%s\n",stu[i].addr);
        }
//         printf("结束请按0\n");
//             scanf("%d",&j);
//             if(j==0) break;
}



int write(int i)//输入成员函数//
{
     int j;
    for(;i<SIZE;i++)
    {
      
        printf("请输入学号:");
        scanf("%s",&stu[i].num);
        printf("请输入姓名:");
        scanf("%s",&stu[i].name);
        printf("请输入性别:");
        scanf("%s",&stu[i].sex);
        printf("请输入手机号:");
        scanf("%s",&stu[i].ph);
        printf("请输入QQ号:");
        scanf("%s",&stu[i].QQ);
        printf("请输入住址:");
        scanf("%s",&stu[i].addr);
        
        printf("您是否要继续?\n1.继续\n0.退出\n");
        scanf("%d",&j);   
        if(j==0)
        {
            return i;
//            break;
        }
    }
           

      }

void sord()//按照学号排序函数//

{
     int i,k,j; struct stu *a[SIZE],*temp;
     for(i=0;i<SIZE;i++)
     a[i]=stu+i;       //将结构体指针指向结构体//
     for(i=0;i<SIZE-1;i++)
     { k=i;
      for(j=i+1;j<SIZE;j++)
       if(strcmp(stu[k].num,stu[j].num)>0) k=j;
      if(k!=i)
      {temp=a[k];a[k]=a[i];a[i]=temp;} //交换指针的指向//
     }
       for(i=0;i<SIZE;i++)
     printf("%s %-6s     %s    \t%s %s%s\n",a[i]->num,a[i]->name,a[i]->sex,a[i]->ph,a[i]->QQ,a[i]->addr); //排序后输出//
}

void  search(char num[])//按照学号查找函数//
{
int i,t;
scanf("%s",num);
for(i=0,t=1;i<=SIZE;i++,t++)
{ if(strcmp(stu[i].num,num)==0)
      {printf("%s %-6s     %s    \t%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
       printf("------------------------------------------------------------------\n");
       break;}
     else
        if(t==SIZE) printf("没有找到该学生\n");
     }



}

void search_sex(char sex[])//按照性别查找函数//
{
int i;
for(i=0;i<=SIZE;i++)
   { if(strcmp(stu[i].sex,sex)==0)     //按照性别输出//
       { printf("%s %-6s     %s    \t%s %s%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
         printf("------------------------------------------------------------------\n"); }
   }

}

void search_name(char name[])//按照姓名查找函数*//
{
int i,t;
for(i=0,t=1;i<=SIZE;i++,t++)
   { if(strcmp(stu[i].name,name)==0)
         {printf("%d %-6s     %s    \t%d %d %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
          printf("------------------------------------------------------------------\n");      
          break;}
     else     
        if(t==SIZE)   printf("没有找到该学生\n");
                           
   }
}

void search_QQ(char QQ[])//按QQ查找函数//
{
   int i,t;
   for(i=0,t=1;i<=SIZE;t++,i++)
     if(strcmp(QQ,stu[i].QQ)==0)
        {printf("%s %-6s     %s    \t%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ph,stu[i].QQ,stu[i].addr);
        printf("------------------------------------------------------------------\n"); }
     else
        if(t==SIZE)   printf("没有使用该QQ的学生\n");

}


void add() //添加函数//
{
    printf("请输入要添加学生的信息:");
    write();
   sord();
}

void main()//主函数//
{
    int b,a,c;
    char sex[10];char num[12]; char name[20];char QQ[10];
    a=0;//初始化
    do
    {
      print();

      scanf("%d",&b);
      switch(b)
     {
        case 1: a=write(a)+1;
               
                break;
        case 2: print6(a); break;
        case 3: sord(); break;
        case 4: {printf("请输入要查找的性别:");scanf("%s",sex);search_sex(sex);} break;
        case 5: {printf("请输入要查找的学号:");scanf("%s",num);search(num);} break;
        case 6: {printf("请输入要查找的姓名:");scanf("%s",name);search_name(name);} break;
        case 7: {printf("请输入要查找的QQ号:");scanf("%s",QQ);search_QQ(QQ);} break;
        case 8: add(); break;
        case 9: exit(0); break;
      }
    }while(1);
}
2010-09-28 00:15
快速回复:求高手帮忙解答 急急急
数据加载中...
 
   



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

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