文档介绍: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、如果在最下面的单行文本框输入一个文件路径,此文件每行记录一个单词,那么经过程序计算出各个单词的值,。如果文件不存在,应该提示错误。
三 程序代码:
#include <gtk/>
#include <>
#include <>
#include <>
GtkWidget *entry_value;
GtkWidget *entry_;
GtkWidget *label_error;
int get_value(char *String ) //get the world's value
{
int i,value=0,length = strlen(String);
for(i=0;i<length;i++)
{
value=value+String[i]-64; //'A'=1
}
return value;
}
void button_ok_clicked(GtkWidget *widget,gpointer data) //the event action when //button_on was clicked
{
const char *input_ of entry_
FILE *source,*result;//pointer of source result file
char temp,array[100][100]; //source words
int i,j,length;
input_(GTK_ENTRY((GtkWidget *)data));//get
g_print("%s\n",input_file);
source=fopen(input_file,"r");
if(!source)
{
g_print("The not exist!!!");
return;
gtk_label_set_text(GTK_LABEL((GtkWidget *)label_error),error_message);
}//if not be found show error message
else
{
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) {array[i][j] = '\0';break;}
else if(temp==EOF) break;
else array[i][j]=temp;
}
if(temp==EOF) break;
}
length = i;
result=fopen("/root/","w+");
for(i=0;i<length;i++)
{
g_print("%s\n",array[