📄 inputengineerinformation.c
字号:
#include <stdio.h>
#include "string.h"
#include "ctype.h"
#include "main.h"
void InputEngineerInformation(void)
{
int n=0;
int i=0;
int no=0;
int age=0;
char name[20];
char natp[10];
char adr[30];
char tnum[15];
char choose;
int flag=0;
while(1)
{
if(IsFull==1)
{
printf("工程师信息已超过了规定的数组大小,不能再进行继续输入!\n");
break;
}
for(p=Engineer+count;p<Engineer+sizeof(Engineer)/sizeof(struct engineerstruct);p++)
{
printf("请输入工程师编号(范围在1-9999之间):\n");
while(1)
{
fflush(stdin);
scanf("%d",&no);
if(no>=10000||no<=0)
{
printf("编号输入有误,请重新输入!\n");
continue;
}
else if(IsSearch(no))
{
printf("此编号的工程师信息已存在!");
printf("请给该工程师指定其他编号!\n");
}
else
{
p->No=no;
break;
}
}//编号输入完成
printf("请输入工程师姓名(字符在20个之内):\n");
while(1)
{
fflush(stdin);
scanf("%s",name);
n=strlen(name);
if(0>n||20<=n)
{
printf("您输入的姓名超过了20个字符,请重新输入!\n");
continue;
}
for (i=0;i<n;i++)
{
if(!(isalpha(name[i])))
break;
}
if(i==n)
strcpy(p->Name,name);
else
{
printf("工程师姓名只能输入字符,请重新输入\n");
continue;
}
break;
}//姓名输入完成
printf("请输入工程师的性别(0:女 1:男):\n");
while(1)
{
fflush(stdin);
scanf("%c",&p->Sex);
if(!(p->Sex=='0'||p->Sex=='1'))
printf("性别输入有误,请重新输入!\n");
else
break;
}//性别输入完成
printf("请输入工程师的出生日期(形式如:年-月-日):\n");
while(1)
{
fflush(stdin);
scanf("%10d",&p->Birth);
if(p->Birth.year<1900||p->Birth.year>2004)
{
printf("年份输入有误,请重新输入!\n");
continue ;
}
else
{
if((p->Birth.year%4==0&&p->Birth.year%100!=0)||(p->Birth.year%100==0&&p->Birth.year%400==0))/*是闰年*/
{
scanf("-%2d",&p->Birth.month);
if(p->Birth.month<1||p->Birth.month>12)/*月份输入有误*/
{
printf("月份输入有误,请重新输入!\n");
continue;
}
else/*月份输入正确*/
{
if(p->Birth.month==2)/*输入的是2月*/
{ scanf("-%2d",&p->Birth.day);
if(p->Birth.day<1||p->Birth.day>29)
{
printf("该年为闰年,2月份天数只有29天,请重新输入!\n");
continue;
}
}
else if(p->Birth.month==4||p->Birth.month==6||p->Birth.month==9||p->Birth.month==11)/*输入的是30天的月份*/
{
scanf("-%2d",&p->Birth.day);
if(p->Birth.day<1||p->Birth.day>30)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
else
{
scanf("-%2d",&p->Birth.day);/*输入的是31天的月份*/
if(p->Birth.day<1||p->Birth.day>31)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
}
}
else/*不是闰年*/
{
scanf("-%2d",&p->Birth.month);
if(p->Birth.month<1||p->Birth.month>12)/*月份输入有误*/
{
printf("月份输入有误,请重新输入!\n");
continue ;
}
else/*月份输入正确*/
{
if(p->Birth.month==2)/*输入的是2月*/
{
scanf("-%2d",&p->Birth.day);
if(p->Birth.day<1||p->Birth.day>28)
{
printf("2月份天数只有28天,输入有误,请重新输入!\n");
continue ;
}
}
else if(p->Birth.month==4||p->Birth.month==6||p->Birth.month==9||p->Birth.month==11)/*输入的是30天的月份*/
{
scanf("-%2d",&p->Birth.day);
if(p->Birth.day<1||p->Birth.day>30)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
else
{
scanf("-%2d",&p->Birth.day);
if(p->Birth.day<1||p->Birth.day>31)/*输入的是31天的月份*/
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
}
}
}
break;//出生日期输入判断完成
}
printf("请输入工程师籍贯:(不能超过10个字符)\n");
while(1)
{
fflush(stdin);
scanf("%s",natp);
n=strlen(natp);
if(0>n||10<=n)
{
printf("您输入的籍贯超过了10个字符,请重新输入!\n");
continue;
}
for (i=0;i<n;i++)
{
if(!(isalpha(natp[i])))
break;
}
if(i==n)
strcpy(p->Natp,natp);
else
{
printf("工程师籍贯只能输入字符,请重新输入\n");
continue;
}
break;//籍贯输入完成
}
printf("请输入工程师的学历背景(0:高中 1:学士 2:硕士 3:博士 4:其他):\n");
while(1)
{
fflush(stdin);
scanf("%c",&p->Edn);
switch(p->Edn)
{
case '0':
case '1':
case '2':
case '3':
case '4':break;
default:
{
printf("输入错误,请重新输入!\n");
continue;
}
}
break; //学历输入完成
}
printf("请输入工程师住址(不超过30个字符)!\n");
while(1)
{
fflush(stdin);
scanf("%s",adr);
n=strlen(adr);
if(0>n||30<=n)
{
printf("您输入的住址超过了30个字符,请重新输入!\n");
continue;
}
for (i=0;i<n;i++)
{
if(!(isalpha(adr[i])))
break;
}
if(i==n)
strcpy(p->Adr,adr);
else
{
printf("工程师住址只能输入字符,请重新输入\n");
continue;
}
break;//地址输入完成
}
printf("请输入工程师电话(不超过15个字符)!\n");
while(1)
{
fflush(stdin);
scanf("%s",tnum);
n=strlen(tnum);
if(0>n||15<=n)
{
printf("您输入的电话超过了15个字符,请重新输入!\n");
continue;
}
for (i=0;i<n;i++)
{
if(!(isdigit(tnum[i]))&&tnum[i]!='-')
break;
}
if(i==n)
strcpy(p->Tnum,tnum);
else
{
printf("工程师电话只能输入数字,请重新输入\n");
continue;
}
break;//电话输入完成
}
printf("请输入工程师的工龄:范围为(0,50]\n");
while(1)
{
fflush(stdin);
scanf("%d",&p->Wage);
if(p->Wage>50||p->Wage<=0)
{
printf("您输入的工程师工龄有误,请重新输入!\n");
continue;
}
break;
//工龄输入完成
}
printf("请输入工程师的基本薪水:\n");
while(1)
{
fflush(stdin);
scanf("%f",&p->Bsalary);
if(p->Bsalary<=0)
{
printf("您输入的工程师基本薪水有误,请重新输入!\n");
continue;
}
break;//薪水输入完成
}
count++;
if(count>=NUM)
{
printf("工程师信息已超过了规定的数组大小,不能再进行继续输入!\n");
IsFull=1;
break;
}
while(1)
{
printf("要继续输入工程师信息吗?(Y/N)\n");
fflush(stdin);
scanf("%c",&choose);
if((choose=='n'||choose=='N')||(choose=='y'||choose=='Y'))
{
if(choose=='n'||choose=='N')
flag=0;
else
flag=1;
break;
}
else
printf("输入有误!请重新输入!\n");
}
if(flag==0)
{
printf("已退出此输入信息功能!\n");
break;
}
else
printf("-------------------------------------------------------------------------------\n");
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -