学生管理系统实验报告Word格式.docx

上传人:b****2 文档编号:5845491 上传时间:2023-05-05 格式:DOCX 页数:24 大小:235.08KB
下载 相关 举报
学生管理系统实验报告Word格式.docx_第1页
第1页 / 共24页
学生管理系统实验报告Word格式.docx_第2页
第2页 / 共24页
学生管理系统实验报告Word格式.docx_第3页
第3页 / 共24页
学生管理系统实验报告Word格式.docx_第4页
第4页 / 共24页
学生管理系统实验报告Word格式.docx_第5页
第5页 / 共24页
学生管理系统实验报告Word格式.docx_第6页
第6页 / 共24页
学生管理系统实验报告Word格式.docx_第7页
第7页 / 共24页
学生管理系统实验报告Word格式.docx_第8页
第8页 / 共24页
学生管理系统实验报告Word格式.docx_第9页
第9页 / 共24页
学生管理系统实验报告Word格式.docx_第10页
第10页 / 共24页
学生管理系统实验报告Word格式.docx_第11页
第11页 / 共24页
学生管理系统实验报告Word格式.docx_第12页
第12页 / 共24页
学生管理系统实验报告Word格式.docx_第13页
第13页 / 共24页
学生管理系统实验报告Word格式.docx_第14页
第14页 / 共24页
学生管理系统实验报告Word格式.docx_第15页
第15页 / 共24页
学生管理系统实验报告Word格式.docx_第16页
第16页 / 共24页
学生管理系统实验报告Word格式.docx_第17页
第17页 / 共24页
学生管理系统实验报告Word格式.docx_第18页
第18页 / 共24页
学生管理系统实验报告Word格式.docx_第19页
第19页 / 共24页
学生管理系统实验报告Word格式.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生管理系统实验报告Word格式.docx

《学生管理系统实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《学生管理系统实验报告Word格式.docx(24页珍藏版)》请在冰点文库上搜索。

学生管理系统实验报告Word格式.docx

(10)按学号查找学生基本信息,对学生信息进行修改后保存;

要求程序运行后,先显示菜单,并提示用户输入选项,然后根据用户输入的选项执行相应的操作,要求程序设计采用自顶向下逐步求精的方法,进行模块化程序设计以及增量测试方法。

功能描述:

(1)可以显示菜单,根据用户的需求选择可以进行的操作

(2)可以录入学生信息

(3)计算每个学生的平均分;

(4)按学生姓名的字典顺序或按学号从小到大顺序输出学生基本信息;

(5)按年龄和性别查找学生的基本信息;

(6)按学号或姓名查找学生平均分的排名及各科成绩;

性能要求:

要保证程序有足够的健壮性。

3.算法设计

(1)在主程序中通过选择的循环实现菜单的输出.

(2)录入学生信息:

根据提示录入学生信息,,包括学号,姓名,出生年月,性别,成绩.学生的信息用一个记录类型.性别用数字来代替字母,0代表male,其他为female

.

(3)求其平均分,即把三科成绩相加求其平均值.

(4)对学生的姓名按字典顺序或学号从小到大排序:

需要把有一个选择按姓名还是学号,如果选择1则是按姓名排序输出,2则是用学号.其中排序用的是简单排序法.

(5)按年龄和性别查找学生的基本信息:

需要输入年龄和性别同样的0代表male,其他为female.从学生1一直到学生三查找,如果找到就输出他的信息,否则则输出查无此人.

(6)按学号或姓名查找学生平均分的排名及各科成绩:

和上面一样根据提示选择是按学号,还是按姓名查找学生的平均分排名.假设按姓名则先把其平均分用简单选择法排序,然后再用一个循环找到和所需要查找的学生名字一样的学生,并输出其所对应的下标,即是他平均分的排名.

(7)查找某门课程的最高分,此时也需要选择是按哪门课程,此时的三科分别是一个枚举,1:

x:

=(math);

2:

=(chinese);

3:

=(english);

运用简单排序法从高到低排序,由于最高分可能不只一个所以只要分数和第一个的相同则输出.

(8)查找某门课成绩在某个分数段内的学生人数和学生基本信息:

”某门课程”和上述的处理一样,某个分数段需要自己输入,有一个记数器,同时赋初值0.从1到3开始循环如果某分数在自己定义的范围之内就加一,最后输出学生的信息。

(9)和第八步相似,此时要多用几个计数器,最后用计数器的值除以总人数即是其所占的百分比。

(10)按学号查找信息,只要找到学生就输入他的个人信息。

此时的信息就把以前的信息给覆盖了。

4.主要数据结构和标识符及其说明

其中涉及到记录,枚举,数组,整型,字符串等类型。

在变量的定义上实行见名知义的原则,在全局变量中:

year,month,day分别代表出生年,月,日,math,chinese,english,average分别代表数学,语文,英语,平均分。

Number代表学号,name代表名字,bith代表出生年月日,sex代表性别。

分数使用的是数组。

三个学生也是使用的数组类型,而学生的信息是用一个记录类型保存。

其中birth也是使用的记录类型。

在分程序中temp用来交换学生位置的媒介。

I,j,m为整型,用来循环的。

也有j为字符串用来代表性别。

还有c,x用来代表所选择的排序类型。

M,n用来输入分数段,counter用来计数。

Cc代表输入的学号。

5.程序运行实例

(1)输入学生信息

(2)求其平均分,此时不用输出,只需要按选择按2即可。

(3)按平均分或按某门课程的成绩从高到低输出学生信息:

不妨设按语文从低到高输出,其学号结果应为1,2,3

(4)执行第三步,选择3即可,不仿选择按姓名排序,结果应为学号为1的是第一个,其次为3号,最后为2号

