⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputengineerinformation.c

📁 软件测试工程师管理系统
💻 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 + -