中南大学C++实验报告

合集下载

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

中南大学大一下学期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++程序设计报告一、前言我认为安排此次课程设计的目的,是让同学们在独立完成设计、编写、调试应用程序及编写文档的任务的过程中,及时巩固已学的知识,补充未学但是非常重要的知识,提高程序设计的能力。

针对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++实践报告完整版

中南大学化学化工学院《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语言程序设计实践报告

C语言程序设计实践报告
在主函数 main()中多次调用其他子函数是这个文本编辑器的 最大特点。最主体的子函数莫过于 drawmenu()画出文本编辑器的 功能列表,其他还有各种功能的子函数,如 drawmain()画出整个 文本编辑器的主界面,如 del()定义删除功能,在这里就不一一介 绍,详见下面。
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++程序设计报告

中南大学C++程序设计报告
CString str;
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编程

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语言课程实践报告

中南大学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++实践报告格式

(参考资料)大学C++实践报告格式
ee[l]=c[e],ww[l]=c[w]; l++; break; } } } CString str[1000]; for(int ii=(m_num1/2-1);ii<=(m_num2/2-1);ii++) { str[ii].Format(" %i,\r\n",z[ii]); m_shu+=str[ii]; } UpdateData(FALSE);
菜单项,使得计算器的界面更加完善,更加美观。
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开始到 该整数的平方根”。

中南大学c课程设计报告

中南大学c课程设计报告

中南大学《高级程序设计实践(C++)》课程设计报告设计题目教学设备管理系统指导老师设计者专业班级设计日期目录一课题的基本内容和要求二程序功能简介三主体内容:1 设计分析2 程序整体结构3 部分模块的结构4 相关模块源程序5 操作方法6试验结果7设计体会8 参考文献一基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C++ 6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。

2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

3、数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。

4、程序要求:界面美观、可操作性强、稳定性好。

(二)基本内容:教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。

系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。

二程序功能简介(1)添加:增加一台设备的记录到管理系统中。

