c语言大作业学生系统Word文档下载推荐.docx

上传人:b****4 文档编号:18166587 上传时间:2022-12-13 格式:DOCX 页数:19 大小:221.62KB
下载 相关 举报
c语言大作业学生系统Word文档下载推荐.docx_第1页
第1页 / 共19页
c语言大作业学生系统Word文档下载推荐.docx_第2页
第2页 / 共19页
c语言大作业学生系统Word文档下载推荐.docx_第3页
第3页 / 共19页
c语言大作业学生系统Word文档下载推荐.docx_第4页
第4页 / 共19页
c语言大作业学生系统Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c语言大作业学生系统Word文档下载推荐.docx

《c语言大作业学生系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言大作业学生系统Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

c语言大作业学生系统Word文档下载推荐.docx

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

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

当前位置:首页 > 总结汇报 > 实习总结

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

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