学生成绩管理系统C语言版.docx

上传人:b****3 文档编号:26516743 上传时间:2023-06-20 格式:DOCX 页数:18 大小:129.99KB
下载 相关 举报
学生成绩管理系统C语言版.docx_第1页
第1页 / 共18页
学生成绩管理系统C语言版.docx_第2页
第2页 / 共18页
学生成绩管理系统C语言版.docx_第3页
第3页 / 共18页
学生成绩管理系统C语言版.docx_第4页
第4页 / 共18页
学生成绩管理系统C语言版.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统C语言版.docx

《学生成绩管理系统C语言版.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言版.docx(18页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统C语言版.docx

学生成绩管理系统C语言版

/*常用的标准输入输出函数*/

/*access函数原型包含*/

/*exit函数原型包含*/

/*strcmp函数原型包含*/

/*最多的学生人数*/

#include

#include#include

#include#include#include#include#defineN100

 

structstudent

{

charclas[15];

charno[13];

charname[20];

charsex[8];

charaddr[30];

charphone[15];

floatscore[5];

floatave;

}stu[N];

intnum;

voidinit();

voidweihu();

voidtongji();

voidtongji1();

voidtongji2();

voidsort1();

voidfind1();

voidsave();

voidnewfile();

voidread1();

voidnewfile();

voidnew1();

voiddelete1();

voidmodify。

voidsortscore();

intfindname(charcname[]);

/*学生结构体定义*/

/*班级*/

/*学号,最多为12位*/

/*姓名*/

/*性别*/

/*地址*/

/*电话*/

/*存储五门课成绩*/

/*平均分*/

voidmain()

{

intchoice=1;

system("COLOR2f');

printf("^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*printf(”****

printf("printf(”

\n”);init();

学生信息管理系统

欢迎进入!

!

!

\n");

****\n");

***\n");

*\n");

 

while(choice!

=5)

{

system("COLOR1F");

printf(”

*******************************\n")・

printf(”

**

**\n");

printf(”

**

王采单

**\n");

printf(”

**

1:

学生成绩维护

**\n");

printf(”

**

2:

学生成绩统计

**\n");

printf(”

**

3:

学生成绩排序

**\n");

printf(”

**

4:

学生成绩查询

**\n");

printf(”

**

5:

退出

**\n");

printf(”

**

**\n");

printf("

*******************************\n");

printf("

请选择:

");

scanf("%d",&choice);switch(choice)

{

case1:

weihu();break;

case2:

tongji();break;

case3:

sort1();break;

case4:

find1();break;

case5:

save();

printf("谢谢使用本系统!

!

\n");break;

default:

printf("选择错误,请重新选择rj;

}

}}

〃1)输出学生成绩(公共函数)

printf("文件创建失败!

请重新运行程序。

\n");exit(O);/*终止程序运行*/

}

printf("请输入学生人数:

");

seanf("%d",&num);

for(i=0;i

{

printf("班级:

");

getchar();

gets(stu[i].clas);

printf("姓名:

");

gets(stu[i].name);

printf("请输入第%d位学生的学号:

",i+1);

gets(stu[i].no);printf("性别:

”);

gets(stu[i].sex);

printf("地址:

");

gets(stu[i].addr);

printf("电话:

");

gets(stu[i].phone);

printf("C语言:

");

scanf("%f",&stu[i].score[0]);

printf("大学物理:

");

scanf("%f",&stu[i].score[1]);

printf("网页设计:

");

scanf("%f",&stu[i].score[2]);

printf("高数:

");

scanf("%f",&stu[i].score[3]);

printf("英语:

");

scanf("%f",&stu[i].score[4]);

fwrite(&stu,sizeof(stu),1,fp);

printf("请输入下一条学生信息\n");/*把第i+1名学生成绩写入文件

*/

}

fclose(fp);

printf("你刚刚输入的数据共有%d个学生成绩。

详细数据为:

\n”,num);

output();

}

//4)从数据文件中读取成绩

voidread1()

{

FILE*fp;

/*num为数据文件实际存储成绩人数*/

num=0;

fp=fopen("stu.dat","r");

if(fp==NULL)/*文件不存在*/

{

printf(”文件打开失败!

请重新运行程序。

\n");

exit(O);/*终止程序运行*/

}

while(!

feof(fp))

{

fread(&stu[num],1,sizeof(structstudent),fp);

num++;

}num--;

fclose(fp);

\n",num);

/*输出读取结果*/

printf("现在共有%d个学生成绩,初始数据为:

output();

}

〃5)学生成绩维护

voidweihu()

{

intchoice1;

system("COLOR2F");

printf(”

*******************************************\n");

printf(”

**

**\n");

printf(”

**

学生成绩维护子菜单

**\n");

printf(”

**

1新增

**\n");

printf(”

**

2•删除(按学号)

**\n");

printf(”

**

3•修改

**\n");

printf(”

**

**\n");

printf(”

********************************************\n");

printf(”

请选择");

scanf("%d",&choice1);

switch(choice1)

{

case1:

new1();break;

case2:

delete1();break;

case3:

modify();break;

请重新选择!

\n");

default:

printf("选择错误,

}

〃6)新增一个学生成绩

voidnew1()

{

printf("请输入班级:

”);

getchar();

gets(stu[num].clas);

printf("请输入学号:

”);gets(stu[num].no);

printf("姓名:

");gets(stu[num].name);printf("性别:

");

gets(stu[num].sex);

printf("地址:

");gets(stu[num].addr);

printf("电话:

”);gets(stu[num].phone);printf("C语言:

");

scanf("%f',&stu[num].score[0]);printf("大学物理:

");

scanf("%f",&stu[num].score[1]);printf("网页设计:

”);

scanf("%f",&stu[num].score[2]);printf("高数:

");

scanf("%f",&stu[num].score[3]);

printf("英语:

");

scanf("%f",&stu[num].score[4]);

num++;

\n",num);

/*判断两个字符串相等*/

printf("现在共有%d个学生成绩,数据为:

output();

}

〃7)按学号查找

intfind(charsno[])

{

inti;

for(i=0;i

if(strcmp(stu[i].no,sno)==0)

}

〃删除学生信息

voiddelete1()

{

charcno[13];

inti,j;

printf("请输入要删除的学号:

\n");getchar();

gets(cno);

i=find(cno);

if(i==-1)

{

printf(”不存在该学号!

\n");

}

else

{

for(j=i;j

\n",num);

num--;

printf("删除后还有%d个学生成绩,数据为:

output();

}

}

//修改学生信息

voidmodify()

{

charcno[13];

inti,j;

printf("请输入要修改学生的学号:

\n");

getchar();

gets(cno);

i=find(cno);printf("班级:

");gets(stu[i].clas);printf("姓名:

");gets(stu[i].name);printf("性别:

");gets(stu[i].sex);printf("地址:

");gets(stu[i].addr);printf("电话:

”);gets(stu[i].phone);printf("C语言:

");scanf("%f",&stu[i].score[0]);printf("大学物理:

");scanf("%f",&stu[i].score[1]);

printf(”网页设计:

”);scanf("%f",&stu[i].score[2]);printf(”高数:

");

scanf("%f",&stu[i].score[3]);printf("英语:

");

scanf("%f',&stu[i].score[4]);printf("修改后为:

\n");

printf("%s\t%s\t%s\t%s\t%s\t%s\t\n",stu[i].clas,stu[i].name,stu[i].no,stu[i].sex,stu[i].addr,stu[i].phone);

printf("C语言大学物理网页设计高数英语\n");for(j=0;j<5;j++)

printf("%-12.f",stu[i].score[j]);

printf("\n");

}

〃10)统计

voidtongji()

{

intchoice2;

system("COLOR3F");

printf(”

***

***\n");

printf(”

***

统计子菜单

***\n");

printf(”

'k'k'k

1.计算每门课程平均分

***\n");

printf(”

'k'k'k

2.计算每个学生平均分

***\n");

printf(”

'k'k'k

***\n");

printf(”

*************************************************

**\n");

printf(”

*************************************************

**\n");

printf(”

请选择:

");

scanf("%d",&choice2);if(choice2==1)

tongji1();

elseif(choice2==2)

tongji2();

else

printf("选择错误,请重新选择!

\n");

}

〃11)计算每个学生平均分

voidtongji1()

{

inti,j;

floatsum;

floatavec[5];/*存储每门课程的平均分*/

for(j=0;j<5;j++)

{

sum=0;

for(i=0;i

sum+=stu[i].score[j];

avec[j]=sum/num;

}

printf("各门课平均分:

\n");

printf("C语言大学物理网页设计高数英语\n");

for(i=0;i<5;i++)

printf("%-10.2f",avec[i]);

printf("\n");

}

//12)计算每个人的平均分

voidtongji2()

{

inti,j;

floatsum;

for(j=0;j

{

sum=0;

for(i=0;i<5;i++)

sum+=stu[j].score[i];

stu[j].ave=sum/5;

printf("第%d个人的平均分:

%.2f\n",j+1,stu[j].ave);

}

}

〃13)排序

voidsort1()

{

intchoice3;

system("COLOR6F");

printf(”

*****************************************\n");

printf(”

\n");

printf(”

*****

排序子菜单

*****\n")・

printf(”

*****

*****\n")・

printf(”

*****

1.按成绩

*****\n");

printf(”

\n");

printf(”

*****************************************\n");

printf(”

请选择:

\n");

scanf("%d",&choice3);

if("choice3==1")

sortscore();

else

printf("选择错误,请重新选择!

\n");

}

〃14)按学生平均分排序

voidsortscore()/*按平均成绩从高到低冒泡法排序*/

{

inti,j;

structstudenttemp;

tongji2();/*先计算每个学生的平均分*/

for(i=0;i<=num_2;i++)

{

for(j=0;j

if(stu[j].ave

{

temp=stu[j];

stu[j]=stu[j+1];

stu[j+1]=temp;

}

}

for(i=0;i

printf("%.2f",stu[i].score[1]);

printf("排序后的学生成绩为:

\n");output();

}

〃15)查找

voidfind1()

{

intchoice4;

charcno[13],cname[20];

inti,j;system("COLOR5F");

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

");getchar();

gets(cno);

puts(cno);

i=find(cno);

}

elseif(choice4==2)

{

printf("请输入要查找学生的姓名:

”);

getchar();

gets(cname);

i=findname(cname);

}

else

{

printf("选择错误,请重新选择!

\n");

return;

}

if(i==-1)

printf("要查找的学生不存在。

\n");

else

{

printf("查找到的学生信息为:

\n");

printf("班级\t姓名\t学号\t性别\t地址\t电话\t\n");

printf("%s\t%s\t%s\t%s\t%s\t%s\t\n",stu[i].clas,stu[i].name,stu[i].no,stu

}

/*将修改过的学生成绩重新写回到数据文

〃17)保存文件voidsave()

件中*/

{

inti;

FILE*fp;

if((fp=fopen("stu.dat","wb"))==NULL)/*创建二进制文件*/

{

printf("文件创建失败!

请重新运行程序。

\n");

exit(O);/*终止程序运行*/

}

for(i=0;i

fwrite(&stu[i],1,sizeof(structstudent),fp);

/*把第i+1个学生成绩写入文件*/

fclose(fp);

}

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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