教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

c语言大作业学生管理完整(整理)(2)

来源:网络收集 时间:2026-09-02
导读: system(cls)。 printf(\n 请输入插入的学生的姓名:)。scanf(%s,)。 printf(\n 学生的学号:)。scanf(%d,s.num)。 printf(\n 学生的性别:)。scanf(%s,s.sex)。 printf(\n 数学成绩:)。scanf(%f,s.math)。 printf(\n

system("cls")。

printf("\n 请输入插入的学生的姓名:")。scanf("%s",&)。

printf("\n 学生的学号:")。scanf("%d",&s.num)。

printf("\n 学生的性别:")。scanf("%s",&s.sex)。

printf("\n 数学成绩:")。scanf("%f",&s.math)。

printf("\n 英语成绩:")。scanf("%f",&s.yingyu)。

printf("\n 政治成绩:")。scanf("%f",&s.zhengzhi)。

printf("\n 语文成绩:")。scanf("%f",&s.ywen)。

s.aver=(s.math+s.yingyu+s.zhengzhi+s.ywen)/4。

s.sum= s.math+s.yingyu+s.zhengzhi+s.ywen。

printf("\n 插入位置:")。scanf("%d",&k)。

// i=0。

if((fp=fopen("student.dat","rb"))==NULL)

{

printf(" can't open file!\n")。exit(0)。

}

while(!feof(fp))

{

fread(&xs[i],sizeof(stu),1,fp)。/*把数据读入到结构体数组中*/

if(feof(fp)) break。

i++。

}

fclose(fp)。

lenth=i。

if(k<lenth && k>=0)/*k的位置要位于数组范围之内*/

{//插入

c

for(j=lenth-1。j>=k。j--)

xs[j+1]=xs[j]。/*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/

/*循环是只循环这一句的*/

xs[k]=s。/*将输入的学生信息加入这个k位置*/

lenth++。/*长度+1*/

//写回

if((fp=fopen("student.dat","wb"))==NULL)

{

printf(" 不能建立文件!!\n")。exit(0)。

}

for(i=0。i<lenth。i++)

fwrite(&xs[i],sizeof(stu),1,fp)。

}

else/*不再数组范围之内*/

{

if((fp=fopen("student.dat","ab"))==NULL)

{

printf(" 不能建立文件!!\n")。exit(0)。

}

fwrite(&s,sizeof(stu),1,fp)。

}

printf("\n 按任意键返回主菜单 ")。

fclose(fp)。

}

//显示

void print()

{

FILE *fp。

student s。

system("cls")。

if((fp=fopen("student.dat","rb"))==NULL)

{

printf(" can't open file!\n")。exit(0)。

}

printf(" 学生成绩表 ")。

printf("\n *****************************************************")。

printf("\n %10s %10s%6s %6s %6s %6s %6s %6s %6s \n","姓名","学号","性别","数学","英语"," 政治"," 语文"," 平均成绩","总成绩")。

while(!feof(fp))

{

fread(&s,sizeof(stu),1,fp)。//从文件中读取成绩信息

if(feof(fp)) break。//判断是否文件尾

printf("\n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n",,s.num,s.sex,s.

c

math,s.yingyu,s.zhengzhi,s.ywen,s.aver,s.sum)。

}

fclose(fp)。

printf("\n 按任意键返回主菜单 ")。

getch()。

}

//统计

void tongji()

{

int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u。

FILE *fp。

student s[N], *p1[N],*p2[N],*p3[N],*p4[N]。/*用指针数组*/

system("cls")。

if((fp=fopen("student.dat","rb"))==NULL) {printf("cant't open file!\n")。exit(0)。}

while(!feof(fp))

{

fread(&s[i++],sizeof(stu),1,fp)。/*读入数据*/

if(feof(fp)) break。

}

t=i。i=0。

for(u=0。u<t。u++)/*以下每个指针数组用于指向各分数段的学生信息*/

{

if(s[i].aver<60) {p1[j++]=&s[i++]。continue。}/*每个学生信息只能位于一个分数段*/ if(s[i].aver>=60&&s[i].aver<80) {p2[k++]=&s[i++]。continue。}

if(s[i].aver>=80&&s[i].aver<90) {p3[l++]=&s[i++]。continue。}

if(s[i].aver>=90) {p4[m++]=&s[i++]。continue。}

}

printf(" 学生成绩单 ")。

printf("\n 90以上的人有:姓名学号平均分\n")。

for(r=0。r<m。r++)

{

printf("\n %10s %6d %6.2f\n",p4[r]->name,p4[r]->num,p4[r]->aver)。

}

printf("\n 80-89分的人有:姓名学号平均分\n")。

for(q=0。q<l。q++)

{

printf("\n %10s %6d %6.2f\n",p3[q]->name,p3[q]->num,p3[q]->aver)。

}

printf("\n 60-79分的人有:姓名学号平均分\n")。

for(p=0。p<k。p++)

{

printf("\n %10s %6d %6.2f\n",p2[p]->name,p2[p]->num,p2[p]->aver)。

}

printf("\n 不及格的人有:姓名学号平均分\n")。

c

for(n=0。n<j-1。n++)

{

printf("\n %10s %6d %6.2f\n",p1[n]->name,p1[n]->num,p1[n]->aver)。

}

fclose(fp)。

printf("\n 按任意键返回主菜单 ")。

getch()。

}

//if(s[i].aver<60) {p1[j++]=&s[i++]。continue。}/*每个学生信息只能位于一个分数段*/ if(s[i].aver>=60&&s[i].aver<80) {p2[k++]=&s[i++]。continue。}

if(s[i].aver>=80&&s[i].aver<90) {p3[l++]=&s[i++]。continue。}

if(s[i].aver>=90) {p4[m++]=&s[i++]。continue。}

}

printf(" 学生成绩单 ")。

printf("\n 90以上的人有:姓名学号平均分\n")。

for(r=0。r<m。r++)

{

printf("\n %10s %6d %6.2f\n",p4[r]->name,p4[r]->num,p4[r]->aver)。

}

printf("\n 80-89分的人有:姓名学号平均分\n")。

for(q=0。q<l。q++)

{

printf("\n %10s %6d %6.2f\n",p3[q]->name,p3[q]->num,p3[q]->aver)。

}

printf("\n 60-79分的人有:姓名学号平均分\n")。

for(p=0。p<k。p++)

{

printf(" …… 此处隐藏:2553字,全部文档内容请下载后查看。喜欢就下载吧 ……

c语言大作业学生管理完整(整理)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/91041.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)