核数据处理课程设计方案书.docx

上传人:b****1 文档编号:644117 上传时间:2022-10-11 格式:DOCX 页数:13 大小:287.65KB
下载 相关 举报
核数据处理课程设计方案书.docx_第1页
第1页 / 共13页
核数据处理课程设计方案书.docx_第2页
第2页 / 共13页
核数据处理课程设计方案书.docx_第3页
第3页 / 共13页
核数据处理课程设计方案书.docx_第4页
第4页 / 共13页
核数据处理课程设计方案书.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

核数据处理课程设计方案书.docx

《核数据处理课程设计方案书.docx》由会员分享,可在线阅读,更多相关《核数据处理课程设计方案书.docx(13页珍藏版)》请在冰豆网上搜索。

核数据处理课程设计方案书.docx

核数据处理课程设计方案书

核数据处理

一、实习目的

1、掌握图形程序的编写技能与技巧;

2、掌握文件读写函数的使用;

3、理解整个谱数据处理的流程;

4、进一步掌握对常用核数据处理的基本方法

5、掌握软件设计所需的基本动手能力,解决实际问题。

二、实习内容

1、读谱数据文件、保存光滑后的谱数据文件,文件名可选

2、显示谱数据,各算法要以函数方式实现

3、显示分析谱段范围内,寻得的各峰位道址、能量、对应的元素名称

4、显示寻峰及峰面积计算结果

5、光滑、寻峰宽度2k+1应在5、7之间可选,讨论最佳参数。

三、需求分析

1、输入、输出的内容和形式

(1)输入:

a、打开应用软件,弹出要求输入谱数据文件名对话框。

b、需要刻度谱线时,分别按e键和c键输入元素文件名和能量刻度文件名。

c、人机交互时,采用键盘按键方式将命令传给程序(具体操作:

在运行程序后按h键即可弹出操作说明对话框)。

(2)输出:

a、屏幕显示谱线;光标位置及光标处的道址、能量和计数;屏幕上方显示“Softwareinstructionspleaseinput'h'”。

b、当谱线被刻度好后,按n键会弹出相应元素对应的能量、面积和净峰面积。

c、按h键弹出应用程序操作说明对话框。

2、预期功能、界面

(1)显示输入谱文件名对话框;在文件名输入正确时,能够正确读取文件中的数据。

(2)正确显示谱线以及在刻度后显示道址、能量及计数。

(3)显示相应元素对应的能量、面积和净峰面积对话框。

(4)达到谱数据光滑的效果。

(5)采用键盘输入命令,使屏幕:

a、即时显示光标的位置以及对应的道址、能量及计数。

b、即时显示不同幅度放大倍数时的谱线形状。

c、即时显示不同光滑次数处理后的谱线微细结构(只有在幅度放大倍数很大时光滑效果才明显)。

d、即时显示谱线的点和线的切换。

3、测试数据

(1)文件读入是否正确。

(2)谱数据段的选择功能是否实现。

(3)move和curse的边界值是否设置妥当。

(4)谱数据光滑时前后几个数据(不能进行光滑)是否与光滑次数的关系对应好。

(5)道址和能量的换算是否正确。

(6)寻峰是否正确。

(7)最小能量差的计算是否正确。

(8)根据能量查找核素是否正确。

(9)净峰面积的计算是否有缺陷。

(10)检查谱线幅度放大时是否会出现异常。

四、概要设计

1、开发工具:

TurboC。

2、主要算法:

(1)、重心法:

选取加权因子和归一化因子,使光滑后的数据成为原来数据的重心。

常见的有5点和7点光滑。

5点法:

7点法:

(2)、简单比较法(极值定峰法、IF函数找峰法):

a、峰的定义:

满足,然后在datai-m至datai+m中找最大值道。

b、常用的:

5点、7点极大值法。

c、一般,用R=N0/Nb≥Rc确定峰是否有意义。

N0为净峰幅度与基底之和,Nb为基底计数,Rc为设定值。

d、k:

找峰阈值,根据高斯统计概率分布,一般k取值:

1—1.5。

峰的左右边界道i-L和i+R的确定:

(3)、线性本底法:

计算总面积:

计算本底面积:

计算净峰面积:

3、主程序的流程及各模块之间的关系。

五、详细设计

1、函数及变量定义:

#defineMAX_ELEMENT_NUM20

#defineScreenHeight480

#defineScreenWidth640

#defineLineHeight370

#defineLineWidth500

#defineLineLeftX((ScreenWidth-LineWidth)/2)

#defineLineRightX(LineLeftX+LineWidth)

#defineLineTopY40

#defineLineBottomY(LineTopY+LineHeight)

FILE*dataFile;

intgdriver,gmode;

unsignedlongdataTable[1024],maxVal;

intDisPos[500];/*实际显示的数据*/

intOriPos[500];/*未处理前的数据*/

intcursorX;

floatzoom;

unsignedintcursorChannel;

unsignedchardispLine;

unsignedcharenergyMarked,elementLoaded,SpectrumLoaded,peakSeeked,cursorPeakseeked;

intsmoothLevel=1,peakSeekLevel=9;

floata,b;/*能量刻度方程*/

charelement[MAX_ELEMENT_NUM][2];

unsignedcharnumOfElement,cursorElement;

floatelementEnergy[MAX_ELEMENT_NUM];

