c语言大作业学生管理完整整理.docx

上传人:b****1 文档编号:1824625 上传时间:2022-10-24 格式:DOCX 页数:29 大小:22.62KB
下载 相关 举报
c语言大作业学生管理完整整理.docx_第1页
第1页 / 共29页
c语言大作业学生管理完整整理.docx_第2页
第2页 / 共29页
c语言大作业学生管理完整整理.docx_第3页
第3页 / 共29页
c语言大作业学生管理完整整理.docx_第4页
第4页 / 共29页
c语言大作业学生管理完整整理.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

c语言大作业学生管理完整整理.docx

《c语言大作业学生管理完整整理.docx》由会员分享,可在线阅读,更多相关《c语言大作业学生管理完整整理.docx(29页珍藏版)》请在冰豆网上搜索。

c语言大作业学生管理完整整理.docx

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

#include"stdafx.h"

#include

#include

#include

#include

#defineN100

structstudent

{

charname[10]。

intnum。

charsex[10]。

floatmath。

floatyingyu。

floatzhengzhi。

floatywen。

floataver。

floatsum。

}stu。

voidmenu()

{

system("cls")。

printf("*欢迎使用学生成绩管理系统*\n")。

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

printf("*请选择相应的功能:

*\n")。

printf("*1.成绩录入*\n")。

printf("*2.查询成绩*\n")。

printf("*3.修改成绩*\n")。

printf("*4.插入成绩*\n")。

printf("*5.报表输出*\n")。

printf("*6.删除操作*\n")。

printf("*0.退出系统*\n")。

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

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

}

//成绩录入

voidinput()

{

system("cls")。

FILE*fp。

studentxs。

/*定义一个结构体变量来装从文件中读出来的数据*/

intc=1。

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

{

printf("can'topenfile!

\n")。

exit(0)。

}

printf("\n成绩录入")。

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

while(c++)/*中间加油break,可使循环中断*/

{printf("\n请输入您的姓名(姓名为end结束):

")。

scanf("%s",xs.name)。

if(strcmp(xs.name,"end")==0)break。

/*判断姓名是否为end,用字符串判断*/

printf("\n请输入学号:

")。

scanf("%d",&xs.num)。

printf("\n性别:

")。

scanf("%s",&xs.sex)。

printf("\n请输入数学的成绩:

")。

scanf("%f",&xs.math)。

printf("\n请输入英语的成绩:

")。

scanf("%f",&xs.yingyu)。

printf("\n请输入政治的成绩:

")。

scanf("%f",&xs.zhengzhi)。

printf("\n请输入语文的成绩:

")。

scanf("%f",&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)。

//将成绩信息写入文件

system("cls")。

}

fclose(fp)。

}

voidxingming()

{

FILE*fp。

studentxs。

charname[10]。

printf("\n输入要查学生的姓名:

")。

scanf("%s",name)。

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

{printf("can'topenfile!

\n")。

exit(0)。

}

while(!

feof(fp))

{

fread(&xs,sizeof(stu),1,fp)。

if(strcmp(xs.name,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/

{

printf("\n学生的信息如下:

\n")。

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

printf("\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)。

break。

}

}

if(feof(fp))

printf("\n查找失败!

!

!

")。

/*学生不存在*/

fclose(fp)。

}

voidxuehao()

{

FILE*fp。

studentxs。

intnum。

printf("\n输入要查学生的学号:

")。

scanf("%d",&num)。

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

{printf("can'topenfile!

\n")。

exit(0)。

}

while(!

feof(fp))

{

fread(&xs,sizeof(stu),1,fp)。

if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/

{

printf("\n学生的信息如下:

\n")。

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

printf("\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)。

break。

}

}

if(feof(fp))printf("\n查找失败!

!

!

")。

fclose(fp)。

}

//查询

voidsearch()

{

charch1。

system("cls")。

printf("请输入按何种方式查询:

\n")。

printf("\n1-姓名,2-学号:

")。

ch1=getchar()。

/*用字符接收*/

switch(ch1)/*判断*/

{

case'1':

xingming()。

break。

case'2':

xuehao()。

break。

}

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

getch()。

/*让屏幕停留同时按任意键返回*/

}

//修改:

输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;

voidmodi()

{

studentxs。

FILE*fp。

charname[10]。

system("cls")。

printf("\n输入要修改的学生的姓名:

")。

scanf("%s",name)。

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

{printf("can'topenfile!

\n")。

exit(0)。

}

while(!

feof(fp))

{

fread(&xs,sizeof(stu),1,fp)。

if(strcmp(xs.name,name)==0)/*判断输入要修改的姓名是否存在*/

{

printf("修改前学生的信息如下:

\n")。

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

printf("\n%10s%6d%6s%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)。

printf("\n请输入该生的数学成绩:

")。

scanf("%f",&xs.math)。

printf("\n英语成绩:

")。

scanf("%f",&xs.yingyu)。

printf("\n政治成绩:

")。

scanf("%f",&xs.zhengzhi)。

printf("\n语文成绩:

")。

scanf("%f",&xs.ywen)。

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

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

break。

}

}

if(!

feof(fp))

{

printf("\n修改后的学生的信息如下:

\n")。

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

printf("\n%10s%6d%6s%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)。

fseek(fp,sizeof(stu),1)。

/*负号表示后退,1表示文件当前位置*/

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

/*再写入,同时把要修改的那个覆盖掉*/

}

else

printf("\n学生不存在,修改失败!

!

")。

fclose(fp)。

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

getch()。

}

//插入:

输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。

voidinsert()

{

inti=0,j,k,lenth。

FILE*fp。

students,xs[N]。

system("cls")。

printf("\n请输入插入的学生的姓名:

")。

scanf("%s",&s.name)。

printf("\n学生的学号:

")。

scanf("%d",&s.num)。

printf("\n学生的性别:

")。

scanf("%s",&s.sex)。

printf("\n数学成绩:

")。

scanf("%f",&s.m

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

当前位置:首页 > 自然科学 > 天文地理

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

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