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

📄 partmodify.pc

📁 pro C的一个关于零件交易系统的源码
💻 PC
📖 第 1 页 / 共 2 页
字号:
	EXEC SQL COMMIT;
	printf("%s dropped.\n",seekID);
	return 0;
	
	notfound:
		printf("WARING:(delete_part)Part %s does not exist.\t",seekID);
		return -1;
	
	sqlerr:
		printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
		EXEC SQL WHENEVER SQLERROR CONTINUE;
		EXEC SQL ROLLBACK;
		return -1;
			
}/*delete_part(...)*/

void menu_update_part()
{
	char t;
	char ID[10];
	char Name[30];
	char Color[10];
	float  Weight=0.0;
	char Intro[100];
		
	while(1)
	{
		fflush(stdin);
		printf("\n\n\t\t更新零件信息\n\n");
		printf("请录入要更新的零件号:\n\n");
		printf("\t零件号->");
		scanf("%s",ID);
		
	/*	fflush(stdin);*/
		
		if( query_part( ID ) )
			printf("WARING:(menu_update_part)Part %s does not exist.\t\n\n",ID);
		else{
			printf("请录入更改的信息:(输入 0 放弃修改)\n");	
			printf("\t零件名->");
			scanf("%s",Name);
			if(!strcmp(Name,"0")){
				puts("\tExit to abort menu!");break;
			}else{
				printf("\t颜色->");
				scanf("%s",Color);
				printf("\t重量->");
				scanf("%f",&Weight);
				printf("\t简介->");
				scanf("%s",Intro);
				printf("\n");
			}/*else*/
		
			if( update_part( ID,Name,Color,Weight,Intro ) )
				printf("已经更新零件号为%s的信息!",ID);
			else printf("成功更新%s的信息!",ID);		
			/*else exit(-1);*/	
		}/*else*/
			fflush(stdin);			
			printf("还要更新其他的吗?(Y/N)");	
			t=getchar();
			if(t=='N'||t=='n')break;				
	}/*while*/
	part_modify_menu();
}/*menu_update_cus()*/

int update_part( char* tID,char* tName,char* tColor,float tWeight,char* tIntro )
{
	
	EXEC SQL BEGIN DECLARE SECTION; 
	char ID[10];
	char Name[30];
	char Color[10];
	float  Weight=0.0;
	char Intro[100];
	EXEC SQL END DECLARE SECTION;
	
	strcpy(ID,tID);
      	strcpy(Name,tName);
      	strcpy(Color,tColor);
      	Weight = tWeight;
      	strcpy(Intro,tIntro);
      		
	EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
	EXEC SQL WHENEVER NOT FOUND GOTO notfound;
	EXEC SQL UPDATE  Part SET Name=:Name,Color=:Color,Weight=Weight,Intro=:Intro
		 WHERE ID=:ID;
	EXEC SQL COMMIT;
	printf("%s updated.\n",ID);
	return 0;
	
	notfound:
		printf("WARING:(update_part)Part %s does not exist.\t",ID);
		return -1;
	
	sqlerr:
		printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
		EXEC SQL WHENEVER SQLERROR CONTINUE;
		EXEC SQL ROLLBACK;
		return -1;
	
}/*update_part( ... )*/

void menu_adcicePart_disposal()
{


	char temp;
	fflush(stdin);
	puts("\n\n\n\n\n\t\t推荐零件信息处理\n\n");
	printf("\t1.查看所有推荐零件信息\n");
	printf("\t2.将推荐零件信息转入零件信息表\n");	
	printf("\t....任意键返回上级菜单\n\n");
	
		
		printf("请选择(1 - 2 ,quit with any other key):");
		temp=getchar();
		fflush(stdin);
		


		switch(temp) {
			case '1': 
				menu_query_all_AdvicePart();
				break;
			case '2':
				advicePart_to_part();break;	
			
			default: 
				part_modify_menu();		
			}
}/*menu_adcicePart_disposal()*/	

void menu_query_all_AdvicePart()
{
	char t;
	puts("\n\n\n\n\n\t\t查看所有推荐零件信息\n\n");
	if( query_all_AdvicePart() ){
		printf("WARING:(menu_query_all_AdvicePart)There is no advice part.\t\n\n");
		menu_adcicePart_disposal();
	}else
		printf("以上为新推荐零件信息,要将其加入零件表吗?(N 返回上一级菜单):");
		printf(">");
		fflush(stdin);
		t = getchar();
		if( t=='N' || t=='n')menu_adcicePart_disposal();
		else 	advicePart_to_part();
			
}/*menu_query_all_AdvicePart()*/



