999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#與SAS混合編程——以學生成績評估可視化開發中的應用為例

2016-10-11 06:44:45李清妍楊詩捷談加穎
綠色科技 2016年16期
關鍵詞:可視化程序方法

徐 沁,李清妍,楊詩捷, 談加穎

(上海海洋大學信息學院, 上海 201306)

?

C#與SAS混合編程
——以學生成績評估可視化開發中的應用為例

徐 沁,李清妍,楊詩捷, 談加穎

(上海海洋大學信息學院, 上海 201306)

探討了Visual C#和SAS基于調用.bat文件的混合編程方法,通過編寫.bat文件、Visual C#調用.bat文件和Visual C#調用EXCEL等文件這3個步驟,形成了一種便利的編程方法,可以解決使用跨平臺軟件混合編程的問題。并且,將該方法在學生成績評估可視化開發中加以了應用,較好地驗證了C#與SAS混合編程的有效性和便利性。

Visual; C#; SAS; 混合編程; .bat文件

1 引言

現今處于大數據時代,人們對于數據的處理已從淺顯地統計分析躍升到挖掘其深層,試圖通過分析進行評估、預測演算、甚至是模擬實現。通過強大的數據統計軟件SAS可以精準地對數據進行分析計算。同時,可視化的界面開發則能以最淺顯的方式將數據處理和計算的結果以直觀、簡潔的方式展現在用戶面前。因此,在進行可視化開發的同時結合強大的專業統計分析軟件混合編程也是當下的主流之一。由于這兩者的專業性不同,使得許多研究者在混合編程的過程中困難重重。

因此,將兩者混合編程也是當今主流軟件等較多使用的方法。基于.net的交互式編程是很多混合編程的首選。但由于個人版本的SAS基本上沒有為用戶提供.net接口(沒有SAS/IT板塊),尤其是個人研究者進行可視化開發研究常常因此而困難重重。因此提出了通過C#調用.bat批處理的方法來實現C#和SAS的混合編程,這種方法可以非常簡單的實現兩者的混合編程。

2 Visual C#調用SAS程序的實現

2.1Visual C#、SAS和.bat文件簡介

(1)C#是微軟開發的一種面向對象的、運行于.NET Framework之上的高級程序設計語言;而Micrsoft Visual C#是微軟開發的C#編程集成環境。

(2)SAS是專業而強大的統計分析軟件。它是一個組合軟件系統,它由多個功能模塊組合而成。用戶可以通過編程使用SAS的不同模塊來完成不同的統計分析計算、繪圖、數據庫鏈接以及宏開發等。

(3).bat文件是windows下的批處理文件,為可執行文件。可以使用DOS下的Edit或者Windows的記事本等文本文件編輯工具創建和修改。使用.bat文件可以自動運行指定的程序。

2.2bat文件調用SAS程序的實現

非企業版的SAS一般不為用戶提供.NET接口,因此要使其與C#進行交互式連接需要通過SAS的宏編程來實現。這樣不僅編程難度高而且非常麻煩。因此,通過.bat的批處理文件的使用可以簡單的實現SAS與C#的混合編程。 .bat文件可以通過編輯和修改文本文件實現,在文本文件txt中輸入如下代碼:

@echo on

"D:SAS92SASFoundation9.2sas.exe" -sysin C:Users Desktopcx1.sas

"D:SAS92SASFoundation9.2sas.exe" -sysin C:Users Desktopcx2.sas

@echo off

然后將其保存為后綴是.bat的文件,這樣.bat文件就編寫完成了。 在.bat程序中echo on表示顯示此命令后的字符,echo off 表示在此語句后所有運行的命令都不顯示命令行本身,而@是加在每個命令行的最前面,表示運行時不顯示這一行的命令行,只能影響當前行。@echo on和@echo off是.bat文件的一般開頭和結尾的形式。在這中間的代碼便是要執行的自動調用命令。"D:SAS92SASFoundation9.2sas.exe"是執行打開在此路徑下sas.exe的命令; 而-sysin C:Users Desktopcx1.sas則表示運行此路徑下的已經編寫完成的SAS程序。

編寫好代碼之后只要將文本文檔的后綴.txt改為.bat,就完成了.bat文件的編寫。由于.bat是可執行文件,雙擊之后便能實現自動運行SAS的程序。同時,一個.bat文件可以有多條DOS的命令,即可以一次調用多個SAS程序;上述的編碼就同時調用了兩個SAS程序。

2.3C#調用.bat文件

C#是專門為.NET的應用而開發的語言,因此在C#中啟動外殼程序可以通過使用.NET 框架的Process類來簡單的完成。C#的可視化界面開發非常便利,基本只要對添加的控件編程即可;總體框架的編程是由Visual Studio自動完成編程的。 Process類在System.Diagnostics的命名空間下,因此要使用此類進行編程首先要在引用命名空間:using System.Diagnostics。在編程過程中首先使用ProcessStartInfo創建新的實例、設置參數,然后對實例調用start;通過這種方法來調用.bat文件。

