中南大学C++实验报告
中南大学大一下学期c++程序设计实验报告1.0

中南大学本科生课程设计(实践)任务书、设计报告(C++语言程序设计)题目多功能集成程序系统学生姓名闵杰指导教师罗芳学院材料科学与工程专业班级材料类1003学生学号**********计算机基础教学实验中心2011 年 6 月 30 日《集合简单计算、信息管理、绘图及多媒体系统设计》C++实践报告关键词:C++程序设计MFC[.exe] 面向对象计算信息管理绘图播放器一、引言1.1实践任务:1、计算程序设计。
如:计算器、一元二次方程的求解、华氏温度和摄氏温度之间的转换、求阶乘等。
2、文本编辑程序设计。
3、绘图程序设计。
如:吹泡泡程序、曲线等图形绘制。
4、信息管理程序设计。
能完成信息的添加、删除和修改等功能。
5、多媒体程序设计。
如:音频播放器、flash动画播放器等。
1.2实践目的:当今社会是信息时代,科技的高速发展要求我们能过熟练掌握并运用新的科学技术。
而信息的获取需要我们能够掌握应用程序的深层代码,运用所掌握的计算机程序知识对数据进行管理。
C++是由C发展而来的,与C兼容。
所以它可以用于面向过程的结构化程序设计,但是它又有自己的特点,它也可以用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
通过本次实践,1、可以加深我们对面向对象的认识,巩固C++的基础知识,了解基于对话框的应用程序、文档/视图应用程序的框架结构和运行机制,初步掌握创建MFC应用程序的方法、过程。
2、掌握常用的控件的重要属性、主要消息、常用成员函数,并熟练地应用这些控件设计应用程序。
3、掌握绘制图形的方法、定时器的使用,鼠标消息处理函数和键盘消息处理函数的编写、对话框使用和菜单设计的技术。
4、培养我们的独立思考、设计综合程序的能力;同时培养自学能力;训练小论文撰写能力。
因此,计算机程序设计是大多数专业的必修课。
随着软件工程技术的不断发展,面向对象的程序设计方法已成为当今软件开发的主流技术,我们肩负着博采众长的使命,运用好该程序将使我们受益匪浅。
中南大学C++程序设计报告

C++程序设计报告一、前言我认为安排此次课程设计的目的,是让同学们在独立完成设计、编写、调试应用程序及编写文档的任务的过程中,及时巩固已学的知识,补充未学但是非常重要的知识,提高程序设计的能力。
针对C++语言中的重点和难点内容,如数组和函数等,进行训练,并且能充分发挥独立自主学习的能力,对于在程序设计和调试中遇到的问题,应积极和同学交流,相互学习,共同进步二、正文1.(1)题目:任意输入一个正整数,要求:(1)求它是几位数;(2)按逆序输出各位数字;(3)求奇数位数字之和。
(2)算法分析分离出每一末位数字,然后输出;判断是否为奇数位,将奇数位数字相加求和;利用循环结构进行编程,每位数字逐一进行分离、判断。
(3)程序:程序要有详尽注释,如:各参数的含义、函数的功能等#include<iostream>using namespace std;void main(){int n,m,s=0,i=0; //定义变量cout<<"请输入一个正整数n"<<endl;cin>>n;do{m=n%10;// n对10取模,得到该数的最后一位数字cout<<m;//逆序输出每位数字n/=10;i++;if(i%2==1)//判断是否为奇数位{s+=m;}//各奇数位数字之和}while(n>0); //循环一次,计算一次,共循环i次cout<<"共有"<<i<<"位数字"<<endl;cout<<"奇数位之和是:"<<s<<endl;}(4)运行结果(5)调试过程中出现过的问题和解决的方法2.(1)题目:输入阶数n(1≤n≤10),输出对应的n阶旋转矩阵。
所谓旋转矩阵,就是在n阶矩阵中,起始数1置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。
中南大学C++实践报告完整版

