上机实验报告(共18页)11900字.docx
- 文档编号:11423420
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:8
- 大小:10.78KB
上机实验报告(共18页)11900字.docx
《上机实验报告(共18页)11900字.docx》由会员分享,可在线阅读,更多相关《上机实验报告(共18页)11900字.docx(8页珍藏版)》请在冰点文库上搜索。
上机实验报告
一. 题目1. 建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。
要求实现以下功能:
1) 数据输入;2) 查询某个学生的成绩;3) 按平均排列输出;4) 统计某门课各分数段人数;5) 删除某个学生记录;2. 编程实现对二位数进行加,减,乘运算,每运行一次程序做10道题,完成后给出成绩(每题10分)。
二. 设计思想和模块划分1.1.先定义所需要的条件,例如,姓名,学号,性别,三门功课的成绩,平均分等。
2.输入姓名,学号,性别,年龄,三门功课的成绩后,就输出相应的姓名,学号,性别,年龄,三门功课的成绩。
3.打印表头;4.在求出平均分,并打印出平均分。
5.在查找学生,并打印出学生的相关资料;并按照平均分的高低排列;6.在统计学生各科成绩是否》=60分,如果是就是通过,否就是没通过,最后打印出最后的结果。
7.删除学生,选中删除的学生,如果确定要,那么该学生的一切记录就变为0;2.1.随机调用函数,产生两个其值为10到99的随机整数分别放在c,d中用作运算时的运算数。
2.随机调用函数,产生一个值为1到3的随机整数放入b中,用来选择不同的运算。
根据b的值选择不同的运算。
当b=1时,去进行c+d的运算练习;当b=2时,去进行c-d的运算练习;当b=3时,去进行c×d的运算练习。
每完成一个算题就给出是否正确的信息。
3.根据答案正确与否统计。
正确时,显示’right’;错误时,显示’wrong’。
4.步骤1.2.3.4.重复10次。
5.输出学生成绩。
三. 运行结果1.Inputthe1student:
num:
03name:
wfage:
18sex:
fmath:
98phy:
75eng:
65Inputthe2student:
num:
06name:
scage:
17sex:
fmath:
78phy:
45eng:
65Inputthe3student:
num:
09name:
ytage:
17sex:
mmath:
69phy:
75eng:
50 1.readin 2.finds 3.del 4.tj 5.exit1 -----------------------------table----------------------------- --------------------------------------------------------------------------------------------------- num name age sex math phy eng ave --------------------------------------------------------------------------------------------------- 3 wf 18 f 98.0 75.0 65.0 79.3 --------------------------------------------------------------------------------------------------- 9 yt 17 m 69.0 75.0 50.0 64.7 ---------------------------------------------------------------------------------------------------- 6 sc 17 f 78.0 45.0 65.0 62.7 ----------------------------------------------------------------------------------------------------1.readin 2.finds 3.del 4.tj 5.exit2Intonumber:
3 ------------------------------------------------------------------------------------------------ num name age sex math phy eng ave ------------------------------------------------------------------------------------------------ 3 wf 18 f 98.0 75.0 65.0 79.3 -------------------------------------------------------------------------------------------------1.readin 2.finds 3.del 4.tj 5.exit3Intonumber:
6 ------------------------------------------------------------------------------------------------ num name age sex math phy eng ave ------------------------------------------------------------------------------------------------ 6 sc 17 f 78.0 45.0 65.0 62.6------------------------------------------------------------------------------------------------true?
Y/Ny1 ----------------table-------------- ------------------------------------------------------------------------------------------------- num name age sex math phy eng ave ------------------------------------------------------------------------------------------------- 3 wf 18 f 98.0 75.0 65.0 79.3 -------------------------------------------------------------------------------------------------- 9 yt 17 m 69.0 75.0 50.0 64.7 -------------------------------------------------------------------------------------------------- 0 0 0 f 0.0 0.0 0.0 0.0 --------------------------------------------------------------------------------------------------1.readin 2.finds 3.del 4.tj 5.exit4 1.inputthemath 2.inputthephy 3.inputtheeng 1math:
passnumis:
3 nopassnumis:
02.32+82=114right!
97*15=XXXX年right!
99-58=41right!
76-66=10right!
58+13=71right!
37+49=86right!
99+52=151right!
49*69=XXXX年wrong!
73-38=31wrong!
86+34=120right!
markis80 四. 主要错误改正方法1.在本题的编写过程中常出现begin和end不配对,只要始它们的个数相同就可以了,就可以了。
在程序中常出现的’unknownidentifier’没有定义的错误,只要在程序前加上定义,就可以了。
还有就是typemismatch’的类型不匹配,只要根据前后内容,重新定义,就可以了。
2.在本题编写中,题目要求是两个两位数运算,如果写成c:
=random(100)在运行过程中,就会出现一位数运算,只要把它写成c:
=random(90)+10,就可以了。
五. 实习小结1.第一题的程序编写比较复杂,需要较多的定义,因而在后面的程序部分,就常出现标识符重复,而导致的类型不匹配。
还有就是每个部分编好后,上下不能连接,而无法调用。
2.第二题较第一题简单,和书上的例题类似,所以,比较简单,但从中也出现一些不问题。
以上两大题中出现的问题,要在同学的帮助下,才能完成。
总的来说两题程序比较困难 六. 程序清单1.programtwins;constm=3;n=3;typestudent=recordnum:
integer;name:
string[3];age:
integer;sex:
char;s:
array[1..n]ofreal;math,eng,phy:
real;ave:
real;end;sarr=array[1..m]ofstudent;ta=array[1..m]ofstudent;f=string[6];varstu:
sarr;ct:
ta;k,d:
integer;procedurereadin(varstu:
sarr);constwrong='0<=data<=100,again!
';varj,i:
integer;a:
student;beginwriteln;writeln('Input',m,' numnamesexmathphyeng','ofstudent.');forj:
=1tomdobeginwriteln;writeln('Inputthe',j,'student:
');withadobeginwrite('num:
');readln(num);write('name:
');readln(name);write('age:
');readln(age);write('sex:
');readln(sex);while(sex<>'m')and(sex<>'f')dobeginwrite('sex:
');readln(sex)end;fori:
=1tondobegincaseiof1:
beginwrite('math:
');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('math:
');readln(s[i]);end;end;2:
beginwrite('phy:
');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('phy:
');readln(s[i]);end;end;3:
beginwrite('eng:
');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('eng:
');readln(s[i]);end;end;end;end;stu[j]:
=a;end;writeln;end;end;procedureave(varstu:
sarr);varj,i:
integer;k:
real;beginforj:
=1tomdobegink:
=0;withstu[j]dobeginfori:
=1tondok:
=k+s[i];ave:
=k/nend;end;end;procedurepx(varstu:
sarr);vartm:
ta;j,i,p:
integer;beginforj:
=1tomdobeginp:
=j;fori:
=j+1tomdoifstu[i].ave>stu[p].avethenp:
=i;tm[1]:
=stu[p];stu[p]:
=stu[j];stu[j]:
=tm[1];end;end;procedurehead(ct:
ta);vari:
integer;beginwrite('');fori:
=1to72dowrite('-');writeln;write('',' num':
4,'','name':
9,'','age':
8,'','sex':
5,'','math':
6,'','phy':
9,'','eng':
8,'');writeln('ave':
6,'');write('');fori:
=1to72dowrite('-');writeln;withct[1]dobeginwrite('',num:
7,'',name:
8,'',age:
8,'',sex:
5,'');fori:
=1tondowrite(s[i]:
7,'');write(ave:
10,'');writeln;end;write('');fori:
=1to72dowrite('-');writeln;end;procedurefind(varstu:
sarr);varn,i:
integer;u:
boolean;beginu:
=true;whileudobeginwrite('Intonumber:
');readln(n);fori:
=1tomdobeginifstu[i].num=nthenbeginct[1]:
=stu[i];u:
=false;d:
=iend;end;end;end;proceduredel(varstu:
sarr);vari:
integer;b:
char;beginhead(ct);write('true?
Y/N');readln(b);ifb='y'thenbeginwrite('1');withstu[d]dobeginnum:
=0;name:
='0';age:
=0; sex:
='f';fori:
=1tondos[i]:
=0;ave:
=0end;endelseend;proceduretj(varstu:
sarr);varw1,q1,q2,num,j:
integer;h1,h2,h3:
boolean;beginh1:
=false;h2:
=false;h3:
=false;q1:
=0;q2:
=0;writeln('':
30,'1.inputthemath 2.inputthephy 3.inputtheeng');readln(w1);casew1of1:
h1:
=true;2:
h2:
=true;3:
h3:
=true;end;ifh1thenbeginbeginforj:
=1tomdowithstu[j]doifstu[j].math>=60thenq1:
=q1+1elseq2:
=q2+1;writeln('math:
');end;ifh2thenbeginbeginforj:
=1tomdowithstu[j]doifstu[j].phy>=60thenq1:
=q1+1elseq2:
=q2+1;writeln('phy:
');end;ifh3thenbeginbeginforj:
=1tomdowithstu[j]doifstu[j].eng>=60thenq1:
=q1+1elseq2:
=q2+1;writeln('eng:
');end;end;end;end;writeln('':
5,'passnumis:
',q1);writeln('':
5,'nopassnumis:
',q2);end;procedurehead1(varstu:
sarr);varj,i:
integer;beginwriteln('----------------table--------------':
60);writeln;write('');fori:
=1to72dowrite('-');writeln;write('',' num':
4,'','name':
9,'','age':
8,'','sex':
5,'','math':
6,'','phy':
9,'','eng':
8,'');writeln('ave':
6,'');write('');fori:
=1to72dowrite('-');writeln;forj:
=1tomdobeginwithstu[j]dobeginwrite('',num:
7,'',name:
8,'',age:
8,'',sex:
5,'');fori:
=1tondowrite(s[i]:
7:
1,'');write(ave:
10:
1,'');writeln;end;write('');fori:
=1to72dowrite('-');writeln;end;end;beginreadin(stu);ave(stu);k:
=0;whilek<>5dobeginwriteln('1.readin 2.finds 3.del 4.tj 5.exit');read(k);readln;while(k<>1)and(k<>2)and(k<>3)and(k<>4)and(k<>5)dobeginwriteln('mistake,Please again');read(k)end;casekof1:
beginpx(stu);head1(stu)end;2:
beginfind(stu);head(ct)end;3:
beginfind(stu);del(stu);px(stu);head1(stu)end;4:
begintj(stu);end;5:
writeln('exit!
');end;end;end..2.programshadow;vara,b,c,d,e:
integer;right:
boolean;procedures1;beginwriteln('right!
');right:
=trueend;procedures2;beginwriteln('wrong!
');right:
=falseend;procedures3(x,y:
integer);varh:
integer;beginwrite(x,'+',y,'=');readln(h);ifh=x+ythens1elses2 end;procedures4(x,y:
integer);varh,w:
integer;beginifx =x;x: =y;y: =wend;write(x,'-',y,'=');readln(h);ifh=x-ythens1elses2end;procedures5(x,y: integer);varh: integer;beginwrite(x,'*',y,'=');readln(h);ifh=x*ythens1elses2end;beginrandomize;e: =0;fora: =1to10dobeginc: =random(90)+10;d: =random(90)+10;b: =random(3);casebof0: s3(c,d);1: s4(c,d);2: s5(c,d);end;ifrightthene: =e+10;end;writeln('markis',e: 3)end.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 实验 报告 18 11900
![提示](https://static.bingdoc.com/images/bang_tan.gif)