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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

程序设计与问题求解下实验答案.docx

1、程序设计与问题求解下实验答案实验 数组、结构体和函数综合编程练习1学生成绩统计从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生名单;(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;(3)统计各分数段的学生人数及所占的百分比。注:将成绩分为六个分数段,60分以下为第0段,6069为第1段,7079为第2段,8089为第3段,9099为第4段,100分为第5段。编程要求:1.较好的用户输入输出提示信息2.使用子函数来实现上述各个功能,并且要使用结构体数组来实现,该结构体中包括学生学

2、号和成绩3.最好不要使用全局变量#include #define ARR_SIZE 30typedef struct tagStudent long num;/学生学号 float score;/学生分数Student;int ReadScore(Student stu);int GetFail(Student stu, int n);float GetAver(Student stu, int n);int GetAboveAver(Student stu, int n);void GetDetail(Student stu, int n);main() int n, fail, above

3、Aver; Student stuARR_SIZE; printf(Please enter num and score until score= 0) i+; scanf(%ld%f, &stui.num, &stui.score); return i;/*函数功能:统计不及格人数并打印不及格学生名单函数参数:存放学生信息的Student结构体数组整型变量n,存放学生总数函数返回值:不及格人数*/int GetFail(Student stu, int n) int i, count; printf(Fail:nnumber-scoren); count = 0; for (i=0; in;

4、 i+) if (stui.score 60) printf(%ld-%.0fn, stui.num, stui.score); count+; return count;/*函数功能:计算全班平均分函数参数:存放学生信息的Student结构体数组整型变量n,存放学生总数函数返回值:平均分*/float GetAver(Student stu, int n) int i; float sum = 0; for (i=0; in; i+) sum = sum + stui.score; return sum/n;/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单函数参数:存

5、放学生信息的Student结构体数组整型变量n,存放学生总数函数返回值:成绩在全班平均分及平均分之上的学生人数*/int GetAboveAver(Student stu, int n) int i, count; float aver; aver = GetAver(stu, n); printf(aver = %fn, aver); printf(Above aver:nnumber-scoren); count = 0; for (i=0; i= aver) printf(%ld-%.0fn, stui.num, stui.score); count+; return count;/*函

6、数功能:统计各分数段的学生人数及所占的百分比函数参数:存放学生信息的Student结构体数组整型变量n,存放学生总数函数返回值:无*/void GetDetail(Student stu, int n) int i, j, stuLevel6; for (i=0; i6; i+) stuLeveli=0; for (i=0; in; i+) if (stui.score 60) j = 0; else j = (int)stui.score - 50) / 10; stuLevelj+; for (i=0; i6; i+) if (i = 0) printf( 60 %d %.2f%n, st

7、uLeveli, (float)stuLeveli/(float)n*100); else if (i = 5) printf( %d %d %.2f%n, (i+5)*10, stuLeveli, (float)stuLeveli/(float)n*100); else printf(%d-%d %d %.2f%n, (i+5)*10,(i+5)*10+9, stuLeveli,(float)stuLeveli/(float)n*100); 2成绩排名次某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。要求:(1)计算每个学生的总分和平均分;(2)按总分