在此有兩種編程的方法,一種是在控件之下編程,這種方法打開窗體時是不會自動調用.bat的,只有在點擊控件的情況下才會調用.bat。另一種方法便是在窗體下編程;這種方法在打開窗體時會自動調用.bat,并不需要控件來觸發。其調用.bat文件的主要代碼如下:

private void button1_Click / Form1_Load (object sender,EventArgs e)

{

ProcessStartInfo ps=new ProcessStartInfo("C: \Users\AnotherJ\Desktop\項目\bichuli2.bat");//實例一個對象,給他目標文件的地址。

ps.WindowStyle=ProcessWindowStyle.Hidden;//隱藏sas代碼運行的界面。

Process p1=Process.Start(ps);//運行之前的實例。

}

其中private void button1_Click是第一種調用方法,即點擊button1按鈕之后執行下面程序;而private void Form1_Load則是第二種調用方法,編寫在窗體代碼之下,打開窗體后自動執行下面程序。

通過Process類可以完成對.bat文件的調用,同時也可以隱藏外殼程序的運行過程,使界面比較美觀。

2.4C#調用.bat文件生成的EXCEL等文件

在使用SAS處理數據過程中,一般會將數據處理的結果會以各種格式(如EXCEL、PDF等)輸出。而使用 SAS與C#的混合編程就是要實現將SAS數據處理的結果以直觀、簡介的方式顯示在C#的可視化界面中。如下方法可以實現SAS程序處理結果的可視化可發。

對于一般的數據處理和作圖,EXCEL是 SAS輸出最多的文件格式之一。在C#中調用EXCEL文件有多種方法:可以采用OleDB讀取EXCEL文件;可以引用的COM組件;也可以用文件流讀取。此處主要介紹使用COM組件的方法來實現EXCEL的調用。

使用COM組件可以可以非常靈活的讀取Excel中的數據,方便進行復雜操作。在編程之前首先要將Excel的COM組件轉換為.NET組件:在項目中打開Add Reference對話框,選擇COM欄,之后在COM列表中找到“Microsoft Excel 9.0 Object Library”(Office 2000),然后將其加入到項目的References中即可;Visual C#.NET會自動產生相應的.NET組件文件。然后引用命名空間:using Excel = Microsoft.Office.Interop.Excel。其讀取主要代碼如下:

private void button1_Click(object sender, EventArgs e)