unsignedintpeakBound[MAX_ELEMENT_NUM][2];

unsignedlongelementArea[MAX_ELEMENT_NUM],elementNetArea[MAX_ELEMENT_NUM];

unsignedintcursorPeakBoundLeft,cursorPeakBoundRight;

unsignedlongcursorPeakArea,cursorPeakNetArea;

2、程序中用到的重要数据

(1)cursorEnergy=a+b*cursorChannel;

Channel:

%4dEnergy:

%7.4fMevCount:

%-6lu"cursorChannel,cursorEnergy,cursorCount;

(2)Channe=(energy-a)/b;

(3)cursorChannel=findPeakByChannel(cursorChannel);

cursorX=cursorChannel-300+LineLeftX;

cursorPeakBoundLeft=cursorLb;

cursorPeakBoundRight=cursorRb;

cursorPeakArea=cursorArea;

cursorPeakNetArea=cursorNetArea;

cursorPeakseeked=1;

peakSeeked=0;

3、函数的说明

(1)voidtextbackground(intcolor);//设置背景颜色:

voidtextcolor(intcolor);//设置字符颜色:

②数据-坐标转化函数

(2)设置屏幕为图形模式:

voidinitgraph(int*gdriver,int*gmode,char*path);

(3)画点函数

voidfarputpixel(intx,inty,intcolor);

该函数表示有指定的象素画一个按color所确定颜色的点。

Color为显示点的颜色,对x,y是指图形象元的坐标。

(4)voidfarline(intx0,inty0,intx1,inty1);//画一条从点(x0,y0)到(x1,y1)的直线

(5)voidfarrectangle(intx1,inty1,intx2,inty2);//以(x1,y1)为左上角,(x2,y2)为右下角画一个矩形框。

(6)voidfarfloodfill(intx,inty,intborder);

其中:

x,y为封闭图形内的任意一点。

border为边界的颜色,也就是封闭图形轮廓的颜色。

调用了该函数后,将用规定的颜色和图模填满整个封闭图形。

注意:

1.如果x或y取在边界上,则不进行填充。

2.如果不是封闭图形则填充会从没有封闭的地方溢出去,填满其它地方。

3.如果x或y在图形外面,则填充封闭图形外的屏幕区域。

4.由border指定的颜色值必须与图形轮廓的颜色值相同,但填充色可选任意颜色。

4、函数的调用关系图。

六、调试分析

1、调试过程中遇到的问题及解决对策

(1)Win7操作系统不支持wintc的运行功能,也不支持TurboC。

因为Win7操作系统不支持程序运行后的全屏显示。

解决对策:

下载DOSBox软件即可解决此问题。

(2)文件不能导入。

解决对策:

把文件与应用软件放在同一个文件里。

(3)界面不友好。

解决对策:

改动源程序代码再进行调试,一次次的尝试,最终确定看起来效果最好的界面。

(4)窗口切换后按任意键不能返回到主界面。

解决对策:

其实程序已经返回了主界面程序,还没显示。

在窗口切换程序后面在调用一次显示函数。

2、经验体会

编写程序时:

(1)确定大体框架。

用流程图或N-S图表示整个程序结构。

(2)搞清算法。

确定写此算法的最简单的编程语言。

(3)编写程序时,每编完一个功能马上进行调试(必要时加一些辅助代码),调试通过后再编写下一个功能,这样很容易将错误找出。

(4)不管多大的程序,只要一个功能一个功能的实现,都会完成的。

不要畏惧!

七、程序测试

1、测试的结果及解释分析

(1)启动应用程序时的界面显示:

显示要求输入谱文件名,输入‘quit’可对出程序。

(2)输入文件名后的显示:

屏幕上方显示的是软件操作说明请按‘h’键;横坐标是道值,纵坐标是计数;下方显示光标处的道值、能量和计数。

(3)按‘h’键后的显示(操作说明):

(4)刻度过后的显示:

选定峰处的面积和净峰面积以及光标处的能量都会显示在屏幕上。

(5)相应元素对应的能量、面积以及净峰面积:

八、用户手册

1、中文用户手册:

打开Spectrum.exe程序。

程序提示输入谱文件的名称,输入Gss5-6.mca或其他存在的文件名可进入主界面,若指定文件不存在将提示重新输入,输入quit则退出程序。

主界面操作:

按键功能

w和s上下缩放谱线

a和d左右移动光标

z和x快速移动光标

e载入元素文件

c载入标定文件

m执行谱线光滑

n计算峰面积(如果还未载入元素文件或标定文件,则会提示选择相应文件)

p在当前光标位置寻峰,如果找到,同时计算峰面积(显示在屏幕右上角)

r还原谱线到刚刚载入的状态

f将谱线数据以ASCII码文件存储(保存文件名为SPECTRUM.TXT)

h操作说明

q退出程序

1~3选择谱线光滑因子(1->3点光滑,2->5点光滑,3->7点光滑)

4~7选择寻峰宽度因子(4->M取3,5->M取4,6->M取5,7->M取6)

0和9点线切换

2、Englishusermanual:

Openspectrumprocessingapplications.

Programfileshintinputspectrum,inputGss5-6.mcaorotherexistingmaininterfacecanenterfilename,ifthespecifiedfiledoesnotexistwillente

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1