中南大学化学化工学院《C++语言程序设计》实践报告专业班级:姓名:学号:同组人员:指导教师:完成日期:目录第一题(必做) (3)1.题目 (3)2.系统功能模块结构图 (4)3.数据结构设计及说明(程序) (5)4.程序结构(流程图) (10)5.各模块的功能 (15)6.运行结果 (16)第二题(必做) (21)1.题目 (21)2.数据结构设计及说明(程序) (21)3.程序结构(流程图) (24)4.运行结果 (25)第三题(选做) (26)第四题(选做) (26)1.题目 (26)2.系统功能模块结构图 (27)3.数据结构设计及说明(程序) (27)4.程序结构(流程图) (30)5.各模块的功能 (31)6.运行结果 (31)总结及参考文献 (35)第一题一、题目:使用菜单选择趣味程序△ 菜单是应用程序的界面,控制语句用来改变程序执行的顺序,是实现结构化设计的基础。
△ 本题的任务是设计一个比较实用的菜单,通过菜单选择不同的功能。
△ 本题的设计分两步:(1)先设计一个含有多个菜单项的菜单演示程序;A 、菜单内容:程序运行后,给出六个菜单项的内容和输出提示 1、FindNum 2、FindRoot 3、Detective 4、Bear 5、Curve 6、YearDay 7、Goodbye!B 、设计要求:使用数字1-7来选择菜单项,其他输入则不起作用。
(2)再为上述菜单项配上相应的功能,即以上述菜单的设计为基础,增加菜单项的处理功能。
菜单设计要求(这是6道编程题,要求在运行菜单时,能给出每个程序的运行结果): 1、FindNum有0、1、2、3、4、5、6、7、8、9十个数,按要求填入下列算式中,要求每 个数只使用一次,首位数不能为零,输出时显示所有可能的组合并统计个数。
□ □ □ + □ □ □ = □ □ □ □ 2、FindRoot求方程0133=--x x 在区间[-8,8]内的全部实根。
C语言程序设计实践报告

2
目录
一、功能设计 二、详细设计 三辑器模块
1、添加:当光标所在位置及后面没有字符时,系统会以添加的方式 输入字符。 2、插入:当光标所在位置及后面有字符时,系统会以插入的方式输 入字符。 3、删除:用户可以通过 Backspace 键删除光标前一个字符,也可以 使用 Del 键删除当前位置的字符。 4、选定:用户可以使用左移键(←)、右移键、上移键、下移键来移 动光标位置。也可以通过 Ctrl+左移键(或右移键)来选定多个字符。
(五)帮助及其他模块
1、帮助:帮助功能可以提示使用者如何进入菜单中的各个项目。 2、关于:关于功能是描述此文本文件编辑系统的设计者。 3、快速预览:用户可按 F10 功能键来打开快速预览窗口,在快速预 览窗口中没有功能菜单条。
6
二、详细设计
1、程序预处理。首先有头文件的加载,再有宏定义上下左右、 退格、换行、复制、粘贴、剪切等热键,使用户可以直接从键盘上录 入字符进行操控(字符即 ASCII 码字符),为了方便下面程序的运行, 还要定义 3 个结构体,分别与剪贴板、列单链表和行单链表相关。
(一)文件操作模块
1、新建:新建功能应该要可以不只是单纯地把输入文本框清空, 而且还应该可以智能判断文本框中是否有数据,如果有数据未 保存 或者保存过后又有数据变动,则会弹出提示信息询问是否 保存。新 建功能可以通过选择 File 菜单上的 New 子菜单来实现。 2、打开:打开功能应该要可以通过记事本读入文件。打开功能可以 通过选择 File 菜单上的 Open 子菜单来实现。在文件打开时,保存和 另存为操作中,系统会提示用户输入文件路径及文件名。特别注意的 是,当用户打开一个文件时,指定的文件必须存在,否则系统会报错。 3、保存:保存功能应该要可以直接将文本框中的内容记忆保存。保 存功能可以通过选择 File 菜单上的 Save 子菜单来实现。 4、另存为:另存为功能应该要可以将文本框中的内容记忆保存,并 且可以进一步把整个文件保存到指定地方。另存为功能可以通过选择 File 菜单上的 Save as 子菜单来实现。 5、退出:退出功能应该要可以直接退出文本文件编辑系统。退出功 能可以通过选择 File 菜单上的 Exit 子菜单来实现。
中南大学C++程序设计报告

str.Format("%d,%d",point.x,point.y);
AfxMessageBox(str);
CView::OnRButtonDown(nFlags, point);
CView::OnRButtonDown(nFlags, point);
CView::OnRButtonDown(nFlags, point);
}
这个函数功能是:用鼠标右键屏幕,就会马上显示当前位置的坐标信息。
Step 4
void CSNAKEView::oninit()
{
CDC *pDC=GetDC();
CBrush DrawBrush=(RGB(100,100,100));
CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);
时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作
1 WM_KEYDOWN
2 WM_RBUTTONDOWN
3 WM_TIMER
再右键CView类选择“ADD Virtual Funciton”选OnInitialUpdate()
OnInitialUpdate()的功能如下:
视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。
2017中南大学C++实践报告MFC编程

