计算机科学与技术第5次实验报告_第1页
计算机科学与技术第5次实验报告_第2页
计算机科学与技术第5次实验报告_第3页
计算机科学与技术第5次实验报告_第4页
计算机科学与技术第5次实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨工程大学程序设计基础实验报告基础实践一姓 名: 班 级: 学 号: 实验时间: 2018 年 5 月 10 日成绩哈尔滨工程大学计算机基础课程教学中心实验题目1:输入两个整数数组,每个数组有五个整数,将两者和并并排列输出。设计思想:定义三个数组,将两组数据存储到第三个数组中,再用冒泡排序对其由大到小排序并输出。实验代码及注释:#include #include #define N 10/宏定义int main() int a5,b5,cN;/第一组数据,第二组,合并数组 int i,j,t;/循环变量,中间变量 printf(输入第一组数据:n);/输入数据 for(i=0;i5;i+)

2、 scanf(%d,&ai); printf(输入第二组数据:n); for(i=0;i5;i+) scanf(%d,&bi); for(i=0;i5;i+) ci=ai;/两组数据合并 ci+5=bi; for(i=0;iN-1;i+)/冒泡排序从大到小 for(j=0;jN-i-1;j+) if(cjcj+1) t=cj; cj=cj+1; cj+1=t; printf(合并并由大到小排列后数据为:n); for(i=0;i10;i+) printf(%dt,ci); /排序:冒泡,选择, return 0;验证与结论:总结与心得体会:数组合并比较简单但要防止数组越界,数组存储数据是从第0

3、位开始,故要多加注意。冒泡选择是最基础的排序算法必须掌握。实验题目2:某公司生成5种产品,每周记录生产的每种产品数量和销售数量。每个月月末,公司将对其生产规划进行评估。该评估需要以下一个或多个信息。每周生成和销售的数量;所有生产产品的总量;所有销售产品的总量;每种产品生产和销售的总量。假设生产和销售的产品和销售分别用二维数组M和S表示,如下所示。其中Mij表示第i周生产第j种产品的数量。Sij表示第i周销售第j种产品的数量。假设使用一维数组C来表示每种产品的价格。其中,Cj表示第j种产品的价格。数组M、S和C的值都在程序中输入。设计思想:声明四个数组函数:每周生成和销售的数量,所有生产产品的总

4、量,所有销售产品的总量,每种产品生产和销售的总量。然后直接调用使其对主函数中数组值直接改变,最后用循环输出。实验代码及注释:#include #include void money(double mva56,double m56,double c6);/函数声明void sum1(double sweek5,double m56);void sum2(double mpr6,double m56);double sum3(double m5);int main() int i,j;/行,列 double M56,S56,C6;/第几周生产第几种产品的数量,第几周销售第几种产品的数量,每种产品的

5、价格 double Mvalue56,Svalue56,Mweek5,Sweek5,Mproduct6,Sproduct6; double Mtotal,Stotal; for(i=1;i=4;i+) for(j=1;j=5;j+) printf(请输入第%d周生产第%d种产品的数量:,i,j); scanf(%lf,&Mij); printf(请输入第%d周销售第%d种产品的数量:,i,j); scanf(%lf,&Sij); printf(n); for(j=1;j=5;j+) printf(请输入第%d种产品的价格:,j); scanf(%lf,&Cj); printf(n); mone

6、y(Mvalue,M,C);/调用函数 money(Svalue,S,C); sum1(Mweek,Mvalue); sum1(Sweek,Svalue); sum2(Mproduct,Mvalue); sum2(Sproduct,Svalue); Mtotal=sum3(Mweek); Stotal=sum3(Sweek); for(i=1;i=4;i+) for(j=1;j=5;j+) printf(第%d周生产第%d种产品的价值%.2lfn,i,j,Mvalueij); printf(第%d周销售第%d种产品的价值%.2lfn,i,j,Svalueij); printf(在本月里生成第%

7、d种产品的价值%.2lfn,j,Mproductj); printf(在本月里销售第%d种产品的价值%.2lfn,j,Sproductj); printf(在第%d周生产的产品价值%.2lfn,i,Mweeki); printf(在第%d周所有产品的价值%.2lfn,i,Sweeki); printf(在本月里生产所有产品总价值%.2lfn,Mtotal); printf(在本月里销售所有产品总价值%.2lfn,Stotal); return 0;void money(double mva56,double m56,double c6)/第i周生产和销售第j种产品的价值 int i,j; fo

