| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:项目工程的查找问题?
只看楼主 加入收藏
laijinshui
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2013-6-15
收藏
 问题点数:0 回复次数:4 
项目工程的查找问题?
[local]2[/local]
里面有一个小工程
问题:
     为什么用姓名进行查找时,不能实现功能。
:如果姓名是用数字表示的就可以实现功能;
     如果姓名是用字母表示就不能实现了。
  求高手解答,谢谢!
搜索更多相关主题的帖子: 工程 项目 姓名 字母 
2013-06-16 14:39
lengyao1
Rank: 2
等 级:论坛游民
帖 子:11
专家分:11
注 册:2013-6-5
收藏
得分:0 
给你看一下我的学生成绩管理系统的  按照姓名查找  希望有点帮助
int List_search_name(List L)
{
    char x[max];
    int i=0;
    scanf("%s",x);
    while(L->next!=NULL)
    {
        L=L->next;
        if(strcmp(L->name,x)==0)
        {
            i++,printf("Found %-4d:%2d:",i,L->data);
            printf("%-15s %2d %-15s ",L->name,L->age,L->major);
            printf("%-6.2f %-6.2f %-6.2f\n",L->chinese,L->math,L->english);
        }
    }
    if(L->next==NULL&&i==0)printf("Not Found\n");
}
2013-06-16 20:52
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
没代码,不作答!
2013-06-16 20:58
laijinshui
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2013-6-15
收藏
得分:0 
是一个工程,我把整个工程都传上去了的,显示不出来吗?我一个一个粘贴过来!这个工程有四个文件:Main.c  List.c  Edit.c  Alist.h
/*  Main.c   */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())

struct Sort stu[100];               //定义一个容量为100的结构体数组!
int main()                                 //主函数
{
    void Sysinfo();                          //申明版权信息的函数                          
    void Menuofmain(struct Sort stu[]);//申明显示主菜单 接收用户选择并响应的函数
    void Quit();                            //申明退出系统的函数
    Sysinfo();                             //显示版权信息
    Menuofmain(stu);                       //显示主菜单 接收用户选择并响应
   
   
    return 0;


}
void Sysinfo()                             //显示版权信息的函数
{
    printf("\n\n\n\n\t\t\t欢迎使用本宿舍管理系统\n");
    printf("\t\t\t本系统为宿舍管理系统\n");
    printf("\t\t\t\t盗版必究\n");
    printf("\n\n\n\t\t\t\t\t制作人: ***\n");
    printf("按任意键进入主菜单");
    getchar();
   
}

void Menuofmain(struct Sort stu[])//显示主菜单 接收用户选择并响应的函数
{
     char choose;
     extern void Append(struct Sort stu[]); //申明四个外部函数
     extern void Menuofsort(struct Sort stu[]);
    extern void Menuofsear(struct Sort stu[]);
    void Quit();
      do{
      
    system("cls");
    printf("\n\n\n\t\t\t\t主菜单");
    printf ("\n\n\n");
    printf("\t\t1.建立数据文件\t\t\t2.排序\n");
    printf("\n\n\n\t\t3.查询学生信息\t\t\t0.退出系统\n");
    printf("\n\n\n\t请选择[0-3]:");
    fflush(stdin);
    scanf("%c",&choose);
    getchar();
    switch(choose)
    {
        case '1': Append(stu); break;    //录入
        case '2': Menuofsort(stu); break;    //排序
        case '3': Menuofsear(stu); break;  //查询
        case '0': Quit(); break;         //退出系统
    }
  }while(choose!=0);

   
}
void Quit()    //退出系统 的函数
{
   exit(0);

}


/*   Edit.c  */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())
extern int length;

extern struct Sort stu[100];    //引用外部数组

void Menuofsort(struct Sort stu[])  //查询信息的函数
{
        char choos;
        do{
        system("cls");
        extern void Menuofmain(struct Sort stu[]);
        extern void Listall(struct Sort stu[]);
        void Sortname(struct Sort stu[]);
        void Sortnum(struct Sort stu[]);
        void Sortroom(struct Sort stu[]);
        int Numofsear(struct Sort stu[],char stunum[]);
        printf("1:按姓名排序!\n");
        printf("2:按学号排序!\n");
        printf("3:按房号排序!\n");
        printf("0:返回主菜单!\n");
        printf("请选择(0~3)");
        scanf("%d",&choos);
        getchar();
        if(choos==1)
        {
            Sortname(stu);
        }
        if(choos==2)
        {
            Sortnum(stu);
        }
        if(choos==3)
        {
            Sortroom(stu);
        }
         if(choos==0)
        {
          Menuofmain(stu);   
        }
        Listall(stu);
        
    }while(choos!=0);
   
}
void Sortname(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(strcmp(stu[i].name,stu[i+1].name)>0)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}
void Sortnum(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(strcmp(stu[i].stuNo,stu[i+1].stuNo)>0)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}

