版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肿瘤康复医学指南解读
- 升九12文言文句式
- 《FRP增强木质复合》课件
- 员工服务、生产与仓储循环审
- 大学生综合素养之文化素养篇
- 土壤化学性质第一节土壤胶体
- 型糖尿病的胰岛素治疗
- N3级护士任职资格及能力要求
- 依云山庄法国季活动策划案
- 安全用电第7讲触电急救和外伤救护
- 阿坝县人力资源和社会保障局2026年增量政策性岗位招募的(9人)笔试参考题库及答案详解
- 2026年国家药品监督管理局药品审评中心聘用制人员公开招聘14人(第二批)笔试参考题库及答案详解
- 第一章 特殊平行四边形 问题解决活动:作内嵌于正方形的正八边形 教学课件 初中数学北师大版 九年级上册
- (正式版)DB11∕T 850-2024 《建筑墙体用腻子施工及验收规程》
- 2026年中医科规培考试题库及完整答案
- 2026年辽宁省中考英语试题(含答案)
- 2026年秋季开学大学面试技巧生涯规划课件
- 新版2026年秋新版九年级上册道德与法治知识点全面梳理1合集
- 2026-2027学年第一学期青岛版新教材小学数学一年级上册教学计划及进度表
- 2026年四川护理职业学院单招综合素质考试题库及答案详解(真题汇编)
- 第1课《开天辟地的大事变》第二课时课件2026-2027学年统编版五年级上册道德与法治
评论
0/150
提交评论