文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机程序设计

计算机程序设计

计算机程序设计
计算机程序设计

第5章计算机程序设计

?教学内容与目标:

本章主要介绍程序设计基础知识、程序设计的一般过程和程序设计语言,重点介绍了面向过程程序设计、面向对象程序设计和可视化程序设计的特点,并结合C、C++、Java、VB等语言介绍这些程序设计方法的具体应用。学习本章内容,要求对已上所述程序设计的有关知识和方法有一个较全面的了解,为将来进行具体深入的学习做好准备。

?教学重点、难点:

本章重点是面向过程程序设计、面向对象程序设计和可视化程序设计的特点,难点是面向对象的程序设计。

?教学方法

本章教学采用教师讲授,多媒体辅助演示的方法,尽量在较短的时间内,全面展现计算机程序设计的过程和各种方法。

?教学过程:

一、概述

1.程序设计基础

计算机之所以能自动连续地进行工作,最根本的原因在于“存储程序”和“程序控制”。

“存储程序”——就是把计算机处理问题的步骤用计算机能够识别的指令编写出来,并送入计算机内部的存储器存储起来。

“程序控制”——就是把事先存储好的程序从存储器取出来,送入CPU执行,计算机才能按照人的意图自动完成指定的工作。因此,程序就是为解决某一问题而编写的语句集合,是将一个实际问题的具体操作用某种程序设计语言描述出来的指令序列。编写程序的过程就是程序设计。程序设计语言就是计算机能够理解和执行的特殊语言。

2.程序设计的一般过程

概括地说,程序设计就是分析问题、编写程序、调试程序的过程。用计算机解决实际问题的基本过程如下图所示。

程序设计步骤如下:

(1)分析要解决的问题,明确任务

(2)分析问题,建立数学模型,并选择合适的解决方案

(3)确定数据结构和算法:数据结构+算法 = 程序

(4)编写程序

(5)调试程序

(6)整理资料,交付使用

3.程序设计语言

程序设计语言是人们根据描述问题的需要而设计的,是计算机能够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交流所使用的“语言”。

程序设计语言可分成机器语言、汇编语言和高级语言。前两类依赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算机硬件基本无关,是目前使用非常广泛的程序设计语言。

机器语言

机器语言是一种用二进制数“0”和“1”表示计算机各种操作的程

序设计语言。一条机器指令能够控制计算机执行一种操作。

计算机能够直接理解和执行使用机器语言编写的程序,执行速

度快,占用内存少;但难于记忆,编程困难,可读性差,容易出错。机器语言是面向机器的语

言,可移植性极差。

汇编语言

汇编语言是一种用助记符来表示各个基本操作的程序设计语言。如用ADD表示加法操作,SUB 表示减法操作等。

汇编语言的出现,大大减少了程序编写、阅读、修改、维护等方面的工作量,但汇编语言也是一种面向机器的语言,计算机不能直接执行,通用性和可移植性差,必须经过汇编程序翻译成机器语言程序后才能在计算机上执行,需要程序员对计算机内部结构非常了解。

高级语言

高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言。

高级语言编写的程序不依赖于具体的机器,程序员编程时无需关心计算机内部的细节,从而大大提高了编程效率。计算机不能直接执行使用高级语言编写的程序,需用专门的翻译程序将其转换成机器语言程序后才能执行。

目前,使用较广泛的高级语言有C、C++、Visual Basic、Visual C++、Power Builder、Java、Delphi、ASP、JSP、PHP、Visual Foxpro等。

4.程序设计发展概况

20世纪60年代,由于程序好坏的评价标准是指令少,运行速度快,占用内存少。这使程序员过分追求语言的表述能力和技巧,程序员往往将注意力集中在问题求解本身,而无暇顾及求解的过程,很少考虑程序结构的合理性和可扩展性。软件开发主要依赖程序员的个人经验,缺乏科学理论和方法作指导,开发出的软件或程序只能靠测试来检查错误,这些因素使得许多大型软件崩溃,软件开发周期长,生产效率低,可靠性及可维护性差,20世纪60年代末最终引发了“软件危机”。

