nonene0 nonene0
关注数: 32 粉丝数: 93 发帖数: 609 关注贴吧数: 110
大神们救救我吧!谁能帮我解释一下此段程序 void scanfOneByOne_recordBase(RecordBase *pp,char *parentMenu,char *curMenu){int len = strlen(curMenu); int j = 0;while(j<=7){system("cls");dispCopyright();printf(" ");printf("上级菜单: %s\n",parentMenu);printf(" ");printf("%s\n","--------------------------------------------------------------");printf(" ");printf("%s: ",curMenu);printf(" 唱片ID: "); pp->id < 0 ? printf("-\n"):printf("%d\n",pp->id);printf(" ");for(int i = 0;i<len+2;i++)printf(" ");printf(" 唱片名: ");pp->recordName[0] == '$' ? printf("-\n"): printf("%s\n",pp->recordName);printf(" ");for(i = 0;i<len+2;i++)printf(" ");printf(" 歌手名: ");pp->singerName[0] == '$' ? printf("-\n") : printf("%s\n",pp->singerName);printf(" ");for(i = 0;i<len+2;i++)printf(" ");printf(" 风格: ");pp->style[0] == '$' ? printf("-\n") : printf("%s\n", pp->style);printf(" ");for(i = 0;i<len+2;i++)printf(" ");printf(" 价格: ");pp->price <0 ? printf("-\n"):printf("%d\n", pp->price);printf(" ");for(i = 0;i<len+2;i++)printf(" ");printf("发行日期: ");//printf("%d/%d/%d\n",pp->issueDate.year <0 ? NULL : pp->issueDate.year,pp->issueDate.month <0?NULL:pp->issueDate.month,pp->issueDate.day<0?NULL:pp->issueDate.day);pp->issueDate.year <0 ? printf("-/"): printf("%d/",pp->issueDate.year);pp->issueDate.month <0 ? printf("-/"): printf("%d/",pp->issueDate.month);pp->issueDate.day <0 ? printf("-\n") : printf("%d\n",pp->issueDate.day);printf(" ");for(i = 0;i<len+2;i++)printf(" ");printf(" 备注: ");pp->note[0] == '$' ? printf("-\n") : printf("%s\n", pp->note);printf(" ");printf("%s\n","--------------------------------------------------------------");switch(j){case 0:printf(" ");printf("唱片ID> ");scanf("%d",&pp->id);break;case 1:printf(" ");printf("唱片名> ");scanf("%s",pp->recordName);break;case 2:printf(" ");printf("歌手名> ");scanf("%s",pp->singerName);break;case 3:printf(" ");printf("风格> ");scanf("%s",pp->style);break;case 4:printf(" ");printf("价格> ");scanf("%f",&pp->price);break;case 5:printf(" ");printf("发行日期> ");scanf("%d/%d/%d",&pp->issueDate.year,&pp->issueDate.month,&pp->issueDate.day);break;case 6:printf(" ");printf("备注> ");scanf("%s",pp->note);break;default:break;} j++;}}/*录入唱片菜单*/void menu_insertRecordBase(){RecordBase pp;initRecordBase(&pp);scanfOneByOne_recordBase(&pp,"唱片信息管理","录入唱片信息");if(insertRecordBase(&pp)){printf(" ");printAnimation("状态: 录入成功",'\n');printf(" ");printf("%s\n","--------------------------------------------------------------");printf(" ");printAnimation("按q键返回上级菜单,其它键继续添加>",' ');menu_flag = getch();}else{printf(" ");printAnimation("状态: 录入失败",'\n');printf(" ");printf("%s\n","--------------------------------------------------------------");printf(" ");printAnimation("原因: 已存在ID为",' ');printf("%d",pp.id);printAnimation(" 的唱片信息",'\n');printf(" ");printf("%s\n","--------------------------------------------------------------");printf(" ");printAnimation("按q键返回上级菜单,其它键继续添加>",' ');menu_flag = getch();}destroyRecordBase(&pp);} /*插入一条唱片基本信息*/bool insertRecordBase(RecordBase *recordBase){FILE *fp = openWith(RECORD_BASE,"a+");//fseek(fp,0,SEEK_END);RecordBase temp_RB;initRecordBase(&temp_RB);if(readRecordBase(recordBase->id,&temp_RB)){//printf(" ");printf("%s\n","--------------------------------------------------------------");//printf(" ");printf("已经存在id为%d的数据\n",recordBase->id);destroyRecordBase(&temp_RB);return false;}fprintf(fp, RECORD_BASE_PRINTF, recordBase->id,recordBase->recordName,recordBase->singerName,recordBase->style,recordBase->price,recordBase->issueDate.year,recordBase->issueDate.month,recordBase->issueDate.day,recordBase->note);rewind(fp); fclose(fp); destroyRecordBase(&temp_RB);return true;}
1 下一页