学生信息管理系统C语言源代码.docx

上传人:b****1 文档编号:29147563 上传时间:2023-07-20 格式:DOCX 页数:18 大小:16.99KB
下载 相关 举报
学生信息管理系统C语言源代码.docx_第1页
第1页 / 共18页
学生信息管理系统C语言源代码.docx_第2页
第2页 / 共18页
学生信息管理系统C语言源代码.docx_第3页
第3页 / 共18页
学生信息管理系统C语言源代码.docx_第4页
第4页 / 共18页
学生信息管理系统C语言源代码.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生信息管理系统C语言源代码.docx

《学生信息管理系统C语言源代码.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C语言源代码.docx(18页珍藏版)》请在冰豆网上搜索。

学生信息管理系统C语言源代码.docx

学生信息管理系统C语言源代码

#include

#include

#include

#include

#definelensizeof(structstudent)

FILE*fp;

structstudent

{

longnum;

charname[15];

intage;

charsex[3];

charchushen[10];

chardizhi[20];

charphone[11];

charemail[20];

structstudent*next;

};

voidmenu()

{

printf("===========学生信息管理系统==========\n\n");

printf("1、录入学生信息\n");

printf("2、浏览学生信息\n");

printf("3、查询学生信息\n");

printf("4、删除学生信息\n");

printf("5、插入学生信息\n");

printf("6、修改学生信息\n");

printf("7、排序学生信息\n");

printf("8、退出管理系统\n");

printf("=====================================\n");

}

structstudent*creat()//录入学生信息

{

intn;

structstudent*head;

structstudent*p1,*p2;

n=0;

p1=p2=(structstudent*)malloc(len);

scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen,p1->dizhi,p1->phone,p1->email);

head=NULL;

while(p1->num!

=0)

{

n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p2=p1;

p1=(structstudent*)malloc(len);

scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen,p1->dizhi,p1->phone,p1->email);

}

p2->next=NULL;

return(head);

}

voidinsert(structstudent*head)//插入学生信息