思考问题:程序调试能否保证程序正确?怎样保证程序正确?程序好坏的评价标准是什么?科学指导程序设计的原理和方法是什么?

1968年,E.W.Dijkstra指出:Goto语句是有害的,它造成了程序结构的混乱,高级语言程序设计应取消Goto语句,并由此引发了关于程序设计首先是讲究好的结构,还是讲究效率的讨论。

4.程序设计发展概况

Dijkstra还提出了结构化程序设计思想、概念和标准,希望通过程序静态结构的良好性来保证程序的正确性,并提出了“程序测试只能发现程序中的错误而不能保证程序无错误”的科学论断。同时,Wirth也提出了自顶向下、逐步求精的程序设计方法,将一个复杂的问题分解成若干个相互独立的、简单的模块,再将模块分解成更简单的子模块,直到所有问题能用程序设计语言简单方便地解决。采用这种程序设计方法,能有效地控制程序设计的复杂性,有益于提高程序设计的效率。

20世纪80年代,Gries综合了各种程序设计理论和方法的成果,完成了“The Science of Programming”一书,首次把程序设计从经验、技巧上升为科学,使程序设计从此步入了科学的轨道。

二、面向过程程序设计

1.概述

面向过程程序设计有三种基本结构:顺序结构、选择结构和循环结构,又称“结构化程序设计”。程序一般由一个主程序(或主函数)和若干个子程序(或函数)组成。程序设计的首要问题是“设计过程”。

后来,人们将程序按功能划分成若干个基本模块,各模块在功能上相对独立,这就是“模块化程序设计”。但它仍属于面向过程的程序设计。它把数据和过程分离成两个相互独立的实体,程序员必须时刻注意所处理的数据,对不同数据作相同处理或对相同数据作不同处理,都要重新编程,程序的可重用性不好。

面向过程程序设计中过程的实现取决于数据结构。如果一个数据结构发生变化,将导致许多函数和过程重写。有时几个关键的数据结构发生变化,将导致整个软件系统的结构崩溃。

2.基于C语言的面向过程程序设计

C语言是国际上广泛流行的程序设计语言,适合作为系统描述语言,既可用来写系统软件,也可用来写应用软件。特点如下:

(1)是一种高级语言,但它又提供了低级语言的功能。

(2)提供丰富的数据类型,可以实现各种数据结构。

(3)提供了丰富的运算符,表达式类型多样化。

(4)是结构化的程序设计语言。

(5)生成的目标代码质量高,程序执行效率高。

(6)可移植性好,可以用于各种类型的计算机和操作系统中。

(7)设有预处理功能,提高了程序的可读性和可移植性。

(8)语法限制不太严格,程序设计自由度大。

综上所述,C语言是一种功能很强的语言,但对程序员要求较高。程序员使用C语言编写程序会感到限制少,灵活性大,可以编写任何类型的程序。

【例5.1】

三、面向对象程序设计

1.概述

传统程序设计方法的程序缺乏可交换性,程序效率低,可靠性,程序维护困难。面向对象程序设计是一种通过模仿人类思维方式包括概括、分类、抽象、归纳等)来建立现实世界模型的方法,是崭新的程序设计思想体系。它通过数据抽象,将许多对象中共性的数据和操作这些数据所需要的算法抽取出来。它将数据及数据的操作封装在一起,作为一个相互依存、不可分割的整体来处理,并采用信息隐藏技术,将对象及对象的操作抽象成一种新的数据类型——“类”,并考虑不同对象之间的联系和类的重用性。

在面向对象程序设计中,首要的任务就是确定所需要的类,每个类应设置足够的操作,并利用继承机制共享其相同的特性。

面向对象程序设计的最大优点是允许“继承”,即在某个类的基础上可以派生出新类。

2.基于C++的面向对象程序设计

