核数据处理课程设计_第1页
核数据处理课程设计_第2页
核数据处理课程设计_第3页
核数据处理课程设计_第4页
核数据处理课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上核工程与新能源技术系课程设计报告题 目 课程设计报告 系 别 核工程与新能源技术系 年 级 2012级 专 业 核工程与核技术 班 级 核技术3班 学 号 XXX 学生姓名 岳 X X 指导教师 张艳丽 职 称 讲师 所属课程 核数据处理实验 设计时间 2014-11-16 课程设计独创性声明: 本课程设计是在老师指导下个人独立完成的。 学生签名: 课程设计评分标准(按教学大纲评定)课程设计报告成绩:平时成绩:总成绩: 指导教师签名: 教研室主任签名: 实验中心主任签名: 目 录一、设计任务及目的 页码二、任务梗概 页码三、任务实现 页码 1、设计内容一(计算器制作)

2、 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码2、设计内容二(制作“输入数据”“显示图像”“五点平滑” 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码3、设计内容五(制作“左边界”“右边界”“寻峰”按钮) 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码4、设计内容六(制作左边界、右边界、寻峰、道址能量公式、能量刻度显示编辑框) 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码5、设计内容七(制作求总面积、本地面积、净面积与其编辑框) 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码6、设计内容八(菜单栏、工

3、具栏、状态栏) 页码(1)任务要求 页码(2)任务步骤 页码(3)任务效果 页码四、设计总结(感受) 页码一、设计任务及目的 一、实验目的:1、通过实验学会自主思考设计软件程序;2、通过实验懂得如何运用一些软件完成程序设并实现预期功能;3、在软件设计过程中逐步掌握能谱分析的基本过程;4、通过设计知道怎样才能完成能谱的准确分析得出正确分析结果;5、通过实验了解我们所运用能谱分析仪的工作过程,特别是其后部分能谱处理原理。6、掌握图形程序的编写技巧。二、实验要求:1、自觉完成实验设计,不抄袭;2、查阅资料,讨论、了解该设计性实验的实现基本过程;3、能够团结同学,采纳同学的意见与分析方法、进行合理取舍

4、;4、运用软件程序完成能谱分析,并实现能谱的准确分析,做到能谱的数据获取、平滑、寻峰、刻度等5、按时完成实验任务、上交实验成果。三、实验任务:1、通过实践培养学生实际动手能力,熟悉核数据处理的过程和方法,打下坚实的核物理实验及核数据处理基础,巩固C语言的学习。二、任务梗概1、C语言基础复习。2、制作计算器。3、读谱数据文件、保存光滑后的谱数据文件,文件名可选。4、显示谱数据,各算法要以及函数方式实现、左右边界选取。5、显示分析谱段范围内,寻得的各峰位道址、能量。6、能量刻度。7、显示寻峰级峰面积计算结果。三、任务实现以一、计算器制作1、要求:最低要求:能完成双精度型数值的加、减、乘、除计算;编

5、程中使用了动态连接库技术较高要求:能完成双精度型数值的加、减、乘、除计算;编程中使用了动态连接库技术;能实现表达式的输入,解析与计算。2、步骤:1、先建立一个工程,截图如下 2,然后制作计算器的界面3,建立类向导写程序如下。void CJmxjisuanqiDlg:Onjia() UpdateData(true);m_Result=m_Firtn+m_Secn;UpdateData(false);void CJmxjisuanqiDlg:Onjian() UpdateData(true);m_Result=m_Firtn-m_Secn;UpdateData(false);void CJmxji

6、suanqiDlg:Oncheng() UpdateData(true);m_Result=m_Firtn-m_Secn;UpdateData(false);void CJmxjisuanqiDlg:Onchu() UpdateData(true);m_Result=m_Firtn/m_Secn;UpdateData(false);4,运行得到的的界面和结果二、“输入数据”等按钮通过对C语言文件相关函数的掌握并熟悉运用可以写出以下实验。1、创立一个工程文件。截屏如下:2、对于按钮键编写属性和建立类向导,建立类向导的程序如下。void CJMXDlg:Onduqushuju() / TODO:

7、Add your control notification handler code hereFILE *fp;int datanum=0,data2048;float data_ph2048;int i;int data1,data2;if(fp=fopen(.txt,r)=NULL) printf(Cannot open the file.n); exit(0);while(!feof(fp) fscanf(fp,%d %d,&data1,&data2);datadatanum+=data2;fscanf(fp,n); for(i=0;i2048;i+)if(i2045)data_phi=

8、datai;elsedata_phi=(datai-2+4*datai-1+6*datai+4*datai+1+datai+2)*1.0/16.0;printf(%fn,data_phi);fclose(fp);if(fp=fopen(OUT1.txt,w)=NULL) printf(file open error.n);exit(0);for(i=0;i2048;i+)fprintf(fp,%d %fn,i+1,data_phi);fclose(fp);注意:在编程时要把所给的数据文本文件要在所创立的文件下去编写程序。所给的数据文本文件.txt。编译连接。点击读取数据按钮,然后打开生成的OU

9、T1.txt文本文件三、“显示图像”按钮建立工程通过对按钮类向导建立类向导编程1,对读取数据建立类向导。void CxianshitupuDlg:Onduqushuju() / TODO: Add your control notification handler code hereFILE *fp;int datanum=0; int i;int data1,data2;if(fp=fopen(.txt,r)=NULL) printf(Cannot open the file.n); exit(0); while(!feof(fp) fscanf(fp,%d %d,&data1,&data2

10、);datadatanum+=data2;fscanf(fp,n); for(i=0;i2048;i+) if( i2045) data_phi=datai; else data_phi=(datai-2+4*datai-1+6*datai+4*datai+1+datai+2)*1.0/16.0; printf(%d %fn,i+1,data_phi); fclose(fp);if(fp=fopen(out.txt,w)=NULL) printf(file open error.n); exit(0); for(i=0;iGetDC(); pDC-SetMapMode(MM_ANISOTROP

11、IC); 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.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(25

12、5,255,255); max=data0;for(int i=1;imax ) max=datai; for ( i = 0;iSetPixel(xViewport,rect.Height()-yViewport-1,RGB(255,0,0); pDC-BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY); MemBitmap.DeleteObject(); MemDC.DeleteDC(); pDC-DeleteDC(); 3.对显示五点平滑图谱建立内向导void CXianshitupuDlg:OnXianshiwudian(

13、)/ TODO: Add your control notification handler code heredouble xViewport,yViewport;float max;CWnd *pWnd=GetDlgItem(IDC_P2); CDC *pDC =pWnd-GetDC(); pDC-SetMapMode(MM_ANISOTROPIC); CRect rect; double scale; GetDlgItem(IDC_P2)-GetWindowRect(&rect); scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);CDC MemDC

14、; CBitmap MemBitmap; MemDC.CreateCompatibleDC(NULL); MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height(); MemDC.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255); max=data_ph0;for(int i=1;imax ) max=data_phi; for ( i = 0;iSetPixel(xViewport,rect.Height()-yViewport-1,RGB(255,0

15、,0); pDC-BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY); MemBitmap.DeleteObject(); MemDC.DeleteDC(); pDC-DeleteDC(); 效果图寻峰及道指换算建立工程1. 对左边界建立内向导void CxunfengjidaozhihuansuanDlg:Onzuobianjie() / TODO: Add your control notification handler code hereLButton_Clicked=1;left_flag=1;Left_x=x_old;

16、Left_y=y_old;2.右边界五点寻峰建立内向导void CxunfengjidaozhihuansuanDlg:Onyoubianjiewudianxunfeng() / TODO: Add your control notification handler code hereint 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-GetDC(); RBut

17、ton_Clicked=1;if(left_flag=1)Right_x=x_old; Right_y=y_old; /GetDlgItem(IDC_P1)-GetWindowRect(&rect1); xl=2048*(Left_x-rect1.left)/rect1.Width(); xr=2048*(Right_x-rect1.left)/rect1.Width(); for(i=xl+2;idatai-2) & (datai-1.0*sqrt(datai)datai+2)for(j=i-2;jmax) max=dataj; maxi=j; m_e3=maxi; UpdateData(f

18、alse);newx=maxi*rect1.Width()/2048;CDC *pDC =pWnd-GetDC(); CPen lpen(PS_SOLID,1,RGB(0,0,255);CPen* pOldPen = pDC-SelectObject(&lpen); /scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);pDC-MoveTo(newx,0); pDC-LineTo(newx,rect1.Height();lpen.DeleteObject(); RButton_Clicked=0;LButton_Clicked=0;3.左道址建立内向导voi

19、d CxuanfengjidaozhihuansuanDlg:OnZuodaozhi() / TODO: Add your control notification handler code hereCRect rect1;int chx; CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);ScreenToClient(&rect1);chx=2048*(x_old-rect1.left)/rect1.Width();m_e1=chx;UpdateData(false);4.右道指建立内向导void Cxunfengjidaozhi

20、huansuanDlg:OnYoudaozhi() / TODO: Add your control notification handler code hereCRect rect1;int chx; CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);ScreenToClient(&rect1);chx=2048*(x_old-rect1.right)/rect1.Width();m_e2=chx;UpdateData(false);显示图谱的结果五。求峰面积建立工作空间1.读取数据,建立内向导void Cqiufengmianj

21、iDlg:OnDuqushuju() / TODO: Add your control notification handler code hereFILE *fp;int datanum=0; int i;int data1,data2;if(fp=fopen(.txt,r)=NULL) printf(Cannot open the file.n); exit(0); while(!feof(fp) fscanf(fp,%d %d,&data1,&data2);datadatanum+=data2;fscanf(fp,n); for(i=0;i2048;i+) if( i2045) data

22、_phi=datai; else data_phi=(datai-2+4*datai-1+6*datai+4*datai+1+datai+2)*1.0/16.0; printf(%d %fn,i+1,data_phi); fclose(fp); if(fp=fopen(out.txt,w)=NULL) printf(file open error.n); exit(0); for(i=0;iGetDC(); pDC-SetMapMode(MM_ANISOTROPIC); CRect rect; double scale; GetDlgItem(IDC_P1)-GetWindowRect(&re

23、ct);scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);CDC MemDC;CBitmap MemBitmap; MemDC.CreateCompatibleDC(NULL); MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height() ; MemDC.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255); max=data0;for(int i=1;imax)max=datai; for(i=0;iSetPixel(

24、xViewport,rect.Height()-yViewport-1,RGB(255,0,0); pDC-BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY); MemBitmap.DeleteObject(); MemDC.DeleteDC();pDC-DeleteDC;3.显示五点平滑图谱。建立内向导void CqiufengmianjiDlg:Onxianshiwudianpinghuatupu() / TODO: Add your control notification handler code heredouble x

25、Viewport,yViewport;float max;CWnd *pWnd=GetDlgItem(IDC_P2);CDC *pDC=pWnd-GetDC();pDC-SetMapMode(MM_ANISOTROPIC);CRect rect;double scale;GetDlgItem(IDC_P2)-GetWindowRect(&rect);scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);CDC MemDC;CBitmap MemBitmap;MemDC.CreateCompatibleDC(NULL);MemBitmap.CreateCompa

26、tibleBitmap(pDC,rect.Width(),rect.Height();MemDC.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255);max=data_ph0;for(int i=1;imax)max=data_phi;for(i=0;iSetPixel(xViewport,rect.Height()-yViewport-1,RGB(255,0,0);pDC-BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);MemBitmap.DeleteO

27、bject();MemDC.DeleteDC();pDC-DeleteDC();void CqiufengmianjiDlg:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default/ TODO: Add your message handler code here and/or call defaultCRect rect1;CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);Screen

28、ToClient(&rect1);CDC *pDC =pWnd-GetDC(); if (rect1.PtInRect(point) pDC-MoveTo(point.x-rect1.left,0); pDC-LineTo(point.x-rect1.left,rect1.Height();if(LButton_Clicked=0)CPen lpen(PS_SOLID, 1, RGB(255,255,255);CPen* pOldPen = pDC-SelectObject(&lpen); pDC-MoveTo(x_old-rect1.left,0); pDC-LineTo(x_old-rec

29、t1.left,rect1.Height();lpen.DeleteObject(); x_old=point.x;y_old=point.y;elseLButton_Clicked=0;x_old=point.x;y_old=point.y;CDialog:OnLButtonUp(nFlags, point);4.左边界,建立内向导void CqiufengmianjiDlg:OnZuobianjie() / TODO: Add your control notification handler code hereLButton_Clicked=1;left_flag=1;Left_x=x_

30、old;Left_y=y_old;5.五点寻峰,建立类向导void CqiufengmianjiDlg:OnWudianxunfeng() / TODO: Add your control notification handler code hereint 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-GetDC(); RButton_Clicked=1;if(l

31、eft_flag=1)Right_x=x_old; Right_y=y_old; /GetDlgItem(IDC_P1)-GetWindowRect(&rect1); xl=2048*(Left_x-rect1.left)/rect1.Width(); xr=2048*(Right_x-rect1.left)/rect1.Width(); for(i=xl+2;idatai-2) & (datai-1.0*sqrt(datai)datai+2)for(j=i-2;jmax) max=dataj; maxi=j; m_e3=maxi; UpdateData(false);newx=maxi*re

32、ct1.Width()/2048;CDC *pDC =pWnd-GetDC(); CPen lpen(PS_SOLID,1,RGB(0,0,255);CPen* pOldPen = pDC-SelectObject(&lpen); /scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);pDC-MoveTo(newx,0); pDC-LineTo(newx,rect1.Height();lpen.DeleteObject(); RButton_Clicked=0;LButton_Clicked=0;6.左道址,建立类向导void CqiufengmianjiD

33、lg:OnZuodaozhi() / TODO: Add your control notification handler code hereCRect rect1;int chx; CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);ScreenToClient(&rect1);chx=2048*(x_old-rect1.left)/rect1.Width();m_e1=chx;UpdateData(false);7.右道址,建立类向导void CShiyanDlg:OnYoudaozhi() / TODO: Add your c

34、ontrol notification handler code hereCRect rect1;int chx; CWnd *pWnd=GetDlgItem(IDC_P1);pWnd-GetWindowRect(rect1);ScreenToClient(&rect1);chx=2048*(x_old-rect1.right)/rect1.Width();m_e2=chx;UpdateData(false);8.求峰面积void CqiufengmianjiDlg:Onjqiufengmianji() / TODO: Add your control notification handler code hereint i,j,xl,xr,max=0,maxi=0;float newx;int L,R;long double S=

温馨提示

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

最新文档

评论

0/150

提交评论