2017中南大学C++实践报告MFC编程中南大学本科生课程设计(实践)任务书、设计报告(大学计算机基础)题目MFC程序设计实践报告学生姓名张雪宁指导教师童键学院土木工程学院专业班级土木国际1602班学生学号1209160225计算机基础教学实验中心2017年 6 月 26日一、任务描述这次实践主要采用的是自主学习的方式,在我们已有的C++知识基础上,自学MFC编程,并完成《C++语言课程设计任务书》中指定任务与要求,在这次实践中,要求学会使用visual C++ MFC编程来完成《C++语言课程设计任务书》中的任务,任务涵盖以基本对话框为应用程序的框架,完成单文档界面(SDI)应用程序。
要求学会运用常用的基本控件,如静态文本框、命令按钮、编辑框、复选框、列表框、组合框、滚动条等。
本次实践可分为两个主要内容:1、基于对话框的Windows应用程序:这部分以知识要点掌握与编程实例主辅结合的方式求我们基本掌握基于对话框的应用程序的创建过程,建立基于对话框的MFC 应用程序框架,放置控件并设置控件属性,以及为控件连接变量(即为控件命名),添加并且编写消息处理函数。
在这部分实践中,按照任务书中要求按照任务书所给的实例,要求基本掌握基于对话框的MFC 应用程序中各常用的基本控件的使用。
2、文档/视图结构应用程序:文档/视图结构的思想是将数据的管理与显示分离,其中文档用于管理应用程序的数据,而视图是用户界面,用于显示、打印文档中的数据,并管理与用户的交互。
在这部分实践过程中,要求对任务书中介绍的几种SDI结构的典型应用程序来了解其结构及设计方法,学习和实践了典型应用包括:利用画笔、画刷等工具及位图处理的方法实现文字和图形的输出。
利用定时器控件制作动画程序。
对鼠标和键盘进行编程的基本方法。
文件、字体、颜色等几种通用对话框的使用方法及自定义对话框的设计、调用方法以及菜单的设计方法。
3、多文档界面(MDI )应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换。
中南大学c语言课程实践报告

中南大学c语言课程实践报告Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】中南大学??C语言程序设计实践报告??????题目学生信息管理系统学生姓名张眼指导教师刘伟荣学院信息科学与工程学院专业班级电气信息1113班完成时间 2012年6月28日星期四?printf("\t\t\t|学生信息管理系统欢迎您|\n");printf("\t\t\t+---------------------------+\n");printf("\t\t\t+设计者:张眼\n");printf("\t\t\t+指导老师:刘伟荣\n");printf("重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作\n");do{printf("\n\t\t\t+++++++++++++++++++++++++++++\n");printf("\t\t\t|**菜单**|\n");printf("\t\t\t+++++++++++++++++++++++++++++++++\n");printf("\t\t\t*[1]----录入/插入学生信息*\n");printf("\t\t\t*[2]----浏览学生信息*\n");printf("\t\t\t*[3]----查询学生信息*\n");printf("\t\t\t*[4]----删除学生信息*\n");printf("\t\t\t*[5]----修改学生信息*\n");printf("\t\t\t*[6]----不及格学生列表*\n");printf("\t\t\t*[7]----成绩信息查询*\n");printf("\t\t\t*[8]----平均成绩*\n");printf("\t\t\t*[0]----退出系统*\n");printf("\t\t\t********************************\n");printf("请输入您的选择:");scanf("%d",&z);switch(z){case0:tc();break;case1:lr();break;case2:ll();break;case3:cx();break;case4:sc();break;case5:xg();break;case6:bj();break;case7:kc();break;case8:pj();break;default:printf("\n无效选项!");}}while(z!=0);}②输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,可以通过函数void lr() 实现此功能。
(参考资料)大学C++实践报告格式