C++是在C语言继承了C语言的全部内容,并在C语言的基础上增加了面向对象程序设计的内容。C++既支持传统的面向过程程序设计,又支持新型的面向对象程序设计。因此,C++成为面向对象程序设计的主流语言。

C++的特点

(1)抽象:是对具有特定属性及行为特征的对象进行概括,从中提炼出这一类对象的共性,并从通用性的角度描述其共有的属性及行为特征。抽象又分为数据抽象和代码抽象,前者描述某类对象的公共属性,后者描述某类对象共有的行为特征。

(2)封装和数据隐藏:在面向对象程序设计中,通过封装可以将一部分属性和数据的操作隐藏起来,另一部分作为类的外部接口,使用者可以访问。这样可以对属性和操作的访问权限进行合理控制,减少程序之间的相互影响,降低出错的可能性。

(3)继承与重用:继承是指新建的类从现有的类那里得到一些已有的特征。现有的类称为“基类”或“父类”,继承基类特征的新建类称为“派生类”或“子类”,由父类产生子类的过程称作“类的派生”。继承有效地增强了系统的可扩充性,C++通过继承来支持软件重用。

(4)多态性:在C++的类中,相同的函数名可以有若干个不同的函数体,在调用同一函数时由于环境的不同,可能引起不同的行为,这就称为“多态性”。

C++与C语言的关系

C++保持了C语言的简洁、高效和接近汇编语言等优点,同时又对C语言的不足和问题作了很多重要改进。

①增加了新的运算符,使C++应用起来更加方便;②改进了类型系统,增加了安全性;③使

用“引用”作函数参数为用户编程带来了很大方便;④允许函数重载,允许设置缺省参数,提

高了编程的灵活性,减少了冗余;⑤对变量说明更加灵活。

【例5.2】

3.基于Java的面向对象程序设计

Java是一种广泛使用的网络编程语言,简单,面向对象,解释执行不依赖于机器的结构,具有可移植性、安全性,并且提供了并发机制,是多线程的。Java语言的特性使它可以最大限度地利用网络,Java的小应用程序(Applet)是动态、安全、跨平台的网络应用程序,可在网络上传输而不受CPU和环境的限制。JavaApplet嵌入HTML语言,通过主页发布到Internet。

Java语言的特点如下:

(1)简单性;(2)面向对象;(3)分布性;(4)安全性;(5)体系结构中立;(6)可移植性;(7)解释执行;(8)高性能;(9)多线程(10)动态性;(11)丰富的类库【例5.3】

4.可视化程序设计

1.概述

如果一个程序设计语言的语句表达式由一组图符组成,就称为可视化程序设计语言。由该语言编制而成的程序称为可视化程序。与传统程序相比,区别在于程序表达式是由图符还是有字符组成。

可视化程序设计简单说就是“所见即所得”,即在设计时,根据头脑中所想象的应用程序界面,通过鼠标以“手绘”的方式在屏幕上“画”出程序界面,而不是编制大量的代码然后再编译生成界面,底层的一些程序代码可以由开发平台自动生成。可视化程序设计一般为用户提供大量的界面元素或称为控件对象。用户只要利用鼠标把这些控件对象拖动到适当位置,然后设置它们的大小、形状、属性等,就可以设计出自己所想要的应用程序界面。

2.基于Visual Basic的可视化程序设计

Visual Basic是由微软公司于1991年推出的可视化程序设计语言。“Visual Basic”的意思就是“可视化的BASIC语言”,它是对BASIC语言的扩充,既保留了BASIC语言易学易用的优点,又充分利用Windows提供的图形环境,提供了一套崭新的可视化设计工具,采用面向对象的事件驱动编程机制,大大简化了Windows程序界面的设计工作。用户可以用它来编写各种Windows应用程序,设计出丰富多彩的应用程序界面。

目前Visual Basic的最新版本是Visual Basic 6.0(简称VB6.0),其功能十分强大,可以很方便地设计较小的应用程序,也可以胜任大型的数据库管理系统、Internet应用程序、多媒体应用程序等复杂程序设计任务,满足不同的开发需要。