(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。

(3)修改:在管理系统中修改一台设备的记录。

(4)保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。

(5)读取:从文件中读取已保存了数据。

(6)删除:从管理系统中删除一条记录。

(7)恢复:能恢复被删除的记录。

(8)统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200~800元之间和800元以上的设备总台数及总金额。

(D)以表格形式打印教学设备明细表。

(9)其他:可以根据自己的思路设计其他功能。

三主体内容1 设计分析根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。

中南大学数学院C课程设计报告

中南大学数学院C课程设计报告

中南大学《C++课程设计》设计报告题目C++课程设计学生姓名学号专业班级数学类0901指导老师袁修贵数学科学与计算技术学院2010年6月一、实验目的、内容1.用户任意输入一个年份以及该年的1月1日是星期几,而后再输入该年的任意一个月份,由程序负责在屏幕上按照你所设计的格式显示出这一个月的月历。

思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入任意一个年份和一个月份,则程序就应按格式显示出该年那一个月的月历。

2.编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一个词汇索引。

按字母顺序显示所有单词(仅一次),后面紧跟着它们所在的行号。

大写与小写字母被认为是相同的。

例如,对于下列的输入文件:To be ornot to be,that is the question.产生的词汇索引如下:be 1 2is 3not 2or 1question 3that 3the 3to 1 23.模拟计算器程序问题描述设计一个程序来模拟一个简单的手持计算器。

程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。

基本要求程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’ 符号后,窗口显示出结果。

测试数据程序输入不少于5种不同的表达式进行测试。

实现提示可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。

二、实验程序设计及结构1、需求分析○1对需求的信息进行模糊查询○2模拟电子辞典○3模拟计算器2、设计结构(1)#include <stdio.h>#include <stdlib.h>int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){int i,n,s = 0,r = 0,year,month,days = 0,day,date = 1;int b[42] ={1,2,3,4,5,6,7}; //日历中的星期puts("Please input the weekday of date month 1/day 1:");scanf("%d",&n);puts("Please input the date you want:");scanf("%d%d%d",&year,&month,&day);if((year % 4 == 0 && year % 100 != 0)||year % 400 == 0)a[2] = 29;for(i=1;i<month;i++)days += a[i];s = day + days;if((s + n - 1) >= 7)s = (s + n - 1) % 7;elses = s + n - 1;printf("weekday:");switch(s){case 0: puts("7\n");break;case 1: puts("1\n");break;case 2: puts("2\n");break;case 3: puts("3\n");break;case 4: puts("4\n");break;case 5: puts("5\n");break;case 6: puts("6\n");break;}if((days +n)>= 7)r = (days + n)%7;elser = days +n;for(i = 0;i < 42;i++){if(i == r + 6&&date < a[month]) {b[i] = date;date++;r++;}printf("%d\t",b[i]);if(i > 5&&(i+1) % 7 == 0)printf("\n");}return 0;}(2)#include <iostream>#include <fstream>#include <vector>#include <string>using namespace std;typedef struct _unit{string word;int line;}unit;int main(){vector<unit> list;ifstream in;string fileName;cout<<"输入文件路径: ";cin>>fileName;in.open(fileName.c_str());if (in.fail()){cout<<"文件打开错误,退出"<<endl;exit(0);}unit temp;int lineNumber = 1;while(!in.eof()){in>>temp.word;temp.line = lineNumber;list.push_back(temp);if (in.peek()=='\n'){lineNumber++;}}in.close();bool isIn = false;vector<string> copy;for (unsigned int i=0; i<list.size(); i++) {isIn = false;for (unsigned int j=0; j<copy.size(); j++) {if (list[i].word == copy[j]){isIn = true;break;}}if (!isIn)copy.push_back(list[i].word);}vector<int> lineNo;for (unsigned int m=0; m<copy.size(); m++){for (unsigned int n=0; n<list.size(); n++){if (list[n].word == copy[m]){lineNo.push_back(list[n].line);}}lineNo.push_back(0);}int current=0;for (unsigned int o=0; o<copy.size(); o++){cout<<copy[o]<<" ";for (unsigned int p=current; p<lineNo.size(); p++){if (lineNo[p] == 0){current=p+1;break;}elsecout<<lineNo[p]<<" ";}cout<<endl;}return 0;}(3)#include <stdio.h>#include <string>#include <cctype>#include <iostream>#include <map>#include <sstream>#include <strstream>using namespace std;istream* input; // pointer to input streamint no_of_errors; // note: default initialized to 0double error(const char* s){no_of_errors++;cerr << "error: " << s << '\n';return 1;}enum Token_value {NAME, NUMBER, END,PLUS='+', MINUS='-', MUL='*', DIV='/',PRINT=';', ASSIGN='=', LP='(', RP=')'};Token_value curr_tok = PRINT;double number_value;string string_value;Token_value get_token(){char ch;do { // skip whitespace except '\en'if(!input->get(ch)) return curr_tok = END;} while (ch!='\n' && isspace(ch));switch (ch) {case ';':case '\n':return curr_tok=PRINT;case '*':case '/':case '+':case '-':case '(':case ')':case '=':return curr_tok=Token_value(ch);case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '.':input->putback(ch);*input >> number_value;return curr_tok=NUMBER;default: // NAME, NAME=, or errorif (isalpha(ch)) {string_value = ch;while (input->get(ch) && isalnum(ch))string_value += ch; // string_value.push_back(ch); // to work around library buginput->putback(ch);return curr_tok=NAME;}error("bad token");return curr_tok=PRINT;}}map<string,double> table;double expr(bool); // cannot do withoutdouble prim(bool get) // handle primaries{if (get) get_token();switch (curr_tok) {case NUMBER: // floating-point constant{ double v = number_value;get_token();return v;}case NAME:{ double& v = table[string_value];if (get_token() == ASSIGN) v = expr(true); return v;}case MINUS: // unary minusreturn -prim(true);case LP:{ double e = expr(true);if (curr_tok != RP) return error(") expected"); get_token(); // eat ')'return e;}default:return error("primary expected");}}double term(bool get) // multiply and divide {double left = prim(get);for (;;)switch (curr_tok) {case MUL:left *= prim(true);break;case DIV:if (double d = prim(true)) {left /= d;break;}return error("divide by 0");default:return left;}}double expr(bool get) // add and subtract {double left = term(get);for (;;) // ``forever''switch (curr_tok) {case PLUS:left += term(true);break;case MINUS:left -= term(true);break;default:return left;}}int main(int argc, char* argv[]){switch (argc) {case 1: // read from standard inputinput = &cin;break;case 2: // read argument string// input = new istringstream(argv[1]);input = new istrstream(argv[1]);break;default:error("too many arguments");return 1;}table["pi"] = 3.1415926535897932385; // insert predefined names table["e"] = 2.7182818284590452354;while (*input) {get_token();if (curr_tok == END) break;if (curr_tok == PRINT) continue;cout << expr(false) << '\n';}if (input != &cin) delete input;return no_of_errors;d}三、设计过程写出设计过程,实验源代码可不写出,但实验中出错信息及处理方法及解决错误的方法要写。

中南大学(C++实践报告)

中南大学(C++实践报告)

中南大学(C++实践报告)第一篇:中南大学(C++实践报告)中南大学本科生课程设计(实践)设计报告(程序设计基础)题目MFC课程设计学生学号学生姓名指导教师学院专业班级计算机基础教学实验中心 2015年06月 14日一、引言MFC(Microsoft Foundation Class Library, 微软基础类库)是微软基Windows平台下的C++类库集合。

MFC包含了所有与系统相关的类,其中封装了大多数的API(Application Program Interface)函数,提供了应用程序框架和开发应用程序的工具,如应用程序向导、类向导、可视化资源设计等高效工具,用消息映射处理消息响应,大大简化了Windows应用程序的开发工作,使程序员可以从繁重的编程工作中解脱出来,提高了工作效率。

程序设计实践旨在课堂学习的基础上帮助学生掌握C++应用系统的开发方法和技巧。

在系统学习完《C++程序设计》这门课程后,通过实践对几个小型C++应用程序实例设计与实现过程分析,帮助学生利用C++开发应用系统的一般方法和步骤,掌握MFC的基本知识。

这次实践采用学生上机与老师集体辅导的方式,以完成老师下发的《C++语言课程设计任务书》为要求和目的,运用课堂上学习的C++基础知识,采用Visual C++ MFC编程系统,以全新的角度和感知去认识C++语言在编程方面的优越性。

在实践过程中,基于对话框的MFC应用程序,达到了解基本控件,如静态文本框、命令按钮、编辑框、列表框、组合框等的使用的目的。

还有理解Windows应用程序采用“消息传递、事件驱动”的运行机制。

本次实践的任务主要分为两个部分:使用Visual C++ MFC编程实现以下功能:输入一元二次方程ax2+bx+c=0 的系数a、b、c,计算并输出两个根x1、x2.编写一个能对列表框进行项目添加、修改和删除操作的应用程序。

编写一个程序,绘制-2π~2π之间的sin曲线。

C计算机实践报告.doc

C计算机实践报告.doc

C计算机实践报告中南大学本科生课程设计实践任务书、设计报告(C 课程设计)题目职工工资管理系统学生学号学生姓名指导教师学院物理学院专业班级指导老师计算机基础教学实验中心2010年07 月08 日职工工资管理系统摘要经过近两周24学时的C计算机实践,我基本上完成了对所要求的熟悉使用MFC类库编程和使用C编写一个关于企业职工工资管理系统的程序。

对于使用C面向对象的编程思想也有了更深的体会。

关键词职工工资、系统、指针、链表、增加删除信息、结构体、类成员函数使用、全局变量1、职工工资管理系统的开发设计思想1、职工工资管理系统可以通过输入输出某一职工的一些信息,如月份、编号、基本工资、补贴等进行对职工信息的处理。

2、为了更方便地表示一个职工的基本信息,可以先定义一个结构体(Emp_info),在这个结构体中包含了一个职工的所有基本信息。

3、定义一个类(Employee),在类中定义必要的成员函数,用这些函数可以对结构体中的职工信息进行需要的处理,如添加职工信息函数(AddItem)、删除职工信息函数(RemoveItem)、查找职工信息函数(Search)等。

然后通过调用成员函数来实现系统的功能。

4、用类Employee定义一个全局变量employee,设计主函数及其所调用的函数,通过employee来使用类中的成员函数达到处理数据的目的。

2、职工工资管理系统功能及系统设计介绍1、系统的功能职工工资管理系统能根据已输入的数据信息进行必要的数据处理,然后可以根据提示添加或删除职工信息,还可以对有误信息进行修改。

出于发工资时的需要可以对某些或全部的职工信息进行输出。

系统的总的功能如图所示职工工资管理系统输出主菜单输入选项添加职工工资信息删除职工工资信息修改职工工资信息输出指定职工工资信息输出全体职工工资信息退出结束是否为完成这些功能首先需要一个可以存储数据的数据单元,即一个结构体Emp_info,在这个结构体中定义必要的变量pay[5]、gpay、tax、ded、apay。

中南大学C++课程设计实践报告!

中南大学C++课程设计实践报告!

中南大学本科生课程设计(实践)任务书、设计报告(C++程序设计)题目学生成绩管理系统学生姓名指导教师学院专业班级学生学号计算机基础教学实验中心年月日学生成绩管理系统关键字:学生成绩 MFC 编写系统内容:定义一个结构体,存放下列信息:学号、姓名、性别、系名、班级名、成绩等1.学生成绩管理系统开发设计思想要求:一:数据输入:输入学生的相关信息,若用户输入数据或信息不正确,给出“错误”信息显示,重复刚才的操作;至少要输入10个学生的数据;可以随时插入学生信息记录;二:每个学生数据能够进行修改并进行保存;三:可以根据学号或者姓名删除某学生数据;四:查询模块要求能按学号,按姓名,按班级等条件进行查询;五:界面要求美观,提示信息准确,所有功能可以反复使用。

学生成绩管理程序从总体设计方面来看,基本的功能包括主控模块,数据输入模块,数据修改模块,数据查询模块等。

设计模块图:2.系统功能及系统设计介绍详细设计:对于总体设计说明的软件模块,进一步细化,要说明各个模块的逻辑实现方法。

下面逐个说明。

主控模块:主要完成初始化工作,包括屏幕的初始化,显示初始操作界面。

初始界面中主要包括功能的菜单选择项。

输入处理:利用链表技术输入多名学生的数据,直到输入学生的学号以“@”开头,则结束数据的输入。

程序运行流程图如下:删除处理:利用链表技术删除某学号的学生成绩信息,如果找到该学号则进行删除,否则输出“未找到”的信息。

程序运行流程图略。

查找处理:利用链表技术根据学生学号或姓名等方式查找某学号的学生成绩信息,其程序流程图略。

排序处理:利用链表技术根据学生学号对学生数据进行排序,其部分源代码如下:/***********xuesheng.c***********//******头文件(.h)***********/#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*其它说明*/#include "string.h" /*字符串函数*/#include "conio.h" /*屏幕操作函数*/#include "mem.h" /*内存操作函数*/#include "ctype.h" /*字符操作函数*/#include "alloc.h" /*动态地址分配函数*/#define N 3 /*定义常数*/typedef struct z1 /*定义数据结构*/{char no[11];char name[15];char sex[5];char major[15];char class[15];char tele[15];char address[15];int order;struct z1 *next;}STUDENT;/*以下是函数原型*/STUDENT *init(); /*初始化函数*/STUDENT *create(); /*创建链表*/STUDENT *dele(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/STUDENT *sort(STUDENT *h); /*排序*/int menu_select(); /*菜单函数*/STUDENT *insert(STUDENT *h); /*插入记录*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void inputs(char *prompt, char *s, int count);/******主函数开始*******/main(){int i;STUDENT *head; /*链表定义头指针*/head=init(); /*初始化链表*/clrscr(); /*清屏*/for(;;) /*无限循环*/{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/case 0:head=init();break; /*执行初始化*/case 1:head=create();break; /*创建链表*/case 2:head=dele(head);break; /*删除记录*/case 3:print(head);break; /*显示全部记录*/case 4:search(head);break; /*查找记录*/case 5:head=insert(head); break; /*插入记录*/case 6:head=sort(head);break; /*排序*/case 7:save(head);break; /*保存文件*/case 8:head=load(); break; /*读文件*/case 9:exit(0); /*如菜单返回值为14程序结束*/}}}/*菜单函数,返回值为整数*/int menu_select(){char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/" 0. init list", /*初始化*/" 1. Input", /*输入记录*/" 2. Delete", /*删除记录*/" 3. List", /*显示记录*/" 4. Seek(name)", /*查找*/" 5. insert record to list ", /*插入记录到表中*/" 6. Sort", /*排序*/" 7. Save", /*保存*/" 8. Load", /*从文件中读入记录*/" 9. Quit",/*退出*/3.系统开发的体会本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。

中南大学信息科学与工程学院C语言程序设计实验

中南大学信息科学与工程学院C语言程序设计实验

char sex;
/* 性别 */
int age;
/* 年龄 */
float score;
/* 平均成绩 */
}
2. 完成下列任务:
(1) 输入实际学生人数 n (2<n<4);
(2) 输入每个学生的信息,组成结构数组,并输出;
(3) 统计男、女生人数并输出;
(4) 计算全班平均成绩并输出;
(5) 将低于全班平均成绩的学生信息按行输出
#include <stdio.h> void main() {
int a, b, sum; a = 123; b = 456; sum = a + b; printf( “ sum is %\nd” , sum); } 调试通过后,自己修改程序,使程序出错,并读懂错误提示,进行修改。
1/9
实验二 数据输入输出格式的程序设计
三、 输入随机数的要求
#include <stdlib.h>
#define RMAX 5
#define cMAX 5
#define nMAX 100
main()
{.
/* 变量初始化说明 */
.
clrscr(); /*调清屏函数清屏 */
randomize(); /*在初始化后调用产生随机数函数 */
一.目的要求 1.进一步熟悉调试程序的方法; 2.熟练掌握格式输入与格式输出函数的使用。 3.掌握字符与 ASCⅡ值之间的转换方法。 4.上机前预习编写好程序;
二.实验内容与步骤 1.按右图设计屏幕输出 2.光标停在 Enter Number: 之后,等待输入任一字符; 3.输入字符 1,则显示:
Ch=1-- 49

中南大学c++计算器实践报告

中南大学c++计算器实践报告

中南大学本科生课程设计(实践)任务书、设计报告(C++程序设计)题目科学计算器应用程序系统学生姓名李春鹤指导教师严晖学院材料科学与工程学院专业班级1206学生学号0607120607计算机基础教学实验中心2013年 7 月 3 日科学计算器管理信息系统摘要:本课程设计将实现一个简单计算器。

其类似于Windows附件中自带的计算器。

这个计算器不仅实现了简单的四则运算功能,还实现了高级的科学计算功能,而且具有简洁大方的图文外观。

它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性使用人员能快捷简单地进行操作。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

在课程设计中,系统开发平台为Windows 2000XP,程序设计设计语言采用Visual C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。

关键词:程序设计;计算器;MFC;按钮控件1.计算器系统开发设计思想⑴可行性分析本设计是简单计算器。

日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。

它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。

使用人员能快捷简单地进行操作。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

⑵课程设计目的在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。

在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。

由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。

而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为C++程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。

中南大学c语言课程设计报告

中南大学c语言课程设计报告

学号中南大学《C语言程序设计》课程设计报告题目:数据的图形化处理学院:专业:班级:姓名:指导老师:2015年1月3日目录1 设计内容及要求 (3)1.1设计要求 (3)1.2程序设计流程图 (3)2 详细设计 (5)2.1详细设计 (5)2.2数据结构与程序评析 (7)2.3用法说明 (8)3 设计结果与分析 (8)3.1调试与测试 (8)3.2测试结果与分析 (8)4 小结(心得体会) (11)5 附录 (12)1设计内容及要求1.1设计要求用c语言绘图函数绘制函数图像;要根据输入的信息,用c语言画出相应函数y=sin(x),y=cos(x),...;画出的点数为N个,即N个像素点;可以不画出坐标值,N的值要大于20。

程序界面设计合理,色彩得体大方,显示正确,界面清晰、美观。

1.2程序设计流程图开始输出可选函数列表设置背景色和线条色画出坐标轴设置文本属性标记坐标轴和原点绘制基本初等函数关闭图像处理系统结束图1:总程序流程开始float i,x0,y0,x,y; int a,b;i nt gd=DETECT,gm;for(b=0;b<=20;b++)initgraph(&gd,&gm,""); printf linesettextstyle outtextxyswitchcase1 case2 ......Putpixel(x,y,RED);break; defaultgetch();closegraph();结束图2:总程序流程图2详细设计2.1详细设计(1)#include<stdio.h>调用系统提供的标准库函数#include<math.h>调用math库文件里的函数#include<conio.h>调用通过控制台进行数据输入和数据输出的函数 #include<graphics.h>调用图像处理函数(2)main(){float i,x0,y0,x,y;int a,b;int gd=DETECT,gm;定义变量(3) for(b=0;b<=20;b++){实现程序的多次循环使用(4)initgraph(&gd,&gm,"");初始化图形系统(5)printf("Choose a function to see its functional image!\n"); printf("1.y=x\n");printf("2.y=sinx\n");printf("3.y=cosx\n");printf("4.y=e^x\n");printf("5.y=log(e)(x)\n");printf("6.y=x^2\n");printf("7.y=tanx\n");printf("Number 1-7,just try them!\n");printf("Please enter number:");输出一个基本初等函数可选列表 scanf("%d",&a);输入一个整型变量(6)cleardevice();清除屏幕和图形缓冲区setbkcolor(WHITE);设置背景色setcolor(GREEN);设置前景颜色line(100,350,100,180);line(95,190,100,180);line(100,180,105,190);line(40,250,500,250);line(495,245,500,250);line(500,250,495,255);画坐标轴和箭头settextstyle(SANS_SERIF_FONT,HORIZ_DIR,1);设置字体outtextxy(500,250,"x");标记x轴outtextxy(110,180,"y");标记y轴outtextxy(90,245,"o");标记原点(7)switch(a)实现多分支选择{case 1:第一种情况{for(x0=0;x0<=21;x0+=1){y0=x0;要画出的函数表达式x=6*x0+100; x,y的坐标控制,使点落在屏幕适当位置 y=-6*y0+250;putpixel(x,y,RED);画点函数,画出红色像素点}break;跳出多分支选择结构}case 2:第二种情况{for(x0=0;x0<=10*3.14159;x0+=0.1){y0=50*sin(x0+2*3.14159);正弦函数x=10*x0+100;y=-y0+250;putpixel(x,y,RED);}break;}case 3:第三种情况{for(x0=0;x0<=10*3.14159;x0+=0.1){y0=50*sin(x0+3.14159/2);余弦函数x=10*x0+100;y=-y0+250;putpixel(x,y,RED);}break;}..........其他常见函数default:printf("Enter data error!\n");否则输出数据错误提示}(8) getch();从控制台读取一个字符,但不显示在屏幕上,等待你按下任意键,再继续执行下面的语句closegraph();关闭图形系统}}2.2数据结构与程序评析(1)对图形处理函数作比较全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并作出正确的解决方案。

中南大学C语言实验(指针、结构体)

中南大学C语言实验(指针、结构体)

实验七指针一、目的要求1.掌握指针的定义和使用指针变量;2.学会使用字符串的指针和指向数组的指针变量;3.学会使用指向函数的指针变量;4.按实验内容要求完成全程程序设计后才允许上机。

二、实验内容与步骤设计一个函数,它有三个形参(1)被查找的字符串str;(2)待查找的字符xCh;(3)在字符串str中xCh出现的位置i=0,1,…它的返回值是在str中xCh 出现的次数(若str中无xCh,则返回值=0)三、上机要求1、键入待查的字符xCh;2、键入被查的字符串str;3、调用该函数;4、打印它的返回值和出现的位置;5、允许重复执行,每次以清屏开始(用循环语句控制重复执行)。

四、提示xCh在str出现位置应设计为一整型指针,以便记下0~N个位置(整数)。

#include<stdio.h>void main(){char temp;int run(),j;int (*prun)();temp='Y';while(temp!='N'||temp!='n'){if(temp=='Y'||temp=='y'){prun=run;j=(*prun)();if (j==0){printf("Can Not Find The xCh! j=%d",j);}else{printf("\nj=%d",j);}printf("\nParden>Y/N:");fflush(stdin);temp=getch();}if(temp=='N'||temp=='n')break;if(temp!='Y'&&temp!='y'){printf("Wrong!Y ou can only put Y(N) or y(n)\nPlease put again(Y/N):");fflush(stdin);temp=getch();}}}int run (char xCh,char str[100],int i){int j;char *p;clrscr();printf("xCh=");xCh=getch();printf("%c\nstr=",xCh);gets(str);p=&str[0];i=0;j=0;while(*p){if (*p==xCh){j++;printf("xCh :%d\t",i);}p=p+1;i++;}return j;}Mian()版:#include<stdio.h>void main(){int i,j;char xCh,str[100],*p,temp;temp='Y';/*给temp赋初值Y,防止第一个while循环无法运行*/while(temp!='N'||temp!='n')/*如果temp不等于n或N时,进行循环*/{if(temp=='Y'||temp=='y')/*当temp为y或Y时,进行下列循环,用于进行题目要求的操作*/{clrscr();/*清屏*/printf("xCh=");/*在屏幕输出提示xCh=*/xCh=getch();/*从屏幕读取一个字符赋给xCh(getch()和getchar()的区别:前者只要输入一个字符就结束输入过程,后者需要按回车或空格后才结束输入过程)*/printf("%c\nstr=",xCh);/*在屏幕xCh=后面输出刚才输入的xCh的值,并提示用户输入str(因为我们用getch(),输入完字符后会自动结束xCh的输入进入下一指令的执行(在本题中,下一指令是:printf("%c\nstr=",xCh);),而不在屏幕输出刚才输入的字符)【不理解的话把该句改成{printf("\nstr=");}看看输出结果就知道了】*/gets(str);/*输入str*/p=&str[0];/*将指针地址指向str这个字符串的首字符位置*/i=0;j=0;while(*p)/*当p所指向的字符不为空字符时,进行判断循环*/{if (*p==xCh)/*当p所指向的字符为所需寻找的xCh时,进行以下操作*/{i++;/*i自加1,用于累计str中xCh的数目*/printf("xCh :%d\t",j);/*输出xCh在str中出现的位置*/}p=p+1;/*指针地址移向str的下个字符*/j++;/*j用于记录此时p的位置,在str中第一个字符时=0,第二个时=1,以此类推*/}if (i==0)/*当str中没有xCh这个字符时,i=0*/{printf("Can Not Find The xCh! i=%d",i);/*在屏幕中提示无法找到str中的xCh,并输出i=0*/}else{printf("\ni=%d",i);/*\n为换行*/}printf("\nParden>Y/N:");fflush(stdin);/*清空计算机缓存*/temp=getch();/*从屏幕中读取一个字符赋给temp*/}if(temp=='N'||temp=='n')/*当temp为N或n时*/break;/*跳出循环*/if(temp!='Y'&&temp!='y')/*当输入的temp不为Y、y、N、n时*/{printf("Wrong!Y ou can only put Y(N) or y(n)\nPlease put again(Y/N):"); fflush(stdin);temp=getch();}}}/*fflush(stdin)*/实验八结构体与共用体一、目的要求1、掌握结构体类型变量与数组的定义和使用;2、学会使用指针变量和结构体指针数组;3、按实验内容要求完成全程程序设计后才允许上机。

中南大学c课程设计实践报告

中南大学c课程设计实践报告

中南大学c 课程设计实践报告一、教学目标本课程的教学目标是使学生掌握中南大学C课程的核心知识,包括基本概念、原理和应用。

具体目标如下:1.知识目标:学生能够准确理解并掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够熟练运用C语言进行程序设计,包括编写、调试和运行C程序。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生的问题解决能力和创新意识。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法和数据类型,包括变量、常量、数据类型、运算符等。

2.控制结构,包括条件语句、循环语句等。

3.函数,包括函数的定义、声明、调用和返回值等。

4.指针和数组,包括指针的概念、指针的运算、数组的基本操作等。

5.结构体和文件操作等高级内容。

三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:通过教师的讲解和演示,使学生掌握C语言的基本知识和技能。

2.讨论法:通过小组讨论和课堂讨论,激发学生的思考和问题解决能力。

3.案例分析法:通过分析实际案例,使学生了解C语言在实际应用中的作用和意义。

4.实验法:通过编写和调试C程序,培养学生的实际编程能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将使用以下教学资源:1.教材:选择一本适合学生水平的C语言教材,作为学生学习的主要参考资料。

2.参考书:提供一些相关的参考书籍,供学生进一步深入学习和参考。

3.多媒体资料:制作一些教学PPT、视频等多媒体资料,帮助学生更好地理解和掌握知识。

4.实验设备:提供计算机实验室,让学生能够进行实际编程和实验操作。

五、教学评估本课程的评估方式包括平时表现、作业和考试等。

具体评估方式如下:1.平时表现:通过学生的课堂参与、提问、回答问题等方式评估学生的学习态度和理解程度。

2.作业:布置适量的作业,包括编程练习和理论题目,以巩固学生对知识的理解和应用能力。

中南大学C实践报告

中南大学C实践报告

中南大学C实践报告 The document was prepared on January 2, 2021中南大学C++程序设计实践报告学院:材料院专业班级:学号:姓名:一、实践目的C++是一种运用广泛的电脑程序式设计语言。

在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++语言程序。

我们在老师的指导下进行了C++程序设计实践,用C++语言编制学生档案管理软件。

二、实践要求1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。

2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。

3)、系统的主程序中,要求会使用口令判断功能函数。

使得程序体对信息的修改更为方便。

4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。

三、实践内容实践内容包括了:学生档案管理软件的总设计框架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。

学生档案管理软件总框架:系统口令流程图:主菜单流程图:数据修改流程图:数据删除流程图:数据显示流程图:退出流程图:四、实践体会在指导老师的耐心教导下,我们完成了此次C++程序设计实践。

在实践过程中,我们学会了如何运用C++语言编写一个学生档案管理软件。

首先,我们要对所编软件有相应的认识,了解该学生档案管理系统应有的功能,对相应的功能思考需要运行的函数。

例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。

然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。

此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。

通过此次程序设计实践,用理论联系实际,加深了我对C++语言的理解与掌握,提高了我的实践能力及计算机操作能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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++程序中任意改变一个数据,其输出的结果就会有很大的区别,所以在编译的过程中一定要保证细致和严谨的态度,不能因为粗心大意使得结果与正确答案相距胜远。

相关文档
最新文档