ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:22.13KB ,
资源ID:9618670      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9618670.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级语言程序设计实习报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级语言程序设计实习报告.docx

1、高级语言程序设计实习报告高级语言程序设计实习报告一、题目:编写程序,用函数实现通过指针连接两个字符串。1 需求说明本实习题要求输入两个字符串,并将其中一个字符串通过指针连接到另一个字符串。2 算法设计(1) 编写一个连接函数cat_stringa. 先找到from字符串的末尾,以0为标记;b. 将to字符串中的元素一个个的移到from字符串的末尾;c. 最后在to字符串末尾加上0。(2) 编写主函数a. 先定义两个字符型指针变量a,b,和两个字符型数组str1,str2;使a指向数组str1,使b指向str2;b. 动态输入两个字符串,并将其打印出来;c. 调用cat_string函数,将字符

2、串a连接到字符串b的末尾;d. 最后将结果打印出来。(3) 结束3 程序清单:#includevoid cat_string(char *from,char *to)while(*to!=0) to+;for(;*from!=0;from+,to+) *to=*from;*to=0;main()char *a,*b,str150,str2100;a=str1;b=str2;scanf(%s%s,a,b);printf(string1=%snstring2=%sn,a,b);cat_string(a,b);printf(nsrting=%sn,b);4 运行结果分析输入:friendboy输出结

3、果:string1=friendstring2=boystring=boyfriend二、题目:编写程序完成统计学生成绩。功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对成绩前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。1需求说明本实习题要求输入学生的姓名和成绩,将成绩从高到低排列,并将其打印输出,对成绩前70%的学生定义为合格,而后30%的学生定义为不合格。也就是说,若有学生10名,则排名前7位的学生为合格,后3位为不合格。2 算法设计(1)先定义结构体student,其中包括学号num、姓名name、成绩score;(2)输入所有学生信息;(3)对

4、学生成绩进行排序,用气泡排序法,从高到低排列。成绩排序时,其它信息的顺序也做相应的调整。(4) 对成绩前70%的学生定为合格PASS;而后30%的学生定为不合格FALL;(5) 将成绩从高到低打印出来;(6) 结束。3 程序清单:#include#define SIZE 10struct studentint num; char name10; int score;stuSIZE,st;main()int i,j; char p=PASS,f=FALL; for(i=0;iSIZE;i+) scanf(%d%s%d,&stui.num,stui.name,&stui.score); for(j

5、=0;j=SIZE-2;j+) for(i=0;i=SIZE-1-j;i+) if(stui.scorestui+1.score) st=stui;stui=stui+1;stui+1=st; printf(num name score resultn); for(i=0;iSIZE;i+) if(iSIZE*0.7) printf(%2d%10s%5d%8sn,stui.num,stui.name,stui.score,p); else printf(%2d%10s%5d%8sn,stui.num,stui.name,stui.score,f);4 运行结果分析输入:1 Li 862 Fun

6、 793 Zhang 814 Wang 905 Min 976 Lin 897 Tan 698 Ling 709 Xi 5710 Xu 82输出结果:num name score result 5 Min 97 PASS 4 Wang 90 PASS 6 Lin 89 PASS 1 Li 86 PASS10 Xu 82 PASS 3 Zhang 81 PASS 2 Fun 79 PASS 8 Ling 70 FALL 7 Tan 69 FALL 9 Xi 57 FALL 三、题目:从键盘上输入3个学生的信息,将它们存入文件student;然后再从文件中读出数据,显示在屏幕上。1需求说明本实习题

