中南大学程序设计报告
- 格式:doc
- 大小:32.72 KB
- 文档页数:5
中南大学本科生课程设计(实践)任务书、设计报告(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++语言中的重点和难点内容,如数组和函数等,进行训练,并且能充分发挥独立自主学习的能力,对于在程序设计和调试中遇到的问题,应积极和同学交流,相互学习,共同进步二、正文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置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。
中南大学测绘程序课程设计报告姓名: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语言课程实践报告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++)》课程设计报告设计题目教学设备管理系统指导老师设计者专业班级设计日期目录一课题的基本内容和要求二程序功能简介三主体内容: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++实践报告)中南大学本科生课程设计(实践)设计报告(程序设计基础)题目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++程序设计)题目学生成绩管理系统学生姓名指导教师学院专业班级学生学号计算机基础教学实验中心年月日学生成绩管理系统关键字:学生成绩 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面向对象程序设计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分别为三角形三边的长度。
中南大学
本科生课程设计(实践)任务书、设计报告(计算机程序设计基础—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常用算法程序集-第二版.北京:清华大学出版社。