void Sortroom(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(stu[i].room>stu[i+1].room)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}


void Menuofsear(struct Sort stu[])  //查询信息的函数
{
        char choos;
        do{
        system("cls");
        extern void Menuofmain(struct Sort stu[]);
        void Searname(struct Sort stu[]);
        void Searnum(struct Sort stu[]);
        void Searroom(struct Sort stu[]);
        int Numofsear(struct Sort stu[],char stunum[]);
        printf("1:按姓名查询!\n");
        printf("2:按学号查询!\n");
        printf("3:按房号查询!\n");
        printf("0:返回主菜单!\n");
        printf("请选择(0~3)");
        scanf("%d",&choos);
        getchar();
        if(choos==1)
        {
            Searname(stu);
        }
        if(choos==2)
        {
            Searnum(stu);
        }
        if(choos==3)
        {
            Searroom(stu);
        }
         if(choos==0)
        {
          Menuofmain(stu);   
        }
    }while(choos!=0);
   
}

void Searname(struct Sort stu[])//按姓名查询信息的函数
{
    extern void Printhead();
    extern void Listone(struct Sort list);
    int Numofsear(struct Sort stu[],char stunum[]);
    char c[25];
    int e;
    fflush(stdin);
    printf("\n请输入要查询的姓名:");
   
    scanf("%s",c);
    getchar();
    e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
    if(e>=0)
    {
        Printhead();
        Listone(stu[e]);
        
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();

}

void Searnum(struct Sort stu[])//按学号查询信息的函数
{
    extern void Printhead();
    extern void Listone(struct Sort list);
    int Numofsear(struct Sort stu[],char stunum[]);
    char c[20];
    int e;
    printf("\n请输入要查询的学号:");
    scanf("%s",c);
    getchar();
    e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
    if(e>=0)
    {
        Printhead();
        Listone(stu[e]);
        
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();

}

void Searroom(struct Sort stu[])  //按房间查询的函数
{
    system("cls");
    extern int length;
    extern void Printhead();
    extern void Listone(struct Sort list);
    int room,i,count=0;
    printf("\n输入要查询的房间:");
    scanf("%d",&room);
    getchar();
    Printhead();
    for(i=0;i<length;i++)                //输出该年级的所有信息
    {
        if(room==stu[i].room)
        {
            Listone(stu[i]);
            count++;     //统计该年级的学生数
        }
    }
    if(count>0)
    {
        printf("共找到%d条记录!\n",count);
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();
   
}

int Nameofsear(struct Sort stu[],char stunum[])  //判断查询的姓名是否存在的函数
{
    extern int length;
    int i,d=-1;
    for(i=0;i<length;i++)
    {
      if(strcmp(stunum, stu[i].name) == 0)
      d=i;
    }
    return(d);
}
int Numofsear(struct Sort stu[],char stunum[])  //判断查询的学号是否存在的函数
{
    extern int length;
    int i,d=-1;
    for(i=0;i<length;i++)
    {
      if(strcmp(stunum, stu[i].stuNo) == 0)
      d=i;
    }
    return(d);
}

 

/*   List.c  */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())
int length=0;

void Append(struct Sort stu[])  //录入学生信息的函数
{
 char con;   
 do{
       system("cls");   //清屏
    //fflush(stdin);
    //getchar();
    fflush(stdin);
    printf("\n");
    printf("\n请输入姓名:");
      scanf("%s", stu[length].name);
     getchar();
    printf("\n请输入学号(8位)");
      scanf("%s", stu[length].stuNo);
       getchar();
    printf("\n请输入房号:");
      scanf("%d",&stu[length].room);
    getchar();
      
    length++;
    printf("是否继续添加?(Y/N):");
     scanf("%c",&con);  
    //con = getchar();
    getchar();
      
  }while(con=='y'||con=='Y');
   
    printf("按回车键返回");
}
 void Listall(struct Sort stu[])//输出所有学生信息的函数
{
    system("cls");
    void Printhead();         //申明输出表头函数
   
    void Listone(struct Sort list);  //申明输出一条学生信息函数
    int i;
   
    Printhead();            //输出表头
    for(i=0;i<length;i++)
    {
        Listone(stu[i]);       //输出一条学生信息函数
        
    }
    printf("按回车键返回\n");
    fflush(stdin);
    getchar();
   
}
 
void Listone(struct Sort list)//输出一个学生信息的函数
{
    printf("%s\t\t%s\t\t%d\n", list.name,list.stuNo,  list.room);
}

void Printhead()//输出表头的函数
{
    printf("姓名\t\t学号\t\t房间\n");
}


/*  Alist.h  */
struct Sort
{
    char name[25];
    char stuNo[25];
    int room;
};
2013-06-17 09:01
laijinshui
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2013-6-15
收藏
得分:0 
是一个工程,我把整个工程都传上去了的,显示不出来吗?我一个一个粘贴过来!这个工程有四个文件:Main.c  List.c  Edit.c  Alist.h
/*  Main.c   */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())

struct Sort stu[100];               //定义一个容量为100的结构体数组!
int main()                                 //主函数
{
    void Sysinfo();                          //申明版权信息的函数                          
    void Menuofmain(struct Sort stu[]);//申明显示主菜单 接收用户选择并响应的函数
    void Quit();                            //申明退出系统的函数
    Sysinfo();                             //显示版权信息
    Menuofmain(stu);                       //显示主菜单 接收用户选择并响应
   
   
    return 0;


}
void Sysinfo()                             //显示版权信息的函数
{
    printf("\n\n\n\n\t\t\t欢迎使用本宿舍管理系统\n");
    printf("\t\t\t本系统为宿舍管理系统\n");
    printf("\t\t\t\t盗版必究\n");
    printf("\n\n\n\t\t\t\t\t制作人: ***\n");
    printf("按任意键进入主菜单");
    getchar();
   
}

void Menuofmain(struct Sort stu[])//显示主菜单 接收用户选择并响应的函数
{
     char choose;
     extern void Append(struct Sort stu[]); //申明四个外部函数
     extern void Menuofsort(struct Sort stu[]);
    extern void Menuofsear(struct Sort stu[]);
    void Quit();
      do{
      
    system("cls");
    printf("\n\n\n\t\t\t\t主菜单");
    printf ("\n\n\n");
    printf("\t\t1.建立数据文件\t\t\t2.排序\n");
    printf("\n\n\n\t\t3.查询学生信息\t\t\t0.退出系统\n");
    printf("\n\n\n\t请选择[0-3]:");
    fflush(stdin);
    scanf("%c",&choose);
    getchar();
    switch(choose)
    {
        case '1': Append(stu); break;    //录入
        case '2': Menuofsort(stu); break;    //排序
        case '3': Menuofsear(stu); break;  //查询
        case '0': Quit(); break;         //退出系统
    }
  }while(choose!=0);

   
}
void Quit()    //退出系统 的函数
{
   exit(0);

}


/*   Edit.c  */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())
extern int length;

