学生成绩管理系统C语言版文档格式.docx

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

学生成绩管理系统C语言版文档格式.docx

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

学生成绩管理系统C语言版文档格式.docx

voidtongji();

voidtongji1();

voidtongji2();

voidsort1();

voidfind1();

voidsave();

voidnewfile();

voidread1();

voidnew1();

voiddelete1();

voidmodify();

voidsortscore();

intfindname(charcname[]);

voidmain()

intchoice=1;

system("

COLOR2f"

);

printf("

~~~~~~~~~~~~~~~~~学生信息管理系统~~~~~~~~~~~~~~~~\n"

********\n"

***欢迎进入***\n"

**\n"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"

init();

while(choice!

=5)

{

system("

COLOR1F"

printf("

*******************************\n"

****\n"

**主菜单**\n"

**1:

学生成绩维护**\n"

**2:

学生成绩统计**\n"

**3:

学生成绩排序**\n"

**4:

学生成绩查询**\n"

**5:

退出**\n"

请选择:

"

scanf("

%d"

&

choice);

switch(choice)

{

case1:

weihu();

break;

case2:

tongji();

case3:

sort1();

break;

case4:

find1();

case5:

save();

printf("

谢谢使用本系统!

!

\n"

default:

选择错误,请重新选择!

}

}

}

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

voidoutput()/*输出学生数据*/

{

inti,j;

for(i=0;

i<

num;

i++)

班级姓名学号性别地址电话\n"

%s%s%s%s%s%s\n"

stu[i].clas,stu[i].name,stu[i].no,stu[i].sex,stu[i].addr,stu[i].phone);

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

for(j=0;

j<

5;

j++)

printf("

%-12.f"

stu[i].score[j]);

//2)系统初始化代码

voidinit()

if(access("

stu[i].dat"

0))/*判断文件是否存在*/

newfile();

/*不存在创建新的数据文件*/

else

read1();

/*若存在,从文件中读取数据*/

//3)创立新的数据文件

voidnewfile()/*从键盘输入学生成绩并保存到文件中*/

inti;

FILE*fp;

if((fp=fopen("

F:

\\stu.dat"

"

wb"

))==NULL)/*创建二进制文件*/

文件创建失败!

请重新运行程序。

exit(0);

/*终止程序运行*/

请输入学生人数:

scanf("

num);

班级:

getchar();

gets(stu[i].clas);

姓名:

gets(stu[i].name);

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

i+1);

gets(stu[i].no);

性别:

gets(stu[i].sex);

地址:

gets(stu[i].addr);

电话:

gets(stu[i].phone);

C语言:

%f"

stu[i].score[0]);

大学物理:

stu[i].score[1]);

网页设计:

stu[i].score[2]);

高数:

stu[i].score[3]);

英语:

stu[i].score[4]);

fwrite(&

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

请输入下一条学生信息\n"

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

*/

fclose(fp);

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

详细数据为:

num);

output();

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

voidread1()

num=0;

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

fp=fopen("

stu.dat"

r"

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

文件打开失败!

exit(0);

while(!

feof(fp))

fread(&

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

num++;

num--;

fclose(fp);

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

output();

/*输出读取结果*/

//5)学生成绩维护

voidweihu()

intchoice1;

COLOR2F"

*******************************************\n"

**学生成绩维护子菜单**\n"

**1.新增**\n"

**2.删除(按学号)**\n"

**3.修改**\n"

********************************************\n"

请选择"

choice1);

switch(choice1)

case1:

new1();

break;

case2:

delete1();

modify();

default:

//6)新增一个学生成绩

voidnew1()

请输入班级:

getchar();

gets(stu[num].clas);

请输入学号:

gets(stu[num].no);

gets(stu[num].name);

gets(stu[num].sex);

gets(stu[num].addr);

gets(stu[num].phone);

stu[num].score[0]);

stu[num].score[1]);

stu[num].score[2]);

stu[num].score[3]);

stu[num].score[4]);

num++;

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

//7)按学号查找

intfind(charsno[])

i++)

if(strcmp(stu[i].no,sno)==0)/*判断两个字符串相等*/

returni;

/*查找成功*/

return-1;

/*查找失败*/

}

//删除学生信息

voiddelete1()

charcno[13];

请输入要删除的学号:

gets(cno);

i=find(cno);

if(i==-1)

不存在该学号\n"

for(j=i;

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

num--;

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

//修改学生信息

voidmodify()

请输入要修改学生的学号:

gets(stu[i].name);

gets(stu[i].sex);

gets(stu[i].addr);

gets(stu[i].phone);

修改后为:

%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);

//10)统计

voidtongji()

intchoice2;

COLOR3F"

***************************************************\n"

******\n"

***统计子菜单***\n"

***1.计算每门课程平均分***\n"

***2.计算每个学生平均分***\n"

choice2);

if(choice2==1)

tongji1();

elseif(choice2==2)

tongji2();

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

voidtongji1()

floatsum;

floatavec[5];

/*存储每门课程的平均分*/

for(j=0;

sum=0;

for(i=0;

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

avec[j]=sum/num;

}

各门课平均分:

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

%-10.2f"

avec[i]);

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

voidtongji2()

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

stu[j].ave=sum/5;

第%d个人的平均分:

%.2f\n"

j+1,stu[j].ave);

//13)排序

voidsort1()

intchoice3;

COLOR6F"

*****************************************\n"

\n"

*****排序子菜单*****\n"

**********\n"

*****1.按成绩*****\n"

choice3);

if("

choice3==1"

sortscore();

//14)按学生平均分排序

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

structstudenttemp;

tongji2();

/*先计算每个学生的平均分*/

=num-2;

{

num-i-1;

if(stu[j].ave<

stu[j+1].ave)

{

temp=stu[j];

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

stu[j+1]=temp;

}

%.2f"

stu[i].score[1]);

排序后的学生成绩为:

//15)查找

voidfind1()

intchoice4;

charcno[13],cname[20];

COLOR5F"

*********************************************************\n"

*********************\n"

*********查找子菜单************\n"

*********1.按学号************\n"

*********2.按姓名************\n"

choice4);

if(choice4==1)

输入要查找学生的学号:

gets(cno);

puts(cno);

i=find(cno);

elseif(choice4==2)

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

gets(cname);

i=findname(cname);

选择错误,请重新选择!

return;

要查找的学生不存在。

查找到的学生信息为:

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

stu[i].clas,stu[i].name,stu[i].no,stu

[i].sex,stu[i].addr,

//16)按姓名查找

intfindname(charcname[])

if(strcmp(stu[i].name,cname)==0)/*判断两个字符串*/

/*查找成功*/

return-1;

/*查找失败*/

//17)保存文件

voidsave()/*将修改过的学生成绩重新写回到数据文件中*/

fwrite(&

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

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

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

当前位置:首页 > 教学研究 > 教学计划

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

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