C语言程序的设计说明书与实验报告_第1页
C语言程序的设计说明书与实验报告_第2页
C语言程序的设计说明书与实验报告_第3页
C语言程序的设计说明书与实验报告_第4页
C语言程序的设计说明书与实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

/C语言程序设计实验报告学院:资源加工与生物工程专业:无机非金属材料工程班级:0501:金光龙学号:0302050107指导老师:金胜明制作日期:05年7月9日C语言程序设计说明书目录一程序设计目的与任务;二程序设计的容;三源程序;四程序说明;五实践心得;一程序设计目的与任务1、学会数据文件的建立在实验室试验和现场生产过程中,经常要存储、处理许多数据(试验数据和生产数据),在没有在线检测的条件下,这些数据都要进行人工的输入,建立数据文件。以前,我们都是编写建立数据文件的程序来建立数据文件,当某个数据输入错误时就要重新输入或编写数据文件修改程序,比较麻烦。直接在编辑状态下(TC,TP等)编写数据文件简单、直观、实用。2、理解并且学会运用文件操作函数3、学会用线性回归法建立数学模型二程序设计的容一、数据文件1.文件操作函数(1)文件的打开fopen#include<stdio.h>FILE*fopen(char*filename,char*type);filename—文件名,字符串变量;type—文件打开的方式(r,w,a)函数功能:打开由文件filename指定的文件,并把一个stream与它联系起来。返回一个指针,该指针用来识别随后操作的文件stream。若成功地完成打开,则返回最近打开的文件stream,若出现错误,则返回NULL。(2)文件的关闭fclose#include<stdio.h>intfclose(FILE*stream);filename—文件名,字符串变量;type—文件打开的方式(r,w,a)函数功能:关闭指定的流式文件。(3)fscanf—从流中执行格式化输入#include<stdio.h>intfscanf(FILE*stream,char*format[,argument,…]);函数功能:从指定的输入流中按规定的格式把数据读入由地址参数&arg1,…&argn给定的单元中。(4)fprintf—发送格式化输出到流#include<stdio.h>intfprintf(FILE*stream,char*format[,argument,…]);函数功能:按规定的格式把数据输出到指定的流式文件stream中。例:#include“stdio.h”main(){FILEfp,*fopen();floatd,date[10][2];inti,j;fp=fopen(“试验数据.dat”,“r”);for(i=0;i<10;i++)or(j=0;j<2;j++){fscanf(fp,“%f”,&d);date[i][j]=d;}fclose(fp);}例如,建立存储下列数据的数据文件,并对它进行读、写操作。序号Na2OK2OCaOSiO2弹性模量17.268.1612.68727.263626.767.6611.68727.258236.267.1610.68727.245647.267.6610.68747.200156.767.1612.68747.313066.268.1611.68747.256077.267.1611.68767.255886.768.1610.68767.198896.267.6612.68767.3086二、线性回归法建立数学模型1建立数学模型的方法机理分析法数据分析法回归分析法静态数模时间序列分析法—动态数模(系统辨识)综合分析法2建立线性回归模型的步骤第一步一组试验数据(m组,m>n)目标:求βj的估计值bj。使。用最小二乘法,使由试验数据计算系数。第二步求方程的解第三步判断模型的显著性统计量给出显著水平α(0.1,0.05,0.01)判断F>Fα显著呈线性关系F<Fα不显著不呈线性关系例:(m=6,n=1)X132147163179198222Y00.61.11.82.43.1Y=-4.688566+0.035669X利用得到的Y的一个表达式,可以算出相应的弹性模量。三源程序立存储数据的数据文件,并对它进行读、写操作:数据如上面的表格(1)#include<stdio.h>main(){charch;FILE*fp;if((fp=fopen("F:\\TC\\shujiu.txt","r"))==NULL){printf("filecannotbeopened\n");exit(1);}while((ch=fgetc(fp))!=EOF)fputc(ch,stdout);fclose(fp);}上机调试通过运行结果如下:N0. Na2O K2O CaOSiO2 Model1 7.26 8.16 12.68 72 7.26362 6.76 7.66 11.68 72 7.25823 6.26 7.16 10.68 72 7.2456/*此程序为对F:\\TC\\shujiu.txt的4 7.26 7.66 10.68 74 7.2001文件进行输出*/5 6.76 7.16 12.68 74 7.31306 6.26 8.16 11.68 74 7.25607 7.26 7.16 11.68 76 7.25588 6.76 8.16 10.68 76 7.19889 6.26 7.66 12.68 76 7.3086(2)#include<stdio.h>main(){FILE*fp;floatd,date[9][6];inti,j;fp=fopen("F:\\TC\\shujiu.txt","r");printf("\nPutthenumber:\n");for(i=0;i<9;i++)for(j=0;j<6;j++){fscanf(fp,"%f",&d);date[i][j]=d;printf("%6.4f",date[i][j]);}printf("themunber:\n");for(i=0;i<9;i++){printf("%8.2f",date[i][0]);printf("%8.2f",date[i][1]);printf("%8.2f",date[i][2]);printf("%8.2f",date[i][3]);printf("%4.2f",date[i][4]);printf("%8.4f",date[i][5]);printf("\n");}fclose(fp);}上机调试通过运行结果如下:1.007.268.1612.6872.007.26362.006.767.6611.6872.007.25823.006.267.1610.6872.007.24564.007.267.6610.6874.007.20015.006.767.1612.6874.007.31306.006.268.1611.6874.007.25607.007.267.1611.6876.007.25588.006.768.1610.6876.007.19889.006.267.6612.6876.007.3086、/*此程序为先对F:\\TC\\shujiu.txt的文件进行打开,再导入到一个二维数组里进行输出*/2、璃弹性模量与成分之间的数学模型源代码如下:#include"stdio.h"inti,j,k,n,m;charcele;voidhead(){for(i=0;i<8;i++)printf("%c",003);printf("请选择要进行的操作:");for(i=0;i<8;i++)printf("%c",003);printf("\n");{for(i=0;i<8;i++)printf("%c",020);printf("a.运行程序\n");for(i=0;i<8;i++)printf("%c",020);printf("b.退出程序\n");}cele=getchar();if(cele=='a')printf("\n");elseexit(1);}main(){for(i=0;i<20;i++)printf("%c%c",001,002);printf("\n");for(i=0;i<8;i++)printf("%c%c",001,002);printf("欢迎使用本程序");for(i=0;i<8;i++)printf("%c%c",001,002);printf("\n\n\n\t\t^_^本程序根据已知的数据构件一个数学模型^_^\n\t其作用是通过分析构成物质,用计算机模拟出材料的弹性模量。\n\n\n");printf("\t\t资源加工与生物工程学院\n\t\t\t\t\t\t\t%c无机0501班\n\n");printf("\t\t\t:金光龙\n");printf("\n\t\t\t\t\t\t\t学号:0302050107\n\n");head();printf("请输入行数m:\t");scanf("%d",&m);printf("请输入列数n:");scanf("%d",&n);floats[n][n+1],b[n],x[m+1][n+1],y[5];floatr,t;charcelect;FILE*fp1;fp1=fopen("date1.txt","r");/*date1.txt数据为1000001 7.26 8.16 12.68 72 7.26361 6.76 7.66 11.68 72 7.25821 7.26 7.66 10.68 74 7.20011 6.76 7.16 12.68 74 7.31301 6.26 8.16 11.68 74 7.25601 7.26 7.16 11.68 76 7.25581 6.76 8.16 10.68 76 7.19881 6.26 7.66 12.68 76 7.3086*/for(i=0;i<10;i++)for(j=0;j<6;j++){fscanf(fp1,"%f",&t);x[i][j]=t;}fclose(fp1);/*把文件中数赋给x[10][6]*/for(i=0;i<5;i++){for(j=0;j<10;j++){s[i][j]=0;for(k=1;k<10;k++)s[i][j]+=x[k][i]*x[k][j];}}printf("\n\n增广阵为:\n");for(i=0;i<5;i++){for(j=0;j<6;j++)printf("%8.2f",s[i][j]);printf("\n");}/*得到S二维数组*/printf("\n\n");for(k=0;k<4;k++)for(i=k+1;i<5;i++){r=s[i][k]/s[k][k];for(j=k;j<6;j++)s[i][j]=s[i][j]-s[k][j]*r;}for(i=0;i<5;i++){for(j=0;j<6;j++)if(fabs(s[i][j])<0.00001)s[i][j]=0;}printf("对角阵为:\n");for(i=0;i<5;i++){for(j=0;j<6;j++)printf("%8.2f",s[i][j]);printf("\n");}/*得到对角阵*/b[4]=s[4][5]/s[4][4];b[3]=(s[3][5]-s[3][4]*b[4])/s[3][3];b[2]=(s[2][5]-s[2][4]*b[4]-s[2][3]*b[3])/s[2][2];b[1]=(s[1][5]-s[1][4]*b[4]-s[1][3]*b[3]-s[1][2]*b[2])/s[1][1];b[0]=(s[0][5]-s[0][4]*b[4]-s[0][3]*b[3]-s[0][2]*b[2]-s[0][1]*b[1])/s[0][0];/*得到b[5]*/printf("\n\n\t\tB阵为:\n");for(i=0;i<5;i++)printf("\t\tb[%d]=%f\n",i,b[i]);FILE*fp2;fp2=fopen("fdate2.txt","w");/*文件date2.txt的等式为:y=7.2620+(-0.0303*x1)+(-0.0320*x2)+(0.04012*x3)+(-0.0003*x4)*/fprintf(fp2,"y=%.4f+(%.4f*x1)+(%.4f*x2)+(%.fclose(fp2);printf("\n\n\t\t\t\t我们得到的数学模型为:\n\n");printf("\ty=%f+(%f*x1)+(%f*x2)+(%f*x3)+(%f*x4)\n",b[0],b[1],b[2],b[3],b[4]);for(i=0;i<40;i++)printf("%c",005);printf("\n\n使用模型模拟得到的弹性模量:");for(i=0;i<5;i++){y[i]=b[0]+b[1]*x[i][1]+b[2]*x[i][2]+b[3]*x[i][3]+b[4]*x[i][4];printf("\ny[%d]=%f",i,y[i]);}printf("\n实际的弹性模量:\n");for(i=1;i<=5;i++)printf("d[%d]=%f\n",i-1,x[i][5]);}上机调试通过运行结果如下:________________________________________________________欢迎使用本程序________________^_^本程序根据已知的数据构件一个数学模型^_^其作用是通过分析构成物质,用计算机模拟出材料的弹性模量。资源加工与生物工程学院无机0501班:金光龙学号:0302050107________请选择要进行的操作:________________a.运行程序________b.退出程序请输入行数m:10请输入列数n:6增广阵为:9.0060.8468.94105.12666.0065.3060.84412.78466.03710.614502.16441.3868.94466.03529.58805.225101.56500.15105.12710.61805.221233.807778.88762.94666.004502.165101.567778.8849308.004832.17对角阵为:9.0060.8468.94105.12666.0065.300.001.50-0.00-0.00-0.00-0.050.000.001.50-0.000.00-0.050.000.000.006.000.000.240.000.000.000.0024.00-0.01B阵为:b[0]=7.261955b[1]=-0.030281b[2]=-0.031982b[3]=0.040121b[4]=-0.000343我们得到的数学模型为:y=7.261955+(-0.030281*x1)+(-0.031982*x2)+(0.040121*x3)+(-0.000343*x4)________________________________________使用模型模拟得到的弹性模量:y[0]=7.261955y[1]=7.265197y[2]=7.256207y[3]=7.247218y[4]=7.200260实际的弹性模量:[0]=7.263600[1]=7.258200[2]

温馨提示

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

评论

0/150

提交评论