(5)输入19岁,male,结果应为查无此人。

(6)查找某门课成绩最高的学生的基本信息,某门课成绩最高的可能不只一名学生

选择数学,其结果应为学生3

(7)查找没分数的人,输入2到8分,人数应该为三个人。

(8)其结果应为不及格人数为3,百分数为1

(9)输入要查找的学号1,并修改输入姓名,学号,性别,出生日期。

(10)选择11,退出界面。

6.源程序清单

programProject2;

{$APPTYPECONSOLE}

type

birthday=record

year:

integer;

month:

day:

end;

sub=(math,chinese,english,average);

student=record

number:

name:

string[10];

sex:

string;

birth:

birthday;

score:

array[sub]ofinteger;

var

stu:

array[1..3]ofstudent;

m,a:

averag:

array[1..3]ofreal;

x:

sub;

procedureinput;

n,i:

begin

fori:

=1to3do

withstu[i]do

begin

write('

学号:

'

);

readln(number);

姓名:

readln(name);

性别:

readln(n);

ifn=0then

='

male'

else

female'

;

出生日期(年,月,日):

readln(birth.year,birth.month,birth.day);

成绩,数学,语文,英语:

readln(score[math],score[chinese],score[english]);

end;

procedureave;

i:

fori:

averag[i]:

=(score[math]+score[chinese]+score[english])/3;

procedurepaixun(a:

integer);

temp:

student;

{额外加的一个小程序用来排序输出}

i,j:

caseaof

1:

=(average);

2:

3:

4:

=1to2do

forj:

=1to3-ido

ifstu[j].score[x]>

stu[j+1].score[x]then

=stu[j];

stu[j]:

=stu[j+1];

stu[j+1]:

=temp;

writeln('

按学号大小排序后的学生信息如下'

writeln('

学号'

:

10,'

姓名'

性别'

7,'

生日'

数学'

语文'

英语'

平均分'

10);

writeln(number,name,sex,birth.year:

6,'

/'

birth.month,'

birth.day,score[math]:

6,score[chinese]:

7,score[english]:

7,averag[i]:

11:

2);

procedurepaixun2(a:

ifa=1then

ifstu[j].name>

stu[j+1].namethen

writeln(number:

4,name:

5,birth.year:

6,birth.month:

4,birth.day:

4,sex:

10,score[math]:

4,score[chinese]:

4,score[english]:

4);

writeln(averag[i]:

end

else

procedurechazhao;

i,m,counter:

j:

要查找的年龄'

readln(i);

性别(字符串)'

readln(j);

counter:

=0;

form:

if(2011-stu[m].birth.year=i)and(stu[m].sex=j)then

withstu[m]do

end

=counter+1;

ifcounter=3then

查无此人'

procedurepingjunfenmingci(varc:

real;

n,i,j:

m:

casecof

要查找的学号'

read(n);

ifaverag[j]<

averag[j+1]then

=averag[j];

averag[j]:

=averag[j+1];

averag[j+1]:

ifstu[i].number=nthen

writeln(stu[i].score[math]:

4,stu[i].score[chinese]:

4,stu[i].score[english]:

平均分排名:

writeln(i);

要查找的姓名'

read(m);

ifstu[i].name=mthen

procedurechazhaohigh(p:

casepof

ifstu[j].score[x]<

ifstu[i].score[x]=stu[1].score[x]then

procedurechazhaonumber(p:

m,n,counter,i:

输入m,n(n大于m)'

readln(m,n);

fori:

if(score[x]>

=m)and(score[x]<

=n)then

10,name:

在'

m,'

到'

n,'

分数段的人数为:

counter);

procedurefenlei(a:

counter1,counter2,counter3,counter4,counter5,i:

counter1:

counter2:

counter3:

counter4:

counter5:

=90)and(score[x]<

=100)then

=counter1+1

elseif(score[x]>

=80)and(score[x]<

=89)then

=counter2+1

=70)and(score[x]<

=79)then

=counter3+1

=60)and(score[x]<

=69)then

=counter4+1

=0)and(score[x]<

=59)then

=counter5+1;

统计结果为'

优秀人数及百分比为:

writeln(counter1:

4,counter1/3:

良好人数及百分比为:

writeln(counter2:

4,counter2/3:

中等人数及百分比为:

writeln(counter3:

4,counter3/3:

及格人数及百分比为:

writeln(counter4:

4,counter4/3:

不及格人数及百分比为:

writeln(counter5:

4,counter5/3:

procedurechazhaobaocun;

cc,i:

birth1:

score1:

查找的学号'

readln(cc);

ifstu[i].number=ccthen

readln(name);

学号:

read(number);

性别:

readln(m);

出生日期:

readln(birth1.year,birth1.month,birth1.day);

数学分数,语文分数,英语分数'

readln(score1[chinese],score1[chinese],score1[english]);

{TODO-oUser-cConsoleMain:

Insertcodehere}

repeat

----------------------------------------------------------------------------'

1.录入每个学生的基本信息'

);

2.计算每个学生的平均分'

3.按平均分或按某门课程的成绩从高到低输出学生信息'

4.按学生姓名的字典顺序或按学号从小到大顺序输出学生基本信息'

5.按年龄和性别查找学生的基本信息'

6.按学号或姓名查找学生平均分的排名及各科成绩'

7.查找某门课成绩最高的学生的基本信息,某门课成绩最高的可能不只一名学生'

8.某成绩某分数段内的人数和信息'

9.统计某门课程各个类别的人数及百分比'

10.按学号查找学生基本信息,对学生信息进行修改后保存'

11.退出系统'

-----------------

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

当前位置:首页 > 解决方案 > 学习计划

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

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