📄 input.c
字号:
#include <stdio.h>
#include "string.h"
#include "ctype.h"
#include "main.h"
void Input(int i)
{
char natp[10];
char adr[30];
char tnum[15];
int n=0;
int j=0;
printf("性别(0:女 1:男):");
while(1)
{
fflush(stdin);
scanf("%c",&Engineer[i].Sex);
if(!(Engineer[i].Sex=='0'||Engineer[i].Sex=='1'))
printf("性别输入有误,请重新输入!\n");
else
break;
}
printf("出生日期(形式如:年-月-日):");
while(1)
{
fflush(stdin);
scanf("%10d",&Engineer[i].Birth);
if(Engineer[i].Birth.year<1900||Engineer[i].Birth.year>2004)
{
printf("年份输入有误,请重新输入!\n");
continue ;
}
else
{
if((Engineer[i].Birth.year%4==0&&Engineer[i].Birth.year%100!=0)||(Engineer[i].Birth.year%100==0&&Engineer[i].Birth.year%400==0))/*是闰年*/
{
scanf("-%2d",&Engineer[i].Birth.month);
if(Engineer[i].Birth.month<1||Engineer[i].Birth.month>12)/*月份输入有误*/
{
printf("月份输入有误,请重新输入!\n");
continue;
}
else/*月份输入正确*/
{
if(Engineer[i].Birth.month==2)/*输入的是2月*/
{ scanf("-%2d",&Engineer[i].Birth.day);
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>29)
{
printf("该年为闰年,2月份天数只有29天,请重新输入!\n");
continue;
}
}
else if(Engineer[i].Birth.month==4||Engineer[i].Birth.month==6||Engineer[i].Birth.month==9||Engineer[i].Birth.month==11)/*输入的是30天的月份*/
{
scanf("-%2d",&Engineer[i].Birth.day);
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>30)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
else
{
scanf("-%2d",&Engineer[i].Birth.day);/*输入的是31天的月份*/
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>31)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
}
}
else/*不是闰年*/
{
scanf("-%2d",&Engineer[i].Birth.month);
if(Engineer[i].Birth.month<1||Engineer[i].Birth.month>12)/*月份输入有误*/
{
printf("月份输入有误,请重新输入!\n");
continue ;
}
else/*月份输入正确*/
{
if(Engineer[i].Birth.month==2)/*输入的是2月*/
{
scanf("-%2d",&Engineer[i].Birth.day);
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>28)
{
printf("2月份天数只有28天,输入有误,请重新输入!\n");
continue ;
}
}
else if(Engineer[i].Birth.month==4||Engineer[i].Birth.month==6||Engineer[i].Birth.month==9||Engineer[i].Birth.month==11)/*输入的是30天的月份*/
{
scanf("-%2d",&Engineer[i].Birth.day);
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>30)
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
else
{
scanf("-%2d",&Engineer[i].Birth.day);
if(Engineer[i].Birth.day<1||Engineer[i].Birth.day>31)/*输入的是31天的月份*/
{
printf("天数输入有误,请重新输入!\n");
continue ;
}
}
}
}
}
break;//出生日期输入判断完成
}
printf("籍贯(不能超过10个字符):");
while(1)
{
fflush(stdin);
scanf("%s",natp);
n=strlen(natp);
if(0>n||10<=n)
{
printf("您输入的籍贯超过了10个字符,请重新输入!\n");
continue;
}
for (j=0;j<n;j++)
{
if(!(isalpha(natp[j])))
break;
}
if(j==n)
strcpy(Engineer[i].Natp,natp);
else
{
printf("工程师籍贯只能输入字符,请重新输入\n");
continue;
}
break;//籍贯输入完成
}
printf("学历(0:高中 1:学士 2:硕士 3:博士 4:其他):");
while(1)
{
fflush(stdin);
scanf("%c",&Engineer[i].Edn);
switch(Engineer[i].Edn)
{
case '0':
case '1':
case '2':
case '3':
case '4':break;
default:
{
printf("输入错误,请重新输入!\n");
continue;
}
}
break;//学历输入完成
}
printf("住址(不超过30个字符):");
while(1)
{
fflush(stdin);
scanf("%s",adr);
n=strlen(adr);
if(0>n||30<=n)
{
printf("您输入的住址超过了30个字符,请重新输入!\n");
continue;
}
for (j=0;j<n;j++)
{
if(!(isalpha(adr[j])))
break;
}
if(j==n)
strcpy(Engineer[i].Adr,adr);
else
{
printf("工程师住址只能输入字符,请重新输入\n");
continue;
}
break;//地址输入完成
}
printf("电话(不超过15个字符):");
while(1)
{
fflush(stdin);
scanf("%s",tnum);
n=strlen(tnum);
if(0>n||15<=n)
{
printf("您输入的电话超过了15个字符,请重新输入!\n");
continue;
}
for (j=0;j<n;j++)
{
if(!(isdigit(tnum[j])))
break;
}
if(j==n)
strcpy(Engineer[i].Tnum,tnum);
else
{
printf("工程师电话只能输入数字,请重新输入\n");
continue;
}
break;//电话输入完成
}
printf("工龄(范围为(0,50]):");
while(1)
{
fflush(stdin);
scanf("%d",&Engineer[i].Wage);
if(Engineer[i].Wage>50||Engineer[i].Wage<0)
{
printf("您输入的工程师工龄有误,请重新输入!\n");
continue;
}
break;//工龄输入完成
}
printf("基本薪水:");
while(1)
{
fflush(stdin);
scanf("%f",&Engineer[i].Bsalary);
if(Engineer[i].Bsalary<=0)
{
printf("您输入的工程师基本薪水有误,请重新输入!\n");
continue;
}
break;//薪水输入完成
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -