中南大学程序设计报告

合集下载

中南大学大一下学期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语言程序设计实践报告
在主函数 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是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。

中南大学测绘程序课程设计报告(含代码)讲解

中南大学测绘程序课程设计报告(含代码)讲解

中南大学测绘程序课程设计报告姓名:XXX学号:XXXXXXX指导老师:XXX专业班级:XXXX1系统设计1、实现功能1.1优化设计:根据控制网的观测精度与网形,全面评定网的精度1.2数据输入:使用外部数据倒入,通过读取.txt格式观测文件实现数据输入1.3概算:主要是进行近似坐标的推算。

1.4平差计算:对观测数据进行精密平差计算,得到平差后的点位坐标,方向观测值,边长观测值等,精度评定。

1.5成果输出:控制网图形输出,绘制误差椭圆,以及平差结果导出到txt文件中。

2、系统总体框架导线网平差系统数据输入近似坐标推算平差计算成果输出2.1数据输入2.1.1文件格式:2 已知点数据个数1,31250.2500,11500.41002,33256.5700,10900.8400 已知点数据3 未知点数据个数3,4, 未知点数据5,8 距离观测数据个数1,3,2300.06001,4,3090.35302,5,3643.23402,3,2115.9190 距离观测数据2,4,4363.61103,5,2169.07303,4,2620.90904,5,3922.860018 方向观测数据个数1,2,01,3,57.2032101,4,113.1406352,5,02,3,32.1222922,4,57.5015302,1,98.2612733,1,03,2,56.2537793,5,172.533944 方向观测数据3,4,282.2953834,1,04,2,26.0954124,3,46.3617984,5,77.5946715,4,05,3,39.0017795,2,70.1951512.1.2数据输入实现:(1)创建点类用于存取点的信息,如坐标、点号、长短轴、精度信息class ClzControlPoint{public:ClzControlPoint();~ClzControlPoint();double X;double Y;CString strPointID;int state;int flg;double dE;double dF;double dQ;double dMx;double dMy;double dMk;};(2)创建距离类用于存取距离观测信息,如测站方向点、观测方向点、距离观测值class ClzDistObs{public:ClzDistObs();~ClzDistObs();public:ClzControlPoint *cpStart, *cpEnd;double dDist;};(3)创建方向类用于存取方向观测信息,如测站方向点、照准方向点、方向观测值class ClzAngleObs{public:ClzAngleObs();~ClzAngleObs();public:ClzControlPoint *cpStation;ClzControlPoint *cpEnd;Angle ObsAngle;};(4)读取文件函数:bool ClzControlNetAdjust::LoadObsData(const CString& strFileName),此函数功能为通过传入的文件名strFileName进行文件读写,并将信息存到相应成员数据中。

中南大学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课程设计报告

中南大学《高级程序设计实践(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++实践报告)中南大学本科生课程设计(实践)设计报告(程序设计基础)题目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++课程设计实践报告!

中南大学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.系统开发的体会本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。

中南大学java实验报告1

中南大学java实验报告1

中南大学软件学院实验报告课程名称Java面向对象程序设计SSD3实验项目名称实验1《基本程序设计、选择、循环》学生姓名专业班级学号实验成绩日期实验学时: 2每组人数: 1实验类型: 1 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它)实验类别: 2 (1:基础2:专业基础3:专业4:其它)一、实验目的学习Java基本程序编写的方法,熟悉选择、循环等控制结构。

二、实验内容以及代码实现、结果分析1. (P51,2.6)编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。

例如:整数932,各位数字之和为14。

如果输入的整数不在0-1000范围内,弹出GUI 提示对话框,告知用户输入有误。

提示:利用%和/分解数字。

代码实现:package java_shiyan;import java.util.Scanner;public class Jiahe {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Enter anumber between0 and 1000: ");Scanner input=new Scanner(System.in);int num=input.nextInt();int sum=num/100+(num%100-num%10)/10+num%10;System.out.println("The sum of the digits is "+sum );}}结果截图:结果分析:实验结果满足要求2. (P54, 2.21)编写程序,提示用户输入三角形的三个点(x1, y1),(x2, y2), (x3, y3),然后显示它的面积。

计算三角形面积的公式是:s=(s1+s2+s3)/3;面积=其中s1,s2, s3分别为三角形三边的长度。

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

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

中南大学C++程序设计基础课程设计题目学生成绩管理系统姓名学号班级指导教师刘嫔学院信息科学与工程学院日期二〇一四年七月设计任务书1、题目:C++课程设计报告2、程序功能组成:✧数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;✧数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;✧数据的插入:插入某个学生信息;✧数据的查询:如按学号查询、按姓名查询等;✧数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;✧平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;✧列出不及格学生清单(学号、姓名、不及格的课程和成绩)。

3、 进度安排:目 录一、总设计方案 (1)序号 设计内容名称 完成时间 备注 1 组队;确定题目;分工 6.25 2初步的需求分析与设计建模6.25~6.273 详细的需求分析与设计建模6.28~6.304 关键模块的实现与测试 7.015 编写课程设计报告 7.01~7.02 6最后总结,修改。

7.03二、使用说明及运行实例 (2)三、成员设计内容简介 (6)四、项目源程序代码 (7)五、设计心得 (19)一、总设计方案系统流程图:开始 结束选择操作输入数据排序 显示数据查询 删除 主菜单插入数据 退出系统按学号按姓名保存数据按景平均成绩选择选择选择选择选择选择选择选择按平均成绩高读取数据选择班级学号性别 姓名二、使用说明及运行实例主界面1.数据录入2.数据修改3. 数据插入4.数据查询5.数据删除6.平均值计算7.列出不及格学生三、成员设计内容简介1.数据录入:数据录入的功能是将需要的数据进行录入,用于后面的各项操作。

实现:用输入函数对数据进行录入,先确定学生的个数,再用一个循环进行输入,选修课程数量亦然。

2. 数据修改:数据修改的主要功能是为修改数据输入出现的错误,实现:先指定该生的学号,找到该生,再输出该生当前的信息,用一个if语句对数据进行修改,再用一个循环语句对选修课信息进行修改。

中南大学程序设计报告

中南大学程序设计报告

中南大学本科生课程设计(实践)任务书、设计报告(计算机程序设计基础—FORTRAN)计算机基础教学实验中心2010年7 月 5 日FORTRAN 编程实践设计报告线性病态方程组问题任务内容本次编程实践我的任务是第二道题目,即对线性病态方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1)设计程序求方程的解。

