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

下载本文档

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

文档简介

Linux综合性实验报告一 实验题目:基于GTK+的单词数值计算器二 实验任务要求:1、按照规则计算单词的值,如果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个字母(全部用大写)的值分别为 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这个单词的值就为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+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、程序的界面布局参考如下图,在第一个单行文本框输入一单词,点击“计算”按钮,按照以上算法计算出该单词的值。3、如果在最下面的单行文本框输入一个文件路径,此文件每行记录一个单词,那么经过程序计算出各个单词的值,并把结果输出到当前目录下result.txt文件中。如果文件不存在,应该提示错误。三 程序代码:#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_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,array100100; /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),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)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(source);void on_delete(GtkWidget *window,GdkEvent *event,gpointer data) /quit from main gtk_main_quit();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);/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_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_TOPLEVEL);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_new(请输入文件路径:);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_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,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_BOX(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_start(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_OBJECT(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;四 程序说明及流程图:A、全局变量:GtkWidget *entry_value; /输入单词用的文本框GtkWidget *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);/程序退出 void button_computing_clicked(GtkWidget *widget,gpointer data);/计算按钮按下C、流程图:(a)int get_value(char *String)对应的流程图:length=strlen(String)Endi=0value+=Stringi-64i+ilength?YN(b) void button_computing_clicked(GtkWidget *widget,gpointer data)对应流程图:BeginBeginget value of the wordinvoke get_value()show valueEndBegin(c) void button_ok_clicked(G

温馨提示

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

评论

0/150

提交评论