程序设计实践报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序设计实践报告相关的知识,希望对你有一定的参考价值。

参考技术A

程序设计实践报告


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


本文编辑: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.一根火柴 ");

算法第四章上机实践报告

算法第四章上机实践报告

1.实践题目

程序存储问题

 

2.问题描述

n个程序都有长度,一个磁带长度为L,要求装入最多的程序。

 

3.算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质)

(1) 贪心策略:依次把长度最小的程序装入磁带,直到不能装入为止,装入数即为能装入磁带的最大程序数。

(2) 反证法证明:如果磁带能装入一个程序,那么长度最小的程序一定能装进磁带,因为如果长度最小的程序不能装入磁带,那么更大的程序必不能装入磁带,这就导致磁带不能装入程序,这与假设矛盾。这就证明如果磁带能装入至少一个程序,长度最短的程序是一定能装入磁带的,这证明最优子结构一定包含最短程序。把最小的程序装入磁带后,磁带剩余空间最长,就有可能装入更多的程序。因为如果装入的程序不是最短程序,那么磁带剩余空间一定会小于磁带装入最短程序后的剩余空间,也不可能比装入最小程序后能装下的程序数量更多。这就证明贪心选择是正确的。

 

4.算法时间及空间复杂度分析(要有分析过程)

两个基本步骤排序和装入过程,排序时间复杂度是O(nlogn),装入过程是O(n),所以综合是O(nlogN);

全程就用了一个大小为n的一维数组,所以空间复杂度是O(n)。

 

5.心得体会(对本次实践收获及疑惑进行总结)

贪心选择不依赖将来的选择,只在当前做最优选择,贪心算法不一定能得到最优解,但在许多特定问题上能求得最优解,即使不能求得最优解,也能得到最优解的近似解。

做贪心选择之前可以最好能证明一下贪心策略是正确的。

 

以上是关于程序设计实践报告的主要内容,如果未能解决你的问题,请参考以下文章

20175325 《JAVA程序设计》实验三《敏捷开发与XP实践》实验报告

20202127《Python程序设计》实验四 Python综合实践实验报告

算法第四章上机实践报告

算法第四章上机实践报告

算法第四章上机实践报告

算法第四章上机实践报告