Visual Basic的特点如下:

(1)可视化的程序设计平台。

(2)面向对象的程序设计方法。

(3)采用事件驱动的编程机制。

(4)结构化的程序设计语言。

(5)充分利用Windows资源。

(6)交互式开发。

(7)开放的数据库功能与网络支持。

(8)得心应手的应用程序向导。

【例5.4】

计算机网络课程设计习题目

计算机网络课程设计 一. 中小型千兆网吧组建 内容及要求: 用BOSON软件实现小规模网络的模拟。熟悉对路由器和交换机的配置命令,调通网络,并通过实例深入理解网络基本工作原理及实现方法。学会网络构建、日常 地址 1. 2. 3. 4. 5. 6. 写出课程设计报告:设计目的、设计内容、设计方案、拓扑图、设备选型、方案报价、子网划分等内容。 (1)企业网络工程 (2)银行网络工程 (3)医院网络工程 (4)校园网网络工程 (5)大型机场信息网络工程

(6)邮电综合管理信息网 (7)某航空公司网络系统建设 (8)某市宽带信息网络 (9)证券交易网络系统 (10)学校以太网网络建设 三.Ping程序的设计与实现 设计的目的是使学生掌握网络层协议的原理及实现方法。设计内容,在给定的Ping程序的基础上做如下功能扩充: ● ● ● ● reply 消息。 ICMP Identification, Flags, Fragment Offset 用于IP包分段 Time to Live IP包的存活时长 Protocol ICMP = 1 Addresses 发送Echo消息的源地址是发送Echo reply消息的目的地址,相反,发送Echo 消息的目的地址是发送Echo reply消息的源地址。 Ping实际上是使用ICMP中的ECHO报文来实现的。Echo 或 Echo Reply 消息格式如下: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum |

大学计算机基础教程课后习题答案大一

计算机基础作业 第一章计算机与信息社会 习题1 一、思考题: 1.计算机的发展经历了哪几个阶段?各阶段的主要特征是什么? 答:计算机经历了电子管、晶体管、中小规模集成电路和大、超大规模集成电路等4个阶段。 电子管计算机的特征是:采用电子管作为计算机的逻辑元件,内存储器采用水银延迟线,外存储器采用磁鼓、纸带、卡片等,运算速度只有每秒几千次到几万次基本运算,内存容量只有几千个字节,使用二进制表示的机器语言或汇编语言编写程序。 晶体管计算机的特征是:用晶体管代替了电子管,大量采用磁芯作为内存储器,采用磁盘、磁带等作为外存储器。 采用了中小规模集成电路的计算机的特征是:用集成电路代替了分立元件。集成电路是把多个电子元器件集中在几平方毫米的基片上形成的逻辑电路。 采用了大、超大规模集成电路的计算机的特征是:以大规模、超大规模集成电路来构成计算机的主要功能部件,主存储器采用集成度很高的半导体存储器,目前计算机的最高速度可以达到每秒几十万亿次浮点运算。 4.计算机主要用于哪些领域? 答:计算机主要应用在科学和工程计算、信息和数据处理、过程控制、计算机辅助系统及人工智能等领域。 7.信息技术都包含那些? 答:信息技术主要包括信息基础技术、信息系统技术、信息应用技术三个层次。 二、选择题 1.最早的计算机是用来进行(A)的。 A )科学计算B)系统仿真C)自动控制D)信息处理 2.构成第二代计算机的主要电子元件是(B) A )电子管B)晶体管C)中.小规模集成电路D)超大规模集成电路 3.以下哪个不是计算机的特点(D) A )计算机的运行速度快B)计算机的准确度高C)计算机的存储容量巨大D)计算机的体积很小 4办公自动化属于计算机哪项应用(A) A )数据处理B)科学计算C)辅助设计D)人工智能 5.以下关于信息的特征不正确的是(B) A )共享性B)不可存储C)可处理性D)可传递

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

《大学计算机基础》第五版第1-4章课后习题答案

