学生管理系统.docx
- 文档编号:13088239
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:34
- 大小:19.72KB
学生管理系统.docx
《学生管理系统.docx》由会员分享,可在线阅读,更多相关《学生管理系统.docx(34页珍藏版)》请在冰点文库上搜索。
学生管理系统
#include
#include
#include
#include
#defineLEN_1sizeof(structbasic)
#defineLEN_2sizeof(structcj)
structbasic
{
intnum;
intbanji;
charname[30];
charsex[20];
intdornum;
chartele[30];
structbasic*next;
};
structb
{
intnum;
intbanji;
charname[30];
charsex[20];
intdornum;
chartele[30];
};
structcj
{
intnum;
charsnumber[4];
charsname[30];
floatxuefen;
floatscore[3];
floatzonghe;
floatrealscore;
structcj*next;
};
structc
{intnum;
charsnumber[4];
charsname[30];
floatxuefen;
floatscore[3];
floatzonghe;
floatrealscore;
};
intn;
intm;
structbasic*input_1(void)//*************对文件A.TXT的录入***********//
{
intc;
structbasic*p1,*p2,*head_1;
n=0;
p1=p2=(structbasic*)malloc(LEN_1);
printf("**************************************************************************\n\n\n");
printf("请输入学生的基本信息:
(结束输入请输)\n");
printf("请输入学生的学号:
");
scanf("%d",&p1->num);
head_1=NULL;
while(p1->num!
=0)
{
printf("请输入学生的班级:
");
scanf("%d",&p1->banji);
printf("请输入学生的名字:
");
scanf("%s",p1->name);
printf("请输入学生的性别:
");
scanf("%s",p1->sex);
printf("请输入学生的宿舍号码:
");
scanf("%d",&p1->dornum);
printf("请输入学生的电话号码:
");
scanf("%s",p1->tele);
n=n+1;
if(n==1)
head_1=p1;
else
p2->next=p1;
p2=p1;
p1=(structbasic*)malloc(LEN_1);
printf("请输入学生的基本信息:
(结束输入请输)\n");
printf("请输入学生的学号:
");
scanf("%d",&p1->num);
}
printf("输入结束!
\n");
printf("**************************************************************************\n\n\n");
p2->next=NULL;
printf("请任意输入一个数返回主菜单!
\n");
scanf("%d",&c);
returnhead_1;
}
voidsave_1(structbasic*head_1)//*************对文件A.TXT的保存***********//
{
FILE*fp;
structbasic*p1;
structbst[200];
inti=0,c;
printf("**************************************************************************\n\n\n");
fp=fopen("A.TXT","wb");
p1=head_1;
while(p1!
=NULL)
{
st[i].num=p1->num;
strcpy(st[i].name,p1->name);
strcpy(st[i].sex,p1->sex);
st[i].dornum=p1->dornum;
st[i].banji=p1->banji;
strcpy(st[i].tele,p1->tele);
i++;
p1=p1->next;
}
n=i;
fwrite(st,sizeof(structb),n,fp);
printf("保存成功!
\n");
printf("**************************************************************************\n\n\n");
printf("请任意输入一个数返回主菜单!
\n");
scanf("%d",&c);
fclose(fp);
}
structcj*input_2(void)//*************对文件B.TXT的录入***********//
{
structcj*p1,*p2,*head_2;
intk,c;
m=0;
p1=p2=(structcj*)malloc(LEN_2);
printf("**************************************************************************\n\n\n");
printf("请输入学生的成绩信息:
(结束输入请输)\n");
printf("请输入学生的学号:
");
scanf("%d",&p1->num);
head_2=NULL;
while(p1->num!
=0)
{
printf("请输入课程编号:
");
scanf("%s",p1->snumber);
printf("请输入课程名称:
");
scanf("%s",p1->sname);
printf("请输入该课程的学分:
");
scanf("%f",&p1->xuefen);
printf("请输入该课程的平时成绩:
");
scanf("%f",&p1->score[0]);
printf("请输入该课程的实验成绩:
");
scanf("%f",&p1->score[1]);
printf("请输入该课程的卷面成绩:
");
scanf("%f",&p1->score[2]);
m++;
if(m==1)
head_2=p1;
else
p2->next=p1;
p2=p1;
p1=(structcj*)malloc(LEN_2);
printf("请输入学生的成绩信息:
(结束输入请输)\n");
printf("请输入学生的学号:
");
scanf("%d",&p1->num);
}
printf("输入结束!
\n");
p2->next=NULL;
p1=head_2;
while(p1!
=NULL)
{
printf("学生的学号:
%d\n课程编号:
%s\n课程名称%s\n该课程的学分:
%f\n该课程的平时成绩:
%f\n该课程的实验成绩:
%f\n该课程的卷面成绩:
%f\n",p1->num,p1->snumber,p1->sname,p1->xuefen,p1->score[0],p1->score[1],p1->score[2]);
p1=p1->next;
}
printf("**************************************************************************\n\n\n");
printf("请任意输入一个数返回主菜单!
\n");
scanf("%d",&c);
returnhead_2;
}
voidsave_2(structcj*head_2)//*************对文件B.TXT的保存***********//
{
FILE*fp;
structcj*p1;
structclm[200];
inti=0,c;
fp=fopen("B.TXT","wb");
p1=head_2;
printf("**************************************************************************\n\n\n");
while(p1!
=NULL)
{
p1->zonghe=0.0;
if(p1->score[1]!
=-1)
p1->zonghe=p1->zonghe+p1->score[0]*0.15+p1->score[1]*0.15+p1->score[2]*0.7;
else
p1->zonghe=p1->zonghe+p1->score[0]*0.3+p1->score[2]*0.7;
p1=p1->next;
}
p1=head_2;
while(p1!
=NULL)
{
p1->realscore=0.0;
if((p1->zonghe>=0.0)&&(p1->zonghe<=100.0))
{
if(p1->zonghe>=90&&p1->zonghe<=100)
p1->realscore=p1->realscore+p1->xuefen;
elseif(p1->zonghe>=80&&p1->zonghe<90)
p1->realscore=p1->realscore+p1->xuefen*0.8;
elseif(p1->zonghe>=70&&p1->zonghe<80)
p1->realscore=p1->realscore+p1->xuefen*0.75;
elseif(p1->zonghe>=60&&p1->zonghe<70)
p1->realscore=p1->realscore+p1->xuefen*0.6;
else
p1->realscore=0;
}
p1=p1->next;
}
p1=head_2;
while(p1!
=NULL)
{
lm[i].num=p1->num;
strcpy(lm[i].snumber,p1->snumber);
strcpy(lm[i].sname,p1->sname);
lm[i].xuefen=p1->xuefen;
lm[i].score[0]=p1->score[0];
lm[i].score[1]=p1->score[1];
lm[i].score[2]=p1->score[2];
lm[i].zonghe=p1->zonghe;
lm[i].realscore=p1->realscore;
i++;
p1=p1->next;
}
m=i;
for(i=0;i fwrite(&lm[i],sizeof(structc),1,fp); printf("保存成功! \n"); printf("**************************************************************************\n\n\n"); printf("请任意输入一个数返回主菜单! \n"); scanf("%d",&c); fclose(fp); } voidsearch_1(structbasic*head_1)//************学生基本情况查询***********// { structbasic*p1; intt,num,c,k=0; charname[20]; printf("**************************************************************************\n\n\n"); printf("请输入查询的方式: 、学号查询2、姓名查询\n"); scanf("%d",&t); if(t==1) { printf("请输入要查询学生的学号: \n"); scanf("%d",&num); p1=head_1; while(p1! =NULL) { if(p1->num==num) { k=1; printf("学生的学号: %d\n班级: %d\n名字: %s\n性别: %s\n宿舍号: %d\n电话号码: %s\n",p1->num,p1->banji,p1->name,p1->sex,p1->dornum,p1->tele); } p1=p1->next; } if(k==0)printf("没有找到要查询的这个学生的基本信息! \n"); } else { printf("请输入要查询的学生的名字! \n"); scanf("%s",name); p1=head_1; while(p1! =NULL) { if(strcmp(p1->name,name)==0) { k=1; printf("学生的学号: %d\n班级: %d\n名字: %s\n性别: %s\n宿舍号: %d\n电话号码: %s\n",p1->num,p1->banji,p1->name,p1->sex,p1->dornum,p1->tele); } p1=p1->next; } if(k==0)printf("没有找到要查询的这个学生的基本信息! \n"); } printf("**************************************************************************\n\n\n"); printf("请任意输入一个数返回主菜单! \n"); scanf("%d",&c); } voidsearch_2(structbasic*head_1)//*************学生宿舍查询***********// { structbasic*p1; intdornum,c,k=0; printf("请输入要查询的宿舍号码: \n"); scanf("%d",&dornum); p1=head_1; printf("**************************************************************************\n\n\n"); while(p1! =NULL) { if(p1->dornum==dornum) { k=1; printf("学生的学号: %d\n班级: %d\n名字: %s\n性别: %s\n宿舍号: %d\n电话号码: %s\n",p1->num,p1->banji,p1->name,p1->sex,p1->dornum,p1->tele); } p1=p1->next; } printf("**************************************************************************\n\n\n"); if(k==0) { printf("没有找到要查询的这个宿舍的信息! \n"); printf("**************************************************************************\n\n\n"); } printf("请任意输入一个数返回主菜单! \n"); scanf("%d",&c); } voidsearch_3(structbasic*head_1,structcj*head_2)//*************学生成绩查询***********// { intnum,a=0,c,k=0; floatall=0; structbasic*p1; structcj*p2; printf("**************************************************************************\n\n\n"); printf("请输入要查询的学生的学号: \n"); scanf("%d",&num); p1=head_1; p2=head_2; while(p1! =NULL) { if(p1->num==num) { k=1; printf("学号: %d姓名: %s\n",num,p1->name); } p1=p1->next; } if(k==0)printf("没有找到要查询的这个学生的基本信息! \n"); while(p2! =NULL) { if(p2->num==num) { k=1; a=a+1; printf("课程编号: %s课程名称: %s综合成绩: %f实得学分: %f\n",p2->snumber,p2->sname,p2->zonghe,p2->realscore); all=all+p2->realscore; } p2=p2->next; } if(k==0)printf("没有找到要查询的这个学生的基本信息! \n"); else printf("总共修了: %d科实际得总学分是: %f\n",a,all); printf("**************************************************************************\n\n\n"); printf("请任意输入一个数返回主菜单! \n"); scanf("%d",&c); } structbasic*dele_1(structbasic*head_1,intnum)//*************学生基本信息的删除***********// { structbasic*p1,*p2; intk=0; printf("**************************************************************************\n\n\n"); if(head_1==NULL) {printf("学生管理系统已经被清空! \n");gotoend;} p1=head_1; while(p1->num! =num&&p1->next! =NULL) { p2=p1; p1=p1->next; } if(p1->num==num) { k=1; if(p1==head_1) head_1=p1->next; else p2->next=p1->next; printf("删除的学生学号是: %d\n\n\n",num); n=n-1; } if(k==0)printf("没有找到要删除内容的这个学生! \n"); printf("**************************************************************************\n\n\n"); printf("删除后要记得保存一下基本信息哦! \n"); end: returnhead_1; } structcj*dele_2(structcj*head_2,intnum)//*************相关成绩的删除***********// { structcj*p1,*p2; intk=0; printf("**************************************************************************\n\n\n"); if(head_2==NULL) {printf("学生管理系统已经被清空! \n");gotoend;} p1=head_2; while(p1->num! =num&&p1->next! =NULL) { p2=p1; p1=p1->next; } if(p1->num==num) { k=1; if(p1==head_2) head_2=p1->next; else p2->next=p1->next; printf("删除的学生学号是: %d\n\n\n",num); m=m-1; } if(k==0)printf("没有找到要删除内容的这个学生! \n"); printf("**************************************************************************\n\n\n"); printf("删除后要记得保存一下成绩哦! \n"); end: returnhead_2; } structbasic*insert_1(structbasic*head_1,structbasic*stu)//*************学生基本信息的插入***********// { structbasic*p1,*p2,*p0; p1=head_1; p0=stu; printf("**************************************************************************\n\n\n"); if(head_1==NULL) { head_1=p0; p0->next=NULL; } else { while((p0->num>p1->num)&&(p1->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统