linux课程设计源代码,Linux课程设计代码.doc

#includeconst char *my_window_title;

GtkWidget *input_words_label;

GtkWidget *dialog;

GtkWidget *input_dir_label;

GtkWidget *answer_label;

GtkWidget *input_words_entry;

GtkWidget *input_dir_entry;

GtkWidget *answer_entry;

GtkWidget *btn_cal_words;

GtkWidget *btn_cal_dir;

GtkWidget *table;

GtkWidget *window;

void layout_ctrls();

void dis_answer(GtkWidget *widget, gpointer data);

void out_answer(GtkWidget *widget, gpointer data);

#endif

void dis_answer(GtkWidget *widget, gpointer data) {

const char *words, *answer;

int sum = 0, i, len;

words = gtk_entry_get_text(GTK_ENTRY(input_words_entry));

len = strlen(words);

for(i = 0; i < len; ++i) {

if(words[i] >= A && words[i] <= Z)

sum += words[i] - A + 1;

}

answer = (char*)g_strdup_printf("%d%%", sum);

gtk_entry_set_text(GTK_ENTRY(answer_entry), answer);

}

void out_answer(GtkWidget *widget, gpointer data) {

FILE *fp_write, *fp_read;

const char *file_name = "./result.txt", *dir, *answer;

int sum = 0;

char ch;

dir = gtk_entry_get_text(GTK_ENTRY(input_dir_entry));

if((fp_write = fopen(file_name, "at")) == NULL) {

fp_write = fopen(file_name, "w");

fclose(fp_write);

fp_write = fopen(file_name, "at");

}

if((fp_read = fopen(dir, "rt")) == NULL) {

dialog = gtk_message_dialog_new(GTK_WINDOW(window),GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "This directory is not exist.");

gtk_window_set_title(GTK_WINDOW(dialog), "Warning");

} else {

while(~fscanf(fp_read, "%c", &ch)) {

if(ch <= Z && ch >= A)

sum += ch - A + 1;

}

fclose(fp_read);

answer = (char*)g_strdup_printf("%d%%\n", sum);

fprintf(fp_write, "File :%s \tsum values :%s", dir, answer);

dialog = gtk_message_dialog_new(GTK_WINDOW(window),GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Done into \"Result.txt\" successfully!");

gtk_window_set_title(GTK_WINDOW(dialog), "Congratulations");

}

gtk_dialog_run(GTK_DIALOG(dialog));

gtk_widget_destroy(dialog);

fclose(fp_write);

}

void layout_ctrls() {

//initialize window

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

my_window_title = "Calculate the value sum of all words.";

gtk_window_set_title(GTK_WINDOW(window),my_window_title);

gtk_window_set_default_size(GTK_WINDOW(window), 400, 250);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

gtk_container_set_border_width(GTK_CONTAINER(window), 10);

g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);

//initialize table

table = gtk_table_new(6, 4, 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);

//initialize input_words_label

input_words_label = gtk_label_new("Please input words:");

gtk_table_attach_defaults(GTK_TABLE(table), input_words_label, 0, 1, 0, 1);

//initialize input_words_entry

input_words_entry = gtk_entry_new();

gtk_table_attach_defaults(GTK_TABLE(table), input_words_entry, 0, 3, 1, 2);

//initialize btn_cal_words

btn_cal_words = gtk_button_new_with_label("Calculate");

gtk_table_attach_defaults(GTK_TABLE(table), btn_cal_words, 3, 4, 1, 2);

g_signal_connect(G_OBJECT(btn_cal_words), "clicked", G_CALLBACK(dis_answer), NULL);

//initialize answer_label

answer_label = gtk_label_new("sum values:");

gtk_table_attach_defaults(GTK_TABLE(table), answer_label, 0, 1, 2, 3);

//initialize answer_entry

answer_entry = gtk_entry_new();

gtk_editable_set_editable(GTK_EDITABLE(answer_entry), FALSE);

gtk_table_attach_defaults(GTK_TABLE(table), answer_entry, 1, 3, 2, 3);

//initialize input_dir_label

input_dir_label = gtk_label_new("Input a directory:");

gtk_table_attach_defaults(GTK_TABLE(table), input_dir_label, 0, 1, 4, 5);

//initialize input_dir_entry

input_dir_entry = gtk_entry_new();

gtk_table_attach_defaults(GTK_TABLE(table), input_dir_entry, 0, 3, 5, 6);

//initialize btn_cal_dir

btn_cal_dir = gtk_button_new_with_label("Cal to File");

gtk_table_attach_defaults(GTK_TABLE(table), btn_cal_dir, 3, 4, 5, 6);

g_signal_connect(G_OBJECT(btn_cal_dir), "clicked", G_CALLBACK(out_answer), NULL);

gtk_widget_show_all(window);

}

//main

int main(int argc, char *argv[]) {

gtk_init(&argc, &argv);

layout_ctrls();

gtk_main();

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值