第一章 1. 计算机的发展经历了那几个阶段?各阶段的主要特征是什么? a)四个阶段: 电子管计算机阶段;晶体管电路电子计算机阶段;集成电路计算机阶段;大规模集成电路电子计算机阶段。 b )主要特征: 电子管计算机阶段:采用电子管作为计算机的逻辑元件;数据表示主要是定点数;用机器语言或汇编语言编写程序。 晶体管电路电子计算机阶段:采用晶体管作为计算机的逻辑元件,内存大都使用铁金氧磁性材料制成的磁芯存储器。集成电路计算机阶段:逻辑元件采用小规模集成电路和中规模集成电路。 大规模集成电路电子计算机阶段:逻辑元件采用大规模集成电路和超大规模集成电路。 2. 按综合性能指标分类,计算机一般分为哪几类?请列出各计算机的代表机型。 高性能计算机(曙光),微型机(台式机算机),工作站(DN-100 ),服务器(Web服务器)。 3. 信息与数据的区别是什么? 信息:对各种事物的变化和特征的反映,又是事物之间相互作用和联系表征。数据:是信息的载体。 4. 什么是信息技术? 一般是指一系列与计算机等相关的技术。 5. 为什么说微电子技术是整个信息技术的基础? 晶体管是集成电路技术发展的基础,而微电子技术就是建立在以集成电路为核心的各种半导体器件基础上的高新电子技术。 6. 信息处理技术具体包括哪些内容?3C含义是什么? a )对获取的信息进行识别、转换、加工,使信息安全地存储、传送,并能方便的检索、再生、利用,或便于人们从中提炼知识、发现规律的工作手段。b)信息技术、计算机技术和控制技术的总称 7. 试述当代计算机的主要应用。 应用于科学计算、数据处理、电子商务、过程控制、计算机辅助设计、计算机辅助制造、计 算机集成制造系统、多媒体技术和人工智能等。

计算机程序设计基础习题册(含答案)

《计算机程序设计基础》 习 题 册

班级学号姓名成绩一、单选题 1.C++源程序文件的默认扩展名为A。 A) cpp B) exe C) obj D) lik 2.由C++源程序文件编译而成的目标文件的默认扩展名为C。 A) cpp B) exe C) obj D) lik 3.由C++目标文件连接而成的可执行文件的默认扩展名为B。 A) cpp B) exe C) obj D) lik 4.编写C++程序一般需经过的几个步骤依次是B。 A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接 5.程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符 6.下面四个选项中,均是不合法的用户标识符的选项的是C。 A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 7.下列变量名中合法的是C。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 8.存储以下数据,占用存储字节最多的是 D 。 A) 0 B) ‘0’ C) “0” D) 0.0 9.在C++语言中,字符型数据在内存中的存储形式是D。 A) 补码 B) 反码 C) 原码 D) ASCII码 10.若有说明语句:char c =’\072’;则变量c A。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

北大网络教育(计算机专业)C程序设计作业答案

北大网络教育(计算机专业)C程序设计作业答案 第一章作业 一、将数150、10.75、50.375用十六进制表示 150=96;10.75=A;50.375=32 150(十进制)=96(十六进制) 10.75(十进制)=A.C(十六进制) 50.375(十进制)=32.6(十六进制) 二、填空 1.在C语言中,数值常量0x2a的十进制值是 42 。 2.字母m的ASCII码为十进制数______109_____。 第三章作业 一、选择题: 1、下列变量名中, B 是非法的。 A) Tom B) 3n C) little_boy D) c10 2、下列变量名中, A 是合法的。 A) _boo B) 70A C) 30b D) while 3、下列常量中, C 是十六进制表示的int型常量。 A) 17 B) x52 C) 0xa3 D) 086 4、假设所有变量均为整型,则表达式(a=1,b=3,b++,a+b)的值是 A 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’C’+’8’-‘A’后,c2的值为 D 。 A) 12 B) 11 C)不确定的值 D) 10 6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标识符的字符有( B ) A 下划线 B % C 数字 D 字母 8、设int a;则表达式a=2,4,a+2的值是( D ) A.1 B.2 C.3 D.4 9.设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char