int query_all_AdvicePart()
{
	EXEC SQL BEGIN DECLARE SECTION; 
	char ID[10];
	char Name[30];
	char Color[10];
	char  Weight[10];
	char Advicer[10];  /*推荐方ID*/
	char Intro[100];	
	EXEC SQL END DECLARE SECTION;
	
	int total_number = 0;
	
	EXEC SQL DECLARE advicePart_cursor CURSOR FOR SELECT * FROM PartAdvice;  /*ID,Name,Color,Weight,Advicer,Intro*/
   	EXEC SQL OPEN advicePart_cursor;

   	while(1)
   	{

   		EXEC SQL WHENEVER NOT FOUND DO break;   		
   		EXEC SQL FETCH advicePart_cursor INTO :ID,:Name,:Color,:Weight,:Intro,:Advicer;
    		++total_number;
    		if( total_number == 1 )
    		{
    			printf("\n相应的信息如下:");
			printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
			printf("%-4s%-10s%-20s%-10s%-8s%-10s\n","N","ID","Name","Color","Weight","Advicer");
    			printf("--- --------- ------------------- ---------------------------- ----------\n");
    		}/*if*/
   		printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Color,Weight,Advicer);
   		printf("--- --------- ------------------- ---------------------------- ----------\n");
 		printf("%-50s\n","Intro");
    		printf("-------------------------------------------------------------------------\n");
   		printf("%-50s\n",Intro);
   		printf("-------------------------------------------------------------------------\n");
   		printf("--- --------- ------------------- ---------------------------- ----------\n");
   	}/*while*/
   	EXEC SQL CLOSE advicePart_cursor;
	if(!total_number)
   	{	
   		printf("WARING:(query_all_AdvicePart)There is no advice part.\t\n\n");
   		return -1;
   	}else
		return 0;	/*success*/	
	

}/*query_all_AdvcePart()*/

void advicePart_to_part()
{
	
	EXEC SQL BEGIN DECLARE SECTION; 
	char ID[10];
	char Name[30];
	char Color[10];
	char  Weight[10];
	char Advicer[10];  /*推荐方ID*/
	char Intro[100];	
	EXEC SQL END DECLARE SECTION;
	int t;
	float fWeight;
	int total_number = 0;
	puts("\t以下操作将会把零件推荐表内的信息转入零件表\n");
	EXEC SQL DECLARE advice_to_Part_cursor CURSOR FOR SELECT * FROM PartAdvice;  /*ID,Name,Color,Weight,Advicer,Intro*/
   	EXEC SQL OPEN advice_to_Part_cursor;

   	while(1)
   	{

   		EXEC SQL WHENEVER NOT FOUND DO break;   		
   		EXEC SQL FETCH advice_to_Part_cursor INTO :ID,:Name,:Color,:Weight,:Intro,:Advicer;
    		++total_number;
  
    		printf("\n本条零件推荐信息为:\n");
		printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
		printf("%-4s%-10s%-20s%-10s%-8s%-10s\n","N","ID","Name","Color","Weight","Advicer");
    		printf("--- --------- ------------------- ---------------------------- ----------\n");
    			
   		printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Color,Weight,Advicer);
   		printf("--- --------- ------------------- ---------------------------- ----------\n");
 		printf("%-50s\n","Intro");
    		printf("-------------------------------------------------------------------------\n");
   		printf("%-50s\n",Intro);
   		printf("-------------------------------------------------------------------------\n");
   		fWeight =(float)atof(Weight);
   		printf("确认要将其转入零件表吗?(y/n)>");
   		fflush(stdin);
   		t = getchar();
   		if( t == 'n' ||t == 'N' ) {
   			puts("本条信息未转入,删除,处理下条信息\n");
   			delete_advicePart(ID);	
   		}else{   			
   			insert_part(ID,Name,Color,fWeight,Intro);
   			puts("本条信息已转入,删除");
   			delete_advicePart(ID);
   		}/*else*/
   	}/*while*/
   	EXEC SQL CLOSE advice_to_Part_cursor;
	if( !total_number )   		
   		printf("WARING:(dvicePart_to_part)There is no advice part.\t\n\n");   		
	else	puts("转入结束\n");	/*success*/	
	menu_adcicePart_disposal();
}/*advicePart_to_part()*/

int delete_advicePart(char* tID)
{
	EXEC SQL BEGIN DECLARE SECTION;
	char seekID[10];
	EXEC SQL END DECLARE SECTION;
		
	strcpy(seekID,tID);
	EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
	EXEC SQL WHENEVER NOT FOUND GOTO notfound;
	EXEC SQL DELETE FROM PartAdvice WHERE ID=:seekID;
	EXEC SQL COMMIT;
	printf("%s dropped.\n",seekID);
	return 0;
	
	notfound:
		printf("WARING:(delete_part)Part %s does not exist.\t",seekID);
		return -1;
	
	sqlerr:
		printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
		EXEC SQL WHENEVER SQLERROR CONTINUE;
		EXEC SQL ROLLBACK;
		return -1;
}/*delete_advicePart(...)*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -