基于GTK+的单词数值计算器

来源:互联网 发布:淘宝一年营业额 编辑:程序博客网 时间:2024/06/06 10:55

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,如:

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.在程序界面第一个单行文本框输入一单词,单击“计算” 按钮,按照以上算法计算出该单词的值。

void jsw(GtkWidget *widget,gpointer data){GtkWidget *dialog;char num[10];int length = 0,i,sum = 0,flag = 1;length=strlen((char *)data);for(i = 0;i<length;i++){if(((char *)data)[i] < 64 ||((char *)data)[i] > 90){flag = 0;break;}sum=sum+((char *)data)[i]-64;}if(flag == 0){dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_WARNING,GTK_BUTTONS_OK,"请输入大写字母!");gtk_dialog_run(GTK_DIALOG(dialog));gtk_widget_destroy(dialog);}else{sprintf(num,"%d",sum);gtk_entry_set_text(GTK_ENTRY(value_entry),strcat(num,"%"));}}int count(char word[]){int i = 0,length = 0,value = 0;length=strlen(word);for(i = 0; i<length-1;i++){value = value+word[i]-64;}return value;}void jsf(GtkWidget *Widget,gpointer data){GtkWidget *dialog;FILE *read,*write;char word[50];char num[10];int i = 0,value = 0;if((read=fopen(((char *)data),"r")) == NULL){dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_WARNING,GTK_BUTTONS_OK,"文件不存在!");gtk_dialog_run(GTK_DIALOG(dialog));gtk_widget_destroy(dialog);return ;}if((write=fopen("result.txt","w")) == NULL){printf("无法打开此文件。\n");return ;}while(fgets(word,50,read)!=NULL){value=count(word);sprintf(num,"%d",value);strcat(num,"%");fputs(num,write);fputs("\n",write);}dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_WARNING,GTK_BUTTONS_OK,"结果已保存。");gtk_dialog_run(GTK_DIALOG(dialog));gtk_widget_destroy(dialog);fclose(read);fclose(write);}int main(int argc,char *argv[]){GtkWidget *window,*word_button,*file_button;GtkWidget *labelword,*labelvalue,*labelfile,*labelspace;GtkWidget *word_entry,*file_entry;GtkWidget *hboxw,*hboxv,*hboxp,*hboxf,*vboxall;gtk_init(&argc,&argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_default_size(GTK_WINDOW(window),300,200);gtk_window_set_title(GTK_WINDOW(window),"单词值计算器");g_signal_connect(G_OBJECT(window),"delete event",G_CALLBACK(closeApp),NULL);labelword = gtk_label_new("输入单词:");labelvalue = gtk_label_new("值:");labelfile = gtk_label_new("文件路径:");labelspace = gtk_label_new("                  ");word_button = gtk_button_new_with_label("计算");file_button = gtk_button_new_with_label("计算");word_entry = gtk_entry_new();value_entry = gtk_entry_new();file_entry = gtk_entry_new();g_signal_connect(G_OBJECT(word_button),"clicked",G_CALLBACK(jsw),(gpointer)gtk_entry_get_text(GTK_ENTRY(word_entry)));   g_signal_connect(G_OBJECT(file_button),"clicked",G_CALLBACK(jsf),(gpointer)gtk_entry_get_text(GTK_ENTRY(file_entry)));hboxw=gtk_hbox_new(FALSE,2);hboxv=gtk_hbox_new(FALSE,2);hboxp=gtk_hbox_new(TRUE,1);hboxf=gtk_hbox_new(FALSE,2);vboxall=gtk_vbox_new(FALSE,3);gtk_box_pack_start(GTK_BOX(hboxw),labelword,TRUE,TRUE,2);gtk_box_pack_start(GTK_BOX(hboxw),word_entry,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxv),labelvalue,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxv),value_entry,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxv),word_button,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxp),labelfile,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxp),labelspace,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxf),file_entry,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(hboxf),file_button,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(vboxall),hboxw,TRUE,TRUE,2);gtk_box_pack_start(GTK_BOX(vboxall),hboxv,TRUE,FALSE,2);gtk_box_pack_start(GTK_BOX(vboxall),hboxp,TRUE,TRUE,1);gtk_box_pack_start(GTK_BOX(vboxall),hboxf,TRUE,FALSE,2);gtk_container_add(GTK_CONTAINER(window),vboxall);gtk_widget_show_all(window);gtk_main();return 0;}


0 0
原创粉丝点击