计算机基础课后问答题答案

第一章 1.计算机的发展经历了哪几个阶段?各阶段的主要特点是什么? 答:电子计算机的发展已经历了四个明显的阶段(也称为四代).正向第五代智能化的计算机发展。 前四代计算机的特点是: 第一代为电子管计算机.使用的软件程序主要为机器语言。 第二代机是以晶体管作为主要逻辑元件的计算机.软件程序使用了汇编语言且高级程序设计语言诞生。 第三代机是由中小规模集成电路组成的计算机.软件程序使用状况是:操作系统和结构化程序设计语言诞生使用。 第四代机是由大规模或超大规模集成电路组成的计算机.软件状况为网络操作系统、面向对象程序设计诞生和使用。 2.计算机内为什么采用二进制数表示信息? 答:电子计算机内部采用二进制数表示信息的主要原因是: (1)二进制数数码少(只有0和1两个).因此易于实现其数码的表示; (2)二进制数的运算法简单; (3)采用二进制数易于实现逻辑运算。 3.计算机硬件系统由哪几部份组成?各部份的主要功能是什么? 答:电子计算机硬件由运算器、控制器、存储器、输入设备和输出设备组成。它们通过总线连接成有机整体。 运算器的主要功能是:完成算术运算和逻辑运算; 控制器的功能是:协调指挥计算机各部件工作; 存储器的主要作用是:存储程序和数据.实现记忆的功能。 输入设备的功能是:输入数据并转换为机内信息存储; 输出设备的作用是:将机内信息转换为便于识别、处理和使用的字符、图形输出显示。4.什么是硬件?什么是软件?它们有何关系? 答:计算机硬件是构成机器的电子、光电、电磁、机械等物理设备。软件即是计算机中使用的各种各样的程序及其说明文档。 硬件与软件的关系是:硬件是软件运行的基础.软件扩充了硬件的功能。 5.什么是指令?什么是程序?计算机的指令由哪两部份组成? 答:指令是计算机能实现的基本操作.指令均为二进制数形式。程序是若干指令或命令的集合。指令由操作码和地址码(操作数)组成.操作码告诉计算机执行什么操作(指明指令的功能).地址码告诉计算机到哪个存储单元地址中读取参与操作的数据。 6.计算机程序设计语言如何分类?什么程序语言是计算机能直接识别和执行的? 答:计算机程序设计语言可分为低级语言和高级语言两大类。低级语言包括:机器语言和汇编语言.它们都是面向计算机硬件的程序设计语言。高级语言有:面向过程的结构化的程序设计语言(Basic、Pascal、C……)和面向对象的程序设计语言(Visual Basic、Visual FoxPro、Visual C……)。 7.高级程序设计语言的两种执行方式是哪两种? 答:解释方式——边解释边执行.速度慢但方便程序调试。 编译方式——程序源代码全部编译后再执行.执行速度快.但不易查错。通常是先源代码程序调试成功后再编译使用。

