软件技术基础实验项目书2013版
- 格式:doc
- 大小:1.75 MB
- 文档页数:12
《软件技术基础》实验报告实验名称:顺序表的操作班级学号姓名第9 周星期 2 、5,6 节成绩一、实验目的:1、掌握顺序表结构的实现方式;2、掌握顺序表常用算法的实现;3、熟悉利用顺序表解决问题的一般思路;4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。
二、实验内容:1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。
(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。
(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。
2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。
要求实现菜单、初始化、添加、删除和显示等功能。
三、实验结果:四、实验中遇到的问题及解决方法:第一次编写C++,感觉力不从心,回去多看看PPT。
五、实验心得体会:对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习附:源程序(自行编写或修改的程序。
若为修改程序请注明修改部分的功能,若为书上实例则可不附。
)#include <iostream>#include <string>#include <stdlib.h>#include <iomanip>#define MAXSIZE 20using namespace std;int num;typedef struct{string student_number;string name;string tel;string home_phone;int id;} TEL;void shuaxin(TEL *);void delet(TEL *);void find(TEL *);void show(TEL *);int main(void){int choose;TEL List[MAXSIZE];while(1){cout << "***************************欢迎来到XXX电话本系统*********************" << endl;cout << "1.初始化并建立" <<endl;cout << "2.删除" <<endl;cout << "3.查找" <<endl;cout << "4.显示全部" << endl <<endl;cin >> choose;system("cls");while( choose < 1 || choose > 4){cout << "输入错误,数字1-4,请重新输入!" << endl;cin >> choose;system("cls");}switch(choose){case 1: shuaxin(List); break;case 2: delet(List); break;case 3: find(List); break;case 4: show(List); break;}//system("cls");}return 0;}void shuaxin(TEL * list){int i,j;for(i = 0; i < MAXSIZE; i++){list[i].id = i + 1;list[i].home_phone = "none";list[i].name = "none";list[i].student_number = "none";list[i].tel = "none";system("cls");cout << "初始化成功,现在开始建表:" << endl;cout << "请输入需要建立的电话个数:(小于" << MAXSIZE << ")"<<endl;cin >> num;while( num < 1 || num > MAXSIZE ){system("cls");cout << "输入错误,请重新输入" << endl;cin >> num;}system("cls");cout << "请依次输入学生的学号,姓名,移动电话,家庭电话" << endl;for(j = 1; j <= num; j++){cout << j << '.';cin >> list[j - 1].student_number;cin >> list[j - 1].name;cin >> list[j - 1].tel;cin >> list[j - 1].home_phone;cout << endl;if(num == (j - 1) ){system("cls");cout << "建立表完毕!" << endl;}}void delet(TEL * list){int j,i = 0;cout << "请输入你需要删除的序号" << endl;cin >> j;while( j < 0 || j > num){cout << "输入错误,请重新输入" << endl;cin >> j;}while(list[i].id != j)i++;for(j = i; j < num - 1; j++){list[j].name = list[j + 1].name;list[j].tel = list[j + 1].tel;list[j].student_number = list[j + 1].student_number;list[j].home_phone = list[j + 1].home_phone;}list[j].home_phone = "none";list[j].name = "none";list[j].student_number = "none";list[j].tel = "none";num--;system("cls");cout << "删除完毕" << endl;}void find(TEL * list){string telnum;int i,key = 0;cout << "请输入你需要查找的电话号码" << endl;cin >> telnum;system("cls");for(i = 0; i < MAXSIZE; i++){if(telnum == list[i].tel || telnum == list[i].home_phone){if(key == 0)cout << "依次学号姓名移动电话家庭电话" << endl;cout << list[i].id << '.';cout << setw(12) << list[i].student_number;cout << setw(10) << list[i].name;cout << setw(14) << list[i].tel;cout << setw(10) << list[i].home_phone;cout << endl;key = 1;}}if( key == 0)cout << "未找到此电话号码" << endl;}void show(TEL * list){int i;cout << "现在有" << num << "个电话号码" << endl;cout << "依次学号姓名移动电话家庭电话" << endl;for(i = 0; i < num; i++){cout << list[i].id << '.';cout << setw(12) << list[i].student_number;cout << setw(10) << list[i].name;cout << setw(14) << list[i].tel;cout << setw(10) << list[i].home_phone;cout << endl;}cout << "输出完毕" << endl;}《软件技术基础》实验报告实验名称:链表的操作(一)班级学号姓名第10 周星期 2 、5,6 节成绩一、实验目的:1、掌握单链表结构的实现方式;2、掌握单链表常用算法的实现。
《软件技术基础》实验指导书电子商务教研室2009年9月实验三队列的应用◆实验目的与基本要求1、掌握队列的顺序存储和链式存储结构。
2、掌握队列的特点。
3、掌握队列的基本运算。
◆实验条件1、硬件:一台微机2、软件:操作系统和C语言系统◆实验方法确定存储结构后,上机调试实现队列的基本运算。
◆实验内容1、写出队列的出队和入队算法。
2、设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已停放n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。
编制一个程序模拟该停车场的管理。
◆性质:必做◆类型:验证◆2h队列是从日常排队现象抽象出来的一种数学模型。
当然数据结构中的队列远没有生活中的排队灵活。
数据结构中的队列规定:数据只能从队尾进,从队首出来。
已经进入队列的数据次序不能再做改变。
这就叫做“先进先出”(FIFO)或者说“后进后出”(LILO)。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的前一个位置(当然也可以直接指向队首元素,只是许多数据结构的书上都习惯这么定义)。
与队列类似,我们可以用一维数组来模拟队列这种数据结构,也可以用链表来模拟。
根据以上描述,队列可以可以有以下基本操作:1、创建初始化:按约定置队列为空状态。
《软件工程》课程实验指导书华北水利水电大学信息工程学院计算机科学与技术专业2016年5月《软件工程》课程实验指导书一、实验选题与要求自由选择题目,但每个班级的选题按照学号尾数为0、5选第1题,尾数为1、6选第2题,尾数为2、7选第3题,尾数为3、8选第4题,尾数为4、9选第5题。
1、单科学生成绩管理系统任务:对在校某班学生一门课程的平时成绩与考试成绩进行统一管理。
每个学生记录包括学号、姓名、每次习题(按16次计)、测验(按3次计)、考试成绩和总评成绩等信息,以学号为序存放。
要求:(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为四种,以A、B、C、D为标志(若设置菜单操作更佳):A:插入一个新的学生记录;B:登记某次成绩(可以是每次习题、测验、考试成绩);C:修改某次成绩(可以是每次习题、测验、考试成绩);D:删除一个学生记录。
(3)计算学生的最终成绩,各项成绩权重为:习题10%、测验20%、考试70%。
(4)按学号排序打印全班成绩表,表格内容包括习题、测验、考试、总评成绩,前三项为百分制,总评成绩为加权计算结果值。
设置教师和学生两种登录系统身份,每个用户应有自己的口令;教师身份可以完成上述基本要求的功能,学生可以通过输入学号查询个人成绩。
2、飞机航班订票系统任务:通过此系统可以实现如下功能:(1)录入:录入航班信息(数据可以存储在一个数据文件中)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件;订票的客户信息有姓名,证件号,订票数量及航班,订单要有编号。
(5)修改航班信息:当航班信息改变可以修改航班数据文件。
3、宾馆管理信息系统任务:入住或预订客房时,用户要对客户管理模块或预订管理模块进行核对审查,并进行登记;客户换房时,要对换房信息进行查询和更新;客户退房时,要进行结算,并对更新客房信息。
前言一、实验目的《计算机软件技术基础》是一门实践性非常强的课程。
要获得利用计算机、编写程序解决实际问题的能力,仅靠习读教材和听课是不够的,还有一个重要的环节是亲自在计算机上实践。
计算机软件技术基础实验教学能够培养学生理论联系实际的学风,培养学生研究问题和解决问题的能力,培养学生的创新能力和协作精神,提高学生编写程序解决实际问题的能力。
通过该课程的实验环节,训练学生的编程技能,使学生学会运用所学理论知识判断和解决实际问题,加深和扩大理论知识;学会使用C、VC++等常用的编程软件;能根据要求建立实际问题的数学模型,确定求解方法,画出程序方框图,编写程序;学会使用各种调试命令来分析并排除程序中的错误;能运用理论知识对实验现象、结果进行分析和处理。
二、实验前预习每次实验前,学生须仔细阅读本实验指导书的相关内容,明确实验目的、原理和步骤;认真阅读程序,并尝试画出程序方框图;复习与实验内容有关的理论知识;预习C、VC++编程软件的使用方法。
三、实验注意事项1.实验开始前,应先检查计算机是否工作正常,是否安装了需要的软件。
2.按照实验步骤做实验,在计算机上认真输入编好的程序并保存。
3.程序编写完后,仔细检查是否存在书写错误。
4.确定程序书写无误后,编译并连接程序。
若出现错误,则修改程序直到无语法错误。
5.利用调试工具查找程序中的逻辑错误,并进行排除。
6.运行程序,观察结果并保存或记录。
7.实验结束后,应关闭计算机,清理实验桌面。
9.爱护公物,发生仪器设备等损坏事故时,应及时报告指导教师,按有关实验管理规定处理。
10.自觉遵守学校和实验室管理的其它有关规定。
四、实验总结每次实验后,应对实验进行总结,即实验结果进行整理,撰写实验报告。
实验报告除写明实验名称、日期、实验者姓名外,还包括:1.实验目的;2.实验设备;3.实验内容;4.实验步骤;5.实验结果;6.心得体会。
目录目录 (1)实验一VC++软件的熟悉与使用 (3)实验二顺序存储线性表的基本运算 (11)实验三单向链表的基本操作 (15)实验四迷宫实验 (21)实验五二叉树的存储及遍历 (28)实验六图的单源最短路径 (32)实验七排序实验 (37)实验一VC++软件的熟悉与使用一、实验目的1、熟悉VC++控制台程序的建立、编辑、编译、运行步骤。
计算机软件技术基础课程项目报告书一、项目研究内容简介使用MFC制作一个小的演示软件,实现(字符、数字)串的内容模式匹配,以及蛮力法与Horspool 算法的比较。
本项目主要通过比较两种算法进行单个字符比较这一基础操作的数目,来比较两种算法的优劣。
其次,本项目还实现了依次查找模式(Pattern)并在文本(Text)中以括号标出、显示首次字符串匹配的位置、查找替换等额外的功能。
二、实验原理与方案1实验原理(1)蛮力字符串匹配算法:将模式(m个字符)对准文本(n个字符)的前m个字符,然后从左到右匹配每一对相应的字符,知道m对字符全部匹配或者遇到一对不匹配的字符,在后一种情况下模式右移一位,然后继续从模式的第一位从左到右与文本对应位置字符比较。
(2)Horspool算法:相比于蛮力法使用了输入增强思想。
在遇到一对不匹配的字符时,根据文本中对齐模式末尾字符的元素c的不同情况,使模式右移的幅度尽可能的大。
根据c在模式中是否出现以及出现的位置进行预处理,预先算出每次移动的距离填入表中,通过查表的方式缩短算法时间。
(3)MFC中的CString类对象内置了很多函数,使得在MFC中对字符串操作方便很多,例如对字符串的插入、查找、替换等,均有函数可以直接调用。
2项目方案(1)实验平台:使用Visual C++开发平台MFC,使用static text、editbox、button等控件绘制界面,界面大致如下:(2)界面逻辑:1.TEXT是字符串模式匹配的源文本;2.PATTERN是字符串模式;3.REPLACE是要替换成的内容;4.cout和position分别表示两种算法进行单个字符比较这一基础操作的数目以及匹配时串在文本中的位置。
5.BruteForce、Horspool按钮为两种算法的启动按钮;6.Search/Next键为依次查找按钮;7.Replace/Next键为替换按钮,将文本中所有pattern中的内容替换为replace中的内容8.Reset将程序全部复位清零。
《软件工程》实验指导书太原理工大学计算机科学与技术学院2013年3月目录第一部分实验教学大纲 (1)第二部分实验说明 (3)实验一软件工程的网上资源与常用的CASE工具 (3)实验二传统软件开发方法的可行性研究 (5)实验三传统软件开发方法的需求分析建模 (6)实验四传统软件开发方法的结构设计 (7)实验五系统测试 (8)实验六面向对象的分析与设计 (9)实验七软件项目管理 (10)附录一实验题目 (11)第一部分实验教学大纲课程名称:软件工程(Software Engineering)课程总学时: 48 学时[理论: 40 学时;实验: 8 学时]课程总学分: 3 学分适用专业和年级:计算机科学与技术、软件工程专业一、实验的目的与任务本实验课程通过完整地实施软件生命周期各阶段的任务,让学生系统地学习到软件开发过程的主要理论、方法、技术、标准和规范,使他们具备基本的软件开发设计能力;通过软件工程中常用CASE工具和软件项目管理的实践,使他们具备运用各种工具完成项目设计和实施的基本技能;通过集体项目开发,培训学生的合作意识和团队精神,培养学生对技术文档的编写能力。
二、实验内容和要求本课程的实验内容包括结构化(生命周期法)的方法学和面向对象的方法学。
通过一个模拟项目,要求学生分别用结构化方法和面向对象的方法完成系统的分析、设计和实现的整个软件开发过程。
此外实验中引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
实验要求学生采用“项目小组”的形式,结合具体的开发项目进行分析、设计。
每个项目小组必须按照《软件工程实验指导书》附录中给定的文档规范标准提供项目文档;具体要求如下:1.班级按项目不进行分组。
2.每个人均为负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目,所有实验中都要采用同一个实验题目。
项目开发的每项任务要规定该任务的起止日期和时间。
3.每个项目均要进行需求分析,完成需求分析报告,修订并评审需求分析报告,确定系统的需求分析模型。
实验一软件工程工具以及环境一、试验目的1.理解软件工程的基本概念,熟悉软件,软件生命周期,软件生存周期过程和软件生命周期各阶段的定义和内容,软件危机和软件工程基本原理。
2.理解软件工程环境和工具,熟悉软件工程环境组成和软件工具分类等。
3.通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站和主流的软件工程工具等,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持开展软件工程应用实践。
4.熟悉软件工具、软件开发环境和CASE工具5.了解GB/T15853-1995《软件支持环境》相关内容二、试验内容与步骤1.了解软件工程网站和相关软件工程知识。
2.了解软件工程环境概念、层次、组成和开发要求。
3.了解现有主流的软件工程工具及其功能、用途和特点及适用范围。
三、试验步骤1.上网查询软件工程已有的网站。
2.查询软件工程环境环境层次、组成。
3.查询现有主流的软件工程工具及其功能、用途和特点及适用范围。
4.查阅有关资料,给出“软件”、“软件生命周期”、“软件生存周期过程”、“软件工具”、“软件开发环境”、“CASE工具”的权威定义5.上网搜索和浏览,了解软件工程技术的应用情况,记录所浏览网站的技术支持工作。
6.填写下列学术术语的英文简写,并思考、理解其含义软件开发环境、软件工程环境、软件支持环境、软件项目支持环境、软件自动开发环境、集成化程序设计环境7.通过查阅资料给出GB/T15853-1995《软件支持环境》规定的软件支持环境的基本要求了解Microsoft Visio的应用状况、了解Rational Rose的应用状况、了解Oralce Designer的应用状况、了解Together Soft的应用状况、了解CASE Studio的应用状况、了解Sybase PowerDesigner的应用状况、了解Microsoft Visual SourceSafe的应用状况四、学时分配2学时五、要求必做六、性质验证七、所需仪器设备微机、网络八、试验总结第二章软件工程标准化一、试验目的1.熟悉和掌握软件工程标准化的概念、国家标准规范和意义。
《软件技术基础》实验报告实验名称:顺序表的操作班级学号姓名第9 周星期 2 、5,6 节成绩一、实验目的:1、掌握顺序表结构的实现方式;2、掌握顺序表常用算法的实现;3、熟悉利用顺序表解决问题的一般思路;4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。
二、实验内容:1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。
(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。
(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。
2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。
要求实现菜单、初始化、添加、删除和显示等功能。
三、实验结果:四、实验中遇到的问题及解决方法:第一次编写C++,感觉力不从心,回去多看看PPT。
五、实验心得体会:对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习附:源程序(自行编写或修改的程序。
若为修改程序请注明修改部分的功能,若为书上实例则可不附。
)#include <iostream>#include <string>#include <stdlib.h>#include <iomanip>#define MAXSIZE 20using namespace std;int num;typedef struct{string student_number;string name;string tel;string home_phone;int id;} TEL;void shuaxin(TEL *);void delet(TEL *);void find(TEL *);void show(TEL *);int main(void){int choose;TEL List[MAXSIZE];while(1){cout << "***************************欢迎来到XXX电话本系统*********************" << endl;cout << "1.初始化并建立" <<endl;cout << "2.删除" <<endl;cout << "3.查找" <<endl;cout << "4.显示全部" << endl <<endl;cin >> choose;system("cls");while( choose < 1 || choose > 4){cout << "输入错误,数字1-4,请重新输入!" << endl;cin >> choose;system("cls");}switch(choose){case 1: shuaxin(List); break;case 2: delet(List); break;case 3: find(List); break;case 4: show(List); break;}//system("cls");}return 0;}void shuaxin(TEL * list){int i,j;for(i = 0; i < MAXSIZE; i++){list[i].id = i + 1;list[i].home_phone = "none";list[i].name = "none";list[i].student_number = "none";list[i].tel = "none";system("cls");cout << "初始化成功,现在开始建表:" << endl;cout << "请输入需要建立的电话个数:(小于" << MAXSIZE << ")"<<endl;cin >> num;while( num < 1 || num > MAXSIZE ){system("cls");cout << "输入错误,请重新输入" << endl;cin >> num;}system("cls");cout << "请依次输入学生的学号,姓名,移动电话,家庭电话" << endl;for(j = 1; j <= num; j++){cout << j << '.';cin >> list[j - 1].student_number;cin >> list[j - 1].name;cin >> list[j - 1].tel;cin >> list[j - 1].home_phone;cout << endl;if(num == (j - 1) ){system("cls");cout << "建立表完毕!" << endl;}}void delet(TEL * list){int j,i = 0;cout << "请输入你需要删除的序号" << endl;cin >> j;while( j < 0 || j > num){cout << "输入错误,请重新输入" << endl;cin >> j;}while(list[i].id != j)i++;for(j = i; j < num - 1; j++){list[j].name = list[j + 1].name;list[j].tel = list[j + 1].tel;list[j].student_number = list[j + 1].student_number;list[j].home_phone = list[j + 1].home_phone;}list[j].home_phone = "none";list[j].name = "none";list[j].student_number = "none";list[j].tel = "none";num--;system("cls");cout << "删除完毕" << endl;}void find(TEL * list){string telnum;int i,key = 0;cout << "请输入你需要查找的电话号码" << endl;cin >> telnum;system("cls");for(i = 0; i < MAXSIZE; i++){if(telnum == list[i].tel || telnum == list[i].home_phone){if(key == 0)cout << "依次学号姓名移动电话家庭电话" << endl;cout << list[i].id << '.';cout << setw(12) << list[i].student_number;cout << setw(10) << list[i].name;cout << setw(14) << list[i].tel;cout << setw(10) << list[i].home_phone;cout << endl;key = 1;}}if( key == 0)cout << "未找到此电话号码" << endl;}void show(TEL * list){int i;cout << "现在有" << num << "个电话号码" << endl;cout << "依次学号姓名移动电话家庭电话" << endl;for(i = 0; i < num; i++){cout << list[i].id << '.';cout << setw(12) << list[i].student_number;cout << setw(10) << list[i].name;cout << setw(14) << list[i].tel;cout << setw(10) << list[i].home_phone;cout << endl;}cout << "输出完毕" << endl;}《软件技术基础》实验报告实验名称:链表的操作(一)班级学号姓名第10 周星期 2 、5,6 节成绩一、实验目的:1、掌握单链表结构的实现方式;2、掌握单链表常用算法的实现。
******************* 《软件工程》实验指导书(自编)******************* 计算机科学与信息工程学院目录一.课程实验目的和任务 (1)二.综合实验题目 (1)三.实验安排 (2)实验一系统需求分析....................................................................................错误!未定义书签。
一.实验目的............................................................................................错误!未定义书签。
二.准备知识............................................................................................错误!未定义书签。
三.实验内容............................................................................................错误!未定义书签。
四.实验指导............................................................................................错误!未定义书签。
实验二系统概要设计. (12)一.实验目的 (12)二.准备知识 (12)三.实验内容 (12)四.实验指导 (19)实验三系统详细设计 (24)一.实验目的 (24)二.准备知识 (24)三.实验内容 (24)四.实验指导 (25)实验四系统编码实现 (28)一.实验目的 (28)二.准备知识 (28)三.实验内容 (28)四.实验指导 (29)实验五系统测试 (30)一.实验目的 (30)二.准备知识 (30)三.实验内容 (30)四.实验指导 (30)一.课程实验目的和任务软件工程课程实验目的是通过具体的应用软件系统的开发实现,使学生能够结合课程有关软件生命期的介绍,规范软件设计与实现过程的文档要求,掌握软件设计的规范,理解软件工程课程的基本理论与方法。
河南工业大学电气工程学院软件技术基础--------实验指导书2013年2月实验一 vc++6.0基本环境与应用实验题目:熟悉vc++6.0的实验环境实验目的:掌握建立vc工程的方法,并学会编写简单的vc程序。
实验内容:1,熟悉vc++界面。
启动VC++ 6.0中文版以后,屏幕上显示如图所示的开发环境。
开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口及状态栏组成。
每个窗口左上角均有最小化、最大化(还原)和关闭按钮。
各类窗口相互独立,可进行打开、关闭、移动、极大、极小化控制以及改变窗口大小。
2 建立MFC应用程序建一个VC++的MFC应用程序的过程可分为5个步骤:(1)创建项目使用Files菜单下的“New”项,会弹出一个New的对话框,选中Projects选项卡,对话框会列出一系列可以创建的项目类型(见图4.),下列出部分常用类型:ATL COM AppWizard(创建ATL应用程序)Custom AppWizard(创建自定义的应用程序)Database Project(创建数据库)DevStudio Add-in Wizard(创建自定义宏)ISAPI Extension Wizard(创建Internet服务器或过滤器)Makefile(创建Make文件)MFC AppWizard(dll)(创建MFC动态链接库)MFC AppWizard(exe)(创建MFC可执行程序)MFC AxtiveX ControlWizard(创建MFC控件程序)Win32 Dynamic Link Library(创建Win32动态链接库)Win32 Application(创建Win32程序)Win32 Console Application(创建Win32控制台程序)(2)点选要创建的项目类型,然后在右边的Location框中输入要保存的路径,在Project Name框中输入项目的名字,点击OK,会弹出创建项目向导,可以根据提示选取要创建的项目的细节。
最后点Finish按钮。
VC++会列出一个将要创建的项目的信息,这时点OK按钮VC++就会自动创建该项目的界面窗口、对话框等的编码文件。
(3) 编制程序在按需求建立项目之后,应添加资源,设置资源属性,定义类文件,编写函数代码,以及响应事件时所要执行的代码。
编码时可以直接点击项目工作区的相应项目进行编辑。
在类视图下可以点击类跳转到源文件相应的行编辑类以及其成员信息。
或在资源视图下直接双击相应对象编辑。
(4)保存项目当创建项目时,VC++会自动生成项目文件。
在增加代码时要经常保存项目。
保存项目应选File菜单上的Save命令进行保存。
有时编码程序时可能会同时改动多个文件这时应注意将改动的文件分别保存或者用File菜单上的Save all命令保存。
(5)建立程序建立程序包括:编译,链接和运行程序。
这行操作可以在快捷栏上用快捷按钮完成。
向项目增加代码时,可以建立程序来检查错误和修改代码。
编译(Compile)编译是将单个文件生成*.obj文件供链使用同时以检查程序有无错误。
可以单击快捷栏上的编译按钮进行编译。
链接(Build)链接是将程序连接生成*.exe文件,以便直接运行。
可以单击快捷栏上的链接按钮进行链接。
执行(Execute)执行是运行工程查看结果。
可以单击快捷栏上的执行按钮执行程序。
注意:编译和链接会在文件目录中的Debug目录中生成可执行文件以及与其相关的链接文件。
可直接双击该目录下的*.exe文件运行程序。
实验报告要求:(1)熟悉vc++6.0的实验环境,熟悉各个菜单和工作区。
(2)建立MFC(.exe)的工程项目,学会使用vc++6.0编程语言编写简单的小程序。
实验二线性表的运算实验题目:线性表的生成、插入和删除等运算实验目的:掌握线性表的顺序存储结构和链式存储结构及它们在计算机中的实现方法。
实验内容:分别建立一个顺序表和单链表,实现其生成、插入、删除、查找和定位的程序。
(1)按指定长度和输入的相应长度的字符串建立一个顺序表和一个单链表。
(2)在指定位置插入一个元素。
例如,设当前链表的顺序为:“ABCD”,则按提示输入所插元素和位置“F,1”,则插入的结构为“FABCD”。
(3)删除指定位置的一个元素。
例如,设当前链表的顺序为:“ABCD”,则按提示输入删除位置“1”,则删除的结果为“BCD”。
实验要求:(1)将程序输入计算机,编译运行。
(2)程序的实际功能与上述所列功能不完全相符,调试程序,找出问题所在,并纠正。
实验报告要求:(1)将程序输入计算机,编译运行。
(2)程序的实际功能与上述所列功能不完全相符,调试程序,找出问题所在,并纠正。
实验原理:写出顺序表和单链表的生成、插入和删除运算的算法描述(形式语言)。
实验步骤:写出调试、查找程序中问题的思路和步骤。
实验结果:写出修改前后的运行结果。
附:1.顺序表的建立代码#include <iostream.h>#include<malloc.h>void main(){int i;struct seqlist{int a[10];int n;};typedef struct seqlist *pseqlist;pseqlist p;p=(pseqlist)malloc(sizeof(struct seqlist));p->n=0;for( i=0;i<5;i++){cin>>p->a[i];p->n=p->n+1;}for( i=0;i<10;i++)cout<<p->a[i]<<endl;cout<<"list length is "<<p->n;}2.单链表的建立代码struct node * next;}listnode;typedef listnode *linklist;listnode * p;linklist head,q;head=(listnode *)malloc(sizeof(listnode));/*生成头结点*/head->data=10;head->next=NULL;p=(listnode *)malloc(sizeof(listnode));/*生成第一个要插入的新结点*/p->data=20;p->next=NULL;q=head;while(q->next!=NULL)q=q->next;q->next=p; /*将第一个新结点插入到线性表的末尾*/p=(listnode *)malloc(sizeof(listnode));/*再生成第二个要插入的新结点*/ p->data=30;p->next=NULL;q=head;while(q->next!=NULL)q=q->next;q->next=p; /*再将第二个新结点插入到线性表的末尾*/q=head;while(q->next!=NULL){cout<<q->data;q=q->next;} /*输出从头结点开始的每一个结点的数据域*/}实验3 查找算法实验题目:二分查找算法实验目的:掌握二分查找算法的基本原理,使用vc++6.0语言编写程序。
实验内容:(1)了解查找的概念查找又称检索,简单讲就是查找表。
一个查找过程,就是对于给定的元素K,找出表中关键字值等于的记录。
查找成功,确定其关键字值等于K的记录存在;查找失败,确定关键字为K的记录不在表中。
(2)二分查找算法的基本原理如果顺序查找表的元素按照关键字的值有序存放,那么可利用高效的二分查找来完成查询。
条件假定元素按关键字的值升序排列,将给定的数据与有序表中间位置的元素做比较,若两者相等则查找成功;若前者小于后者则在中间位置左边的元素中继续查找;若前者大于后者则在中间位置右边的元素中继续查找。
不断重复这一过程直到查找成功,或者直到查找区间缩小为一个元素时却仍未找到目标,则查找失败。
(3)给出一组有序数列,对其中某个数进行二分查找,建立一个.cpp程序。
实验步骤:①设置查找区间初值,设下界low = 0,设上界high = length-1。
②若low≤high则计算中间位置mid = (low +high)/2。
③若key<data[mid],则设high = mid-1并继续执行步骤②;若key>data[mid],则设low = mid+1并继续执行步骤②;若key=data[mid]则查找成功,返回目标元素位置mid+1(位置从1计数)。
④若当low=high时,key!=data[mid]则查找失败,返回0。
实验报告要求:1.写清二分查找的原理。
2.写出每步操作的步骤。
3.写出实验中的结果。
4.写出实验总结和实验心得。
附:二分查找算法代码int BinSearch( SSTable &L, KeyType key ){ int low, high, mid;low = 0;high = L.length-1; //设置查找区间初值while (low <= high) {mid = (low + high) / 2;if(key==L.data[mid].x) return mid+1; //查找成功else if( key<L.data[mid].x )high = mid-1; //继续在前半区间进行查找 elselow = mid + 1; //继续在后半区间进行查找}return 0; //不存在待查元素}实验4 排序算法实验题目:三种简单排序算法的原理实验目的:掌握插入排序、选择排序和起泡排序算法的工作原理实验内容:用vc++6.0建立三个程序,实现三种排序算法。
1.排序的概念排序是计算机内经常进行的一种操作,其目的是将一组同类型的记录序列调整为按照元素关键字有序的记录序列。
例如将学生记录按学号排序,将课程记录按课程编码排序。
排序的形式化定义为:假设含n个记录的序列为{ R1, R2,…,Rn },其相应的关键字序列为{ K1, K2,…,Kn }。
这些关键字相互之间可以进行比较,即在它们之间存在着这样一个关系Kp1≤Kp2≤…≤Kpn,按此固有关系将最初的记录序列重新排列为{ Rp1, Rp2, …,Rpn }的操作称作排序。
2.插入排序的原理插入排序方法的基本思想是:将记录分为有序和无序两个序列,假定当插入第k个记录时,前面的R1,R2,…,Rk-1已经排好序,而后面的Rk,Rk+1,…,Rn仍然无序。