c语言实验报告三学生成绩管理系统.docx

上传人:b****6 文档编号:3879733 上传时间:2022-11-26 格式:DOCX 页数:11 大小:100.38KB
下载 相关 举报
c语言实验报告三学生成绩管理系统.docx_第1页
第1页 / 共11页
c语言实验报告三学生成绩管理系统.docx_第2页
第2页 / 共11页
c语言实验报告三学生成绩管理系统.docx_第3页
第3页 / 共11页
c语言实验报告三学生成绩管理系统.docx_第4页
第4页 / 共11页
c语言实验报告三学生成绩管理系统.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

c语言实验报告三学生成绩管理系统.docx

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

c语言实验报告三学生成绩管理系统.docx

c语言实验报告三学生成绩管理系统

1.实验内容

实现一个学生成绩处理程序,先输入多名学生的学号和成绩,然后进入菜单,可以选择打印,添加,修改,删除或查询成绩(学号查询和成绩段查询)。

2.实验步骤

2.1程序1

2.1.1程序功能

这是一个学生成绩处理程序,通过用户输入多名学生的学号和成绩,然后进入菜单,可以选择打印,添加,修改,删除或查询成绩(学号查询和成绩段查询)。

2.1.2设计思路

将一个大程序分块化处理,各个部分先用普通方法实现,在能运行的条件下改用插入排序和折半查找实现。

先实现输入成绩和菜单,再一项一项实现菜单中的功能。

2.1.3流程图或其他描述(不要求可以不写)

2.1.4程序代码(要有注释)

//实现一个学生成绩处理程序,可以选择打印、添加、修改、删除或查询成绩(学号和成绩段查询)

#include

#include

#include

#include

#defineN80

typedefstructstudent

{

longnum;

intscore;

}STU;

STUstu[N];

intn=0;

intKEY=0;

intk;

voidInput();

voidOutput();

voidAdd();

voidDirect();

voidDelete();

voidSearch();

voidSch();

voidSave();

voidRead();

 

voidmain()

{

intchos;

system("cls");

printf("\n");

printf("学生成绩管理系统\n\n");

printf("1.录入\n2.显示\n3.添加\n4.修改\n");

printf("5.删除\n6.查找\n7.查询\n8.退出\n");

printf("\n请选择:

");

scanf("%d",&chos);

switch(chos)

{

case1:

Input();break;

case2:

Output();break;

case3:

Add();break;

case4:

KEY=1;Search();break;

case5:

Delete();break;

case6:

Search();break;

case7:

Sch();break;

case8:

exit(0);break;

default:

printf("错误!

请按要求输入!

");

Sleep(2000);main();

}

}

 

voidInput()

{

inti=-1;

system("cls");

printf("当输入学号为负时返回!

\n");

do{

i++;

printf("\n");

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

",i+1);

scanf("%ld",&stu[i].num);

if(stu[i].num<0)break;

printf("请输入第%2d个学生的成绩:

",i+1);

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

n++;

}while(i=0);

if(stu[i].num<0)Save();

}

 

voidOutput()

{

system("cls");

printf("\n");

Read();

printf("\n\n任意键返回!

");

getchar();

getchar();

main();

}

 

voidAdd()

{

inti,j;

system("cls");

printf("\n");

printf("请输入需添加学生的学号:

");

scanf("%8ld",&stu[N-1].num);

printf("请输入需添加学生的成绩:

");

scanf("%d",&stu[N-1].score);

for(i=0;i

{

if(stu[N-1].num

{

for(j=n;j>i;j--)

{

stu[j].num=stu[j-1].num;

stu[j].score=stu[j-1].score;

}

stu[i].num=stu[N-1].num;

stu[i].score=stu[N-1].score;

break;

}else{

stu[n].num=stu[N-1].num;

stu[n].score=stu[N-1].score;

break;

}

}n++;

printf("修改后的");

Save();

}

 

voidDirect()

{

printf("请输入修改后的成绩:

");

scanf("%d",&stu[k].score);

printf("修改后的成绩为:

\n");

printf("\t%8ld\t%d\n",stu[k].num,stu[k].score);

printf("\n\n");

printf("修改后的");

Save();

}

 

voidDelete()

{

inti,del;

charkey;

system("cls");

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

");

scanf("%ld",&del);

getchar();

printf("确认删除?

(Y/N)");

scanf("%c",&key);

if(key=='y'||key=='Y')

{

for(i=0;i

{

if(del==stu[i].num)

{

stu[i]=stu[i+1];

n-=1;

}

}

}

printf("修改后的");

Save();

}

 

voidSearch()

{

inti;

charkey='y';

longsearch;

system("cls");

if(KEY==1)printf("\n请输入要修改成绩学生的学号:

");

elseprintf("\n请输入要查询成绩学生的学号:

");

scanf("%ld",&search);

for(i=0;i

{

if(search==stu[i].num)

{

printf("学生信息为:

\n");

printf("\t%ld\t%d\n",stu[i].num,stu[i].score);

k=i;

}

}

if(KEY==1)Direct();

KEY=0;

}

 

voidSch()

{

inti,a,b;

system("cls");

printf("请输入您要查询的成绩段(AB):

");

scanf("%d%d",&a,&b);

printf("符合条件的学生有:

\n");

for(i=0;i

{

if(stu[i].score>=a&&stu[i].score<=b)

printf("\t%ld\t%d\n",stu[i].num,stu[i].score);

}

printf("任意键返回!

");

getchar();getchar();

main();

}

 

voidSave()

{

FILE*fp;

if((fp=fopen("score.bin","wb"))==NULL)

{

printf("Failedtosavethedata!

\n");

exit(0);

}

fwrite(stu,sizeof(STU),n,fp);

fclose(fp);

printf("学生成绩已储存在\"score.bin\"中!

\n");

printf("\n\n任意键返回!

");

getchar();getchar();

main();

}

 

voidRead()

{

FILE*fp;

inti,total;

printf("学生信息:

\n");

if((fp=fopen("score.bin","rb"))==NULL)

{

printf("Failedtoreadthedata!

\n");

exit(0);

}

for(i=0;!

feof(fp);i++)

{

fread(&stu[i],sizeof(STU),1,fp);

}

fclose(fp);

total=i-1;

for(i=0;i

printf("\t%ld\t%d\n",stu[i].num,stu[i].score);

printf("\n\n任意键返回!

");

getchar();getchar();

main();

}

2.1.5运行结果

 

3.实验体会

3.1调试中出现的问题及解决过程

在程序中运用数组时还是不够熟练,调试时总出现指代不明或无法显示所要内容的情况,在认真看老师课上例子后找出错误所在,修改后运行成功。

3.2心得体会

3.3实验改进建议

在查询某个学生成绩,可实现查询第n-m名学生成绩,查询分数在n-m之间的学生成绩,查询平均成绩;学生成绩修改(增加、删除、修改)等。

 

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

当前位置:首页 > 高中教育 > 语文

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

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