{

intsearch_num;

structstudent*p,*q,*s;

p=head;

printf("在哪个学生前插入请输入学号:

\n");

scanf("%d",&search_num);

while((p!

=NULL)&&(p->num!

=search_num))

{

q=p;

p=p->next;

}

s=(structstudent*)malloc(len);

q->next=s;

system("cls");

printf("请输入学生信息:

\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->dizhi,s->phone,s->email);

s->next=p;

}

voidprintList(structstudent*head)//浏览全部学生信息

{

structstudent*p;

p=head;

if(head==NULL)

printf("没有学生信息!

!

\n");

else

{

do

{

fread(p,len,1,fp);

printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);

p=p->next;

}while(p!

=NULL);

}

}

voidfindList_num(structstudent*head,longsearch_num)//按学号查找

{

structstudent*p;

p=head;

while((p!

=NULL)&&(p->num!

=search_num))

p=p->next;

if(p!

=NULL)

printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);

else

printf("没有该学生信息!

!

\n");

}

voidfindList_name(structstudent*head,char*search_name)//按姓名查找

{

structstudent*p;

intcmp1=0,cmp=0;

p=head;

while(p!

=NULL)

if(strcmp(p->name,search_name)!

=0)

{

p=p->next;

cmp++;

}

else

{

printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);

p=p->next;

cmp1=1;

}

if(cmp!

=0&&cmp1==0)

printf("没有该学生信息!

!

\n");

}

voidxiugai(structstudent*p1,longxiu_num)//修改学生信息

{

structstudent*p2;

p2=p1;

while((p2!

=NULL)&&(p2->num!

=xiu_num))

p2=p2->next;

if(p2!

=NULL)

{

scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p2->num,&p2->age,p2->name,p2->sex,p2->chushen,p2->dizhi,p2->phone,p2->email);

}

else

printf("没有该学生信息!

!

\n");

}

structstudent*delList(structstudent*head,longdel_num)//删除学生信息

{

structstudent*p,*q;

p=head;

q=head;

while(p&&(p->num!

=del_num))

{

q=p;

p=p->next;

}

if(p==NULL)

printf("无此学号!

\n");

else{

if(p==head)

{

head=p->next;

free(p);

}

else{

q->next=p->next;

free(p);

}

}

returnhead;

}

voidpaixu(structstudent*head)//按学号排序

{

structstudent*p,*f,*t;

charch[100];

inti;

t=f=p=head;

for(p=head;p->next!

=NULL;p=p->next)

{

for(t=head,f=t->next;t->next!

=NULL;t=t->next,f=f->next)

{

if(t->num>f->num>0)

{

i=t->num;

t->num=f->num;

f->num=i;

i=t->age;

t->age=f->age;

f->age=i;

strcpy(ch,t->name);

strcpy(t->name,f->name);

strcpy(f->name,ch);

strcpy(ch,t->sex);

strcpy(t->sex,f->sex);

strcpy(f->sex,ch);

strcpy(ch,t->chushen);

strcpy(t->chushen,f->chushen);

strcpy(f->chushen,ch);

strcpy(ch,t->dizhi);

strcpy(t->dizhi,f->dizhi);

strcpy(f->dizhi,ch);

strcpy(ch,t->phone);

strcpy(t->phone,f->phone);

strcpy(f->phone,ch);

strcpy(ch,t->email);

strcpy(t->email,f->email);

strcpy(f->email,ch);

}

}

}

//returnhead;

}

voidsave(structstudent*head)//保存为磁盘文件

{

structstudent*p;

if((fp=fopen("keshe","w"))==NULL)

{

printf("cannotopenthisfile\n");

exit(0);

}

p=head;

while(p!

=NULL)

{

fprintf(fp,"%d\n",p->num);

fprintf(fp,"%d\n",p->age);

fprintf(fp,"%s\n",p->name);

fprintf(fp,"%s\n",p->sex);

fprintf(fp,"%s\n",p->chushen);

fprintf(fp,"%s\n",p->dizhi);

fprintf(fp,"%s\n",p->phone);

fprintf(fp,"%s\n",p->email);

p=p->next;

}

fclose(fp);

}

structstudent*read()//从磁盘读取文件

{

structstudent*head=NULL;

structstudent*p=NULL;

structstudent*t=NULL;

inta;

//fp=fopen("keshe","r");

if((fp=fopen("keshe","r"))==NULL)

{

printf("cannotopenthisfile\n");

exit(0);

}

while

(1)

{

t=(structstudent*)malloc(len);

a=fscanf(fp,"%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&t->num,&t->age,t->name,t->sex,t->chushen,t->dizhi,t->phone,t->email);

if(a==0||a==-1)

returnhead;

t->next=NULL;

if(p==NULL)

{

p=t;

head=t;

}

else

{

p->next=t;

p=p->next;

p->next=NULL;

}

}

fclose(fp);

}

voidmain()

{

intcode=0;

structstudent*pt=NULL;

while(code!

=8)

{

menu();

printf("请输入上述序号进行操作:

\n");

scanf("%d",&code);

system("cls");

switch(code)

{

case1:

{

system("cls");

printf("每个学生的信息之间用Tab键分隔\n");

printf("===========================录入学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

pt=creat();

save(pt);

system("cls");

printf("===========================录入学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

printf("************录入学生信息成功***********!

!

\n");

printf("按回车键返回主菜单\n");

getchar();

getchar();

system("cls");

};break;

case2:

{

system("cls");

printf("===========================学生信息表================================\n");

printf("---------------------------------------------------------------------\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

pt=read();

printList(pt);

printf("=====================================================================\n");

printf("---------------------------------------------------------------------\n");

printf("\n按回车键返回主菜单\n");

getchar();

getchar();

system("cls");

};break;

case3:

{

intsearch=0;

system("cls");

printf("===========================查询学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

while(search!

=3)

{

printf("1、按学号查询\n2、按姓名查询\n3、退出查询\n");

scanf("%d",&search);

switch(search)

{

case1:

{

longsearch_num;

system("cls");

printf("请输入学生学号\n");

scanf("%d",&search_num);

system("cls");

printf("===========================查询结果==================================\n");

printf("---------------------------------------------------------------------\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

findList_num(read(),search_num);

printf("=====================================================================\n");

printf("---------------------------------------------------------------------\n");

printf("\n按回车键返回查询菜单\n");

getchar();

getchar();

system("cls");

};break;

case2:

{

charsearch_name[15];

system("cls");

printf("请输入学生姓名\n");

scanf("%s",search_name);

system("cls");

printf("===========================查询结果==================================\n");

printf("---------------------------------------------------------------------\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

findList_name(read(),search_name);

printf("=====================================================================\n");

printf("---------------------------------------------------------------------\n");

printf("\n按回车键返回查询菜单\n");

getchar();

getchar();

system("cls");

};

}

}

system("cls");

};break;

case4:

{

longdel_num;

system("cls");

printf("===========================删除学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

printf("请输入要删除学生信息的学号:

\n");

scanf("%d",&del_num);

system("cls");

pt=delList(read(),del_num);

save(pt);

printf("===========================删除结果================================\n");

printf("-------------------------------------------------------------------\n");

printf("学号为%d的学生信息成功删除\n",del_num);

printf("\n按回车键返回主菜单\n");

getchar();

getchar();

system("cls");

};break;

case5:

{

system("cls");

printf("每个学生的信息之间用Tab键分隔\n");

printf("===========================插入学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

insert(pt);

save(pt);

system("cls");

printf("===========================插入学生信息==============================\n");

printf("---------------------------------------------------------------------\n");

printf("****插入学生信息成功***!

!

\n\n");

printf("按回车键返回主菜单\n");

getchar();

getchar();

system("cls");

}break;

case6:

{

longsearch_num;

system("cls");

printf("请输入要修改的学生学号:

\n");

scanf("%d",&search_num);

system("cls");

printf("每个学生的信息之间用Tab键分隔\n");

printf("===========================修改学生信息==================================\n");

printf("-------------------------------------------------------------------------\n");

printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");

findList_num(read(),search_num);

printf("\n");

printf("请输入修改信息:

\n");

printf("学号\t年龄\t姓名\t性别

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1