当前位置: 代码迷 >> C语言 >> 菜菜鸟..复杂问题 查询删除修改指定数组元素...!
  详细解决方案

菜菜鸟..复杂问题 查询删除修改指定数组元素...!

热度:350   发布时间:2008-05-07 17:05:23.0
菜菜鸟..复杂问题 查询删除修改指定数组元素...!
我想大家提供一个思路给我 谢谢了!

假设
我输入多个工程师资料 保存在数组里面 相同的数组标示符储存同一个工程师的资料

然后我想通过编号 查询或者修改或者删除指定删除一个或者或者多个工程师资料

当然删除全部 我用for循环就能搞定

我的思路也是做个循环..首先循环一次所有工程师编号 每个工程师编号 都返回自己的编号

当我输入的编号 等于 返回的编号 就认为找到了想要查询的信息了.. 可是循环没办法做 因为 return 带值返回只能用一次

循环不成立..

我想实现这个功能 但是不知道改怎么做 希望大家能指点一二

代码如下:
/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
#include <stdio.h>
#include <stdlib.h>

#define N 10

void Menu(void);

int EngineerNo[N],EngineerSex[N],EngineerBirth,EngineerEducation[N],EngineerWorkYears[N],
    yes,year[N],month[N],day[N],i,no;
char EngineerName[N][20],EngineerHometown[N][10],EngineerAddress[N][30],EngineerPhone[N][15],yesno;
float EngineerBaseSalary[N];



void main(void)
{
    while(1)
    {
        int menu=0;

        printf("\t-----------------------------------------------------\n");
        printf("\t|               软件测试工程师管理系统              |\n");
        printf("\t-----------------------------------------------------\n");
        printf("\t1.输入软件测试工程师资料\n");
        printf("\t2.删除指定测试工程师资料\n");
        printf("\t3.查询软件测试工程师资料\n");
        printf("\t4.修改软件测试工程师资料\n");
        printf("\t5.计算测试工程师的月薪水\n");
        printf("\t6.保存新添加的工程师资料\n");
        printf("\t7.对测试工程师信排序(1编号升序,2姓名升序, 3工龄升序)\n");
        printf("\t8.输出所有测试工程师信息\n");
        printf("\t9.清空所有测试工程师数据\n");
        printf("\t10.打印软件测试工程师 数据报表\n");
        printf("\t11.从文件重新导入测试工程师数据\n");
        printf("\t0.结束(编辑工程师信息后提示保存)\n");
        printf("\n\n");
   
   
        printf("\t请输入你的选择:",menu);
        scanf("%d",&menu);
        fflush(stdin);
        {
        switch(menu)
        {
            case    1:
                    Menu();
                    break;

            case     2:
                    /*我就想实现这个!查询指定编号的工程师信息*/
                    
break;

            default:
                    printf("\t您输入错误,系统进入主菜单\n");
                    break;
        }
        }
    }
}

/*********工程师输入信息*********/
void Menu(void)
{
    printf("\t确定输入工程师资料?(y/n)");
        while(1)
        {
            scanf("%c",&yesno);
            fflush(stdin);
            
            switch(yesno)    
            {
            case    'y':
                    for (i=0;i<N;i++)
                    {
                    printf("\t请输入工程师编号(1-2000):");
                    EngineerNo[i] = number();
                    fflush(stdin);

                    printf("\t请输入工程师姓名:");
                    scanf("%s",EngineerName[i]);
                    fflush(stdin);

                    printf("\t请输入工程师性别(0为男,1为女):");
                    EngineerSex[i] = engineerSex();
                    fflush(stdin);
                           
                    printf("\t请输入工程师生日(格式1988-06-18):");
                    while(1)
                    {
                    scanf("%d-%d-%d",&year[i],&month[i],&day[i]);
                    yes = engineerBirth(year[i],month[i],day[i]);
                        if (yes==0)
                            break;
                    }
                    fflush(stdin);


                    printf("\t请输入工程师籍贯:");
                    scanf("%s",EngineerHometown[i]);
                    fflush(stdin);

                    printf("\t请输入工程师学历(高中0.学士1.硕士2.博士3.其它为4):");
                    EngineerEducation[i] = engineerEducation();
                    fflush(stdin);

                    printf("\t请输入工程师地址:");
                    scanf("%s",EngineerAddress[i]);
                    fflush(stdin);

                    printf("\t请输入工程师电话:");
                    scanf("%s",EngineerPhone[i]);
                    fflush(stdin);

                    printf("\t请输入工程师工龄(0-50):");
                    EngineerWorkYears[i] = engineerWorkYears(EngineerWorkYears);
                    fflush(stdin);

                    printf("\t请输入工程师基本薪水:");
                    EngineerBaseSalary[i] = engineerBaseSalary();
                    fflush(stdin);

                    printf("\n");
                    printf("\t第%d工程师资料输入完毕,是否输入下一个工程师资料(y/n)?",i+1);
                    scanf("%c",&yesno);
                    fflush(stdin);
                        switch(yesno)    
                        {
                        case    'y':
                                break;
                        case    'n':
                                return;
                        }
                        printf("\n");
                    }        
                    break;

            case    'n':
                    printf("\t返回主菜单\n\n");
                    break;

            default:
                    printf("\t你输入错误请重新输入(y/n):");
            }
            break;
        }
}


[[it] 本帖最后由 剁吧剁吧 于 2008-5-7 17:14 编辑 [/it]]
搜索更多相关的解决方案: 菜菜  元素  复杂问题  删除  查询  

----------------解决方案--------------------------------------------------------
还有些函数就没贴出来了  大概意思就是我现在要实现第菜单2的功能
   能够查询单个的
----------------解决方案--------------------------------------------------------
Orz没听懂
LZ的思维不是一般的混乱啊……
----------------解决方案--------------------------------------------------------
写一个函数
Delete(int id)
函数里面用循环遍历数组,如果找到工程师编号等于id的,就删除这个工程师

如果要删除多个工程师,就多次调用这个函数
本帖最近评分记录

从BFS(Breadth First Study)到DFS(Depth First Study)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2008-05-07 09:17:13
StarWing83

来 自:湖北工业大学
等 级:贵宾
威 望:19
帖 子:3946
专家分:748
注 册:2007-11-16
  得分:0 
明白了。
留给广陵解决。这种问题麻烦不讨好……
----------------解决方案--------------------------------------------------------
我也觉得好乱.. 我就是想查询不同数组 同一小标的单个工程师信息而已...
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]永夜的极光[/un] 在 2008-5-7 17:17 的发言:[/bo]

写一个函数
Delete(int id)
函数里面用循环遍历数组,如果找到工程师编号等于id的,就删除这个工程师

如果要删除多个工程师,就多次调用这个函数

送个版主一个铜板 这个思路不错..研究中
----------------解决方案--------------------------------------------------------
一个铜板少是少了点,不过蚊子腿也是肉

其实哦,这种题肯定是要用结构体的,你弄这么多个数组,太麻烦了
----------------解决方案--------------------------------------------------------
  我穷... 我看了同学的代码 明白是什么意思了
      我结构体还没学呢 最基础的学起 没办法..
----------------解决方案--------------------------------------------------------
回复 9# 的帖子
楼主,你是不是长沙的彭方成啊
你别把作业丢这里啊
o(∩_∩)o...
----------------解决方案--------------------------------------------------------