- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建工程学院计算机与信息科学系
实验报告
2007 – 2008 学年第 二 学期 任课老师: 陈庆强
课程名称
结构化程序设计
班级
计算机0602
座号
13
姓名
陈志强
实验题目
贪心算法设计
实验时间
实验开始日期: 报告提交日期:
实验目的、要求
二、实验题目
1.利用贪心策略解决背包问题。现有载重为M公斤的背包和n种货物。第i种货物的重量为Wi,它的总价值为Pi,假定M、Wi、Pi均为整数。设计程序给出装货方法,使装入背包的货物总价值达到最大。
2.设计实现超市收银程序,假设顾客在超市购买各种商品,来到收银台结账,收银员具有面值为100,20,10,5和1元的纸币和各种面值为5角、2角、1角的硬币。设计程序计算顾客各种所买商品的钱数,并根据顾客所付的钱数输出零钱的数目及要找的各种货币的数目。
3.利用贪心策略解决磁带存储问题。有n个程序需要存储在磁带上,它们的长度分别是L1,L2,…,Ln,它们使用的频率分别为F1,F2,…,Fn,求程序在磁带上最佳存储顺序,使平均检索时间最少。
三、实验要求
1.该实验的课内学时是4个课时。
2.题目1必须完成。
3.题目1在完成上述基本功能的前提下,有能力的同学可以完成题目2和3。
四、实验说明
1.互相之间可以进行算法的讨论,但文档以及程序每个人必须独立完成,如果发现雷同,则重做。
2.认真准备,实验前做好准备工作,准备工作包括完成实验报告中的(1)~(5)的部分,实验报告中(6)~(7)部分在实验结束后继续填写。
3.程序要上机调试成功并形成可执行的程序,记录调试过程中出现的错误现象以及如果改正
4.程序的运行结果要结合程序测试数据进行分析。
5.提交实验报告(实验报告的格式见附录B)和源程序以及可以运行的程序。
五、实验报告内容
(1)实验题目
(2)实验设计的数据结构及说明
(3)用层次图描述程序结构,并说明程序各函数的名称、功能,图示各函数之间相互的调用关系。
(4)各个函数的设计及说明
(5)测试数据的设计及预期结果
(6)调试过程记录:在程序调试过程中可能会出现许多问题,对这些问题要逐个记录错误位置、编译的描述(英文以及中文的含义)、如何解决。
(7)实验结果记录以及与预期结果比较以及分析:在实验过程中除非一次成功,否则会有多个实验结果,对这些实验结果要逐个记录,并且与预期结果进行比较并分析。
(8)总结及心得体会:
六、实验成绩评定
每个实验从三个方面考核每个实验的成绩:功能完成情况、实验报告以及程序风格、界面设计以及操作方便性。
实验设计内容
1、利用贪心策略解决背包问题。现有载重为M公斤的背包和n种货物。第i种货物的重量为Wi,它的总价值为Pi,假定M、Wi、Pi均为整数。设计程序给出装货方法,使装入背包的货物总价值达到最大。
#include stdio.h
beibao()
{
float w[20], p[20],v[20],x[100];
int n,i,j,m=0,s;
float t,q=0.0,value=0.0,M;
printf(qing shuru n de zhi n=:);
scanf(%d,n);
printf(qing shuru M de zhi M=:);
scanf(%f,M);
printf(qing shuru wi de zhi(n ge):\n);
for(i=1;i=n;i++)
scanf(%f,w[i]);
printf(qing shuru pi de zhi(n ge):\n);
for(i=1;i=n;i++)
scanf(%f,p[i]);
for(i=1;i=n;i++)
v[i]=p[i]/w[i];
for(i=1;in;i++)
{
for(j=1;j=n-i;j++)
if(v[j]v[j+1])
{
t=v[j];v[j]=v[j+1];v[j+1]=t;
q=w[j];w[j]=w[j+1];w[j+1]=q;
}
}
printf(\n);
printf(\nwi de qingkuang ruxia:\n);
for(i=1;i=n;i++)
{
printf(%5.2f\t,w[i]);
}
printf(\n);
printf(\npi de qingkuang ruxia:\n);
for(i=1;i=n;i++)
printf(%5.2f\t,v[i]);
printf(\n);
i=1;
while(M!=0)
{
M-=w[i];
文档评论(0)