7、要求输入3个学生的信息,可以包括学号,姓名,年龄,性别,成绩,家庭住址等信息,将它们存入文件student;然后再从文件中读出数据,并将其显示在屏幕上。2算法设计(1)先定义结构体student,其中包括学号num,姓名name,性别sex,年龄age,成绩score,家庭住址addr;(2)编写保存函数savea. 先将文件打开;b. 若(fp=fopen(“student”,”wb”)=NULL,则说明文件无法打开;反之文件能打开;c. 在打开的文件中一一将信息写进去;d. 最后,将文件student关闭。(3)编写显示函数displaya.先将文件打开;b.若(fp=fopen(“stu

8、dent”,”wb”)=NULL,则说明文件无法打开;反之文件能打开; c.从打开的文件中一一将信息读出,并将其显示在屏幕上; d.最后,将文件关闭。(7) 编写主函数a. 输入3个学生的所有信息;b. 调用save()函数;c. 调用display()函数;(5)结束。3程序清单:#include#define SIZE 3struct studentint num; char name15; char sex2; int age; int score; char addr30;stuSIZE;void save()FILE *fp; int i; if(fp=fopen(student,w

9、b)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf( errorn); fclose(fp);void display()FILE *fp; int i; if(fp=fopen(student,rb)=NULL) printf(cannot open filen); return; printf(num name sex age score addrn); for(i=0;iSIZE;i+) fread(&st

10、ui,sizeof(struct student),1,fp); printf(%3d %-15s%-2s %3d%5d %-30sn,stui.num,stui.name,stui.sex, stui.age,stui.score,stui.addr); fclose(fp);main()int i; printf(Please input students message:n); printf(num,name,sex,age,score,addrn); for(i=0;iSIZE;i+) scanf(%d%s%s%d%d%s,&stui.num,stui.name,stui.sex,&s

11、tui.age, &stui.score,stui.addr);printf(n); save(); display();4运行结果分析Please input students message:num,name,sex,age,score,addr1 ZhangFang F 19 96 room_1012 WangMing M 20 86 room_1023 XiaoDan F 19 81 room_103num name sex age score addr 1 ZhangFang F 19 96 room_101 2 WangMing M 20 86 room_102 3 XiaoDan

12、 F 19 81 room_103四、题目:编程解决百钱百鸡问题:中国古代数学家张丘建在他的算经中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?1需求说明本实习题要求解决百钱百鸡问题。一只公鸡值5元,一只母鸡值3元,三只小鸡值1元。如果用100元买100只鸡,公鸡,母鸡,小鸡各多少只?2算法设计设公鸡、母鸡、小鸡各有x,y,z,题意规定用100元买100只鸡。假定100元全部买公鸡的话,则最多可以买20只;若100元全部买母鸡,则最多可买母鸡33只,即x的值在020之间,y的取值在033之间。根据题意可得到下面的等式:5x+3y+z

13、/3=100x+y+z=100所以此问题可归结为求这个不定方程的整数解。(1)先定义3个变量x,y,z;(2)用外层循环控制公鸡的数量,x的范围在020之间;(3)用内层循环控制母鸡的数量,y的范围在033之间;(8) 在内外层循环的控制下,小鸡数z的值受x,y的值的制约,z=100-x-y;(9) 验证取z值的合理性及得到一组解的合理性,即同时满足z%3=0和5*x+3*y+z/3=100;(10) 打印出所有合理的结果;(11) 结束。3程序清单:#includemain()int x,y,z; for(x=0;x=20;x+) for(y=0;y=33;y+) z=100-x-y; if

14、(z%3=0&5*x+3*y+z/3=100) printf(cock=%2d hen=%2d chicken=%2dn,x,y,z); 4运行结果分析cock= 0 hen=25 chicken=75cock= 4 hen=18 chicken=78cock= 8 hen=11 chicken=81cock=12 hen= 4 chicken=84 五、题目:学生成绩管理系统设计主要功能:1)能按学期、按班级完成对学生成绩的录入、修改,用文件保存信息。2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。3)能查询学生成绩,不及格科目及学生名单。 按学号查询或按姓

15、名查询。4)能按班级输出学生的成绩单。1需求说明本实习题要求按学期、班级对学生的各科成绩进行录入、修改、并保存;并能按班级计算学生的总分和平均分,并能根据学生的平均成绩进行排序;能按学号或姓名查询学生成绩;最后,能按班级输出学生的成绩单。2算法设计(1)先声明结构体类型;(2)编写录入函数input();(3)编写保存函数save();(4)编写修改函数modify();(5)编写计算平均成绩函数average();(6)编写排序函数order();(7)编写打印函数print();(8)编写搜索函数search();(9)编写主函数;(10)结束。3程序清单:#include#include

16、#define SIZE 10struct subjectint chin; int math; int engl; int phys; int chem; int poli;struct studentint term; int class; int num; char name15; struct subject mark; int all; int aver;studSIZE,temp;void input()int i; printf(term,class,num,name,chin,math,engl,phys,chem,polin); for(i=0;iSIZE;i+) scanf

