![]() |
#2
wangdayong992013-12-25 13:42
|

#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);
}
}
}
#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);
}
}
}