基于GTK+的單詞數(shù)值計(jì)算器(共10頁(yè))_第1頁(yè)
基于GTK+的單詞數(shù)值計(jì)算器(共10頁(yè))_第2頁(yè)
基于GTK+的單詞數(shù)值計(jì)算器(共10頁(yè))_第3頁(yè)
基于GTK+的單詞數(shù)值計(jì)算器(共10頁(yè))_第4頁(yè)
基于GTK+的單詞數(shù)值計(jì)算器(共10頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上Linux綜合性實(shí)驗(yàn)報(bào)告一 實(shí)驗(yàn)題目:基于GTK+的單詞數(shù)值計(jì)算器二 實(shí)驗(yàn)任務(wù)要求:1、按照規(guī)則計(jì)算單詞的值,如果A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 26個(gè)字母(全部用大寫)的值分別為 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ,如WINJACK這個(gè)單詞的值就為W+I+N+J+A+C+K=23+9+14+10+1+3+11=71%HARDWORK= H+A+R+D+W+O+R+K = 8+1+18+4+23

2、+15+18+11 = 98%KNOWLEDGE=K+N+O+W+L+E+D+G+E = 11+14+15+23+12+5+4+7+5 = 96%LOVE=L+O+V+E=12+15+22+5=54%LUCK=L+U+C+K = 12+21+3+11 = 47%ATTITUDE=A+T+T+I+T+U+D+E = 1+20+20+9+20+21+4+5 = 100%2、程序的界面布局參考如下圖,在第一個(gè)單行文本框輸入一單詞,點(diǎn)擊“計(jì)算”按鈕,按照以上算法計(jì)算出該單詞的值。3、如果在最下面的單行文本框輸入一個(gè)文件路徑,此文件每行記錄一個(gè)單詞,那么經(jīng)過(guò)程序計(jì)算出各個(gè)單詞的值,并把結(jié)果輸出到當(dāng)前目錄

3、下result.txt文件中。如果文件不存在,應(yīng)該提示錯(cuò)誤。三 程序代碼:#include <gtk/gtk.h>#include <string.h>#include <stdlib.h>#include <stdio.h>GtkWidget *entry_value; GtkWidget *entry_file_path;GtkWidget *label_error;int get_value(char *String )/get the world's value int i,value=0,length = strlen(Stri

4、ng);for(i=0;i<length;i+)value=value+Stringi-64; /'A'=1return value;void button_ok_clicked(GtkWidget *widget,gpointer data) /the event action when /button_on was clickedconst char *input_file;/text of entry_file_pathFILE *source,*result;/pointer of source file and result filechar temp,arra

5、y100100; /source wordsint i,j,length;input_file=gtk_entry_get_text(GTK_ENTRY(GtkWidget *)data);/get file pathg_print("%sn",input_file);source=fopen(input_file,"r");if(!source)g_print("The file is not exist!");return;gtk_label_set_text(GTK_LABEL(GtkWidget *)label_error),

6、error_message);/if file can not be found show error messageelse g_print("success!");gtk_label_set_text(GTK_LABEL(GtkWidget *)label_error),success_message);for(i=0;i+)for(j=0;j+)temp = fgetc(source);if(temp=10)arrayij = '0'break;else if(temp=EOF)break;else arrayij=temp;if(temp=EOF)b

7、reak;length = i;result=fopen("/root/result.txt","w+");for(i=0;i<length;i+)g_print("%sn",arrayi);fprintf(result,"%dn",get_value(arrayi);fclose(result);fclose(source);void on_delete(GtkWidget *window,GdkEvent *event,gpointer data) /quit from main gtk_main_qui

8、t();void button_computing_clicked(GtkWidget *widget,gpointer data) /compute the value of thd word that was input in dataconst char *input_text;const char *output_text; input_text = gtk_entry_get_text(GTK_ENTRY(GtkWidget *)data);/get the word sprintf(output_text,"%d",get_value(input_text);/

9、get value of word and chang to String format gtk_entry_set_text(GTK_ENTRY(GtkWidget*)entry_value),output_text); /show the value on entry_valueint main(int argc,char * argv)GtkWidget *window;GtkWidget *label;GtkWidget *label_input;GtkWidget *label_value;GtkWidget *label_file_path;GtkWidget *entry_inp

10、ut;GtkWidget *button_computing;GtkWidget *button_ok;GtkWidget *vbox; GtkWidget *hbox_1;GtkWidget *hbox_2;GtkWidget *hbox_3;GtkWidget *hbox_4;GtkWidget *hbox_5;gtk_init(&argc,&argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window),"Value of Word!"

11、);gtk_container_set_border_width(GTK_CONTAINER(window),10);g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(on_delete),NULL);label_input = gtk_label_new("請(qǐng)輸入單詞:");label_value = gtk_label_new("該單詞的值");label_file_path = gtk_label_new("請(qǐng)輸入文件路徑:");label

12、_error = gtk_label_new("");button_computing = gtk_button_new_with_label("計(jì)算");button_ok = gtk_button_new_with_label("確定");entry_input = gtk_entry_new();entry_value = gtk_entry_new();entry_file_path = gtk_entry_new();vbox = gtk_vbox_new(FALSE,5);hbox_1 = gtk_hbox_new(TRU

13、E,2);hbox_2 = gtk_hbox_new(TRUE,2);hbox_3 = gtk_hbox_new(TRUE,2);hbox_4 = gtk_hbox_new(TRUE,2);hbox_5 = gtk_hbox_new(TRUE,2);gtk_box_pack_start(GTK_BOX(hbox_1),label_input,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(hbox_1),gtk_label_new(""),TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_2),ent

14、ry_input,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_2),button_computing,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(hbox_3),label_value,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_3),entry_value,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_4),label_file_path,TRUE,FALSE,0);gtk_box_pack_start(GTK_BO

15、X(hbox_4),gtk_label_new(""),TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_5),entry_file_path,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(hbox_5),button_ok,TRUE,TRUE,0);gtk_box_pack_start(GTK_BOX(vbox),hbox_1,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(vbox),hbox_2,TRUE,FALSE,0);gtk_box_pack_star

16、t(GTK_BOX(vbox),hbox_3,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(vbox),gtk_label_new(""),TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(vbox),hbox_4,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX(vbox),hbox_5,TRUE,FALSE,0);gtk_box_pack_start(GTK_BOX()vbox,label_error,TRUE,FALSE,0);g_signal_connect(G_OB

17、JECT(button_computing),"clicked",G_CALLBACK(button_computing_clicked),entry_input);g_signal_connect(G_OBJECT(button_ok),"clicked",G_CALLBACK(button_ok_clicked),entry_file_path);gtk_container_add(GTK_CONTAINER(window),vbox);gtk_widget_show_all(window);gtk_main();return 0;四 程序說(shuō)明及流程

18、圖:A、全局變量:GtkWidget *entry_value; /輸入單詞用的文本框GtkWidget *entry_file_path;/輸入文件名用的文本框GtkWidget *label_error;/顯示成功或錯(cuò)誤信息用的label部件B、相關(guān)函數(shù)說(shuō)明:int get_value(char *String );/計(jì)算給定單詞的值void button_ok_clicked(GtkWidget *widget,gpointer data)/ok按鈕按下void on_delete(GtkWidget *window,GdkEvent *event,gpointer data);/程序退出 void button_computing_clicked(GtkWi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論