(2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。

(3)计算系数矩阵A 的条件数并分析结论。

要求:(1)方程的系数矩阵、常数向量均从文件中读入。

(2)定义求解线性方程组Ax=b 的子程序,要求该子程序能求解任意线性方程组。

(3)在主程序中调用子程序,并对求解结果进行对比分析。

(4)绘制常数向量修改前后所求得的方程解的数据分布图。

系统设计开发思想对于这道题目,我的设计思路是:(1)从文件读入系数矩阵和向量矩阵的原始数据,利用高斯消去法求解出线性方程组的解。

(2)从另一组文件中读入对向量矩阵做微小变化后的数据,再利用高斯消去法解出新的线性方程组的解。

(3)设计求范数的子程序和求矩阵的逆矩阵的子程序,从文件中读入系数矩阵数据,调用两个子程序,由条件数等于原矩阵范数乘以原矩阵的逆矩阵范数计算出系数矩阵的条件数。

(4)在QuickWin 系统环境下编写程序绘制向量矩阵变化前后的两组解的直方图。

(5)对比解的变化,结合系数矩阵条件数的大小分析变化的原因。

设计流程图如下:系统功能及系统详细设计我所设计的系统其功能是求解线性病态方程组的解,并计算出系数矩阵的条件数。

对于求解线性病态方程组的部分,我运用高斯消去法设计了一个可以求解任意线性方程组Ax=b的子程序,主程序所需数据由文件读入。

对于不同的线性病态方程组的求解只需从不同的文件中读入相应数据即可。

所以此部分程序对于求解线性病态方程组问题可以通用。

中南大学李力老师C++语言程序设计报告

中南大学李力老师C++语言程序设计报告

中南大学本科生课程设计(实践)任务书、设计报告(C++课程设计)题目统计足球比赛数据学生姓名唐苑峰指导教师李力学院能源科学与工程学院专业班级能源动力类1101班学生学号1003110114计算机基础教学实验中心2012年 06 月 28 日一、实践内容:①实践时间:2011—2012年下学期18周至19周,共计40学时。

②实践任务与要求:运用所学的知识,用c++语言编程。

编程题目为:统计足球比赛数据,要求能用菜单实现如下功能:(1)输入每场比赛的主队名称,客队名称,比赛日期,主队得分,客队得分。

(2)按总得分从高到低排出每个队的名称,总得分,胜,和,负的次数。

(3)根据用户要求输出某队某月(从键盘输入队名和月份)的所有比赛数据。

(4)根据用户要求输出某队主场总得分,客场总得分(5) 根据用户输入,绘制某队成绩历史趋势图。

(自学利用C++提供的库函数绘制曲线图)。

要求:利用类实现,数据采用文件输入,排序。

数据的组织可采用对象数组。

查阅相关资料并写出系统设计说明书。

写出实践报告。

二、实践目的:计算机实践是本科计算机基础教学的一个重要环节。

它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。

(1)掌握c++语言编程的基础知识,《c++程序设计》课程是高校计算机科学与技术专业的一门重要的专业基础课,也是某些专业的选修课程,在整个专业教学体系中占有非常重要的地位。

《c++程序设计》不仅具有很强的理论性,更是一门实践性非常强的课程,其实践教学环节的效果直接影响着理论教学的效果。

本课程注重边学边练,但由于课堂教学和实验的深度与广度与有限,练习的深度也受到了一定的限制。

为了弥补这一点,而设置了《C++程序设计》实践教学方案,主要以教学实习的方式对学生进行综合训练,培养了实际分析问题、编程和动手能力,通过教学实习,帮助我们学生系统地掌握面向对象程序设计方法及各种编程技巧,努力成为自由驾驭程序设计语言的软件能手;(2)通过自学来利用C++提供的库函数绘图,是自己又掌握了更多关于C++的知识,通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C++程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关,更加了解了C++的好处和其可用性,同时增加了同学之间的团队合作精神,更加也体会到以后在工作中团队合作的重要性和必要性,通过C++课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。

中南大学c++程序设计报告

中南大学c++程序设计报告

C++程序课程设计报告学院:专业班级:姓名:课题:学生管理系统设计本组组员:指导教师:设计时间: 2013年6月24日至7月6日目录一、程序设计目的------------------------------------3二、程序功能介绍------------------------------------3三、程序设计-----------------------------------------41.程序结构--------------------------------------42.模块说明--------------------------------------5四、调试与分析---------------------------------------71.程序调试过程----------------------------------72.程序的不足------------------------------------10五、执行结果-----------------------------------------11六、课程设计总结-------------------------------------11参考文献---------------------------------------------------------------------------------------------------------------12 附录:源程序代码---------------------------------------------------12一、程序设计目的1.在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++语言程序。

2.掌握用C++语言进行简单的菜单设计。

中南大学Fortran程序设计

中南大学Fortran程序设计

中南大学本科生课程设计(实践)任务书、设计报告(计算机程序设计基础—FORTRAN)题目FORTRAN.90程序设计报学生姓名指导教师刘卫国学院土木建筑学院专业班级学生学号计算机基础教学实验中心2010年7 月6 日FORTRAN.90程序设计任务线性方程组求解问题一物理系统可用下列线性方程组来表示:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡θ-θ-θθθ--θg m g m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos 从文件中读入m 1、m 2和θ的值,求a1、a 2、N 1 和N2的值。

其中g 取9.8,输入θ时以角度为单位。

要求:(1)分别用两种方法(例如高斯消去法、矩阵求逆法、三角分解法、追赶法等),定义求解线性方程组Ax =b 的子程序,要求该子程序能求解任意线性方程组。

(2)在主程序中分别调用上面定义的两个子程序,并对求解结果进行对比分析。

(3)绘制以上两个方法所求得的方程解的数据分布图。

这次实践主要的目的是为了更好的掌握F ORTR A N.90这门知识和熟练其中的一些做法而设计的,而这道题的任务主要是用两种不同的方法来写写求线性方程的解子程序,然后利用文件的插入数据,再在Q U IC KW IN 里画出数据的分布。

首先我看到这个题目时就想到了逆矩阵求逆法来接方程,因为我只学会了逆矩阵求逆,然后又找到了高斯消去法,和三角分解法,比较起来,我最终了用了矩阵求逆法和直接三角分解法,因为直接三角分解法是建立在高斯消去法的基础上,后面的迭代和高斯的基本一样。

这就是我选择逆矩阵和直接三角分解法的原因。

程序设计的基本思路通过徐士良Fortran 《常用算法程序集(第二版)》我了解了高斯消去法,通过《数值计算》我知道了三角分解法,通过网上百度我又知道了矩阵求逆的方法,通过比较我选择了直接三角分解法和矩阵求逆法来解线性方程的解,因为直接三角分解法后面要利用高斯消去法。

中南大学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.作业:布置适量的作业,包括编程练习和理论题目,以巩固学生对知识的理解和应用能力。

中南大学数学院面向对象课程设计报告

中南大学数学院面向对象课程设计报告

中南大学数学院面向对象课程设计报告中南大学《面向对象程序设计》上机报告题目:对话框学生姓名:学号:专业班级:指导老师:数学科学与计算技术学院2011年11月(3).在右边出现的属性中将Popup设置为“false”(4).将ID设置为1.5右击“对话框”—>添加时间处理器—>放在View类里编辑—>添加编辑1.6在view类里添加所需要的头文件: #include "TestDlg.h"1.7在对话框上面添加一个按钮(1).在最右边点击“工具箱”(2).将一个按钮拖到对话框—>右击按钮—>选择属性—>在属性栏将ID改为IDC_BTN_ADD caption改为Add(3).添加几个静态的文本框控件(选择一个控件,再按住Ctrl进行拖动就能“复制”)(4).利用成员变量操控3个编辑框右击文本框—>添加变量—>将类别改为value—>将变量类型改为int—>设置变量名—>完成1.8实现“Add”功能右击选择添加事件处理器,在TestDialog里这样加法就实现了1.9再添加3个按钮齐全加减乘除功能:同样将其ID分别改为IDC_BTN_ADD IDC_BTN_JIAN IDC_BTN_CHENG IDC_BTN_CHU 分别添加事件处理器UpdateData();//数据切换这样加减乘除的功能就都有了,但是由于我们定义其变量的时候是int型,所以可能导致除数本来不为0,但结果为0 。

例如: 1/2等于0。

最后程序结果图:一、上机程序设计心得:我们通过学习面向对象程序设计,发现在VS2008中添加MFC中消息处理函数和VC6.0是不一样的。

我们只能通过类视图,右键需要添加处理函数的类,选择属性,在属性窗口中,单击“消息”按钮,然后在消息列表框中,选择需要添加的消息。

而在运用MessageBox时,我们需要用到一种中间类型TEXT对字符进行转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学
本科生课程设计(实践)任务书、设计报告(计算机程序设计基础—FORTRAN)
计算机基础教学实验中心
2010年7 月 5 日
FORTRAN 编程实践设计报告
线性病态方程组问题
任务内容
本次编程实践我的任务是第二道题目,即对线性病态方程组
⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1)设计程序求方程的解。

