1、广东工业大学C语言实验上机任务书版广东工业大学实验(上机)任务书(2015 2016 学年度第 1 学期)课程名称 高级语言程序设计 课程设计 实验室名称及地点: 实验2号楼306 指导教师: 孟安波、王星华 周次节次实验主要内容每组学生人数具体任务要求65-8熟悉C+编程开发工具输入输出程序编程练习运算符和表达式编程训练1在C+开发环境中编写、编译程序,并能够运行成功。(1) 创建Win32 Console Application,添加源文件(2) 参考课本例子,编写C语言源代码(3) 编译、调试并运行成功(4) 简单的输入输出语句练习(5) 编写不同数据类型的输入输出程序并运行成功(6)
2、编写运算符与表达式(7) 练习任务1、2、375-8练习选择结构及分支结构编程、循环结构编程1练习C语言程序的运算符及表达式(1) 练习if语句、if-else语句、switch语句编程(2) 编写不同数据输入、运算并在屏幕上输出的程序,并运行成功(3) C语言三种不同的循环结构练习(4) 练习任务4、585-8练习数组及循环结构编程指针编程1练习C语言的数组及循环结构:(1) 练习数组的应用,包括初始化、赋值、运算,特别注意体会数组下标的控制(2) 结合循环结构进行数组应用的训练(3) 指针与数组结合编程(4) 指针、数组与循环结构相结合的编程练习(5) 练习任务6、795-8上课105-8
3、上课115-8练习指针及结构体编程1指针及结构体的应用编程:(1) 结构体的创建、赋值及应用编程(2) 结构体数组的应用编程(3) 结构体指针的应用编程(4) 练习任务8、9125-8学习结构体编程,并结合数组、指针进行编程训练综合设计任务1结构体编程练习(1) 练习任务9135-8综合设计任务1完成综合设计任务(1) 自学文件输入输出(2) 完成全部设计任务编程(3) 评优的同学完成评优设计任务145-81155-81说明:1、 上机时间为下午1:304:00。2、 一次上机一个班,一人一台计算机。3、 请不要迟到,上课、下课需签到。4、 上机同学的练习任务未完成,不得早退;若当次练习任务完
4、成,建议提前开始下一次课上机内容;当次任务完成,3:15之后开始交任务,允许早退。5、 要求上机前提前编好程序。6、 想评优的同学必须完成评优设计任务,并参加答辩。高级语言程序课程设计练习任务:1、 课本P15,习题5。2、 课本P83,习题5。3、 课本P84,习题6。4、 课本P113,习题10。5、 课本P168,习题6。6、 课本P168,习题9。7、 课本P291,习题8。8、 课本P330,习题5。9、 综合设计任务a) 保龄球计分(学号尾数为0、5的同学完成)【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1次或多次,以击倒的瓶数为依据计
5、分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下: 1 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。2 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。3 若某一轮2次滚球未击倒全部10个瓶,则本轮不
6、在滚球,该轮得分为这2次滚球所击倒瓶数之和。【实现要求】1 模拟n个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。2 逐人逐轮逐次输入一次滚球击倒的瓶数。3 对n人的得分由低到高排序并显示。4 用户可以规定参赛人数,需要输入选手姓名5 参赛成绩可以选择存入文件,程序启动可以选择从文件读取。6 显示输出时应将所有选手每轮得分及总分均整齐显示。7 程序应能自动判别输入错误。【测试数据】自定模拟数据【说明】完成本题1、2、3,4成绩“中等”。完成本题5、6、7,成绩“良好”。b) 学生成绩统计(学号尾数为1、6、9的同学完成)【问题描述】 学期考试结束,统计某班每个人的平均成绩,每门课的平均
7、成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。【实现提示】考试课程有:高等数学、物理、外语、C语言4门课程。录入所有同学的成绩,对数据进行处理,输出所要求的内容,程序的功能主要包括以下几个方面: 1 输入成绩2 修改记录3 删除记录4 输出成绩并按平均成绩排序,并标记平均分不及格的学生。5 界面提供上述功能选择。6 学生人数由软件根据输入的成绩记录数自动控制。7 提供输出成绩到文件以及从文件读取成绩功能。【测试数据】自定模拟数据【说明】完成本题1-5,成绩“中等”。完成本题6-7,成绩“良好”。c) 编制一个学生的选课及学籍管理程序(学号尾数为2、4、7的
8、同学完成)【问题描述】现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括n门课(课程内容由学生自己定)第i门课程能接纳的学生数为10i,i为课程的序号,即第一门课能接纳的学生数为101,第二门课为102,. 依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。【实现提示】(1)显示课程内容供学生选择,并能进行选课的操作。(2)随着学生选课工作的进行,动态更新数据库的内容,显示各科剩余学位。(3)进行学生的最少选课量和最多选课量的控制。(4)显示所有学生的选课的结果。(5)把学生所选的课按学分总积分
9、由小到大排列,同样学分按姓名的英文字母排序。(6)学生总人数和选课数量由程序自动控制(7)选课情况需存入文件,能从文件读取并显示。【测试数据】自定模拟数据【说明】完成本题1-4,成绩“中等”。完成本题5-7,成绩“良好”。d) 校际运动会管理系统程序(学号位数为3、8的同学完成)【问题描述】 完成校际运动会成绩管理功能,包括输入项目及参赛成绩,输入参赛学校,统计各校成绩并排序。各项目名次取法有如下几种:取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1; 取前3名:第1名得分5,第2名得分3,第3名得分2; 用户自定义分数选择,并有查错功能(名次靠前的得分要高于名次
10、靠后的得分)【实现提示】 (1) 显示主菜单功能选项,包括初始化、输入比赛成绩、修改比赛成绩、成绩统计、数据读取及存储。(2) 初始化:从文件读取比赛项目和参赛学校;增加比赛项目及名称;增加参赛学校及名称;(3) 输入各比赛项目比赛成绩:选择项目,输入各名次的选手名及所属学校(4) 统计各学校总分并排序。(5) 输出显示所有参赛项目及已输入成绩,并提示未完成输入的项目。(6) 修改已输入比赛项目成绩:选择项目选择待修改名次修改该名次选手名及学校(7) 输出到文件,并能从文件进行数据的读取。【测试数据】自拟定【说明】完成本题1-4,成绩“中等”。完成本题5-7,成绩“良好”。10、 评优设计任务
11、(完成任务9综合设计并得到良好,想评优的同学需完成此题)开发潮流计算软件的导纳矩阵形成模块:1) 要求从文件读取电网数据。2) 通过程序,完成电网数据解析,并自动形成节点导纳矩阵,不允许手算后填入程序。3) 将结果写入到数据文件中输出4) 输入文件格式要求按照附件IEEE90.DAT的格式读取。5) 输入文件格式说明参考附件“潮流手册.pdf”,P64页开始的“4 网络数据说明”,重点学习“4.3 节点数据卡”,“4.4 支路数据卡”中的“L卡”和“T卡”。附件:Visual C+简单使用指南1、 Visual C+界面元素在开始编程之前,花点时间讲述一下Developer Studio的界面
12、。Developer Studio窗口元素 当使用Visual C+ 编辑程序时,你可以把Visual C+ 的显示界面划分成三块功能区:工具条、视图以及编辑窗口。每个功能区都可以独立于其它功能区来操作,因此,可以在各功能区之间自由地切换。图1.1显示了典型编辑器的显示情况以及这三个功能区的位置。注释 本节中介绍各种窗口、视图以及工具条。随后的各节中介绍它们的详细信息。经常用到的窗口有两种类型:文本窗口和资源窗口。图1.1显示了一个典型的文本窗口。无论什么时候,当你要修改代码或编辑文本文件时,看到的就是这类窗口。Visual C+ 通过各种手段来简化编码工作。文本窗口中首先注意到的东西是代码的
13、颜色。例如,关键字的缺省颜色为蓝色,而注释的颜色为绿色。这种方式的彩色代码让你能够轻易地分辨出代码的性质。图1.1 Developer Studio的屏幕可以划分成三个功能区 本窗口的左边缘是一竖条,这是Visual C+ 放置各种符号的地方,你甚至会看到它通过颜色来区分数据和代码控制区。例如,当我们在代码中设置了断点后,Visual C+ 就在这个竖条上显示断点符号,当该断点可用时,断点符号为红色,否则,断点符号为白色。文本框的各个区域中都可以通过右击来显示一个上下文相关菜单。上下文菜单中包含了可以进行基本操作的各种选项,与Developer Studio界面的其它地方不同,这些菜单不能直接
14、进行修改。下图是右击文本编辑器时可能出现的上下文菜单的一个示例。请注意,你可以像使用任何编辑器那样剪切、复制或粘贴文本。由于我已经加亮了#include文件项,因此上下文菜单提供了一个打开该文件的机会。如果当前工程中还没有包含该文件,那么使用Insert File into Project菜单项就可以把该文件包含到工程中。后面的两个菜单项Insert/Remove Breakpoint和Enable Breakpoint用于调试应用程序。最后,你可以打开ClassWizard来操作所选对象(本书将多次使用这种方法)或查看文档的属性。类视图(ClassView) 或许类视图(ClassView)
15、将花去你大部分的时间。该视图提供了工程中所有类的层次列表,通过扩展可以显示类中包含的细节。例如,类中将包含要编辑的成员函数等。图1.3显示了一个典型的类视图。请注意,在层次列表的每个项目前面都有一个特殊的图标。例如,每个类的前面都有一个由线条连接起来的三个方框形图标。类视图中显示三种成员函数:第一种是公共成员函数,它的图标为一个紫色菱形框;第二种是私有成员函数,它的图标上也有个菱形框,不过菱形框的旁边还有一把钥匙;第三种是保护成员函数,它的图标上有个菱形框和一个小锁。与此相似,变量也有三种类型,它们都使用青绿色图标。当看到一个绿色框时,你就知道是看到了某个COM对象的方法。类视图中还使用了其它
16、几种类型的图标,但上面所述的六种图标是创建绝大多数工程时都需要知道的图标。 文件视图(FileView) 文件视图(FileView)提供了工程中所有文件的完整列表,无论这些文件是否包含代码。图1.5显示了文件视图窗口的一个典型示例。请注意,列表中包含了从ReadMe.txt到Visual C+ 自动生成的各种文件。每个文件类型都有自己的文件夹,例如,所有的源代码文件都显示在SourceFiles(源文件)文件夹中。我们不仅可以把文件从一个文件夹移动到另一个文件夹中,也可以创建保存特定类型文件(根据其扩展名)的新文件夹。我通常要创建一个Text File(文本文件)文件夹来保存所有扩展名为TX
17、T的文件。创建新文件夹的方法是,右击要添加新文件夹的文件夹或工程项目,然后从上下文菜单中选择New Folder菜单项。此后系统将显示如下图所示的New Folder对话框,键入文件夹的名称以及相应的文件扩展名,然后单击OK按钮完成创建过程。工具条 工具条(Toolbar)是我们讨论Developer Studio界面的最后一个话题。应该说明的是,Visual C+ 拥有比你启动Visual C+ 后看到的工具条多得多的工具条。在工具条上的任何位置右击,你都会看到如下图所示的上下文菜单:该菜单中列出了Visual C+ 提供的所有标准工具条。带选中符号的菜单项对应的工具条当前显示在工具条区域中
18、。如果想把某个菜单项对应的工具条添加到工具条区域,只需要单击该菜单项即可;反过来,如果想在工具条区域中去掉某个工具条,也只需要通过在上下文菜单中单击对应的菜单项、去掉其选中符号即可。上下文菜单中还有一个Customize菜单项值得注意。选择该菜单项后你会看到如下图所示的对话框:Customize对话框包含了几个让你重新配置Developer Studio界面上绝大多数部件的选项卡。然而,这里我们最感兴趣的是Commands选项卡。对每个菜单和工具条它都包含了一系列的图标(代表对应的命令)或文本命令。如果想给现存工具条上增加一个命令,只需要抓住其图标(或文本命令)并把它拖曳到工具条上,这样,所选
19、命令就显示在工具条上,你可以更快速地访问它们了。如果选择了某个现在还没有相应图标的命令,那么系统会显示Button Appearance对话框,在这个对话框中可以为命令选择一个图标。同样的功能对菜单项也一样起作用。你需要做的工作就是打开要修改的下拉菜单,在Commands选项卡中抓住要添加到菜单中的命令,然后将其拖曳到菜单项中希望的位置。在这种情况下,你看到的总是命令的文本版本而不是图标。从工具条或菜单中删除不需要命令的方法也很简单。简单地抓住不需要的命令,并把它拖曳到Customize对话框中。该命令将在菜单或工具条中消失,当然,你随时都可以重新把它添加到菜单或工具条中。你也可以根据需要移动
20、工具条的位置。单击工具条左边缘的双线竖杠,然后把工具条拖曳到所需位置。与此相似,如果你不喜欢某个菜单的当前位置,那么抓住它(在Customize对话框打开的情况下)并把它移动到所需位置。2、 编写控制台应用程序Visual C+有能力创建多种不同类型的应用程序。然而,从简单起见,本课程设计要创建最简单的“控制台应用程序”。控制台应用程序适用于不需要为用户提供全功能操作界面(Windows窗口)的情况。本质上讲,控制台应用程序就像添加了一些特性的DOS应用程序。让我们探讨一个相当简单的控制台应用程序,看看在这个程序中你能做些什么。这个示例中,我们并不把程序的功能看得很重要,只是要了解应该如何完成
21、示例。当然,第一步的工作是创建程序框架。按下述步骤进行操作:1. 如果你还没有启动Visual C+,那么启动Visual C+。2. 使用File|New命令显示如下图所示的New对话框。注意,我已经选择了Projects选项卡并加亮了要在本例中使用的工程类型。3. 当选择了Win32 Console Application后,在Project Name域中键入程序名称。这个样本程序使用的名称为Console。你或许还需要修改一下Location域的内容,那么单击一下该域旁边的浏览按钮,系统会显示Choose Directory对话框,在这个对话框中选择应用程序的存放目录。4. 单击OK按钮
22、。你会看到Win32 Console Application - Step 1 of 1对话框,如下图所示。注意,在这个对话框中有几个应用程序类型供选择。这也是VisualC+ 6.0的一个新特性。以前版本的Visual C+简单地创建一个空的工程。现在到了选择要创建哪种类型工程的时候了(即使空工程也要进行选择)。5. 选择An Empty Project,然后单击Finish。你会看到一个NewProject Information对话框,它告诉你都选择了哪些选项。6. 单击OK按钮创建示例程序。现在到了给示例程序添加代码的时候了。需要完成的第一件事是向工程中添加一个文件,让我们看看添加过程
23、。1. 使用File | New命令打开New对话框,选择File选项卡,其中显示了文件类型的完整列表,包括Resource Template以及像Icon File这样的各种图像文件。2. 加亮C+ Source File选项。3. 在File Name域中键入Console(Visual C+会自动添加上正确的文件扩展名)。4. 单击OK。系统显示一个空的C+源文件。现在我们有了一个要使用的空文件,该添加一些代码了。程序列表2.1显示了一组简单的代码,目的是为了让大家看清楚在这种环境下系统是如何工作的。程序列表2.1 /预编译的头文件#include stdio.h/程序运行起始点void
24、 main() /屏幕上输出Hello,World! printf(Hello,World!n);在编写完代码后,要进行编译连接后才能执行。在Visual C+中,在“Build”弹出菜单中选择“Build *.Exe”(其中*即为创建应用程序时填写的工程名)菜单项,或者在工具栏上选择“”按钮即可。在编写代码的过程中,由于多种原因,很可能出现各种各样的语法错误,使得代码无法编译连接成为可执行程序。Visual C+在编译连接的过程中可以指出这些错误供用户修改。编译中发现语法错误后,VC+的界面如下图。在编译完全成功后,Output窗口中将如下所示:3、 调试程序如果程序的语法正确,但是在编译连
25、接成可执行程序后,运行不是预想的结果,就需要利用Visual C+的调试功能。(1) 调试执行调试执行是程序的一种运行状态,在此状态下,整个程序的运行在Visual C+的监控之下,可以设置断点、观察程序中变量的数值,方便用户查找错误。在菜单“Build”中,选择弹出菜单“Start Debug”中的“go”命令可执行程序即可进入调试状态开始运行。或者在工具栏上选择“”命令。或使用快捷键“F5”(2) 设置断点(Break Point)断点是调试中常用的功能,在可能出错的语句附近设置断点,可以在程序进入调试状态运行时停止在断点设置点。在希望设置断点的语句上单击右键,在弹出的菜单中选择“Insert/Remove Breakpoint”即可,或者在工具栏上选择“”命令,或使用快捷键“F9”。(3) 观察变量的值(Watch)程序进入调试状态,并在断点处暂停后,VC+会自动调出新的工具栏和菜单,选择“”按钮或“View”菜单栏下的弹出菜单“Debug Windows”中的“Watch”命令,一般在VC+的底部会出现一个Watch窗口,如下图。(4) 单步执行(Step)程序在断点停止后,可以由用户控制一步一步地执行,只要选择工具栏中的“”或快捷键“F10”。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1