C++高级语言课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机高级语言课程设计报告姓名: ***
学号: ***********
学院: ***********
专业: *************
班级: ******
实习题目一
【需求规格说明】
1、有1、
2、
3、
4、
5、6六个数,能组成多少个互不相同且无重复数字的三位数?都是多少?
问题描述及分析:此题为数学中的排序问题可以利用循环来解决。
【算法设计】
(1)设计思想:
利用for循环,将三位数的百位和十位确定,剩下的利用循环和if语句判断个位的数是否与前两位相同,而百位和十位同样需要利用for循环解决,最后输出显示可以将百位数乘以一百加上十位数乘以十加上个位数即可。然后再利用MFC工程,将结果输出来
【调试报告】
开始不知道怎么用MFC在文本框中显示,就没有用MFC做,后来了解TextOut等函数就改用MFC。
【附录】
重要代码:
// 1_排序View.cpp : implementation of the CMy1_View class
//
#include "stdafx.h"
#include "1_排序.h"
#include "1_排序Doc.h"
#include "1_排序View.h"
////////////////////////////////////////////////
/////////////////////////////////////////////////
void CMy1_View::OnDraw(CDC* pDC)
{
CMy1_Doc* pDoc = GetDocument();
ASSERT_V ALID(pDoc);
int i,j,k,m;
int num=0;
for(i=1;i<=6;i++){ //三位数无重复排序
for(j=1;j<=6;j++){
for(k=1;k<=6;k++){
if(i!=j&&i!=k&&j!=k){
m=100*i+10*j+k;
CString str1;
str1.Format(("%d"),m);
pDC->TextOut((num%20)*32+50,(num/20)*32+50,str1);
num++;
CString str2;
str2.Format(("%d"),num);//将结果在文本框里整齐的输出
pDC->TextOut(100,30,str2);
pDC->TextOut(50,30,"一共有");
pDC->TextOut(130,30,"个数,分别是:");
}
}
}
}
}
/////////////////////////////////////////////////////////////////////////////
运行结果:
实习题目二
【需求规格说明】
5、文本文件中有一组整数,以空格分隔,要求排序后输出到另一个文件中。
问题描述及分析:此题利用到输入输出流的问题以及排序方法。
【算法设计】
(1)设计思想:
用o fstream i fstream 建立对象,然后用这个对象调用open,close来打开和关闭文件。当打开文件后再用冒泡法排序文件里的整数,并输出到另一个文件中。再用MFC中的ShellExecute函数将文本文件打开。
【调试报告】
由于对MFC不是很熟练的应用,致使开始无法用MFC中的函数打开文本文件,只能手动打开。后来用ShellExecute 改进了。
【附录】
重要代码:
// 5_文本输出Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "5_文本输出.h"
#include "5_文本输出Dlg.h"
#include "fstream.h"
///////////////////////////////////////////////////////////////////////////// //
void CMy5_Dlg::OnButton1()
{
ifstream infile;
infile.open("1.txt");
ofstream outfile;
outfile.open("2.txt");
int a=1;
char s;
infile.get(s);
while(!infile.eof())
{
if(s==' '||s=='\n')
{
a++;
}
infile.get(s);
}
infile.close();
infile.open("1.txt");
int*p=new int[a];
for(int i=0;i { infile>>p[i]; } for(int m=1;m int j=m; int k=p[m]; while(j>0&&k { p[j]=p[j-1]; j--; } p[j]=k; }