c语言高级编程技术课设,C语言高级编程课程设计报告.doc

C语言高级编程课程设计报告

目录

一.课程设计主要内容2

二.设计步骤2

三.图形模块设计3

1.基本窗口设计3

2.图形界面布局设计3

3.按钮设计4

四.功能模块设计4

(一)按钮功能4

(二)键盘功能5

五.设计结果及效果检验7

六.心得体会9

一.课程设计主要内容

使用C语言和GTK+图形库进行开发,计算器可以在装有GTK+运行环境的各种操作系统上运行;

实现标准型计算器上的四则运算功能(参考Window 7系统标准型计算器);

根据课程设计进度对程序功能进行扩展,

添加捕捉键盘事件功能,通过PC键盘的数字键盘也可以进行输入。

为计算器添加存储功能(MR、M+、M-等按键功能),实现完整的标准型计算器。

二.设计步骤

在设计图形界面计算器之前,我们首先要熟悉GTK+图形库,然后逐步从简单窗口的设计到图形界面的布局设计和按钮操作设计等,深化到综合设计于计算器,并在设计进度中,逐步完善计算器的功能。

程序流程图如下:

三.图形模块设计

1.基本窗口设计

首先在头文件里包含 库,然后声明变量,即声明一个指向GtkWidget 的指针类型的窗口,在初始化GTK+图形库后,就可以创建窗口,并显示。各步代码如下:

#include

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

{

GtkWidget *window ;//声明变量

gtk_init(&argc,&argv);//初始化GTK+ 图形库

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建一个标准的有框架窗口

gtk_widge_show(window);// 实际显示窗口

gtk_main();// 等待信号到来

return 0;

}

2.图形界面布局设计

在这个图形界面计算器设计中,我采用的是表。在使用表时,建立格来放入构件,构件可以占满我们所指定的所有空间。建立表格的函数是GtkWidget *gtk_table_new() ,函数原型是:GtkWidget *gtk_table_new(guint rows,guit columns,gboolean homogeneous);

第一个参数是表中要安排的行的数量,第二个是列的数量,homogeneous 参数跟表格框的大小处理有关。行与列为从0到n编号,n是我们在调用gtk_table_new 时所指定的值。然后向框中放置一个构件,使用 gtk_table_attach () 函数,函数原型是:

void gtk_table_attach(GtkTable *table,

GtkWidget *child,

guint left_attach,

guint right_attach,

guint top_attach,

guint bottom_attach,

GtkAttachOptions xoptions,

GtkAttachOptions yoptions,

guint xpadding,

guint xpadding,);

第一个参数(“table”)是已经创建的表格,第二个是要放入表里的构件(这这个计算器设计中放入表中的构件是按钮),left_attach和right_attach参数指定构件放置的位置。

3.按钮设计

要设计按钮首先要声明按钮变量,然后创建按钮,把按钮加入某个容器中。但是这样创建的按钮还不能具体使用,我们还要通过连接回调函数来实现按钮的作用。回调函数的原型通常如下:void a_callback_function(GtkWidget *widget ,gpointer user_data); 回调函数的连接函数如下:gulong g_signal_connect(gpointer *object,const gchar *name,GCallback func,gpointer user_data); 回调函数的连接传递的参数有构件、信号名、回调函数指针和你的任意指针。

四.功能模块设计

(一)按钮功能

计算器按钮功能是说通过按下计算器的按钮来接受数据,并计算得出结果,扑捉的是计算器的按钮功能。

1.数字键处理模块g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(on_num_

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值