程序设计基础(知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

计算机网络课程设计题目和要求

计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。 一、格式要求及须知: (1)使用学院网站的课程设计模版,要求格式美观,字体及编号要求见表1。 表1 字体及编号要求

(2)参考文献:参考课本的参考文献格式(附录C)。但编号换成[1]、[2]……(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。 (4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。 (5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。打印后递送到指导老师的信箱。 (6)如发现两组设计雷同或抄袭互联网,该组重做! 二、任务完成形式: 交付课程设计说明书、设计作品(需要验收)。 设计作品指的是完整的源程序代码(对于第二类题目为仿真文件)。 课程设计说明书(纸质+电子版),内容包括:设计任务、需求分析、总体设计、详细设计(相应地给出关键的代码)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 设计工作计划与进度安排: 根据所选题目,合理安排进度计划,总体上需要40个小时。以下仅供参考: 1. 原理知识 4小时 2. 程序设计技术 4小时 3. 开发环境与程序调试环境 4小时 4. 总体设计、关键环节的详细设计 8小时

计算机基础练习题附答案

计算机基础练习题 1.微机硬件系统中最核心的部件是____ 。 A、内存储器 B、输入输出设备 C、CPU D、硬盘 2.根据计算机使用的电信号来分类,电子计算机分为数字计算机和模拟计算机,其中,数 字计算机是以____为处理对象。 A、字符数字量 B、物理量 C、数字量 D、数字、字符和物理量 3.用MIPS来衡量的计算机性能指标是____ 。 A、传输速率 B、存储容量 C、字长 D、运算速度 4.交互式操作系统允许用户频繁地与计算机对话,下列不属于交互式操作系统的是____。 A、Windows系统 B、DOS系统 C、分时系统 D、批处理系统 5.计算机硬盘正在工作时应特别注意避免____。 A、噪声 B、震动 C、潮湿 D、日光 6.下列四条叙述中,正确的一条是____。 A、字节通常用英文单词“bit”来表示 B、目前广泛使用的Pentium机其字长为5个字节 C、计算机存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节 D、微型计算机的字长并不一定是字节的倍数 7.一条计算机指令中规定其执行功能的部分称为____。 A、源地址码 B、操作码 C、目标地址码 D、数据码 8.在微型计算机中,内存储器,通常采用____。 A、光存储器 B、磁表面存储器 C、半导体存储器 D、磁芯存储器 9.微型计算机键盘上的Tab键是____。 A、退格键 B、控制键 C、交替换档键 D、制表定位键 10.在计算机中,既可作为输入设备又可作为输出设备的是____。 A、显示器 B、磁盘驱动器 C、键盘 D、图形扫描仪 11.微型计算机中,ROM的中文名字是____。 A、随机存储器 B、只读存储器 C、高速缓冲存储器 D、可编程只读存储器 12.要存放10个24×24点阵的汉字字模,需要____存储空间。 A、74B B、320B C、720B D、72KB 13.把硬盘上的数据传送到计算机的内存中去,称为____。 A、打印 B、写盘 C、输出 D、读盘 14. 3.5英寸软盘片角上有一带黑滑块的小方口,当小方口被关闭时,其作用是____。

计算机程序设计基础习题册含答案

《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册

1.C++源程序文件的默认扩展名为A。 2.A) cpp B) exe C) obj D) lik 3.由C++源程序文件编译而成的目标文件的默认扩展名为C。 4.A) cpp B) exe C) obj D) lik 5.由C++目标文件连接而成的可执行文件的默认扩展名为B。 6.A) cpp B) exe C) obj D) lik 7.编写C++程序一般需经过的几个步骤依次是B。 8.A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接9.程序中主函数的名字为 A 。 10.A) main B) MAIN C) Main D) 任意标识 符 11.下面四个选项中,均是不合法的 用户标识符的选项的是 C。 12.A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 13.下列变量名中合法的是 C。 14.A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 15.存储以下数据,占用存储字节最 多的是 D 。 16.A) 0 B) ‘0’

C) “0” D) 17.在C++语言中,字符型数据在内存中的存储形式是D。 18.A) 补码 B) 反码 C) 原码 D) ASCII码 19.若有说明语句:char c =’\072’;则变量c A。 20.A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令 计算机程序设计基础_基础知识(二) 班级学号姓名成绩 一、单选题 1.下列哪一个是C++语言中合法的变量 C A) 8ZSe B) ±A0 C) X0_2 D) ’x0’2.已知ch是字符型变量,下面不正确的赋值语句是A 3.A) ch='a+b' B) ch='\0'

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

计算机网络实验之Ping程序的设计与实现

课程名称计算机网络 实验序号实验五 实验项目Ping程序的设计与实现

2017年03月25 日 实验报告要求 1、实验报告封面填表说明(每份实验报告必须附上封面) (1)课程名称:要求与实验大纲和实验指导书中的课程名称一致。 (2)实验序号:指该课程的第几个实验。 (3)实验项目:要求与实验大纲和实验指导书中的实验项目一致。 (4)实验地点:填写完成该实验项目所在的实验室名称。 (5)实验学时:要求与实验大纲和实验指导书中完成该实验项目所需学时一致。 (6)实验类型:是指演示性、操作性、验证性、综合性、设计性。 演示性:教师操作,学生观察,验证理论、说明原理和方法。 操作性:学生按要求动手拆装、调试实验装置或上机操作,掌握其基本原理和方法。 验证性:按实验指导书(教材)要求,由学生通过操作验证所学理论,加深对理论、知识的理解,掌握基本实验知识、方法、技能、数据处理等。 综合性:实验内容涉及本课程的综合知识或相关课程的知识,运用多的知识、多种方法,按要求或自拟实验方案进行实验。主要培养学生综合运用所学知识、实验方法和实验技能,以培养其分析、解决问题的能力。 设计性:给定实验目的、要求和实验条件,学生自己设计实验方案并加以实现的实验。学生独立完成从查阅资料、拟定实验方案、实验方法和步骤(或系统分析和设计)、选择仪器设备(或自行设计缺制作)进行实验并完成实验全过程,形成实验报告,培养学生自主实验的能力。 (1)批改:全部批改及更正错误。 (2)评分:按百分制评分,不能评分为“优、良、中、差”或“A、B、C”。 (3)签名及批改日期:任课教师必须在每份学生实验报告中签名和写上批改日期。 (4)成绩:填写学生实验成绩表,实验成绩作为考试成绩评定的依据。

大学计算机基础课后习题答案

第1章 计算机基础知识 一、填空题 1.硬件系统、软件系统 2.(11011101)2=(221)10 =(335)8=(DD)16 3.1101.011 4.11110111.00000 .011 .(小数点后第5位到第8位循环) 5.1111 6.221 7.主存、Cache ram,rom 8.RAM 、ROM 9.外存 10.读、写、字节 二、选择题 1-5:CBADC 6-10:AADDD 11-15:ACCAD 三、判断题 1-5:错错对对对 6-10:对错错错错 四、简答题 1.修改题干:简述计算机发展各阶段所采用的逻辑部件及计算机的发展趋势。 答案:第一代计算机:电子管 第二代计算机:晶体管 第三代计算机:中小规模集成电路 第四代计算机:大规模、超大规模集成电路 计算机的研制正向智能化、网络化、巨型化、微型化、多媒体化的方向前进。 2.修改题干:简述计算机内部的信息为什么要采用二进制数编码来表示? 答案:因为采用二进制易于物理实现,机器可靠性高,运算规则简单。 3.位:代表一个二进制数位,是计算机表示数据的最小单位。 字节:计算机内部以字节为单位存储数据。1B=8b 。 字:CPU 通过数据总线一次存取、加工和传送的数据单位称为字。一个字通常由若干个字节组成。字长:一个字对应的位数。 4.1)运算速度 2)主频 3)字长 4)内存容量 5)外设扩展能力 6)软件配置情况 5.原码:数X 补码:X 原码:01010010 反码:01010010 补码:01010010 原码:11111111 反码:10000000 补码:10000001 原码:11010001==表示时不应该有小数点 反码:10101110 补码:10101111 原码:10000001 反码:11111110 补码:11111111 原码:00000000(或10000000) 反码:00000000(或11111111) 补码:00000000

计算机程序设计基础

计算机程序设计基础 ——精讲多练C/C++语言 程序的基本结构 1、在屏幕上显示如下图形: **************** * Hello World * **************** #include using namespace std; int main() { cout<<"****************"< using namespace std; int main() { double x,y,sum,sub,mult,div; cout<<"Please enter the two Numbers for calculation:"; cin>>x>>y; sum=x+y; sub=x-y; mult=x*y; div=x/y; cout<

相关文档 最新文档