8、成绩由高到低排出成绩的名次;(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数#include #define STU 30typedef struct tagStudent long num;/学号 float aver;/平均分 int sum;/总分 int math;/数学(MT) int english;/英语(EN) int physics;/物理(PH)Student;void Input(Student stu, int n);void GetSumAver(Student stu,int n);v

9、oid Sort(Student stu,int n);void Print(Student stu,int n);int Search(Student stu,int n,long x);main() int n, pos; long x; Student stuSTU; printf(Please enter the total number of the students(n=30):); scanf(%d, &n); /*输入参加考试的学生人数*/ printf(Enter No. and score as: MT EN PHn); Input(stu, n); /*输入学生成绩*/

10、GetSumAver(stu,n); /*计算总分和平均分*/ printf(Before sort:n); Print(stu,n); Sort(stu,n); /*排名次*/ printf(After sort:n); Print(stu,n); printf(Please enter searching number:); scanf(%ld, &x); /*以长整型格式输入待查找学生的学号*/ pos = Search(stu, n, x); /*名次查询*/ if (pos != -1) printf(position:t NO t MT t EN t PH t SUM t AVER

11、n); printf(%8dt%4ldt%4dt%4dt%4dt%5dt%5.0fn, pos+1,stupos.num, stupos.math,stupos.english, stupos.physics, stupos.sum,stupos.aver); else printf(Not found!n); /* 函数功能:输入某班学生期末考试三门课程成绩 函数参数: 结构体数组stu,存放学生信息 整型变量n,存放学生人数 函数返回值:无*/void Input(Student stu, int n) int i; for (i=0; in; i+) scanf(%ld, &stui.n

12、um); scanf(%d, &stui.math); scanf(%d, &stui.english); scanf(%d, &stui.physics); /* 函数功能:计算每个学生的总分和平均分 函数参数: 结构体数组stu,存放学生信息 整型变量n,存放学生人数 函数返回值:无*/void GetSumAver(Student stu,int n) int i; for (i=0; in; i+) stui.sum = stui.english+stui.math+stui.physics; stui.aver = (float)stui.sum / 3; /* 函数功能:按总分成绩

13、由高到低排出成绩的名次 函数参数: 结构体数组stu,存放学生信息 整型变量n,存放学生人数 函数返回值:无*/void Sort(Student stu,int n) int i,j,k; Student tempStu; for (i=0; in-1; i+) k = i; for (j=i+1; j stuk.sum) k = j; if (k != i) tempStu=stui; stui=stuk; stuk=tempStu; /* 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分 函数参数: 结构体数组stu,存放学生信息 整型变量n,存放学生人数 函数返回值:

14、无*/void Print(Student stu,int n) int i; printf( NO t| MT t EN t PH t SUM t AVERn); printf(-n); for (i=0; in; i+) printf(%ldt| , stui.num); printf(%4dt%4dt%4dt, stui.math,stui.english,stui.physics); printf(%5dt%5.0fn, stui.sum, stui.aver); /* 函数功能:查找学生的学号 函数参数: 结构体数组stu,存放学生信息 整型变量n,存放学生人数 长整型变量x,存放待

15、查找学生的学号 函数返回值:找到时,返回学生学号在数组中的下标位置,否则返回值-1*/int Search(Student stu,int n,long x) int i; for (i=0; in; i+) if (stui.num = x) return(i); return (-1);实验 递归程序设计求游戏人员的年龄1. 求游戏人员的年龄#include int age(int n);int main() int age5; age5=age(5); printf(第5个人的年龄为%dn,age5);int age(int n) if(n=1) return 10; else retu

16、rn age(n-1)+2;求最大公约数#include int gcd(int x,int y);int main() int x,y; int gcdResult; printf(输入要计算最大公约数的两个数:); scanf(%d%d,&x,&y); gcdResult=gcd(x,y); printf(最大公约数为%dn,gcdResult);int gcd(int x,int y) if (x=y) return x; else if (xy) return gcd(x-y,y); else return gcd(x,y-x);/*xy*/实验 链表编程/注:该程序并没有出错控制,假

17、设用户输入都是正常的范围内#include using namespace std;struct Node int data; Node *next;void createList(Node *head,int num);int findByNo(Node *head,int num);int findByData(Node *head,int data);void insertData(Node *head,int data,int num);void deleteData(Node *head,int num);void printOut(Node *head);void main() /

18、int a6=21,23,25,27,29,31; int num; int data; Node *head=new Node(); cout请输入6个结点的值:; createList(head,6); coutnum; data=findByNo(head,num); cout查找到的结点的值为datadata; num=findByData(head,data); cout查找到的结点的序号为:numendl; coutnum; coutdata; insertData(head,data,num); coutnum; deleteData(head,num); int findByN

19、o(Node *head,int num) int count=0; Node *p=head; while (p-next!=NULL) p=p-next; count+; if (count=num) return p-data; int findByData(Node *head,int data) Node *p=head; int count=0; while (p-next!=NULL) p=p-next; count+; if (p-data=data) return count; /输入序号num和值data。在序号为num的结点后插入data,并输出该链表void inser

20、tData(Node *head,int data,int num) int count=0; Node *p=head; while (p-next!=NULL) p=p-next; count+; if (count=num) Node *q=new Node(); q-data=data; q-next=p-next; p-next=q; printOut(head); return; /输入序号num,删除序号为num的结点,并输出该链表void deleteData(Node *head,int num) int count=0; Node *p=head-next; Node *p

21、re=head; while (p!=NULL) count+; if (count=num)/删除节点 pre-next=p-next; delete p; printOut(head); return; else pre=p; p=p-next; void printOut(Node *head) Node *p=head-next; while (p!=NULL) printf(%d ,p-data); p=p-next; coutendl;void createList(Node *head,int num) Node *p; Node *q=head; for (int i=0;ip

22、-data; p-next=NULL; q-next=p; q=q-next; 实验 结构、链表综合编程注意:下面的代码用到了文件,但是学生编程并不要求使用文件【编写程序】:建立多个班级学生成绩链表,其中,每个结点包含下面这些信息:学号、姓名、成绩要求完成下面的功能:1建立2个班学生成绩的无序链表,其中每个班包含10个结点数据(输入或从文件中读取每个同学的信息),将每个班的成绩链表按成绩高低排序后分别输出该链表;2将2个班级学生成绩合并(按成绩高低排序)后输出;3查找学生成绩:通过输入同学的学号,将该同学从链表中找出,并输出该同学信息;如果找不到,则输出“无此学生”。/class1.txt10

23、1 a 56102 b 78103 c 69104 d 26105 e 60106 f 66107 g 70108 h 90109 i 92110 j 99/class2.txt201 aa 26202 bb 55203 cc 78204 dd 46205 ee 89206 ff 65207 gg 99208 hh 85209 ii 73210 jj 96代码如下:#include using namespace std;#include struct Node char no5; char name6; double perform; Node *next;void printOut(Nod

24、e *head) Node *p=head-next; while (p!=NULL) coutno name performnext; coutendl;void main() Node *q; Node *p; int i; /读入班级1,构成链表 Node *headClass1=new Node(); q=headClass1; ifstream fin1(class1.txt); if (!fin1) cout文件1打开失败!endl; return; for (i=0;ip-nop-namep-perform; p-next=NULL; q-next=p; q=q-next; cout班级1原始数据为:endl; printOut(headClass1);

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

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