课程设计---gtk图形界面编程-计算器的实现(编辑修改稿)内容摘要:

字做一下处理,使之成为浮点数,并且让后续数字也转换为相应的浮点数字,关键代码如下: void on_dot_clicked (GtkButton* button,gpointer data) { //当小数点按下时 gint i。 if(have_result) clear_all()。 //全部清除 if(have_dot == FALSE) //如果无小数点则可以 { have_dot = TRUE。 i = g_strlcat(number,.,100)。 gtk_entry_set_text(GTK_ENTRY(entry),number)。 } //如果有小数点则不输出 } 本计算器软件只有加减乘除 4种运算功能,这 4个运算按钮用了同一个回调函数,根据传递的参数设定当前的计算方法。 其关键代码如下: switch(GPOINTER_TO_INT(data)) { case 1: //当 +时 s = 1。 gtk_entry_set_text(GTK_ENTRY(entry),)。 first = FALSE。 count = 0。 break。 case 2: //当 时 s = 2。 gtk_entry_set_text(GTK_ENTRY(entry),)。 first = FALSE。 count = 0。 break。 case 3: //当 *时 GTK+图形界面编程 — 计算器的实现 第 8 页 共 22 页 s = 3。 gtk_entry_set_text(GTK_ENTRY(entry),)。 first = FALSE。 count = 0。 break。 case 4: //当 /时 s = 4。 gtk_entry_set_text(GTK_ENTRY(entry),)。 first = FALSE。 count = 0。 break。 } 等号按键处理模块 等号按钮的回调函数是根据当前的计算方法进行相应的运算,并将运算结果输出到单行输出控件中。 其关键代码如下: switch(s) //判断四则运算的符号 { case 1: //当 +时 numb = nn+mm。 break。 case 2: //当 时 numb = nnmm。 break。 case 3: //当 *时 numb = nn*mm。 break。 case 4: //当 /时 numb = nn/mm。 break。 } 清除模块 清除按钮的功能是清除当前显示,同时清除所有标记,将标记设为默认等。 关键代码如下: void clear_all (void) { //清除所有相关标记 GTK+图形界面编程 — 计算器的实现 第 9 页 共 22 页 gint i。 gtk_entry_set_text(GTK_ENTRY(entry),)。 nn = 0。 //第 一个数清零 mm = 0。 //第二个数清零 s = 0。 count = 0。 first = TRUE。 have_dot = FALSE。 //小数点标记 have_result = FALSE。 //结果标记 for(i = 0。 i 100。 i++) number[i] = 39。 \039。 } 4 系统功能测试 一个 Helloworld 窗口 本例子是使用 GTK+ 编写一个 的程序,用以显示一个窗口,并且在这个窗口的标题栏上显示字符串 “Hello, world。 ”。 程序截图如图 41。 图 41 使用 vim 编写 GTK+图形界面编程 — 计算器的实现 第 10 页 共 22 页 运行 gcc Wall o helloworld `pkgconfig cflags libs gtk+`命令编译后,执行 ./helloworld 出现窗口,如图 42 所示。 图 42 Helloworld 窗口 计算器功能测试 (1)计算器主界面,如图 43 所示。 图 43 计算器主界面 GTK+图形界面编程 — 计算器的实现 第 11 页 共 22 页 (2)加法运算演示: 55+346=401,如图 4 4 46 所示。 图 44 输入 55 图 45 输入 346 图 46 按下等号得出结果 GTK+图形界面编程 — 计算器的实现 第 12 页 共 22 页 ( 2)乘法运算演示: 321*22=7062,如图 4 4 49 所示。 图 47 输入 321 图 48 输入 22 图 49 按下等号输出结果 ( 3)除法运算演示: 100/3=,如图 4 41 412 所示。 GTK+图形界面编程 — 计算器的实现 第 13 页 共 22 页 图 410 输入 100 图 411 输入 3 图 411 按下等号输出结果 GTK+图形界面编程 — 计算器的实现 第 14 页 共 22 页 5 课程设计总结 通过两周周的数据结构课程设计, 我顺利 的 完成了 Linux平台下图形界面 —— 计算器设计 的课程设计。 感觉在这次课程设计中自己受益匪浅,不仅将以前在课堂上学到的东西从新又巩固了一遍,并且又有所创新,将数据结构的知识与 Linux知识相结合,做出了功能丰富的应用程序,还有就是同时发现了以前的不足,及时的弥补。 在 课程 设计中遇见的课题中的很多技术问题, 当然要感谢邓 老师能给予认真的指导,并培养我们独立自立的能力,让我们对自学能力有了很高的提高,在各方面,提高了我们的主动积极性。 同时也要 谢谢同学 们 的相互帮助,感谢有了这些,我才能很好的顺利的完成我的这次课程设计。 GTK+图形界面编程 — 计算器的实现 第 15 页 共 22 页 参考文献 [1]宋国伟 .《 GTK+ 编程范例 》北京:清华大学出版社, [2]谭诰强 .《 C 程序设计》北京:清华大学出版社, [3]Kurt Wall et (第二版)北京:清华大学出版社, [4]严蔚敏,吴伟民 .《数据结构》 (C 语言版 ) 北京:清华大学出版, GTK+图形界面编程 — 计算器的实现 第 16 页 共 22 页 源程序清单: include gtk/ include static GtkWidget *entry。 //定义单行输入控件来显示输入输出的数字 gint count = 0。 //计位 gdouble nn = 0。 //计数一 gdouble mm = 0。 //计数二 gint s = 0。 //算法 gboolean first = TRUE。 //首次输入 gboolean have_dot = FALSE。 //是否有小数点 gboolean have_result = FALSE。 //是否有结果输出 gchar number[100]。 //保存用户 输入的数字 void clear_all (void) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。