c语言 学生信息管理系统(线性表版)_学生信息管理系统c版

2020-02-27 其他范文 下载本文

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;

} } }

《c语言 学生信息管理系统(线性表版).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言 学生信息管理系统(线性表版)
点击下载文档
相关专题 学生信息管理系统c版 学生 信息管理系统 语言 学生信息管理系统c版 学生 信息管理系统 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文