c语言大作业学生系统Word文档下载推荐.docx
《c语言大作业学生系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言大作业学生系统Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
b5E2RGbCAP
*=======================*\n"
p1EanqFDPw
*请选择相应的功能:
*\n"
DXDiTa9E3d
*1.成绩录入*\n"
RTCrpUDGiT
*2.查询成绩*\n"
5PCzVD7HxA
*3.修改成绩*\n"
jLBHrnAILg
*4.插入成绩*\n"
xHAQX74J0X
*5.报表输出*\n"
LDAYtRyKfE
printf("
*6.删除操作*\n"
Zzz6ZB2Ltk
*0.退出系统*\n"
>
dvzfvkwMI1
rqyn14ZNXI
\n\n\n\n\n\n\n\n\n****\n"
EmxvxOtOco
}
//成绩录入
voidinput(>
{
FILE*fp。
studentxs。
/*定义一个结构体变量来装从文件中读出来的数据*/
intc=1。
if((fp=fopen("
student.dat"
"
ab"
==NULL>
can'
topenfile!
\n"
exit(0>
\n成绩录入"
\n****************************************************"
SixE2yXPq5
while(c++>
/*中间加油break,可使循环中断*/
{printf("
\n请输入您的姓名(姓名为end结束>
:
"
scanf("
%s"
xs.name>
if(strcmp(xs.name,"
end"
==0>
break。
/*判断姓名是否为end,用字符串判断*/6ewMyirQFL
\n请输入学号:
%d"
&
xs.num>
\n性别:
xs.sex>
\n请输入数学的成绩:
%f"
xs.math>
\n请输入英语的成绩:
xs.yingyu>
\n请输入政治的成绩:
xs.zhengzhi>
\n请输入语文的成绩:
xs.ywen>
xs.aver=0。
/*给平均分变量赋初值*/
xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen>
/4。
xs.sum=0。
xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen。
fwrite(&
xs,sizeof(stu>
1,fp>
//将成绩信息写入文件
}
fclose(fp>
voidxingming(>
\n输入要查学生的姓名:
"
scanf("
name>
if((fp=fopen("
rb"
{printf("
while(!
feof(fp>
{
fread(&
if(strcmp(xs.name,name>
/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/kavU42VRUs
\n学生的信息如下:
\n%10s%6s%6s%6s%6s%6s%6s%6s%6s\n"
姓名"
学号"
性别"
数学"
英语"
政治"
语文"
平均成绩"
总成绩"
y6v3ALoS89
\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2f\n"
xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum>
M2ub6vSTnP
if(feof(fp>
\n查找失败!
!
/*学生不存在*/
voidxuehao(>
\n输入要查学生的学号:
num>
if(xs.num==num>
/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/
0YujCfmUCw
eUts8ZQVRd
//查询
voidsearch(>
charch1。
请输入按何种方式查询:
\n1-姓名,2-学号:
ch1=getchar(>
/*用字符接收*/
switch(ch1>
/*判断*/
case'
1'
:
xingming(>
break。
2'
xuehao(>
\n按任意键返回主菜单"
getch(>
/*让屏幕停留同时按任意键返回*/
//修改:
输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;
voidmodi(>
\n输入要修改的学生的姓名:
sQsAEJkW5T
rb+"
/*判断输入要修改的姓名是否存在*/
{
修改前学生的信息如下:
GMsIasNXkA
\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f\n"
TIrRGchYzg
\n请输入该生的数学成绩:
7EqZcWLZNX
\n英语成绩:
\n政治成绩:
\n语文成绩:
xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen>
lzq7IGf02E
xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen。
if(!
\n修改后的学生的信息如下:
zvpgeqJ1hk
NrpoJac3v1
fseek(fp,sizeof(stu>
1>
/*负号表示后退,1表示文件当前位置*/
/*再写入,同时把要修改的那个覆盖掉*/
else
\n学生不存在,修改失败!
getch(>
//插入:
输入学生的平时的各项成绩,插入到指定位置;
当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。
1nowfTG4KI
voidinsert(>
inti=0,j,k,lenth。
students,xs[N]。
\n请输入插入的学生的姓名:
s.name>
fjnFLDa5Zo
\n学生的学号:
s.num>
\n学生的性别:
s.sex>
\n数学成绩:
s.math>
s.yingyu>
s.zhengzhi>
tfnNhnE6e5
s.ywen>
s.aver=(s.math+s.yingyu+s.zhengzhi+s.ywen>
s.sum=s.math+s.yingyu+s.zhengzhi+s.ywen。
\n插入位置:
k>
//i=0。
can'
xs[i],sizeof(stu>
/*把数据读入到结构体数组中*/
i++。
lenth=i。
if(k<
lenth&
&
k>
=0>
/*k的位置要位于数组范围之内*/
{//插入
for(j=lenth-1。
j>
=k。
j-->
xs[j+1]=xs[j]。
/*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/
/*循环是只循环这一句的*/
xs[k]=s。
/*将输入的学生信息加入这个k位置*/
lenth++。
/*长度+1*/
//写回
wb"
不能建立文件!
for(i=0。
i<
lenth。
i++>
else/*不再数组范围之内*/
s,sizeof(stu>
//显示
voidprint(>
students。
学生成绩表"
HbmVN777sL
\n*****************************************************"
V7l4jRB8Hs
\n%10s%10s%6s%6s%6s%6s%6s%6s%6s\n"
政治"
语文"
平均成绩"
83lcPA59W9
//从文件中读取成绩信息
//判断是否文件尾
\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2f\n"
s.name,s.num,s.sex,s.math,s.yingyu,s.zhengzhi,s.ywen,s.aver,s.sum>
mZkklkzaaP
}
//统计
voidtongji(>
inti=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u。
students[N],*p1[N],*p2[N],*p3[N],*p4[N]。
/*用指针数组*/AVktR43bpw
cant'
}ORjBnOwcEd
s[i++],sizeof(stu>
/*读入数据*/
t=i。
i=0。
for(u=0。
u<
t。
u++>
/*以下每个指针数组用于指向各分数段的学生信息*/
if(s[i].aver<
60>
{p1[j++]=&
s[i++]。
continue。
}/*每个学生信息只能位于一个分数段*/2MiJTy0dTT
if(s[i].aver>
=60&
s[i].aver<
80>
{p2[k++]=&
}gIiSpiue7A
=80&
90>
{p3[l++]=&
}uEh0U1Yfmh
=90>
{p4[m++]=&
学生成绩单"
IAg9qLsgBX
\n90以上的人有:
姓名学号平均分\n"
for(r=0。
r<
m。
r++>
\n%10s%6d%6.2f\n"
p4[r]->
name,p4[r]->
num,p4[r]->
aver>
WwghWvVhPE
\n80-89分的人有:
for(q=0。
q<
l。
q++>
p3[q]->
name,p3[q]->
num,p3[q]->
asfpsfpi4k
\n60-79分的人有:
for(p=0。
p<
k。
p++>
p2[p]->
name,p2[p]->
num,p2[p]->
ooeyYZTjj1
\n不及格的人有:
for(n=0。
n<
j-1。
n++>
p1[n]->
name,p1[n]->
num,p1[n]->
BkeGuInkxI
fclose(fp>
//if(s[i].aver<
}/*每个学生信息只能位于一个分数段*/PgdO0sRlMo
}3cdXwckm15
}h8c52WOngM
v4bdyGious
J0bm4qMpJ9
XVauA9grYP
bR9C6TJscw
pN9LBDdtrd
//删除:
输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息
voiddele(>
studentxs[N]。
inti=0,len,k=-1/*k<
0是为后面if判断用的*/。
\n输入要删除的学生姓名:
删除:
if(feof