📄 hanshu.c
字号:
#include "head.h"
void layout()//创建界面
{
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window),400,400);
gtk_container_set_border_width(GTK_CONTAINER(window),10);
g_signal_connect(G_OBJECT(window),"delete_event"
,G_CALLBACK(gtk_main_quit),NULL);
table=gtk_table_new(6,3,TRUE);
gtk_table_set_row_spacings(GTK_TABLE(table),2);
gtk_table_set_col_spacings(GTK_TABLE(table),2);
gtk_container_add(GTK_CONTAINER(window),table);
//label1
label1=gtk_label_new("请输入单词:");
gtk_table_attach_defaults(GTK_TABLE(table),label1,0,2,0,1);
//entry1
entry1=gtk_entry_new_with_max_length(1000);
gtk_table_attach_defaults(GTK_TABLE(table),entry1,0,3,1,2);
//get_button
get_button=gtk_button_new_with_label("计算");
g_signal_connect(G_OBJECT(get_button),"clicked"
,G_CALLBACK(on_caculate),NULL);
gtk_table_attach_defaults(GTK_TABLE(table),get_button,3,4,1,2);
//entry2
entry2=gtk_entry_new_with_max_length(100);
gtk_table_attach_defaults(GTK_TABLE(table),entry2,1,3,2,3);
//label2
label2=gtk_label_new("该单词值:");
gtk_table_attach_defaults(GTK_TABLE(table),label2,0,1,2,3);
//label3
label3=gtk_label_new("请输入文件路径:");
gtk_table_attach_defaults(GTK_TABLE(table),label3,0,3,4,5);
//entry3
entry3=gtk_entry_new_with_max_length(100);
gtk_table_attach_defaults(GTK_TABLE(table),entry3,0,3,5,6);
//yes_button
yes_button=gtk_button_new_with_label("确定");
g_signal_connect(G_OBJECT(yes_button),"clicked",
G_CALLBACK(on_yes),NULL);
gtk_table_attach_defaults(GTK_TABLE(table),yes_button,3,4,5,6);
gtk_widget_show_all(window);
}
void on_yes(GtkButton *widget,gpointer data)//读文件求单词值并写文件
{
int i=0,j=0;
char *lab;
FILE *fp;
number=0;
result=0;
if (read_file((char *)gtk_entry_get_text(GTK_ENTRY(entry3)))==1)
{
fp=fopen("result.txt","w");
while (i<number)
{
for (j=0,result=0;tmp[i][j]!='\0' ;j++ )
{
if (tmp[i][j]>='A' && tmp[i][j]<='Z')
{
result=result+(tmp[i][j]-64);
}
else
{
fclose(fp);
g_print("出现非法字符!\n");
return;
}
}
i++;
lab=(char *)g_strdup_printf("%d%c",result,37);
fprintf (fp,"%s\n",lab);
}
fclose(fp);
}
}
void on_caculate(GtkButton *widget,gpointer data)
//计算按钮事件处理程序
{
const char *word = (char *)gtk_entry_get_text(GTK_ENTRY(entry1));
int i=0;
char *lab;
result=0;
if (strcmp("",word)==0)
{
g_print("未输入单词,请输入!\n");
}
else
{
while (word[i]!='\0')
{
if (word[i]>='A' && word[i]<='Z')
{
result = result + (word[i]-64);
}
else
{
g_print("输入非法字符!\n");
return;
}
i++;
}
lab=(char *)g_strdup_printf("%d%c",result,37);
gtk_entry_set_text(GTK_ENTRY(entry2),lab);
}
}
int read_file(char *path)//读文件
{
FILE *fp;
char ch;
int i=0,j=0;
if ((fp=fopen(path,"r"))==NULL)
{
g_print("找不到该文件!\n");
return 0;
}
else
{
while ((ch=fgetc(fp)) != EOF)
{
if (ch == '\n')
{
if (tmp[i][0]!='\0')
{
tmp[i][j]='\0';
i++;
j=0;
}
}
else
{
tmp[i][j]=ch;
j++;
}
}
number = i;
fclose(fp);
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -