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