菜菜鸟..复杂问题 查询删除修改指定数组元素...!
我想大家提供一个思路给我 谢谢了!假设
我输入多个工程师资料 保存在数组里面 相同的数组标示符储存同一个工程师的资料
然后我想通过编号 查询或者修改或者删除指定删除一个或者或者多个工程师资料
当然删除全部 我用for循环就能搞定
我的思路也是做个循环..首先循环一次所有工程师编号 每个工程师编号 都返回自己的编号
当我输入的编号 等于 返回的编号 就认为找到了想要查询的信息了.. 可是循环没办法做 因为 return 带值返回只能用一次
循环不成立..
我想实现这个功能 但是不知道改怎么做 希望大家能指点一二
代码如下:
/********************************************************
** Highlight software by yzfy(雨中飞燕) http:// *
*********************************************************/
#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;
}
}
** Highlight software by yzfy(雨中飞燕) http:// *
*********************************************************/
#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]]