extern struct Sort stu[100];    //引用外部数组

void Menuofsort(struct Sort stu[])  //查询信息的函数
{
        char choos;
        do{
        system("cls");
        extern void Menuofmain(struct Sort stu[]);
        extern void Listall(struct Sort stu[]);
        void Sortname(struct Sort stu[]);
        void Sortnum(struct Sort stu[]);
        void Sortroom(struct Sort stu[]);
        int Numofsear(struct Sort stu[],char stunum[]);
        printf("1:按姓名排序!\n");
        printf("2:按学号排序!\n");
        printf("3:按房号排序!\n");
        printf("0:返回主菜单!\n");
        printf("请选择(0~3)");
        scanf("%d",&choos);
        getchar();
        if(choos==1)
        {
            Sortname(stu);
        }
        if(choos==2)
        {
            Sortnum(stu);
        }
        if(choos==3)
        {
            Sortroom(stu);
        }
         if(choos==0)
        {
          Menuofmain(stu);   
        }
        Listall(stu);
        
    }while(choos!=0);
   
}
void Sortname(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(strcmp(stu[i].name,stu[i+1].name)>0)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}
void Sortnum(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(strcmp(stu[i].stuNo,stu[i+1].stuNo)>0)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}

void Sortroom(struct Sort stu[])
{
    struct Sort t;
    int i,j;
    for(j=0;j<(length-1);j++)//进行length-1次循环
    {
        for(i=0;i<(length-1-j);i++)//每次比较length-1-j次比较
        {
            if(stu[i].room>stu[i+1].room)
            {
                t=stu[i];
                stu[i]=stu[i+1];
                stu[i+1]=t;
            }
        }
         
    }
}