8、r(i=1;i=4;i+) for(j=1;j=5;j+) mvaij=mij*cj;/ printf(第%d周生产第%d种产品的价值%lfn,i,j,mij*cj); void sum1(double sweek5,double m56)/第i周生产和销售的产品的价值 int i,j; for(i=1;i=4;i+) sweeki=0;/数组初始化 for(j=1;j=5;j+) sweeki=sweeki+mij; void sum2(double mpr6,double m56)/在本月生产和销售第j种产品的价值 int i,j; for(j=1;j=5;j+) mprj=0;/数组初始

9、化 for(i=1;i=4;i+) mprj=mprj+mij; double sum3(double m5)/在本月里生产和销售所有产品总价值 int i; double sum3=0; for(i=1;i=4;i+) sum3=sum3+mi; return sum3;验证与结论:总结与心得体会:数组参数形参实质的本质是指针,使用数组函数使得代码看起来更加整洁,可读性更高。当出现大量复制代码时考虑能否用函数统一起来,否则在后期维护上将变得困难许多。实验题目3:编程将一个字符串插入到另一个字符串的第n个位置。设计思想:使用strlen函数计算数组长度,然后使用循环用倒序赋值使a数组在第n个位

10、置及以后字符向后挪数组b长度,再用倒序赋值法将b赋给a的空位。实验代码及注释:#include #include int main() int n,count1,count2,i,j;/位置,字符串长度,循环变量 printf(输入n值:n); scanf(%d,&n); char a20;/默认长度为20 char b20; printf(输入a:n); scanf(%s,a); printf(输入b:n); scanf(%s,b); count1=strlen(a);/计算字符串a与b的长度 count2=strlen(b); for(i=count1-1;i=(n-1);i-)/倒序赋值

11、,使a在第n个位置及以后字符向后挪count2位 ai+count2=ai; i=n-1+count2;/对i重新赋值为n-1+count2 for(j=count2-1;j=0;j-)/倒序赋值将b赋给a空位 ai=bj; i-; printf(新字符串为:); for(j=0;jcount1+count2;j+) printf(%c,aj); return 0;验证与结论:总结与心得体会:输入字符串后末尾会有一个0,在赋值时必须极为小心,有可能会使程序提前终止得不到预期的效果,另外利用strlen函数计算数组长度时不包括末尾的0。实验题目4:编写一个程序,使输入的一个字符串按反序存放,在主

12、函数中输入输出字符。设计思想:输入字符串存储在a数组中,利用strlen函数计算数组a长度,再用循环倒序存储在b数组中并输出。实验代码及注释:#include #include #define n 100/宏定义n值为100int main() char an,bn;/定义字符串数组 int i,j=0;/在数组中存储位置 printf(请输入字符:n); gets(a);/输入字符串 i=strlen(a)-1;/数组长度减一 for(;i=0;i-)/倒序输出存储 bj=ai;/倒序存储 printf(%c,ai); j+; return 0;验证与结论:总结与心得体会:利用scanf函数

13、输入字符串时无法输入空格,故用了gets函数来输入字符串。实验题目5:编写程序,从键盘输入一行字符,统计其中英文字母、空格、数字和其他字符的个数。设计思想:输入字符串并存储在a数组中,然后将其转换为整型数组存储在数组b中,再利用ASCII码的范围对其进行统计输出。实验代码及注释:#include #include #define n 200/宏定义n值为200int main() char an;/定义字符串数组 int i,j;/循环变量 int count1=0,count2=0,count3=0,count4=0;/英文字母、空格、数字和其他字符的个数 int bn;/ 整型数组 printf(请输入字符:n); gets(a);/输入字符 j=strlen(a);/将数组a的长度赋给j for(i=0;ij;i+) bi=ai;/将字符转换成ASCII码存储在b数组中 for(i=0;i=65&bi=97&bi=48&b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论