学生成绩查询系统.docx

上传人:b****2 文档编号:17858226 上传时间:2023-08-04 格式:DOCX 页数:15 大小:96.19KB
下载 相关 举报
学生成绩查询系统.docx_第1页
第1页 / 共15页
学生成绩查询系统.docx_第2页
第2页 / 共15页
学生成绩查询系统.docx_第3页
第3页 / 共15页
学生成绩查询系统.docx_第4页
第4页 / 共15页
学生成绩查询系统.docx_第5页
第5页 / 共15页
学生成绩查询系统.docx_第6页
第6页 / 共15页
学生成绩查询系统.docx_第7页
第7页 / 共15页
学生成绩查询系统.docx_第8页
第8页 / 共15页
学生成绩查询系统.docx_第9页
第9页 / 共15页
学生成绩查询系统.docx_第10页
第10页 / 共15页
学生成绩查询系统.docx_第11页
第11页 / 共15页
学生成绩查询系统.docx_第12页
第12页 / 共15页
学生成绩查询系统.docx_第13页
第13页 / 共15页
学生成绩查询系统.docx_第14页
第14页 / 共15页
学生成绩查询系统.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩查询系统.docx

《学生成绩查询系统.docx》由会员分享,可在线阅读,更多相关《学生成绩查询系统.docx(15页珍藏版)》请在冰点文库上搜索。

学生成绩查询系统.docx

学生成绩查询系统

学生成绩查询系统

1课题内容和要求

1.1课题描述

【问题描述】试编写程序完成学生成绩记录的查询。

学生基本情况表

学号

姓名

成绩

14070101

孙军

98

14070102

王霞

86

14070103

刘涛

56

14070104

张宏

96

14070105

徐华

83

14070106

李明

72

14070107

陈婷

92

1.2课题要求

【基本要求】

(1)若按学号进行顺序查找,例如:

输入14070103,则输出56。

 

(2)按学号排序后对学号进行折半查找。

 

(3)随机输入以学号为关键字的学生信息并构建二叉排序树,对学号进行二叉排序树查找。

2需求分析

2.1设计要求

本系统主要实现对学生成绩信息进行管理,需要实现以下几个方面的管理功能:

(1)增加学生信息:

输入学生的相关信息,包括姓名,学号,成绩

(2)显示学生信息:

输出全部学生的信息

(3)查找学生信息:

按照学生学号查找并输出

(4)删除学生信息:

按照学生学号删除

(5)成绩统计:

输出成绩的总和,平均值

(6)显示想要的排名:

按成绩从高到低排序,输出对应的学生信息

(7)显示成绩不及格的学生信息:

输出成绩小于60的学生信息

2.2开发环境

普通计算机VisualC++

3概要设计

3.1采用数据结构及存储方式

structstudent

{

charname[60];

charID[60];

intscore;

};

structstudentst[300];//这个数组用来保存所有的学生信息和文件里面的一致

intNumber=0;//记录总的学生人数也就是数组/文件里面的学生人数

3.2系统功能结构

voidzdbc()//自动保存

voidfh()//返回

voidbujige()//输出成绩不及格的学生信息

voidpaixu()//排序显示想要的排名

voidtongji()//统计成绩的总分,均分

voidxhdel()//按学号删除

voidxhselect()//按学号查找

voidsee()//显示学生信息

voidadd()//增加学生信息

voidxianshi()//显示界面

voidbc(structstudentst[])

intdq(structstudentst[])

3.3函数之间的调用关系

main函数调用voidzdbc()//自动保存,voidfh()//返回,voidbujige()//输出成绩不及格的学生信息,voidpaixu()//排序显示想要的排名,voidtongji()//统计成绩的总分,均分,voidxhdel()//按学号删除,voidxhselect()//按学号查找,voidsee()//显示学生信息,voidadd()//增加学生信息,voidxianshi()//显示界面,voidbc(structstudentst[]),intdq(structstudentst[])

4详细设计及实现

4.1数据结构的类型定义

structstudent

{

charname[60];

charID[60];

intscore;

};

structstudentst[300];//这个数组用来保存所有的学生信息和文件里面的一致

intNumber=0;//记录总的学生人数也就是数组/文件里面的学生人数

4.2voidbujige()操作算法设计与实现

inti=0;

