C语言高级编程课程设计报告
- 格式:doc
- 大小:868.00 KB
- 文档页数:11
c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。
2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。
3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。
4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。
技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。
2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。
3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。
4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。
2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。
3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。
4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。
课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。
学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。
教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。
2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。
3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。
二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。
c语言课程设计报告文档一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量定义、数据类型、运算符、表达式等基本概念;2. 学会使用C语言进行顺序结构、分支结构、循环结构的编程,并能运用这些结构解决实际问题;3. 掌握C语言数组和字符串的使用,熟练运用数组进行数据处理;4. 了解C语言函数的定义与调用,学会编写简单的函数,理解函数参数、返回值等概念;5. 了解C语言指针的基本概念,学会使用指针进行内存操作和数据传递。
技能目标:1. 培养学生运用C语言编程解决实际问题的能力;2. 培养学生具有良好的编程习惯,如代码规范、注释清晰等;3. 提高学生调试程序、查找并解决问题的能力;4. 培养学生团队协作能力,学会与他人共同完成项目。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神;2. 培养学生面对编程困难时,具有坚持不懈、勇于克服的品质;3. 增强学生的自信心,使其在编程实践中感受到成就感;4. 引导学生认识到编程对于社会发展的重要性,培养其社会责任感。
本课程旨在让学生掌握C语言的基本知识和技能,培养其编程思维和解决问题的能力,同时注重培养其情感态度价值观,使其成为具有全面素质的计算机编程人才。
在教学过程中,根据学生的年龄特点和认知水平,采用任务驱动的教学方法,以实例为主线,引导学生主动参与、探究学习。
通过课程学习,使学生能够具备一定的编程基础,为后续学习打下坚实基础。
二、教学内容本章节教学内容围绕C语言基础知识,结合课程目标,制定以下教学大纲:1. C语言概述- 了解C语言发展史、特点和应用领域;- 掌握C语言程序的基本结构。
2. 数据类型、变量和常量- 学习基本数据类型(整型、浮点型、字符型);- 掌握变量的定义、赋值和作用域;- 理解常量的概念及其使用。
3. 运算符与表达式- 掌握算术、关系、逻辑运算符及其优先级;- 学习表达式的构成和计算。
4. 顺序结构程序设计- 学习C语言程序的基本输入输出函数;- 编写简单的顺序结构程序。
C语言课程设计设计报告书一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量声明、数据类型、运算符、表达式等基本概念。
2. 学会使用C语言进行顺序结构、分支结构和循环结构的编程。
3. 掌握函数的定义、声明和调用,理解局部变量和全局变量的作用域。
4. 了解数组、指针和字符串的使用,能够运用它们解决实际问题。
技能目标:1. 培养学生编写、编译和调试C程序的能力,提高编程技巧。
2. 培养学生运用C语言解决实际问题的能力,如数值计算、数据处理等。
3. 培养学生分析问题、设计算法和编写程序的能力,提高逻辑思维能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,提高自主学习能力。
2. 培养学生合作学习、分享经验的精神,提高团队协作能力。
3. 培养学生严谨、认真、负责的学习态度,养成良好编程习惯。
课程性质:本课程为高中年级C语言课程,以实践为主,注重培养学生的编程能力和逻辑思维能力。
学生特点:高中年级学生对计算机编程有一定的基础,好奇心强,学习积极性较高,但需加强实践操作和问题分析能力的培养。
教学要求:结合课程内容和学生特点,采用任务驱动、案例教学等方法,引导学生主动探究、动手实践,提高编程技能和解决问题的能力。
同时,注重培养学生良好的编程习惯和团队合作精神。
通过本课程的学习,使学生能够具备C 语言编程的基本能力,为后续计算机课程学习打下坚实基础。
二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式。
教材章节:第一章2. 控制结构:顺序结构、分支结构(if语句、switch语句)、循环结构(for循环、while循环、do-while循环)。
教材章节:第二章3. 函数:函数定义、声明、调用;局部变量和全局变量;递归函数。
教材章节:第三章4. 数组:一维数组、二维数组;数组的初始化、遍历和排序。
教材章节:第四章5. 指针:指针的定义与使用;指针与数组、字符串、函数的关系。
课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。
学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。
在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。
《高级语言程序设计》课程设计报告姓名:学号:班级:设计时间:审阅教师:目录一.封面 (1)二.目录页 (2)三.语言描述及截图…………………………………………3—— 5 四.源程序清单………………………………………………6——29(报告正文部分的格式):(要求:正文部分一律用五号字,宋体,单倍行距。
一级大标题靠左,四号,宋体,加粗。
二级大标题靠左,小四,宋体,不加粗。
)课程设计的内容如下:一. 课程设计的目的与要求(含设计指标)(参见课程设计要求)二. 方案实现与调试2.1分屏处理数据系统•2.1.1 题目内容的描述•2.1.2 应用程序功能的详细说明•2.1.3 输入数据类型、格式和内容限制;•2.1.4主要模块的算法描述每次主循环产生一屏10*10的数组,分别两两比较2个元素的大小,较大的赋给MAX,较小的赋给MIN,各个元素累加结果除以100输出平均数。
结尾清屏以达到翻页效果.2.1.5 调试过程及实验结果2.2掷骰子游戏•2.2.1 题目内容的描述•2.2.2 应用程序功能的详细说明•2.2.3 输入数据类型、格式和内容限制;•2.2.4主要模块的算法描述产生1到6的随机数赋给1个包含4个元素的数组,如果前后两个数字大小一样且都为6则选手得8分,若前后两个数字大小一样但不为6则选手得7分,若果前后数字不一样,则按较小数计分。
分别将2个选手的得分相加,比较总分,得到最后结果.2.2.5 调试过程及实验结果2.3射击游戏产生一个1到200的随机数,输出相应数量空格,然后紧接着输出笑脸。
利用循环逐行输出空格回车,在笑脸下方底部输出星号,利用空循环延时,以达到星号上移的效果.若用户输入数字与产生的随机数相同,星号击中笑脸,玩家获胜,游戏结束。
若5次都错,玩家失败,游戏结束2.6猜数字游戏利用数组存放产生的随机数,创建一个TXT文本文档,将游戏过程中的所有数据写入其中.比较用户输入的数字和最开始随机产生的答案,输出猜对的个数和位置。
c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
c语言课程设计报告一、课程目标知识目标:1. 让学生掌握C语言的基本语法,包括变量声明、数据类型、运算符、控制结构等;2. 培养学生运用C语言进行程序设计的能力,学会编写简单的程序解决实际问题;3. 使学生了解C语言中的数组、函数和指针等高级概念,并能够灵活运用。
技能目标:1. 培养学生熟练使用C语言编程环境,如Turbo C或Visual Studio等;2. 提高学生的编程技巧,使其能够编写具有逻辑性和可读性的代码;3. 培养学生独立分析问题、设计程序解决问题的能力。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动探索、自主学习的精神;2. 培养学生严谨、细心的学习态度,使其认识到编程过程中细节的重要性;3. 强调团队协作和交流分享,提高学生的沟通能力和团队意识。
分析课程性质、学生特点和教学要求:1. 课程性质:C语言课程属于信息技术学科,具有实践性和应用性强的特点;2. 学生特点:学生为初中生,具有一定的逻辑思维能力和计算机操作基础,但编程经验不足;3. 教学要求:结合学生特点,注重理论与实践相结合,以实例教学为主,引导学生动手实践。
1. 熟练运用C语言编写简单的程序;2. 掌握C语言的基本语法和编程技巧;3. 提高编程兴趣,形成自主学习、团队协作的良好习惯。
二、教学内容1. C语言基础知识:- 变量与常量的概念及其声明- 数据类型:整型、浮点型、字符型- 运算符:算术、关系、逻辑、赋值运算符- 控制结构:顺序结构、选择结构、循环结构2. 函数与数组:- 函数的定义、声明和调用- 数组的定义、初始化和使用- 一维数组、二维数组的操作3. 指针与字符串:- 指针的概念、声明与使用- 指针与数组的关系- 字符串的基本操作4. 编程技巧与实践:- 编程规范与命名规则- 代码调试与优化- 简单算法的实现(如排序、查找)5. 综合案例分析与编程实践:- 结合实际案例,运用所学知识进行程序设计- 针对不同案例,分析问题、设计算法、编写程序- 案例包括:计算器、成绩管理系统、小游戏等教学内容安排与进度:1. C语言基础知识(2周)2. 函数与数组(2周)3. 指针与字符串(2周)4. 编程技巧与实践(1周)5. 综合案例分析与编程实践(3周)教材章节关联:1. C语言基础知识:教材第1-3章2. 函数与数组:教材第4-5章3. 指针与字符串:教材第6章4. 编程技巧与实践:教材第7章5. 综合案例分析与编程实践:教材第8章及课后习题、拓展案例三、教学方法1. 讲授法:- 对于C语言的基本语法、概念和理论,采用讲授法进行教学,确保学生能够系统地掌握知识;- 讲授过程中注重条理清晰、深入浅出,结合实际案例,提高学生的理解和记忆;- 定期进行知识巩固,通过讲解经典例题,帮助学生深化理解。
c语言课程设计报告范例一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程思想,培养学生编写简单程序的能力。
具体分为以下三个部分:1.知识目标:使学生了解C语言的发展历程、基本语法、数据类型、运算符、控制结构等基础知识。
2.技能目标:培养学生使用C语言进行编程的能力,使学生能够编写简单的输入输出程序、控制流程程序和函数程序。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生分析问题和解决问题的能力,培养学生团队合作的精神。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言的发展历程和特点:介绍C语言的起源、发展过程以及其在计算机编程领域的地位和作用。
2.基本语法和数据类型:讲解C语言的基本语法规则、数据类型、变量、常量等。
3.运算符和控制结构:介绍C语言的运算符分类、用法以及条件语句和循环语句的实现。
4.函数的定义和调用:讲解函数的定义、声明、调用以及函数的参数传递和返回值。
5.简单的输入输出程序:演示如何使用C语言进行输入输出操作,如打印输出、输入控制等。
三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等知识点。
2.案例分析法:通过分析典型程序案例,使学生理解程序设计的基本思路和方法。
3.实验法:让学生动手编写程序,巩固所学知识,提高编程能力。
4.讨论法:学生进行小组讨论,分享学习心得,互相答疑解惑。
四、教学资源为了支持教学内容的实施,本节课将准备以下教学资源:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》等。
2.参考书:提供相关的C语言参考书籍,以便学生课后自主学习。
3.多媒体资料:制作精美的PPT课件,直观展示C语言的语法和编程思想。
4.实验设备:准备计算机实验室,让学生进行编程实践。
五、教学评估为了全面、客观地评估学生的学习成果,本节课采用以下评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和兴趣。
目录一.课程设计主要内容 (2)二.设计步骤 (2)三.图形模块设计 (3)1.基本窗口设计 (3)2.图形界面布局设计 (3)3.按钮设计 (5)四.功能模块设计 (4)(一)按钮功能 (4)(二)键盘功能 (5)五.设计结果及效果检验 (8)六.心得体会 (9)一.课程设计主要内容1.使用C语言和GTK+图形库进行开发,计算器可以在装有GTK+运行环境的各种操作系统上运行;2.实现标准型计算器上的四则运算功能(参考Window 7系统标准型计算器);3.根据课程设计进度对程序功能进行扩展,1)添加捕捉键盘事件功能,通过PC键盘的数字键盘也可以进行输入。
2)为计算器添加存储功能(MR、M+、M-等按键功能),实现完整的标准型计算器。
二.设计步骤在设计图形界面计算器之前,我们首先要熟悉GTK+图形库,然后逐步从简单窗口的设计到图形界面的布局设计和按钮操作设计等,深化到综合设计于计算器,并在设计进度中,逐步完善计算器的功能。
程序流程图如下:三.图形模块设计1.基本窗口设计首先在头文件里包含<gtk/gtk.h> 库,然后声明变量,即声明一个指向GtkWidget 的指针类型的窗口,在初始化GTK+图形库后,就可以创建窗口,并显示。
各步代码如下:#include<gtk/gtk.h>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.图形界面布局设计在这个图形界面计算器设计中,我采用的是表。
在使用表时,建立格来放入构件,构件可以占满我们所指定的所有空间。
目录一.课程设计主要内容 (2)二.设计步骤 (2)三.图形模块设计 (3)1.基本窗口设计 (3)2.图形界面布局设计 (3)3.按钮设计 (5)四.功能模块设计 (4)(一)按钮功能 (4)(二)键盘功能 (5)五.设计结果及效果检验 (8)六.心得体会 (9)一.课程设计主要内容1.使用C语言和GTK+图形库进行开发,计算器可以在装有GTK+运行环境的各种操作系统上运行;2.实现标准型计算器上的四则运算功能(参考Window 7系统标准型计算器);3.根据课程设计进度对程序功能进行扩展,1)添加捕捉键盘事件功能,通过PC键盘的数字键盘也可以进行输入。
2)为计算器添加存储功能(MR、M+、M-等按键功能),实现完整的标准型计算器。
二.设计步骤在设计图形界面计算器之前,我们首先要熟悉GTK+图形库,然后逐步从简单窗口的设计到图形界面的布局设计和按钮操作设计等,深化到综合设计于计算器,并在设计进度中,逐步完善计算器的功能。
程序流程图如下:三.图形模块设计1.基本窗口设计首先在头文件里包含<gtk/gtk.h> 库,然后声明变量,即声明一个指向GtkWidget 的指针类型的窗口,在初始化GTK+图形库后,就可以创建窗口,并显示。
各步代码如下:#include<gtk/gtk.h>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.数字键处理模块数字按钮0~9的功能是向计算器输入数字,通过计位和定位,最后显示出来,它们的回调函数都是同一个:g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(on_num_click ed),NULL);只不过传递的参数根据不同的按钮传递不同的数字。
函数在接受到数字按钮信号时,对按下的按钮进行分析获取我们想要进行运算的数字,并对它进行保存和其他相应处理。
这样便于我们在按下运算符按钮时对它们进行操作。
2.小数点处理模块该部分根据判断有无小数点确认计算数是否是小数,保证了计算器能进行小数的计算。
3.加减乘除运算按键处理模块这部分主要是计算器确认我们输入的何种运算符,然后给运算符标志赋予一个相应的值,在接收到等号按钮信号时,进行相应的运算。
4.等号处理模块等号处理模块在等号被按下时,根据运算模块里的运算标识符值,对计算数进行相应的运算,并得出结果。
在这块处理中,我们通过以下两个函数分别来设置计算结果中小数点后的位数和结果的显示。
g_snprintf(result,100,"%.2f",numb); // 保留小数点后2位,并把结果存入result中gtk_entry_set_text(GTK_ENTRY(entry),result); //显示如果5.清除模块清除模块是计算器必不可少的一个模块,否则每完成一次运算后都要重新启动计算器才可进行下次运算。
清除模块功能是计算器在我们按下Clear 键时获取清除信号,然后调用清除模块函数清除计算器里的数值,让计算器回到最初还未计算的状态,方便我们进行下一次运算。
(二)键盘功能计算器的键盘功能是说我们通过键盘输入要计算的数据和想进行何种运算的运算符,计算器通过扑捉键盘功能来获取我们输入的数据和运算符,进而调用相应的函数,得出我们想要的结果。
同样,计算器想要扑捉到键盘功能也是需要一个信号回调函数和一个信号连接函数。
在主函数中,我们只需加入一个语句就可获取整个键盘信号,回调连接函数如下:g_signal_connect(window,"key_press_event",G_CALLBACK(key_value),e ntry);//当有按键按下时,根据键值回调函数进行处理,并把按下的键显示在文本框中键值的回调函数在按键按下后,接收键值并把键值传给相应的函数,相应的函数在接收键值后作出相应的处理和运算,键值的回调函数如下:gboolean key_value(GtkWidget *widget, GdkEventKey *event, gpointer data) { //键值可以是键盘上任意的数字键和运算符号键guint keyvalue = event->keyval;if((keyvalue >= 0xffb0)&&(keyvalue <= 0xffb9))//按下小键盘数字键时on_key_num_clicked(keyvalue%0xffb0);if((keyvalue >= 0x30)&&(keyvalue <= 0x39)) //按下主键盘数字键时on_key_num_clicked(keyvalue%0x30);if((keyvalue == 0xffab)||(keyvalue == 0x2b)) { //按下小键盘或主键盘“+”时gtk_entry_set_text(GTK_ENTRY(entry),""); //清屏,使累加时前一次的结果不显示在文本框里on_key_suan_clicked(1); // “+”}if((keyvalue == 0xffad)||(keyvalue == 0x2d)) {gtk_entry_set_text(GTK_ENTRY(entry),"");on_key_suan_clicked(2); //“-”}if((keyvalue == 0xffaa)||(keyvalue == 0x2a)) {gtk_entry_set_text(GTK_ENTRY(entry),"");on_key_suan_clicked(3); //“*”}if((keyvalue == 0xffaf)||(keyvalue == 0x2f)) {gtk_entry_set_text(GTK_ENTRY(entry),"");on_key_suan_clicked(4); //“/”}if((keyvalue == 0xffae)||(keyvalue == 0x2e)) //按下小数点on_key_dot_clicked();if((keyvalue == 0xff8d)||(keyvalue == 0x3d)) //按下小键盘的enter 键或主键盘的等号on_key_eq_clicked();return FALSE;}计算器的键盘功能和计算器的按钮功能一样,都具有五个模块。
各模块在处理时跟按钮功能部分一样,只是接收参数时不同。
在键盘功能中,我们只需传递某个键值即可。
五.设计结果及效果检验图形界面计算器设计如下:1.计算器的加法运算结果如下:(13+56=69)通过键盘输入通过按钮2.计算器的减法运算结果如下:(34-12=22)键盘输入按钮输入3.计算器的乘法运算结果如下:(2.5*2.5=6.25)键盘输入按钮输入4.计算器的除法运算结果如下:(10/3=3.33)六.心得体会在这次实训中,因为选做的题目是使用GTK+图形库设计图形界面计算器,以前也没有接触过图形界面的设计,所以觉得这是一个尝试。
刚开始时也有点迷惑,后来看了一些资料,根据资料上的讲解做了一个简单窗口。
做出来后发现这个图形界面设计很有趣,而有些事我们要努力去尝试。
有些东西其实并不难,只是我们想着它难,所以它就难了。
而在努力尝试过以后我们又会发现难的只是我们不肯去尝试。
在实训过程中,我是把程序分成两个C文件,再包含在一个头文件里。
刚开始把程序放在不同文件里时,由于变量的定义在实质上不是同一个,导致编译能通过,但运行时就出错。
通过请教老师和同学,把变量的定义放到了两个C 文件共同的头文件里,在运行时不再出现那样的情况。