void Insert(Pointer * Head) { //录入图书信息函数 char loginNo[10] ; char c; Pointer p, q, r; printf("\n\t\t**************** 请输入图书信息 ****************\n"); /*交互输入*/ printf("\n\t\t请输入登录号:"); scanf("%s", loginNo); p = q = *Head; //检测登录号是否重复 while(p != NULL) { if(strcmp(p->loginNo, loginNo) == 0) { printf ("已经有相同的登录号:"); return; } else { q = p; p = p->next; } } r = (Pointer)malloc(sizeof(Booklist)); r->next = NULL; if(r == NULL) { printf("分配空间失败!"); return; } if(q == NULL) *Head = r; else{ q->next = r; } strcpy(r->loginNo, loginNo); printf("\n\t\t输入书名:"); //录入图书信息 scanf("%s", r->name); getchar(); printf("\n\t\t输入作者名:"); scanf("%s", r->author); getchar(); printf("\n\t\t输入分类号:"); scanf("%s", r->classNo) ; getchar(); printf("\n\t\t输入出版单位:"); scanf("%s", r->company) ; getchar(); printf("\n\t\t输入出版日期:"); gets(r->date) ; printf("\n\t\t输入价格:"); scanf("%s", r->price); do{ printf("\n\t\t录入成功!!!!"); num++; printf("选择是否继续录入(Y/N)?:"); /*连续录入图书信息*/ getchar(); scanf("%c", &c); if(c == 'y' || c == 'Y') Insert(Head); else { if(c == 'n' || c == 'N') return; else printf("\n\t\t输入错误,请重新输入!!!"); } } while(c != 'y' && c != 'n' && c != 'Y' && c != 'N'); }
时间: 2024-01-29 07:02:51 浏览: 21
这段代码是一个录入图书信息的函数,它会要求用户输入图书的登录号、书名、作者名、分类号、出版单位、出版日期和价格等信息。在录入之前,函数会先检查登录号是否已存在,如果已经存在则不允许录入。如果录入成功,程序会提示用户选择是否继续录入。如果用户选择继续录入,则会递归调用该函数;如果用户选择不继续录入,则函数会直接返回。