printf("以下是不及格:

\n");

printf("\t姓名\t学号\t成绩\n");

for(i=0;i

{

if(st[i].score<60)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

4.3voidpaixu()操作算法设计与实现

structstudenttemp;

intwantNUmber=0;

inti=0;

intj=0;

for(i=0;i

{

for(j=i;j

{

if(st[j].score

{

temp=st[j];

st[j]=st[j+1];

st[j+1]=temp;

}

}

}

printf("你想输出前几名的成绩:

");

scanf("%d",&wantNUmber);

if(wantNUmber>Number)

{

wantNUmber=Number;

}printf("\t姓名\t学号\t成绩\n");

for(i=0;i

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

4.4voidtongji()操作算法设计与实现

inti=0;

doublesum=0.0;

for(i=0;i

{

sum+=st[i].score;

}

printf("全班总分为:

%f\n",sum);

printf("平均分为:

%f\n",sum/Number);

4.5voidxhdel()操作算法设计与实现

FILE*fp=NULL;

charid[60];

inti=0;

intj=0;

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

");

scanf("%s",id);

for(i=0;i

{

if(strcmp(id,st[i].ID)==0)//如果查找到就删除

{

for(j=i;j

{

st[j]=st[j+1];

}

Number--;

}

}//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了

fp=fopen("C:

//student.dat","wb");

for(i=0;i

{

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

}

fclose(fp);

printf("删除成功;\n");

4.6voidxhselect()操作算法设计与实现

charid[60];

inti=0;

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

");

scanf("%s",id);

system("cls");

printf("\t姓名\t学号\t成绩\n");

for(i=0;i

{

if(strcmp(id,st[i].ID)==0)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

4.7voidsee()操作算法设计与实现

inti=0;

printf("以下是全部学生成绩\n");

printf("\t姓名\t学号\t成绩\n");

for(i=0;i

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

4.8voidadd()操作算法设计与实现

intnumberTemp=0;

inti=0;

structstudenttemp;//临时保存信息

printf("请输入要增加学生成绩个数:

");

scanf("%d",&numberTemp);

for(i=0;i

{

printf("输入第%d个同学信息\n",i+1);

printf("姓名:

");

scanf("%s",temp.name);

printf("学号:

");

scanf("%s",temp.ID);

printf("成绩:

");

scanf("%d",&temp.score);

st[Number++]=temp;//将刚添加的写入到数组

bc(&temp);//将刚添加的写入到文件}

printf("添加成功\n");

}

4.9voidbc(structstudent*st)操作算法设计与实现

FILE*fp=NULL;

fp=fopen("C:

//student.dat","ab+");

fwrite(st,sizeof(structstudent),1,fp);

fclose(fp);

4.10intdq(structstudentst[])操作算法设计与实现

FILE*fp=NULL;

inti=0;

fp=fopen("C:

//student.dat","rb");

while(fread(&st[i],sizeof(structstudent),1,fp))

i++;

fclose(fp);

returni;

4.11voidxianshi()操作算法设计与实现

printf("\t*************************************************************\n");

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

printf("\n\t*[1]增加学生成绩[2]查看学生成绩*\n");

printf("\t*[3]查找学生成绩[4]删除学生成绩*\n");

printf("\t*[5]统计(总成绩和平均分)[6]输出前N名学生成绩*\n");

printf("\t*[7]输出不及格的人*\n");

printf("\t*************************************************************\n");

4.12voidmain()操作算法设计与实现

intchoose=0;

FILE*fp=NULL;

charyesorno;

if((fp=fopen("C:

//student.dat","rb"))==NULL)

{

printf("\n=========>提示:

文件不存在,是否要创建一个?

(y/n)\n");

scanf("%c",&yesorno);

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

{//这里仅为了建立文件

fp=fopen("C:

//student.dat","wb");

fclose(fp);

}

else

exit(0);

}

else

{

Number=dq(st);//要是文件只能够已经有数据将数据初始化到数组中

}

system("cls");

while(true)

{

xianshi();

printf("\t\t====>请选择:

");

scanf("%d",&choose);

system("cls");

switch(choose)

{

case1:

add();

fh();//增加学生成绩

break;

case2:

see();

fh();//查看学生成绩

break;

case3:

xhselect();

fh();//查找

break;

case4:

xhdel();

fh();//删除

break;

case5:

tongji();

fh();//统计

break;

case6:

paixu();

fh();//排序

break;

case7:

bujige();

fh();//输出不及格

break;

default:

break;

}

fflush(stdin);

getchar();

system("cls");

}

5代码调试与功能测试

5.1测试方案

输入数据进行测试

5.2测试结果

(1)界面显示

 

(2)选择1,添加学生信息

(3)选择2,显示全部学生信息

(4)选择3,按照学号查找学生信息

(5)选择4,按照学号删除对应的学生信息,并再选择2,核实是否删除

(6)选择5,统计学生成绩

(7)选择6,输出前3名的学生信息

(8)选择7,输出不及格学生的信息

 

6收获与体会

经过了为期一周的数据结构的课程设计,我了解了一般课程设计的步骤,应该利用软件工程的分析方法,利用丰富的图书和网络资源,得到一个比较完整的程序系统!

我们要把理论和实践相结合,把书本上的知识运用到我们做的程序上。

更重要的是我深刻了解了各种查找方法的重要性,必须掌握各种查找的方法。

这些都是数据结构的关键,而且,数据结构也是比较重要的一门学科,无论如何,我们应该重视!

这次的程序虽说不是很大的工程,但是我们还是通过小组之间的合作完成,体会到团队合作的重要性,汲取很多经验!

最后,我们的成功也离不开老师的帮助,分析和指导,以至于我们能够顺利完成这次工程!

虽然课程教学已经结束了,但由于课程的重要性,我们还是应该继续学习。

参考文献

[1]严蔚敏,数据结构(C语言版)[M].北京:

清华大学出版社,2014.

[2]刘鑫,陈恒,王雅轩.数据结构教学做一体化教程[M].北京:

清华大学出版社,2014.

[3]何钦铭,冯雁,陈越.数据结构课程设计[M],杭州:

浙江大学出版社,2012.

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2