程序设计实践报告

程序设计实践报告


本文是关于《程序设计实践报告》范文,详情请您对下文进行参考:


本文编辑:yjbys.com


1、实验目的、内容
通过课程设计,能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术.
要求学生在指导老师的指导下,独立完成实习课题的全部内容,包括:
(1) 通过调查研究和上机实习,收集和调查有关技术资料;
(2) 掌握设计课题的基本步骤和方法;
(3) 根据课题的要求进行上机实验调试.
2、题目一:比赛求平均分
2.1程序内容
在体育、文艺比赛及选举等打分类项目中,为了公平起见,往往n个评委打出分数后,要去掉一个最高分和一个最低分,然后求取平均得分。当n较大时(本题设为9),则应取掉两个最高分和两个最低分,然后求取平均分。编程实现该算法。

2.2实验程序设计及结构
(1)需求分析:
输入9个评委所打分数,程序运行最后结果为去掉最高分和最低分后的平均分.
(2)设计结构:
总体结构


数据结构

从a[0]到a[9]依次为9位评委的打分.
2.3设计过程
(1) 建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据.
(2)根据流程图,建立main函数,并运用for循环.
(3)运行main函数进行调试.
2.4运行结果


3、题目二:火柴游戏
3.1程序内容:
23根火柴游戏: 两个游戏者开始拥有23根火柴(或小棒)。每个游戏者轮流移走1根、2根或3根火柴,拿到最后一根火柴的就算输了。编一程序与计算机玩这个游戏。
3.2实验程序设计
(1)需求分析:
运行程序能使人与计算机进行23根火柴游戏。
(2)设计思路:
使计算机能最先使火柴变成4或4以下计算机就能赢了。

3.3设计过程
(1) 建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据.
(2)根据设计思路运用if判断语句设计
(3)建立main函数
(4)运行main函数调试

3.4运行结果


4、题目三:足球比分
4.1设计内容:
问题描述
足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。
基本要求
设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的.场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。
测试数据
可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致。
4.2设计方案:
定义一个球队类和对象数组,每个球队均是球队类的对象。由于联赛中参赛队伍数目是固定的,因此将每个球队存放在对象数组的一个数组元素中。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢得场数,进球数等等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数,积分为排序元素)排出名次并输出。
5、设计的特点与心得:
经过一个学期的学习和上机实践,使我对C++语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、指针数组、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。


参考文献
[1]、杨长兴、刘卫国,《C++程序设计》,中国铁道出版社,2008年

附录
题目一实验源代码:
#include<stdio.h>
#include<iostream.h>
void main()
{
int a[9],i,j,temp,b=0,s;
cout<<"请打分:"<<endl;
for(i=0;i<9;i++)
{
cin>>a[i];
}
for(i=0;i<9;i++)
for(j=i;j<9;j++)
{
if(a[i]<=a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(i=2;i<7;i++)
{
b=b+a[i];
}
s=b/5;
cout<<"最后成绩为:"<<s;
}

题目二实验源代码:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

int getMin(int a,int b)
{
return a<b?a:b;
}
int main()
{
printf("游戏开始n");
int count = 23;
int input;
int computerInput;
while(true)
{
printf("当前还剩%d根火柴,请玩家拿取火柴:n",count);
printf("1.一根火柴 ");

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yyfangchan@163.com (举报时请带上具体的网址) 举报,一经查实,本站将立刻删除