(2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。

(3)计算系数矩阵A 的条件数并分析结论。

要求:
(1)方程的系数矩阵、常数向量均从文件中读入。

(2)定义求解线性方程组Ax=b 的子程序,要求该子程序能求解任意线性方程组。

(3)在主程序中调用子程序,并对求解结果进行对比分析。

(4)绘制常数向量修改前后所求得的方程解的数据分布图。

系统设计开发思想
对于这道题目,我的设计思路是:
(1)从文件读入系数矩阵和向量矩阵的原始数据,利用高斯消去法求解出线性方程组的解。

(2)从另一组文件中读入对向量矩阵做微小变化后的数据,再利用高斯消去法解出新的线性方程组的解。

(3)设计求范数的子程序和求矩阵的逆矩阵的子程序,从文件中读入系数矩阵数据,调用两个子程序,由条件数等于原矩阵范数乘以原矩阵的逆矩阵范数计算出系数矩阵的条件数。

(4)在QuickWin 系统环境下编写程序绘制向量矩阵变化前后的两组解的直方图。

(5)对比解的变化,结合系数矩阵条件数的大小分析变化的原因。

设计流程图如下:
系统功能及系统详细设计
我所设计的系统其功能是求解线性病态方程组的解,并计算出系数矩阵的条件数。

对于求解线性病态方程组的部分,我运用高斯消去法设计了一个可以求解任意线性方程组Ax=b的子程序,主程序所需数据由文件读入。

对于不同的线性病态方程组的求解只需从不同的文件中读入相应数据即可。

所以此部分程序对于求解线性病态方程组问题可以通用。

对于求系数矩阵条件数部分,我运用先累加求和得出每列元素绝对值之和再选出最大值的思想设计了求矩阵范数的子程序,又运用数学上阶梯矩阵的思想设计了求矩阵的逆矩阵的子程序。

由条件数定义将两个子程序一起套用可以计算出系数矩阵的条件数。

至于在QuickWin系统环境下的绘图程序,则是借鉴课本上的程序绘制了6个矩形,在系统默认坐标系下,横坐标间距相等,纵坐标体现解得绝对值大小。

使两组解对应部分相邻,代表原方程组的解的矩形内部用粗实线填充,代表改变后方程组的解的矩形内部用右斜线填充,直观体现解的变化。

遇到的问题与解决的办法
在程序设计过程中也我遇到了很多问题。

第一,在从文件读取数据时,为了确认是否正确读入就编写了显示读入的数据的程序,但结果执行程序时不仅不显示数据,而且原文本文件也别改写了。

后来知道是使用输出语句错误,应该用输出语句PRINT,我却用了写入的语句WRITE。

改正后数据输出就不存在问题了
第二,在用高斯消去法求线性方程组的解时,得到的结果总是和其他同学的差别很大。

仔细看过程序执行过程之后发现问题出在每次调用子程序后,原来的存放数据的数组就被赋予了新的值,在后面直接再用这个数组便得不到正确的结果。

于是我便在每次调用了子程序之后重新读入数据,再次将数据赋给该数组,得出的结果就正确了。

第三,用QuickWin编写好绘图程序并成功的前提下,整体执行程序时,先运行求解和求条件数的程序后,再打开绘图程序直接运行时就会出现很多错误,错误信息显示"unresolved external symbol",即未定义的外部函数,而后面
的函数都是QuickWin下的内部函数。

后来意识到时因为这是的系统环境并不是QuickWin。

关闭当前的Workspace后再在QuickWin应用模式中打开绘图程序,运行就不存在问题了。

总结
通过这次实践,我收获了很多。

首先,我巩固了FORTRAN程序设计的知识,尤其是文件部分和图形操作部分。

这两部分上课花的时间较少,又没有这两部分的上机实践课程安排,考试复习又不是重点,所以之前掌握的并不好。

这次实践要求文件读入数据操作和数据分布图绘制,于是我花了大量课余时间阅读课本知识和举例程序,最终成功独立完成了文件读入和图形绘制任务。

美中不足的是由于时间有限,虽然付出很多努力最终图形绘制仍不很理想,希望在日后学习过程中可以有所提高。

其次,之前所学知识是一个一个的部分,而这次实践之后,我感觉自己已经能够把所学的基础知识连成一个体系,初步有了系统程序设计的思想。

包括如何正确分析问题,用怎样的数学思想,如何设计流程图,如何将这些思路用以有的知识通过程序的语言表示出来,如何调试程序,如何分析错误信息等等。

希望在日后的求学过程中,可以学以致用,利用计算机编程的思想更为方便地解决工程中实际问题。

最后,在实践过程中各种问题一个接着一个,程序总不能成功运行。

虽然如此却从未放弃过,一次一次调试,一遍一遍修改。

最后终于成功时,颇为感慨。

相信在实践过程中培养出的这种坚持不懈的精神,会让我受益终生。

参考文献
刘卫国,蔡旭辉.FORTRAN 90程序设计教程(第2版).北京:北京邮电大学出版社,2007
刘卫国,戴忠.FORTRAN 90程序设计上机指导与习题选解(第2版).北京:北京邮电大学出版社,2007
徐士良.FORTRAN常用算法程序集-第二版.北京:清华大学出版社。

相关文档
最新文档