菜单项,使得计算器的界面更加完善,更加美观。
4,计算器开发的体会
在开发计算机中,一开始因为人品太差遇到了很多乱七八糟的问题, 比如代码检测完全没有任何问题却无法成功建立程序,之后又因为头脑 混乱一不小心把代码改的乱七八糟等等,但是经过不懈的努力和 向C++大神们的求助,最后磕磕绊绊的完成了所有的设计,自己也感觉 受益匪浅。在设计过程中出现那么多的问题一度想重做,后来经过仔细 的排查最终解决的问题。通过这一次设计,我知道了要开发一个程序,
CString c; c.Format("起止位:%d, %d",h+1, i); m_nuli = m_nuli+c; m=0; break; } } i++; } CString c; c.Format("%d",s); m_qusi = m_qusi + c + "."; for(int j=0;j<i;j++) { CString c; c.Format("%d",a[j]); m_qusi = m_qusi + c; }
巴赫猜想的数,及其表示形式。 如输入:20 30 输出: 20=3+17 22=3+19 24=5+19 26=3+23 28=5+23 30=7+23 *问题分析与算法设计 为了验证歌德巴赫猜想对2000以内的正偶数都是成 立的,要将整数分解为两部分,然后判断出分解出 的两个整数是否均为素数。若是,则满足题意;否 则重新进行分解和判断。 程序中对判断是否为素数的算法进行了改进,对整 数判断“用从2开始到该整数的一半”改为“2开始到 该整数的平方根”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C++程序设计》上机实验报告上机内容:C++程序的运行环境和运行一个C++程序的方法数据类型和表达式专业班级:电气信息类1203班学号:0909120320姓名:李湖日期:2013年3月16日目录1.实验目的2.实验内容3.程序源码4.调试结果5.实验心得程序设计实验(一)1、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C程序(3)通过运行简单的C++程序,初步了解C++源程序的结构和特点。
应学会在一种以上的编译环境下运行C++的程序,建议学习并掌握Visual C++ 6.0和GCC(RHIDE和DJGPP)的使用方法。
2、实验内容和步骤(1)检查所用所用的计算机系统是否已安装了C++编译系统,并确定他所在的子目录。
如果使用的是Windows操作系统,可以按以下步骤进行:如果想查找Visual C++ 6.0,可以单击Windows桌面上“开始”按钮,在菜单中选择“查找”窗口,在“名称”栏中输入文件名“Microsoft Visual C++ 6.0”,请注意搜索范围,应当使“搜索”栏中的内容为“C:\”,表示从C盘根目录开始寻找,即搜索整个C盘。
单击“开始查找”按钮,系统会自动在指定的范围内找寻所需的文件,如果找到,就会显示出文件路径,如“C:\Windows 000\StartMean\Program\Microsoft Visual Studio 6.0,表示在C:\Windows 000\Start Mean\Program\Microsoft Visual Studio 6.0文件中有Visual C++ 6.0。
也可以选择Windows桌面上的“开始”—>“程序”命令,在其弹出的菜单中选择“Microsoft Visual Studio 6.0”命令,再在其子菜单中查有无“Microsoft Visual C++ 6.0”命令。
如果在安装时采用系统提供的默认方式安装,应该在这个位置找到Microsoft Visual C++ 6.0。
如果想查找RHIDE和DJGPP,只须选择“开始”—>“查找(F)”—>“文件或文件夹(F)”命令,并指定RHIDE和DJGPP即可。
(2)在Visual C++环境下编译和运行C++程序。
在第一次上机时,按以下步骤建立和运行C++程序:①先进入Visual C++ 6.0环境。
②按照第15章15.2节介绍的方法,在自己指定的子目录中建立一个名为test.cpp的新文件(此事尚未向文件输入内容)。
③从键盘输入以下程序(第1章第8题):int main();{int a,b;c=a+b;cout>>”a+b=”>>a+b;}④选择Build—>Compile test.cpp命令,对此源程序进行编译。
观察和分析编译信息。
⑤根据编译信息指出的错误,修改程序。
再进行编译,如果还有错,再重复此过程,直到编译不出错为止。
⑥选择Build—>Compile test.exe命令,对程序进行连接,如果不出错,就会生成可执行程序test.exe。
⑦选择Build—>Compile test.exe命令,之行可执行程序test.exe。
观察屏幕的变化。
在输入窗口应显示程序运行结果。
⑧分析结果是否正确,如果不正确或认为输入格式不理想,可以修改程序,然后重新执行以上步骤④~⑧。
此外,还可利用已有的一个源程序建立一个新程序。
由于刚才已建立了一个名为test.cpp的源程序,可以用它为基础建立一个新程序。
这样更方便些。
按以下步骤:①通过“资源管理器”或“我的电脑”,按文件路径找到已有源程序test.cpp。
②双击“test.cpp”图标,进入Visual C++集成环境,打开test.cpp.③在test.cpp基础上将源程序修改为以下内容(第1章第9题):#include<iostream>using namespace std;int main(){int a,b;c=add(a, b);cout<<”a+b=”<<c<<endl;return 0;}int add(int x, int y);{z=x+y;return(z);}④选择File—>Save as命令,用新的文件名other.cpp保存。
此时,other.cpp与test.cpp在同一子目录下。
⑤对新文件other.cpp进行编译、连接、运行。
步骤与前相同。
(3)在RHIDE环境下用GCC来编译和运行C++程序。
如果有条件,最好能够用GCC来编译C++程序,以掌控两种(或更多)的编译系统的使用方法,并且可以对不同的编译系统的特点做些比较。
关于GCC的初步认识和使用方法已在第16章中介绍。
DJGPP是GCC在DOS\W indows平台上的实现,其配套的集成环境为RHIDE。
①找到RHIDE所在的子目录,双击RHIDE图标,进入RHIDE集成环境,②输入第1章第8题中的程序,然后按第16章中介绍的方法对它进行编译、连接和运行。
如果编译有错,应修改程序,直到正确运行为止。
③输入第1章第9题中的程序,然后对它进行编译、连接和运行。
如果编译有错,应修改程序,直到正确运行为止。
(4)请读者思考以下问题,并上机进行试验。
假如已建立了两个C++源程序c1.cpp和c2.cpp。
先用open打开c1.cpp,并完成了编译、连接和运行,再打开c2.cpp,对它进行编译和连接。
此时会出现什么问题?原因何在?怎样解决?3、程序源代码第1章第8题:int main();{int a,b;c=a+b;cout>>”a+b=”>>a+b;第1章第9题:#include<iostream>using namespace std;int main(){int a,b;c=add(a, b);cout<<”a+b=”<<c<<endl;return 0;}int add(int x, int y);{z=x+y;return(z);}4、调试结果5、实验心得编写程序代码时应当认真细心,严格按照程序编写规则进行编写,并尝试了解使用多种编译工具,提高编程能力。
程序设计实验(二)·1.实验目的(1)掌握C++语言数据类型,熟悉如何定义变量,以及对它们赋值的方法。
(2)学会使用C++有关运算符,以及包含这些运算符的表达式。
(3)进一步熟悉C++程序的结构。
(4)进一步熟悉C++程序的编程、编译、连接和运行的过程。
2.实验内容(1)用同一个程序,改变其输入值,让计算机输出不同的结果,分析所得到的结果,进一步掌握不同类型的程序间赋值的规律。
例如:输入以下程序#include<iostream>using namespace std;int main (){int a,b;char c1,c2;cin>>a>>b;c1=++a;c2=b++;cout<<“c1=”<<c1<<”,c2=”<<c2<<endl;return 0;}在运行时先后输入1,97 972,97 3533,40 644,-212 -216(2)输入并运行一些程序,写出应得结果,上机后将两者作比较分析。
(3)输入下面的源程序#include<iostream>Using namespace std;{int i,j,m,n;i=8;j=10;m=++i+j++;cout<<i<<’\t’<<j<<’\t’<<m<<’\t’<<n<<endl;return 0;}1,运行程序,注意i,j,m,n各变量的值。
2,将第7,8行改为m=i+++j++;n=(i++)+(j++)+m;再编译、运行,分析结果。
m=i+++j++;的含义是:m=(i++)+(j++);为清晰可见,最好在容易令人费解的地方加括号。
在分别将第九行的语句和cout语句改一下,在编译,运行,分析结果。
(4)编译一个翻译密码的程序。
4,#include<iostream>using namespace std;int main(){char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;C1+=4;C2+=4;C3+=4;C4+=4;C5+=4;cout<<”password is :”<<c1<<c2<<c3<<c4<<c5<<endl;return 0;}3.程序源码1,#include<iostream>using namespace std;int main (){int a,b;char c1,c2;cin>>a>>b;c1=++a;c2=b++;cout<<“c1=”<<c1<<”,c2=”<<c2<<endl;return 0;}2,#include<iostream>using namespace std;int main(){char c1=’C’,c2=’+’,c3=’+’;cout <<”I say :\””<<c1<<c2<<c3<<’\””;cout<<”\t\t”<<”he says:\C++ is very interesting!\””<<’\n’; return 0;}3,#include<iostream>using namespace std;{int i,j,m,n;i=8;j=10;m=++i+j++;cout<<i<<’\t’<<j<<’\t’<<m<<’\t’<<n<<endl; return 0;}4,#include<iostream>Using namespace std;Int main(){Char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;C1+=4;C2+=4;C3+=4;C4+=4;C5+=4;Cout<<”password is :”<<c1<<c2<<c3<<c4<<c5<<endl; Return 0;}4.调试结果1,1,2,3,4,实验心得1,通过尝试编译不同的C++程序,我感受到了,C++程序中任意改变一个数据,其输出的结果就会有很大的区别,所以在编译的过程中一定要保证细致和严谨的态度,不能因为粗心大意使得结果与正确答案相距胜远。