基于GTK+的单词数值计算器_第1页
基于GTK+的单词数值计算器_第2页
基于GTK+的单词数值计算器_第3页
基于GTK+的单词数值计算器_第4页
基于GTK+的单词数值计算器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、Linux综合性实验报告实验题目:基于GTK+的单词数值计算器二实验任务要求:1 按照规则计算单词的值,如果 ABC D EFGH I J K L M N O P Q R S T U V WXYZ26个字母(全部用大写)的值分别为 1 2 34 5 6 78 9 10 11 12 13 14 15 16 17 18 1920 21 2223 24 25 26,如WINJACK 这个单词的值就为 W+l+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+15+18+11 = 98%KNOWLEDGE=

2、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、程序的界面布局参考如下图,在第一个单行文本框输入一单词,点击“计算” 按钮,按照以上算法计算出该单词的值。J ii3、如果在最下面的单行文本框输入一个文件路径,此文件每行记录一个单词,那么经过程序计算出各个单词的值,并把结果输出到当前目录下result.txt 文件中。如果文件

3、不存在,应该提示错误。三 程序 代码:#include #include #include #include GtkWidget *entry_value;GtkWidget *entry_file_path;GtkWidget *label_error;int get_value(char *String ) /get the worlds value int i,value=0,length = strlen(String); for(i=0;ilength;i+) value=value+Stringi-64; /A=1return value;void button_ok_clicke

4、d(GtkWidget /button_on was clicked const char *input_file;/textFILE *source,*result;/pointer char temp,array100100; int i,j,length;*widget,gpointerof entry_file_path of source file/source wordsinput_file=gtk_entry_get_text(GTK_ENTRY(GtkWidgetg_print(%sn,input_file);data) /the event actionand result

5、file*)data);/getfilewhenpathsource=fopen(input_file,r); if(!source) g_print(The file is not exist!); return;gtk_label_set_text(GTK_LABEL(GtkWidget *)label_error),error_message); /if filecan not be found show errormessageelse g_print(success!); gtk_label_set_text(GTK_LABEL(GtkWidget *)label_error),su

6、ccess_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) break;length = i;result=fopen(/root/result.txt,w+); for(i=0;ilength;i+) g_print(%sn,arrayi); fprintf(result,%dn,get_value(arrayi);fclose(result); fclose

7、(source);void on_delete(GtkWidget *window,GdkEvent *event,gpointer data) /quit main gtk_main_quit();void button_computing_clicked(GtkWidget *widget,gpointer data) /compute value of thdword that was input in dataconst char *input_text;const char *output_text;input_text = gtk_entry_get_text(GTK_ENTRY(

8、GtkWidget *)data);/get wordsprintf(output_text,%d,get_value(input_text);/getchang to String formatvalue of wordandfromthethe/showgtk_entry_set_text(GTK_ENTRY(GtkWidget*)entry_value),output_text); the value on entry_valueint main(int argc,char * argv) GtkWidget *window;GtkWidget *label;GtkWidget *lab

9、el_input;GtkWidget *label_value;GtkWidget *label_file_path;GtkWidget *entry_input;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_TOPLEV

10、EL); gtk_window_set_title(GTK_WINDOW(window),Value of Word!); 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( 请输入单词: ); label_value = gtk_label_new( 该单词的值 ); label_file_path = gtk_label_n

11、ew( 请 输 入文件路径: );label_error= gtk_label_new();button_computing = gtk_button_new_with_label(计 算);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(TRUE,2); hbox

12、_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),entry_input,TRUE,FAL

13、SE,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_BOX(hbox_4),gt

14、k_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_start(GTK_BOX(vbox),hbox_3

15、,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_OBJECT(button_computing),clicked

16、,G_CALLBACK(button_com puting_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;四程序 说明及流程图:A、全局变量:GtkWidget *entry_value; / 输入单词用的文本 框GtkWid

17、get *entry_file_path;/输 入文件名用的文本框GtkWidget *label_error;/显示 成功或错误信息用的 label 部件B相关函数说明:int get_value(char *String );/ 计算给定单词的值void button_ok_clicked(GtkWidget *widget,gpointer data)/ok 按钮按下 void on_delete(GtkWidget *window,GdkEvent *event,gpointer data);/ 程序退出C流程图:intget_value(char*String)对应的流程图:(b) voidbutt on _comput in g_clicked(Gt

温馨提示

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

评论

0/150

提交评论