程序运行问题?一个管理系统在运行中,查找信息,就会输出所要查找信息,和所有储存信息。
程序代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> # define SIZE 100 typedef struct{ char name[10]; //*学生姓名*// char no[20]; //*学号由20个字符组成*// int score; //*学生成绩*// }Stu; //*元素类型*// typedef struct{ Stu elem[100]; int Length; int size; }Mylist; int init_list(Mylist&la) {la.Length=0; la.size=100; return 1;} int List_insert(Mylist &la,int i,Stu e) {Stu *p,*q; if ((i<1) || (i>la.Length+1)) return 0; p=&(la.elem[i-1]); q=&(la.elem[la.Length-1]); for (;q>=p;q--) { *(q+1)=*q; } *p=e; la.Length++; return 1; } int Find1(Mylist &la,char * name) /*查找并显示一个记录*/ {int i; for (i=0;i<la.Length;i++) {if (strcmp(la.elem[i].name,name)==0) return i+1;} return 0;} int Find2(Mylist la,char * no) /*查找并显示一个记录*/ {int i; for (i=0;i<la.Length;i++) {if (strcmp(la.elem[i].no,no)==0) return i+1;} return 0;} int Find3(Mylist la, int &score) /*查找并显示一个记录*/ {int i; for (i=0;i<la.Length;i++) {if (la.elem[i].score==score) return i+1;} return 0;} void main() {int k; char choose; Stu stud; Mylist L; init_list(L); while(1) {printf("--------------------------------------\n"); printf("| 学生成绩管理系统 |\n"); printf("| 1.... 录入学生信息 |\n"); printf("| 2.... 查找学生信息 |\n"); printf("| 3.... 按任意键退出 |\n"); printf("--------------------------------------"); printf("\n"); printf("\n"); printf("请输入您要进行的操作:"); fflush(stdin); scanf("%c",&choose); switch(choose) {case '1' : printf("输入学生学号,姓名,成绩(用空格隔开)\n"); scanf("%s%s%d",stud.no,stud.name,&stud.score); List_insert (L,L.Length+1,stud); //录入学生信息 break ; case '2': printf("--------------------------------------\n"); printf("| 查找学生信息 |\n"); printf("| 1.... 按姓名查找 |\n"); printf("| 2.... 按学号查找 |\n"); printf("| 3.... 查找按成绩 |\n"); printf("| 4.... 按任意键退出 |\n"); printf("--------------------------------------"); printf("请输入您要进行的操作:"); fflush(stdin); char choose1; scanf("%c",&choose1); switch(choose1) {case '1' : printf("请输入姓名:"); scanf("%s",stud.name); k= Find1(L,stud.name); if(k==0) printf("此学生系统中没有这个名字\n"); else printf("该学生的信息 :%s %s %d\n",L.elem[k-1].name,L.elem[k-1].no,L.elem[k-1].score); break; case'2': printf("请输入学号:"); scanf("%s",stud.no); k= Find2(L,stud.no); if(k==0) printf("此学生系统中没有这个名字\n"); else printf("该学生的信息 :%s %s %d\n",L.elem[k-1].name,L.elem[k-1].no,L.elem[k-1].score); break; case '3' : printf("输入你要查找的分数\n"); scanf("%s",stud.score); k=Find3(L,stud.score); if(k==0) printf("此学生系统中没有这个名字\n"); else printf("该学生的信息 :%s %s %d\n",L.elem[k-1].name,L.elem[k-1].no,L.elem[k-1].score); break ; case '4':exit(0); } case'5': exit(0); } } }