1、(3)任务效果 页码2、设计内容二(制作“输入数据”“显示图像”“五点平滑” 页码3、设计内容五(制作“左边界”“右边界”“寻峰”按钮) 页码4、设计内容六(制作左边界、右边界、寻峰、道址能量公式、能量刻度显示编辑框) 页码(3)任务效果 页码5、设计内容七(制作求总面积、本地面积、净面积与其编辑框) 页码(3)任务效果 页码6、设计内容八(菜单栏、工具栏、状态栏) 页码四、设计总结(感受) 页码一、设计任务及目的 一、实验目的:1、通过实验学会自主思考设计软件程序;2、通过实验懂得如何运用一些软件完成程序设并实现预期功能;3、在软件设计过程中逐步掌握能谱分析的基本过程;4、通过设计知道怎样才
2、能完成能谱的准确分析得出正确分析结果;5、通过实验了解我们所运用能谱分析仪的工作过程,特别是其后部分能谱处理原理。6、掌握图形程序的编写技巧。二、实验要求:1、自觉完成实验设计,不抄袭;2、查阅资料,讨论、了解该设计性实验的实现基本过程;3、能够团结同学,采纳同学的意见与分析方法、进行合理取舍;4、运用软件程序完成能谱分析,并实现能谱的准确分析,做到能谱的数据获取、平滑、寻峰、刻度等5、按时完成实验任务、上交实验成果。三、实验任务:1、通过实践培养学生实际动手能力,熟悉核数据处理的过程和方法,打下坚实的核物理实验及核数据处理基础,巩固C语言的学习。二、任务梗概1、C语言基础复习。2、制作计算器
3、。3、读谱数据文件、保存光滑后的谱数据文件,文件名可选。4、显示谱数据,各算法要以及函数方式实现、左右边界选取。5、显示分析谱段范围内,寻得的各峰位道址、能量。6、能量刻度。7、显示寻峰级峰面积计算结果。三、任务实现以一、计算器制作1、要求:最低要求:能完成双精度型数值的加、减、乘、除计算;编程中使用了动态连接库技术较高要求:编程中使用了动态连接库技术;能实现表达式的输入,解析与计算。2、步骤:1、先建立一个工程,截图如下 2,然后制作计算器的界面3,建立类向导写程序如下。void CJmxjisuanqiDlg:Onjia() UpdateData(true);m_Result=m_Firt
4、n+m_Secn;UpdateData(false);Onjian() m_Result=m_Firtn-m_Secn;Oncheng() UpdateData(true);Onchu() m_Result=m_Firtn/m_Secn;4,运行得到的的界面和结果二、“输入数据”等按钮通过对C语言文件相关函数的掌握并熟悉运用可以写出以下实验。1、创立一个工程文件。截屏如下:2、对于按钮键编写属性和建立类向导,建立类向导的程序如下。void CJMXDlg:Onduqushuju() / TODO: Add your control notification handler code here
5、FILE *fp; int datanum=0,data2048; float data_ph2048; int i; int data1,data2; if(fp=fopen(090623.txt,r)=NULL) printf(Cannot open the file.n); exit(0); while(!feof(fp) fscanf(fp,%d %d,&data1,&data2); datadatanum+=data2;n for(i=0;i2048;i+) if(i2045) data_phi=datai; else data_phi=(datai-2+4*datai-1+6*da
6、tai+4*datai+1+datai+2)*1.0/16.0;%fn,data_phi); fclose(fp);OUT1.txtwfile open error.n exit(0); fprintf(fp,%d %fn,i+1,data_phi);注意:在编程时要把所给的数据文本文件要在所创立的文件下去编写程序。所给的数据文本文件090623.txt。编译连接。点击读取数据按钮,然后打开生成的OUT1.txt文本文件三、“显示图像”按钮建立工程通过对按钮类向导建立类向导编程1,对读取数据建立类向导。void CxianshitupuDlg:FILE *fp; int datanum=0;
7、printf( if( iGetDC(); pDC-SetMapMode(MM_ANISOTROPIC); CRect rect; double scale; GetDlgItem(IDC_P1)-GetWindowRect(&rect); scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX); CDC MemDC; CBitmap MemBitmap; MemDC.CreateCompatibleDC(NULL); MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height(); MemDC.F
8、illSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255);max=data0; for(int i=1;if (dataimax ) max=datai; for ( i = 0; xViewport = (i+1)*rect.Width()/2048; yViewport = (0.67*datai*rect.Height()/max+10;SetPixel(xViewport,rect.Height()-yViewport-1,RGB(255,0,0);BitBlt(0,0,rect.Width(),rect.Height()
9、,&MemDC,0,0,SRCCOPY); MemBitmap.DeleteObject(); MemDC.DeleteDC();DeleteDC();3.对显示五点平滑图谱建立内向导OnXianshiwudian() float max; CWnd *pWnd=GetDlgItem(IDC_P2); GetDlgItem(IDC_P2)-max=data_ph0;if (data_phi max=data_phi; yViewport = (0.67*data_phi*rect.Height()/max+10; 效果图寻峰及道指换算1.对左边界建立内向导void Cxunfengjidaoz
10、hihuansuanDlg:Onzuobianjie() LButton_Clicked=1;left_flag=1;Left_x=x_old;Left_y=y_old;2.右边界五点寻峰建立内向导Onyoubianjiewudianxunfeng() int i,j,xl,xr,max=0,maxi=0;float newx;CRect rect1;CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);ScreenToClient(&rect1);CDC *pDC =pWnd-RButton_Clicked=1; if(left_fl
11、ag=1) Right_x=x_old; Right_y=y_old; /GetDlgItem(IDC_P1)- xl=2048*(Left_x-rect1.left)/rect1.Width(); xr=2048*(Right_x-rect1.left)/rect1.Width(); for(i=xl+2;xr-1; if(datai-1.0*sqrt(datai)datai-2) & (datai-1.0*sqrt(datai)datai+2) for(j=i-2;jmax) max=dataj; maxi=j; m_e3=maxi; UpdateData(false); newx=max
12、i*rect1.Width()/2048;CPen lpen(PS_SOLID,1,RGB(0,0,255);CPen* pOldPen = pDC-SelectObject(&lpen);/scale=25.4*10/pDC-pDC-MoveTo(newx,0);LineTo(newx,rect1.Height();lpen.DeleteObject();RButton_Clicked=0;LButton_Clicked=0;3.左道址建立内向导void CxuanfengjidaozhihuansuanDlg:OnZuodaozhi() CRect rect1; int chx; pWnd
13、- ScreenToClient(& chx=2048*(x_old-rect1.left)/rect1.Width(); m_e1=chx; UpdateData(false);4.右道指建立内向导OnYoudaozhi() chx=2048*(x_old-rect1.right)/rect1.Width(); m_e2=chx;显示图谱的结果五。求峰面积建立工作空间1.读取数据,建立内向导void CqiufengmianjiDlg:OnDuqushuju() FILE *fp;2.原始图谱,建立内向导void CqufengmiangjiDlg:OnYuanshitupu() int max; CDC *pDC=pWnd- MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height() ; max=data0; if(datai max=datai; xViewport=(i+1)*rect.Width()/2048; yViewport=(0.67*datai*rect.Height()/max+10;DeleteDC;3.显示五点平滑图谱。建立内向导Onxianshiwudianpinghuatupu() CRect rect; MemDC.
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2