C语言学生管理系统源代码Word文件下载.docx
- 文档编号:22587688
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:21
- 大小:19.37KB
C语言学生管理系统源代码Word文件下载.docx
《C语言学生管理系统源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统源代码Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
|%d\t|%s\t|%d\t|%d\t|%d\t|%d\t|%.1f\t|\n”,p-〉num,p—>
name,p—>
yuwen,p—〉shuxue,p—>
yingyu,p—〉yuwen+p—>
shuxue+p-〉yingyu,p—>
count/3。
0);
printf(”-—--—-——-————-—-----———-—---———---—-—-——-—-——---—---\n"
p=p—〉next;
}while(p!
=NULL);
}
}
/*读取*/
aaa*duqu()
{
aaa*s,*head,*p,*q;
n=0;
if((fp=fopen(filename,”rb”))==NULL)
不能读取文件!
\n”);
returnNULL;
head=malloc(sizeof(aaa));
printf(”内存空间不足,文件读取失败!
\n”);
returnNULL;
head-〉next=NULL;
p=head;
q=malloc(sizeof(aaa));
if(!
feof(fp))
fread(q,sizeof(aaaa),1,fp);
q->
next=NULL;
}
while(!
{
s=malloc(sizeof(aaa));
fread(s,sizeof(aaaa),1,fp);
s->
p—>
next=q;
p=q;
q=s;
n++;
returnhead;
}
/*输入函数*/
aaa*shuru(aaa*head)
aaa*q,*p,*s;
aaanewstd;
q=head;
do{
q=head;
if(s==NULL)
{
printf(”内存不足,添加学生成绩失败!
\07\n"
break;
}
printf(”请输入学号(输入0退出):
"
scanf(”%d”,&newstd.num);
if(newstd.num==0)
if(newstd.num〈0)
输入学号有误,请重新输入\n”);
break;
p=head—〉next;
while(p!
=NULL)
if(p—〉num==newstd.num)
{
printf("
输入学号重复,请重新输入!
break;
}
p=p—>
next;
q=q—>
}
if(p==NULL)
printf(”姓名:
scanf("
%s"
newstd.name);
语文:
scanf(”%d"
,&
newstd.yuwen);
printf("
数学:
”);
scanf(”%d”,&
newstd.shuxue);
英语:
%d"
newstd.yingyu);
strcpy(s—〉name,newstd。
name);
s—>
num=newstd。
num;
yuwen=newstd。
yuwen;
s-〉shuxue=newstd.shuxue;
s->
yingyu=newstd.yingyu;
s-〉count=s—〉yuwen+s—>
shuxue+s->
yingyu;
s—〉aver=(float)(s-〉count/3.0);
q-〉next=s;
n++;
}while
(1);
printf(”输入完毕,%d个学生成绩已输入(已插入)\n”,n);
/*保存*/
intbaocun(aaa*head)
aaa*s;
s=head—>
if((fp=fopen(filename,”wb”))==NULL)
不能写入文件!
保存失败!
return0;
while(s!
fwrite(s,sizeof(aaaa),1,fp);
s=s->
fclose(fp);
return1;
/*保存文件*/
intsave(aaa*head)
inti=0;
aaa*s;
请输入文件路径及文件名:
scanf("
%s”,filename);
if((fp=fopen(filename,”wb"
))==NULL)
不能建立文件!
fwrite(s,sizeof(aaaa),1,fp);
next;
i++;
%d名学生成绩记录写入%s中!
\n”,i,filename);
printf(”文件保存成功!
/*打开文件*/
aaa*dakai(void)
aaa*s,*head,*p,*q;
n=0;
printf(”请输入文件路径及文件名:
if((fp=fopen(filename,"
rb”))==NULL)
不能读取文件!
head=malloc(sizeof(aaa));
printf(”内存空间不足,文件打开失败!
head-〉next=NULL;
q=malloc(sizeof(aaa));
if(!
q-〉next=NULL;
fread(s,sizeof(aaaa),1,fp);
s—>
p-〉next=q;
n++;
liulan(head);
printf(”-—-———--——-———---—-—-----—-——-———--—----—--———-——---\n”);
文件已打开,%d个记录已读取\n"
,n);
d=baocun(head);
getchar();
returnhead;
/*建立*/
aaa*great()
aaa*head;
printf(”内存空间不足,链表建立失败!
head->
num=0;
head=shuru(head);
d=save(head);
/*查询*/
intchaxun(aaa*head)
aaa*q;
inti;
printf(”\n没有任何的学生资料!
需要查询的学号:
scanf(”%d”,&i);
q=head—〉next;
while(q—>
num!
=i&&q!
q=q->
if(q!
printf(”学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n"
q—〉count=q—>
yuwen+q—>
shuxue+q—>
q->
aver=(float)(q-〉count/3。
0);
%d\t%s\t%d\t%d\t%d\t%d\t%。
1f\n"
,q—〉num,q—〉name,q-〉yuwen,q—>
shuxue,q->
yingyu,q->
count,q-〉aver);
printf(”查无此人!
/*删除*/
aaa*shanchu(aaa*head)
aaa*s,*q;
intm;
head=duqu();
printf(”没有任何学生记录!
exit(0);
printf(”请输入要删除的学生学号”);
scanf(”%d"
m);
if(m==0)
returnhead;
s=head;
q=s—〉next;
while(q->
num!
=m&&q!
q=q—>
if(q!
学号:
%d姓名:
%s语文:
%d数学:
%d英语:
%d总分:
%d平均分:
%。
1f\n”,q->
num,q—〉name,q-〉yuwen,q-〉shuxue,q->
yingyu,q-〉yingyu+q—〉shuxue+q->
yuwen,q-〉count/3.0);
s—〉next=q->
free(q);
printf(”删除学号为%d学生记录成功!
m);
}
查无此人!
liulan(head);
d=baocun(head);
/*排序*/
aaa*paixu(aaa*head)
aaa*p,*max,*q;
inti,j,m;
chart[10];
head=duqu();
\07\n”);
exit(0);
printf(”按总成绩排序所有学生\n”);
for(i=0;
i<
n;
i++)
max=p=q=q->
for(j=i+1;
j〈n;
j++)
p=p->
if(max—>
count<
p—>
count)
max=p;
if(max!
=q)
{
m=max->
max—〉num=q-〉num;
q->
num=m;
strcpy(t,max—>
name);
strcpy(max—>
name,q->
strcpy(q—〉name,t);
m=max->
yuwen;
max->
yuwen=q—>
q—>
yuwen=m;
m=max-〉shuxue;
shuxue=q—〉shuxue;
q-〉shuxue=m;
m=max—>
max—>
yingyu=q—>
yingyu;
q-〉yingyu=m;
q-〉count=q—>
shuxue+q—〉yingyu;
q—〉aver=(float)(q->
count/3.0);
/*插入*/
aaa*charu(aaa*head)
aaa*s,*p;
s=p=head;
p=shuru(s);
p=paixu(p);
插入完毕!
/*修改*/
aaa*xiugai(aaa*head)
aaa*q;
\n没有任何学生记录!
q=head-〉next;
请输入要修改的学生的学号:
m);
while(q-〉num!
=m&
&q!
q=q-〉next;
if(q==NULL)
printf(”学号:
%d姓名:
%s语文:
%d数学:
%d英语:
%d平均分:
%.1f\n”,q->
num,q->
name,q—〉yuwen,q->
shuxue,q—〉yingyu,q—>
yuwen+q—〉shuxue+q—>
yingyu,q—〉count/3.0);
请输入修改之后的学号:
%d”,&q—>
num);
请输入修改之后的姓名:
”);
scanf(”%s"
,q—〉name);
请输入修改之后的语文:
scanf(”%d”,&q—>
yuwen);
printf(”请输入修改之后的数学:
%d”,&q->
shuxue);
请输入修改之后的英语:
%d”,&
q—〉yingyu);
修改成功\n"
count=q-〉yuwen+q->
shuxue+q-〉yingyu;
aver=(float)(q->
%d数学:
%d英语:
%.1f\n”,q->
num,q-〉name,q—〉yuwen,q->
shuxue,q—>
yingyu,q->
count,q->
aver);
d=baocun(head);
head=duqu();
head=paixu(head);
学号为%d学生数据修改成功!
/*主函数*/
main()
do{
\t************************************************\n"
\t***======================***\n”);
\t***学生成绩管理系统***\n"
\t***======================***\n"
\t******\n"
printf(”\t***1.输入学生成绩***\n”);
printf(”\t***2.打开记录文件***\n”);
printf(”\t***3.查找学生成绩***\n"
\t***4。
修改学生信息***\n"
\t***5。
删除学生信息***\n"
printf(”\t***6。
插入学生信息***\n"
printf(”\t***7.学生成绩排序***\n”);
printf(”\t***8。
浏览学生信息***\n”);
printf(”\t***9.保存输入数据***\n”);
printf(”\t***0退出***\n”);
\t******\n”);
printf(”\t************************************************\n”);
请输入选项(0—-9):
switch(m)
case1:
printf(”执行输入学生成绩命令!
head=great();
};
case2:
{
执行打开文件命令!
head=dakai();
};
case3:
printf(”执行查找学生信息命令!
d=chaxun(head);
};
case4:
执行修改学生信息命令!
head=xiugai(head);
case5:
执行删除学生信息命令!
head=shanchu(head);
};
case6:
printf(”执行插入学生信息命令!
head=charu(head);
case7:
执行学生成绩排序命令!
head=paixu(head);
已成功排序,输入任意键查看!
liulan(head);
case8:
执行浏览学生信息命令!
liulan(head);
case9:
printf(”执行保存学生信息命令!
d=save(head);
case0:
gotoAAAA;
default:
输入错误!
(请输入0——9选项)\07\n"
}while
(1);
AAAA:
if(head!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 管理 系统 源代码