c语言 学生信息管理系统(线性表版)_学生信息管理系统c版
c语言 学生信息管理系统(线性表版)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学生信息管理系统c版”。
#include #include #define MAXSIZE 100 #include #include typedef struct{
char num[8];/*学号*/
char name[9];/*姓名*/
char gender[3];/*性别*/
int score;/*成绩*/ }DataType;
typedef struct {
DataType stu[MAXSIZE];
int length;}sequenlist;
int menu_select(){ int sn;printf(“n
学生信息管理系统n”);printf(“=========================================n”);printf(“
1.学生信息顺序表的建立n”);printf(“
2.插 入 学 生 信
息n”);printf(“
3.查 询 学 生 信
息n”);printf(“
4.删 除 学 生 信
息n”);printf(“
5.输 出 所有学生信息n”);printf(“
0.退 出 管 理 系
统n”);printf(“==========================================n”);
printf(“请选择0-5:n”);for(;;){ scanf(“%d”,&sn);if(sn5)
printf(“nt输入错误,重选0-5n”);
else
break;} return sn;}
void createList(sequenlist *L){
int n,i;printf(“有几位学生?请输入:n”);fflush(stdin);scanf(“%d”,&n);printf(“以下请输入这%d位学生的信息:n”,n);for(i=0;i
printf(“第%d位学生:”,i);
printf(“n学号(8)
姓名(8)性别
成绩n”);
fflush(stdin);
scanf(“%s%s%s%d”,L->stu[i].num,L->stu[i].name,L->stu[i].gender,&L->stu[i].score);} L->length=n;}
void printList(sequenlist *L){ int i;printf(“n学号(8)
姓名(8)性别
成绩n”);printf(“------------n”);for(i=0;ilength;i++){
printf(“第%d位学生:”,i);
printf(“%s,%s,%s,%dn”,L->stu[i].num,L->stu[i].name,L->stu[i].gender,L->stu[i].score);
printf(“----n”);} }
int insert(sequenlist *L,DataType *student,int i){ int j;if(L->length==MAXSIZE){
printf(“overflow!”);
return 0;} else if((iL->length)){
printf(“error,please input the right 'i'”);
return 0;} else {
for(j=L->length-1;j>=i;j--)
{
strcpy(L->stu[j+1].num,L->stu[j].num);
strcpy(L->stu[j+1].name,L->stu[j].name);
strcpy(L->stu[j+1].gender,L->stu[j].gender);
L->stu[j+1].score=L->stu[j].score;
}
strcpy(L->stu[i].num,student->num);
strcpy(L->stu[i].name,student->name);
strcpy(L->stu[i].gender,student->gender);
L->stu[i].score=student->score;
L->length=L->length+1;
} return 1;}
int findList(sequenlist *L){ char num[8];char name[9];int i=0,xz;printf(“===========================n”);
printf(“
1、按学号查询n”);printf(“
2、按姓名查询n”);printf(“===========================n”);printf(“
请选择:
”);fflush(stdin);scanf(“%d”,&xz);if(xz==1){
printf(“请输入要查找学生的学号:”);
scanf(“%s”,num);
for(i=0;ilength;i++)
{
if(strcmp(L->stu[i].num,num)==0)
return i;
} }
else if(xz==2){
printf(“请输入要查找学生的姓名:”);
scanf(“%s”,name);
for(i=0;ilength;i++)
{
if(strcmp(L->stu[i].name,name)==0)
return i;
} } return-1;/*如果没找到,返回-1。否则直接返回,不会执行本句*/ }
void delNode(sequenlist *L){ int i,j;
printf(“请先查找您要删除的学生信息:n”);i=findList(L);if(i==-1){
printf(“没有查到要删除的学生信息”);
return;} for(j=i;jlength;j++){
L->stu[j].score=L->stu[j+1].score;
strcpy(L->stu[j].num,L->stu[j+1].num);
strcpy(L->stu[j].name,L->stu[j+1].name);
strcpy(L->stu[j].gender,L->stu[j+1].gender);} L->length--;printf(“该学生信息已被删除!n”);}
void main(){
sequenlist *L;
DataType *student;
int i;
L=(sequenlist *)malloc(sizeof(sequenlist));
while(1){
switch(menu_select())
{
case 1:
printf(“**************************************n”);
printf(“
学生信息顺序表的建立
n”);
printf(“***************************************n”);
createList(L);
break;
case 2:
printf(“**************************************n”);
printf(“添加学生信息n”);
printf(“请输入要添加的学生信息:n”);printf(“n学号(8)
姓名(8)性别
成绩n”);
printf(“**************************************n”);
student=(DataType *)malloc(sizeof(DataType));
fflush(stdin);
scanf(“%s%s%s%d”,student->num,student->name,student->gender,&student->score);
printf(“请输入要插入的位置:n”);
fflush(stdin);
scanf(“%d”,&i);
insert(L,student,i);
break;
case 3:
printf(“**************************************n”);
printf(“查询学生信息n”);
printf(“**************************************n”);
i=findList(L);
if(i!=-1)
{
printf(“您要查的学生为:n学号(8)
姓名(8)性别
成绩n”);
printf(“------------n”);
printf(“%s,%s,%s,%dn”,L->stu[i].num,L->stu[i].name,L->stu[i].gender,L->stu[i].score);
printf(“----n”);
}
else
printf(“没有您要查询的学生信息!”);
break;
case 4:
printf(“**************************************n”);
printf(“删除学生信息n”);
printf(“**************************************n”);
delNode(L);
break;
case 5:
printf(“**************************************n”);
printf(“输出所有学生信息n”);
printf(“**************************************n”);
printList(L);
break;
case 0: printf(“再见!n”);getchar();
return;
} } }