17、(%d%d%d%s%d%d%d%d%d%d,&studi.term,&studi.class,&studi.num, studi.name,&studi.mark.chin,&studi.mark.math,&studi.mark.engl, &studi.mark.phys,&studi.mark.chem,&studi.mark.poli);void save()FILE *fp; int i; if(fp=fopen(student_mark,wb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) if(fwrite(

18、&studi,sizeof(struct student),1,fp)!=1) printf( errorn); fclose(fp);void modify()FILE *fp; int i; if(fp=fopen(student_mark,rb+)=NULL) printf(cannot open filen); return; printf(term class num name chi mat eng phy che poln); for(i=0;iSIZE;i+) fread(&studi,sizeof(struct student),1,fp); printf(%2d%8d%10

19、d%15s%4d%4d%4d%4d%4d%4dn,studi.term,studi.class, studi.num,studi.name,studi.mark.chin,studi.mark.math, studi.mark.engl, studi.mark.phys,studi.mark.chem,studi.mark.poli); fclose(fp);void average()FILE *fp; int i; if(fp=fopen(student_mark,rb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+)

20、fread(&studi,sizeof(struct student),1,fp); studi.all=studi.mark.chin+studi.mark.math+studi.mark.engl+ studi.mark.phys+studi.mark.chem+studi.mark.poli; studi.aver=studi.all/6.0; save(); fclose(fp);void order()FILE *fp; int i,j; if(fp=fopen(student_mark,rb)=NULL) printf(cannot open filen); return; for

21、(j=0;j=SIZE-2;j+) for(i=0;i=SIZE-1-j;i+) if(studi.averstudi+1.aver) temp=studi;studi=studi+1;studi+1=temp; save(); fclose(fp);void print()FILE *fp; int i; if(fp=fopen(student_mark,rb)=NULL) printf(cannot open filen); return; printf(term class num name chi mat eng phy che pol all avern); for(i=0;iSIZ

22、E;i+) fread(&studi,sizeof(struct student),1,fp); printf(%2d%8d%10d%15s%4d%4d%4d%4d%4d%4d%4d%5.2fn,studi.term,studi.class,studi.num,studi.name,studi.mark.chin,studi.mark.math, studi.mark.engl,studi.mark.phys,studi.mark.chem,studi.mark.poli, studi.all,studi.aver); fclose(fp);int search1(int num2)FILE

23、*fp; int i; if(fp=fopen(student_mark,rb)=NULL) printf(cannot open filen); exit(); for(i=0;iSIZE;i+) if(studi.num=num2) return(i); else return -1; fclose(fp);int search2(char *name2)FILE *fp; int i; if(fp=fopen(student_mark,rb)=NULL) printf(cannot open filen); exit(); for(i=0;i=0) printf( num name ch

24、i mat eng phy che pol all avern); printf(%10d%15s%4d%4d%4d%4d%4d%4d%4d%5.2fn,studi.num,studi.name, studi.mark.chin,studi.mark.math,studi.mark.engl,studi.mark.phys, studi.mark.chem,studi.mark.poli,studi.all,studi.aver); else printf(The number %d not found!n,num1); if(choice=2) gets(name1); if(i=searc

25、h2(name1)=0) printf( num name chi mat eng phy che pol all avern); printf(%10d%15s%4d%4d%4d%4d%4d%4d%4d%5.2fn,studi.num,studi.name, studi.mark.chin,studi.mark.math,studi.mark.engl,studi.mark.phys, studi.mark.chem,studi.mark.poli,studi.all,studi.aver); else printf(The name %s not found!n,name1); fclos

26、e(fp);main()int c1,c2; printf(Please input students messages:n); input(); save(); printf(Do you want to modify the message?n); printf(1.Yesn); printf(2.Non); scanf(%d,&c1); if(c1=1) modify();save(); average(); order(); print(); printf(Do you want to search the message?n); printf(1.Yesn); printf(2.Non); scanf(%d,&c2); if(c2=1) search();4运行结果分析please input students messages:term,class,num,name,chi,mat,eng,phy,che,pol1 0315 031501 wang 89 95 91 79 88 901 0315 031502 xiao 87 90 94 80 84 811 0315 031503 lin 90 89 79 95 90 771 0315 031504 t

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

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