void Menuofsear(struct Sort stu[])  //查询信息的函数
{
        char choos;
        do{
        system("cls");
        extern void Menuofmain(struct Sort stu[]);
        void Searname(struct Sort stu[]);
        void Searnum(struct Sort stu[]);
        void Searroom(struct Sort stu[]);
        int Numofsear(struct Sort stu[],char stunum[]);
        printf("1:按姓名查询!\n");
        printf("2:按学号查询!\n");
        printf("3:按房号查询!\n");
        printf("0:返回主菜单!\n");
        printf("请选择(0~3)");
        scanf("%d",&choos);
        getchar();
        if(choos==1)
        {
            Searname(stu);
        }
        if(choos==2)
        {
            Searnum(stu);
        }
        if(choos==3)
        {
            Searroom(stu);
        }
         if(choos==0)
        {
          Menuofmain(stu);   
        }
    }while(choos!=0);
   
}

void Searname(struct Sort stu[])//按姓名查询信息的函数
{
    extern void Printhead();
    extern void Listone(struct Sort list);
    int Numofsear(struct Sort stu[],char stunum[]);
    char c[25];
    int e;
    fflush(stdin);
    printf("\n请输入要查询的姓名:");
   
    scanf("%s",c);
    getchar();
    e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
    if(e>=0)
    {
        Printhead();
        Listone(stu[e]);
        
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();

}

void Searnum(struct Sort stu[])//按学号查询信息的函数
{
    extern void Printhead();
    extern void Listone(struct Sort list);
    int Numofsear(struct Sort stu[],char stunum[]);
    char c[20];
    int e;
    printf("\n请输入要查询的学号:");
    scanf("%s",c);
    getchar();
    e=Numofsear(stu,c);//查询学号是否存在 若存在返回正值否则返回负值
    if(e>=0)
    {
        Printhead();
        Listone(stu[e]);
        
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();

}

void Searroom(struct Sort stu[])  //按房间查询的函数
{
    system("cls");
    extern int length;
    extern void Printhead();
    extern void Listone(struct Sort list);
    int room,i,count=0;
    printf("\n输入要查询的房间:");
    scanf("%d",&room);
    getchar();
    Printhead();
    for(i=0;i<length;i++)                //输出该年级的所有信息
    {
        if(room==stu[i].room)
        {
            Listone(stu[i]);
            count++;     //统计该年级的学生数
        }
    }
    if(count>0)
    {
        printf("共找到%d条记录!\n",count);
    }
    else
    {
        printf("没有找到相关记录!\n");
    }
    printf("按任意键继续!\n");
    getchar();
   
}

int Nameofsear(struct Sort stu[],char stunum[])  //判断查询的姓名是否存在的函数
{
    extern int length;
    int i,d=-1;
    for(i=0;i<length;i++)
    {
      if(strcmp(stunum, stu[i].name) == 0)
      d=i;
    }
    return(d);
}
int Numofsear(struct Sort stu[],char stunum[])  //判断查询的学号是否存在的函数
{
    extern int length;
    int i,d=-1;
    for(i=0;i<length;i++)
    {
      if(strcmp(stunum, stu[i].stuNo) == 0)
      d=i;
    }
    return(d);
}

 

/*   List.c  */
#include<stdio.h>
#include"Alist.h"
#include <string.h>  //字符串函数库 (strcmp())
#include <stdlib.h>  //标准工具函数库(exit(), system())
int length=0;

void Append(struct Sort stu[])  //录入学生信息的函数
{
 char con;   
 do{
       system("cls");   //清屏
    //fflush(stdin);
    //getchar();
    fflush(stdin);
    printf("\n");
    printf("\n请输入姓名:");
      scanf("%s", stu[length].name);
     getchar();
    printf("\n请输入学号(8位)");
      scanf("%s", stu[length].stuNo);
       getchar();
    printf("\n请输入房号:");
      scanf("%d",&stu[length].room);
    getchar();
      
    length++;
    printf("是否继续添加?(Y/N):");
     scanf("%c",&con);  
    //con = getchar();
    getchar();
      
  }while(con=='y'||con=='Y');
   
    printf("按回车键返回");
}
 void Listall(struct Sort stu[])//输出所有学生信息的函数
{
    system("cls");
    void Printhead();         //申明输出表头函数
   
    void Listone(struct Sort list);  //申明输出一条学生信息函数
    int i;
   
    Printhead();            //输出表头
    for(i=0;i<length;i++)
    {
        Listone(stu[i]);       //输出一条学生信息函数
        
    }
    printf("按回车键返回\n");
    fflush(stdin);
    getchar();
   
}
 
void Listone(struct Sort list)//输出一个学生信息的函数
{
    printf("%s\t\t%s\t\t%d\n", list.name,list.stuNo,  list.room);
}

void Printhead()//输出表头的函数
{
    printf("姓名\t\t学号\t\t房间\n");
}


/*  Alist.h  */
struct Sort
{
    char name[25];
    char stuNo[25];
    int room;
};
2013-06-17 09:10
快速回复:项目工程的查找问题?
数据加载中...
 
   



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

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