{ string[,] a = new string[44, 56];//建立數組,用于存儲excel數據。

EXCEL.Application app = new EXCEL.Application();//使用Excel.Application組件來訪問Excel

OpenFileDialog dlg = new OpenFileDialog();//實例化對象,獲取用戶選擇文件的所在目錄和文件名稱

if (dlg.ShowDialog() == DialogResult.OK)//對象選擇成功

{try

{ EXCEL.WorkbookxlsWorkBook=app.Workbooks.Open(dlg.FileName,Type.Missing,Type.Missing);//表示 Type 信息中的缺少值。使用 Missing 字段通過反射進行調用,以獲取參數的默認值。

EXCEL.Worksheet xlsWorkSheet = (EXCEL.Worksheet)xlsWorkBook.Sheets["Sheet1"];//解析excel的名為“Sheet1”的表格。

for (int i = 1; i < 45; i++)

{ for (int j = 1; j < 57; j++)

{ EXCEL.Range c1 = (EXCEL.Range)xlsWorkSheet.Cells[i, j];//left行,right列

EXCEL.Range xlsRang = (EXCEL.Range)xlsWorkSheet.get_Range(c1, c1);//獲取excel中(c1,c1)的值

a[i - 1, j - 1] = xlsRang.Text.ToString().Trim();//將excel中(c1,c1)的值存入數組,循環存入。}

}

}

}

}

通過這種方法讀取EXCEL文件可以進行查詢等復雜操作并顯示在datagridview中。

3 在學生成績評估可視化開發中的應用

3.1SAS與C#的混合編程

編程環境:SAS 9.2 Visual Studio2013 SQL。

筆者通過使用SAS軟件分析某一門課程多年情況和作圖,并通過C#可視化界面顯示其分析的結果來實現上文所述的SAS與C#混合編程。

第一步:使用SAS對原始數據表格進行編程處理,處理結果將成為PDF格式文件導出到指定路徑。 第二步: 使用記事本編寫.bat程序并存為.bat文件,文件名為cx.bat。 第三步:使用C#創建可視化窗口,在窗體代碼下使用的Process類編程,自動運行此.bat文件。 第四步:在窗體中的按鈕控件代碼下調用.bat運行后生成的SAS處理結果:查詢EXCEL并顯示成績和顯示pdf文件。其主要代碼如下:

private void asses_Load (object sender,EventArgs e)

{

ProcessStartInfo a=new ProcessStartInfo("C:\Users\AnotherJ\Desktop\ cx.bat");

a.WindowStyle=ProcessWindowStyle.Hidden;

Process p1=Process.Start(a);

}

private void button2_Click(object sender, EventArgs e)

{

DataClasses1DataContext db = new DataClasses1DataContext();

var results = from r in db.qianyue

where r._3 == this.textBox1.Text || r.id == 201

select r;

if (results != null)

{ foreach (qianyue r in results)

{ this.label3.Text = r._39+"%";

}

}

this.dataGridView1.DataSource = results;

dataGridView1.Refresh();

}

private void button1_Click(object sender, EventArgs e)

{

Process.Start("C:\Users\AnotherJ\Desktop\a\sasprt.pdf");

}

3.2運行結果

編譯有運行后會出現可視化窗體,在學號中輸入學號,并點擊“查詢”按鈕,將在dataGridView中顯示此同學的成績情況如圖1所示;在課程中輸入課程名,點擊“查詢”按鈕,將顯示此課程的箱線圖(即pdf文件)如圖2所示。

圖1學生成績情況

圖2 箱線圖PDF顯示

4 結語

經過探討Visual C#和SAS混合編程的具體方法和步驟,并將該方法在研究中加以應用。通過調用.bat文件解決了個人可視化開發研究中非企業版的SAS和C#無法通過.NET接口連接的問題。利用SAS強大的統計分析功能,Visual C#調用SAS能夠更便捷的實現統計分析的可視化開發。可滿足一般研究者的開發要求。

[1]劉克成, 張凌曉. C#程序設計[M]. 北京: 中國鐵道出版社,2011.

[2]胡良平, 胡純嚴. SAS語言基礎與高級編程技術[M]. 北京: 電子工業出版社,2014.

[3]Christian N, Jay G, Morgan S. C#高級編程:C# 5.0 & .NET 4.5.1[M].9版.北京: 清華大學出版社,2014.

[4]軟件開發技術聯盟. C#開發實戰[M]. 北京: 清華大學出版社,2013.

[5]蔡昭權. 數據挖掘中SAS和.NET系統的集成[J]. 計算機工程與設計, 2007(22): 5356~5358.

[6]胡雙,陸濤,胡建華. 基于Web服務的SAS與.NET系統集成開發研究[J]. 計算機與現代化, 2014(4): 126~129.

2016-06-27

上海海洋大學校級聯合大作業項目(編號:2015012)

徐沁(1995—),女,上海海洋大學信息學院學生。

鄭奕(1963—),男,教授,主要從事數理經濟和統計學方向的教學與科研工作。

TP313

A

1674-9944(2016)16-0251-04

猜你喜歡
可視化程序方法
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产视频欧美| 欧美在线国产| 久久狠狠色噜噜狠狠狠狠97视色| 极品国产在线| 国产簧片免费在线播放| 粉嫩国产白浆在线观看| 日韩少妇激情一区二区| 欧美日韩激情在线| 国产v精品成人免费视频71pao| 国产精品极品美女自在线看免费一区二区 | 欧洲av毛片| 欧美黄色网站在线看| 国内精品久久久久鸭| 亚洲欧美日韩综合二区三区| 99国产精品一区二区| 免费va国产在线观看| 国产在线无码av完整版在线观看| 色偷偷男人的天堂亚洲av| 无码人中文字幕| 青草免费在线观看| 欧美日韩一区二区三区在线视频| 麻豆精品在线| 女人18毛片水真多国产| 欧美日韩国产精品综合| 老司机午夜精品视频你懂的| 国产高清无码第一十页在线观看| 国产精品视频免费网站| 精品五夜婷香蕉国产线看观看| 免费看a毛片| 亚洲青涩在线| 国产一二视频| 亚洲无限乱码一二三四区| 亚洲色图狠狠干| 日本免费高清一区| 欧美一区中文字幕| 91色爱欧美精品www| 亚洲成人一区二区| 欧美a级在线| 国产人人干| 国产成人凹凸视频在线| 亚洲 欧美 中文 AⅤ在线视频| 波多野结衣视频网站| 天堂久久久久久中文字幕| 国产91九色在线播放| 99精品欧美一区| 国产精品不卡片视频免费观看| 精品久久国产综合精麻豆| 91在线激情在线观看| 久久久久青草大香线综合精品 | 99热这里只有精品免费| 久久无码av三级| 国产精品页| 欧美另类第一页| 亚洲综合中文字幕国产精品欧美| 最新国产午夜精品视频成人| 日本亚洲欧美在线| 精品少妇人妻无码久久| 国产亚洲精品资源在线26u| 国产女人在线观看| 欧美一级视频免费| 国产靠逼视频| 福利姬国产精品一区在线| 日本一区二区三区精品视频| 四虎免费视频网站| 亚洲AⅤ无码国产精品| 精品成人一区二区三区电影 | 国产在线第二页| 高清不卡毛片| 夜色爽爽影院18禁妓女影院| 亚洲欧美一区二区三区麻豆| 午夜视频www| 国产乱肥老妇精品视频| 亚洲欧美成人综合| 无码高潮喷水在线观看| 久久久久青草线综合超碰| 日韩无码黄色| 欧美色综合网站| 青草娱乐极品免费视频| 最近最新中文字幕在线第一页| 日本不卡视频在线| 国产一级毛片高清完整视频版| 久久伊人操|