文档库 最新最全的文档下载
当前位置:文档库 › 2010级编程练习题

2010级编程练习题

2010级编程练习题
2010级编程练习题

一、简单问题:

1. 编程求下列式子的值,

y=1-1/2+1/3-1/4+…+1/99-1/100

并将结果输出,格式为: 1-1/2+1/3-1/4+…+1/99-1/100 = 表达式的值

2. 请编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。

3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33。

4. 请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。

5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。

6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:a→d,x →a;y →b;编程实现。

7. 编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday.

8. 输入三角形的三边a, b, c,判断能否构成三角形. 若能,计算面积.

9. 编程序,输入a,b,c,求方程ax2+bx+c=0 的解。

10.计算出前20项fibonacci 数列, 要求一行打印5个数.

11.输出100~10000之间个位数为3的所有素数。

12. 百钱买百鸡问题:公鸡每只5 元,母鸡每只3 元,小鸡3 只一元,问一百元买一百只鸡有几种买法.

13. 请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以

上的数字,否则输出两数之和。

14. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345 ,则:计算22+32+42+52

15. 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.

16. 编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数。

17. 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。

18. 编程,输出555555的约数中最大的三位数。

19. 编程,输出所有个位数为6且能被31整除的五位数及其个数。

20. 编写程序,输入两个整数,和+、-、*、/ 、%之中的任意一个运算符,输出计算结果.

21. 计算:1+1/(1+2)+1/(1+2+3)+…+ 1/(1+2+…+n), n由键盘输入。

22. 编程计算: 1*2*3+3*4*5+…+99*100*101 的值.

二、比较简单问题:

1. 编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数

m 和n, 调用GCD,求出m和n的最大公约数和最小公倍数.并输出。

2. 请编程实现:建立一个4*4的二维整型数组,求对角线元素的和。

3. 写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这10个整数中的素数的累加和。

4.从键盘上输入若干学生的一门课成绩,存入一个数组中,当输入负数时结束输入. 输出最高成绩和最低成绩及相应的序号。

5. 编程计算:1!+2!+3!+…+20!,并将结果输出.输出格式:

1!+2!+3!+…+20!= 表达式的值

6. 有一个3* 4 的矩阵,编程实现:找出该矩阵中每行元素的最大值,存入一个一维数组中。输出原始矩阵和结果矩阵。

7. 将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。然后将它和数组中的最前面的元素对换。

8. 编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。

主函数输入原始数据,调用converse,实现逆置。并将原数组和逆置后的数组输出

9. 编写函数,将给定的字符串的大写字母转变成小写字母;其它字符不变。主函数输入一个字符串,调用该函数对其进行转换,分别输出原串和转换之后的串。

10. 编写一个函数,将字符数组a中的全部字符复制到字符数组b中. 不要使用

strcpy函数. 主函数输入任意一个字符串,调该函数,复制出另一个字符串。

将两个串输出。

11. 判断一个N*N的矩阵是否为对称矩阵. 将原矩阵输出,判断结果输出.

12. 给出年、月、日, 计算该日是该年的第几天?

13. 编写一个子函数fun ,求两个矩阵的乘积矩阵;主程序中输入两个矩阵的阶数和元素值,调用fun,求出乘积矩阵,在主程序中将原矩阵和乘积矩阵输出。

14. 打印出如图所示的杨辉三角,要求打印出n行,n由键盘输入.

1

1 1

1 2 1

1 3 3 1

……

15. 编写一个程序,将两个字符串连接起来. 不要使用strcat函数;

16. 编写一个程序,找出N个字符串中的最大者. 将它输出.

17. 编程序求矩阵中的一个元素:该元素在所在行最小,在所在列最大.

18. 编写一个函数sort,将放到一维数组中的若干个数按从小到大的顺序排序;

在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出.

19. 写函数求sin( x )的值. 计算公式为:

Sin( x )=x-x3/3!+x5/5!-x7/7!+…+(-1)n-1x2n-1/(2n-1)!

20. 编写函数GCD, 求两个正整数的最大公约数,主函数中输入任意5个正整

数,调函数GCD,求出这5个数的最大公约数和最小公倍数.

21. 输入一个正整数,求出它的质因子的和,并输出结果,

格式为:12的质因子和=2+2+3=7

22. 有5个国家名,编程实现按字母先后顺序排列,然后分别输出原数组和排序之后的数组.

23. 一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数, 将其插入到该数组中, 使得原数组依然按原序有序. 分别输出原数组和插入新元素之后的数组.

24.打印以下图案:*

* * *

* * * * *

* * * * * * *

25. 有一篇文章, 有三行文字, 每行有80 个字符. 要求统计出其中英文大写字

母、小写字母、数字、空格以及其他字符的个数。

26. 编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;

在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出.

27. 有一个5 * 4 的矩阵,编程实现:找出该矩阵中每行元素的最大值,并使

该值成为该行的首列元素。

28. 写函数求cos( x )的值. 计算公式为:

Cos( x )=-1+x2/2!-x4/4!+x6/6!-…+(-1)n x2n/(2n)!

29. 从键盘输入五个字符串,分别求出字符串中长度最长和最短的字符串. 请编

程. (要求:不要使用strlen( )函数编程)

30.如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

31.一个数如果恰好等于它的各因子(该数本身除外)之和(如:6=3+2+1),则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2到60之间所

有“完数”和“盈数”,并以如下形式输出:

E: e1 e2 e3 ......(ei为完数)

G: g1 g2 g3 ......(gi为盈数)

32. 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:

abc+bcc=532。编程,输出满足条件的所有a、b、c的值。

33.全排有46名战士,会骑马的有30人,会摔跤的有19人,会拳击的有24人。还知道不少人是多面手,会骑马和摔跤的有14人,会摔跤和拳击的有12人,会拳击和骑马的有8人。编程,输出三项全能的有几人?

34. 编写程序通过调用随机数函数给5*6的二维数组元素赋10-40的整数,求

出二维数组每行元素平均值,将二维数组和平均值数组输出。

35. 有一张由9个学生每人8个数据组成的二维数据表。编写程序,要求将学生的总成绩按降序(由大到小)排列,计算并输出总分第二名学生的平均成绩。

姓名学号年龄政治语文数学计算机体育总分

李明 1 19 81 89 99 98 87

张力 2 16 89 90 95 80 90

王英 3 17 91 77 88 95 78

赵锐 4 18 79 84 95 93 96

周密 5 15 95 92 98 99 93

吴川 6 17 78 88 85 86 80

孙康7 14 91 85 94 82 88

郑重8 15 90 92 94 90 95

胡琴9 16 75 85 87 94 90

三、比较难的问题:

1. 有一行文字,要求删去其中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符全部删除)。

2. 编写一个子函数replace ,将给定字符串中的所有指定子串用另一串替换;主程序中输入一个字符串数组,调用replace将它的每个串替换,在主程序中将原数组和替换后的数组输出。

3. 口袋中有12个球,其中3红,3白和6黑,从中任取8个球,编程,输出

所有不同的取法。输出形式如下:

RED WHITE BLACK

1: 0 2 6

2: 0 3 5

......

4. 小明有五本新书,要借给A、B、C三位小朋友,每人每次只能借一本,编程,

输出所有不同的借法。

5. 一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,

只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索,编程,输出车号。

6. 编程,输出1000到100000之间所有满足下列条件的所有整数及其个数:整

数的各位数字之和等于5。

7. 有一正整数等差数列,其前四项之和是26,前四项之积是880,编程,输出

此数列的前四项。

8. 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后

余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,?最后得到一个商是a的2倍。编程,输出这个自然数。

9. 请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于

整数m且紧靠m的k个非素数存入所指的数组中。

例如,若输入15,5,则应输出16,18,20,21,22。

10. 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。

11. 三对情侣参加婚礼,三个新郎为A、B、C,三个新娘为X、Y、Z。有人

不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在说假话。编程,输出谁将和谁结婚。

12.某侦察队接到一项紧急任务,要求在A、B、C、D、E、F 六个队员中尽可能多地挑若干人,但有以下限制条件:

1. A和B二人中至少去一人

2. A和D不能一起去

3. A、E和F三人中要派二人去

4. B和C都去或都不去

5. C和D两人中去一个

6. 若D不去,则E也不去

编程,输出选中的人选。

13.有A、B、C、D、E,每人额头上贴了一张或黑或白的纸。5人对坐,都可看到其他人的颜色,但都不知道自己的颜色。5人相互观察:

A说:有三人额头上贴白纸,一人额头上贴的是黑纸

B说:我看见其他四人额头上贴的都是黑纸

C说:有一人额头上贴白纸,其他三人贴的是黑纸

D说:我看见四人额头上贴的都是白纸

E什么也没说

现在已知额头贴黑纸的人说的都是谎话,额头贴白纸的人说的都是实话。编程,输出这五人中额头贴白纸的人选和额头贴黑纸的人选。

14. 求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。若每次跨7阶,最后才正好一阶不剩。编程,输出这条阶梯共有多少阶?

15.我国古代数学名著<<孙子算经>>中,提出了闻名于世的“孙子问题”,即:今有物不知其数,三个三个地数,剩二个;五个五个地数,剩三个;?七个七个地数,剩二个。编程,输出该物的个数。

16. 有1,2,2,3,4,5 六个数字,请输出它们所有不同的排序结果,如“322145”、“232154”等,其中4 不能在第三位,3 与5 不能相连!

17. 编程,从键盘输入1个人的工资(1000—9999之间的整数),计算给这个

人发工资时,需面值100元,50元,20元,10元,5元,2元和1元的人民币各多少张?输出总张数最少的10种方案

18. 有一堆硬币,面值只有1分、2分和5分三种。其中有57枚面值不是5分,

有77枚面值不是2分;有72枚面值不是1分。问1分、2分和5分的硬币各有多少?编程,输出全部可能的答案。

19. 编程,求解下列算式中各字母所代表的数字并输出。

PEAR

-ARA

───────

PEA

20.面包bread、奶油butter和咖啡coffee在一起可以组成一个算式:

B R E A D

B R E A D

+ B U T T E R

C O F F E E

设A、B、C、D、E、F、O、R、T和U均代表数字0~9之一。编程,输出各字母所代表的数字。

21. 在给定范围内查找并输出所有由两个不同数字组成的六位回文数。一个整数如果与其反序数相等,则称该整数为回文数。例如,112211是回文数并且112211是由两个不同的数字1和2组成的,因此112211是符合上述条件的数。

【编程要求】

(1). 编写函数int palin(long m1,long m2,long x[]),在m1~m2范围内查找所

有由两个不同数字组成的回文数并依次保存到x指向的数组中。函数返回x 数组中回文数的个数。

(2). 编写main函数,调用palin函数查找100000~120000范围内所有由两

个不同数字组成的六位回文数并将这些数保存到一维数组中,将该一维数组中的数据输出到屏幕并保存到文件myf2.out中。

【测试数据与运行结果】

输出结果:

100001 101101 110011 112211 113311 114411 115511

116611 117711 118811 119911

22. 【编程要求】

(1).编写函数int prime_m( int n,int x[], long y[]),在2~n范围内查找同时符合以下条件的整数m:2m -1是素数、2m -1的反序数是奇数、2m -1的十进制表示中包含数字1。将2~n范围内符合上述条件的所有整数m依次保存到x 指向的数组中,将与m对应的整数2m -1依次保存到y指向的数组中。函数返回x数组中保存的整数个数。

(2).编写main函数,接收键盘输入的n值,调用prime_m函数找到2~n范围内所有符合给定条件的整数m及整数2m -1并将它们分别保存在两个一维数组中,将两个一维数组中的数据按所示格式输出到屏幕并保存到文件myf2.out 中。

【测试数据与运行结果】

测试数据: n=20

输出结果:

5 31

7 127

17 131071

23. 【编程要求】

(1).编写函数int Del_findgcd(int a[],int n,int *f),对于a指向的数组中前n 个元素,删除所有下标值为奇数的数组元素中保存的整数,求得数组中剩余的n/2(或n/2+1)个整数的最大公约数并将其保存到f指向的变量中。函数返回a数组中剩余整数的个数。

(2).编写main函数,声明一个一维数组并用测试数据初始化,调用Del_findgcd 函数删除数组中的所有满足条件的整数并求出剩余整数的最大公约数,将数组

中剩余的整数和这些整数的最大公约数输出到屏幕并保存到文件myf2.out 中。

【测试数据与运行结果】

测试数据: 6 8 9 11 12 13 15 16 18 19(n=10)

输出结果:6 9 12 15 18,max common divisor=3

24. 【程序功能】

产生Fibonacci 数列的前40个数,再找出其中的所有素数。

Fibonacci 数列为:1,1,2,3,5,8,13,21,34,55,89, . . . . 。

【编程要求】

(1).编写函数void Fibonprime(long f[ ], int n),产生Fibonacci 数列的前n 个数,再将其中的所有素数放入数组f 中,函数返回f 数组中素数的个数。

(2).编写main 函数,调用Fibonprime 函数求出Fibonacci 数列前40个数(n=40)中的素数,将这些素数输出到屏幕并保存到文件myf2.out 中。

【测试数据与运行结果】

运行结果:

2 3 5 13 89 233 1597 28657 514229

25. 用以下级数展开式求ln(x+21x +)(-1≤x ≤1)的近似值,允许误差为10-6。 ln(x+2

1x +)= +-+-7.65.43.21543.213.217

53x x x x 【编程要求】

(1).编写函数double fun(double x, double eps),计算

+-+-7

.65.43.215.43.213.217

53x x x x 的近似值(直到最后一项的绝对值小于eps )并作为函数返回值。

(2). 编写main 函数,接收键盘输入的x 值及允许误差eps 值并确保-1≤x ≤1,

用x 和eps 作为实参调用fun 函数,将x 、eps 值和计算结果输出到屏幕及结果文件myf2.out 中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out 中。

【测试数据与运行结果】

测试数据:x=0.5,eps=1e-6

运行结果:x=0.500000,eps=0.000001,sum=0.481212

26.【编程要求】

(1)create 函数的功能是:创建一个有N 个元素的整型一维数组(N 及N

个整数由键盘输入),对该数组N 个元素从小到大排序,函数返回该动态数组的首地址。

(2)insert 函数的功能是:在p 指向的有n 个元素的有序数组中插入整数x ,

使得p 数组的n+1个元素仍按从小到大有序。

(3)主函数完成函数调用,和结果输出。

27. 【编程要求】

(1)编写函数fun 和f ,函数fun()的功能是:计算

S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n) 的值。

例如,当n 为5时,函数值应为10.407143。

f(x)函数定义如下:

(x+1)/(x-2) x>0f(x) = 0 x=0x=2(x-1)/(x-2) x<0?????

;或;; (2)主函数输入n 值,调用fun ,将计算结果输出

VC++程序设计大作业——熊武

武汉轻工大学VC++程序设计大作业 院系电气与电子工程学院 班级 学号1204 姓名 日期2013.11.22

1题目 编写MFC下的单文档程序,通过鼠标点击选择两个点,作为矩形左上角、右下角,然后绘制矩形。(对应12题) 2思路 首先点击鼠标,选中左上角,然后拖动鼠标,在右下角拿起,这样矩形就就可以实现了。 3程序实现过程 首先建立MFC单文档程序

然后建立类向导 添加鼠标事件

添加CPoint成员变量m_OrigPoint 4关键代码 // RectangleView.cpp : implementation of the CRectangleView class // #include "stdafx.h" #include "Rectangle.h" #include "RectangleDoc.h" #include "RectangleView.h"

#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRectangleView IMPLEMENT_DYNCREATE(CRectangleView, CView) BEGIN_MESSAGE_MAP(CRectangleView, CView) //{{AFX_MSG_MAP(CRectangleView) ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRectangleView construction/destruction CRectangleView::CRectangleView() { // TODO: add construction code here } CRectangleView::~CRectangleView() { } BOOL CRectangleView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); }

VC程序设计 课程设计报告书

VC程序设计课程设计 报告书 设计题目:简单绘图软件 院系:信息工程学院 班级:软件1101 组别:第二十二组 学号: 1110024130 姓名: 方锦 起止日期:2012年12月10日~2012年12月20日指导教师:张顺利

目录 绪论 -------------------------------------------------------------------------------- 3一概要设计 -------------------------------------------------------------------- 5 1.主要功能---------------------------------------------------------------------- 5 2.设计的概要设计功能模型框架图---------------------------------------- 5 二设计的详细设计------------------------------------------------------------- 5 1工具栏的编辑---------------------------------------------------------------- 6 2状态栏的编辑 --------------------------------------------------------------- 6 四编码和测试---------------------------------------------------------------- 9五设计总结 ------------------------------------------------------------------ 10 1.过程分析-------------------------------------------------------------------- 10 2.经验教训及分析 -----------------------------------------------------------11 3程序维护 --------------------------------------------------------------------11 六参考文献-------------------------------------------------------------------- 12

最新vc++程序设计

3.25设计一个类CRectangle,除了有相关的数据成员,该类要求包含下述成员1 函数:矩形从一个位置移动到另一个位置的Move()函数;改变矩形大小的Size 2 ()函数;返回矩形左上角的坐标坐标值的Where()函数;计算矩形面积的Area 3 ()函数。 4 代码如下:#include 5 #include 6 class CRectangle 7 { 8 private: double X; 9 double Y; 10 double Length; 11 double Width; 12 public: 13 CRectangle(double s, double m, double L, double W) 14 { 15 X=s; 16 Y=m; 17 Length=L; 18 Width=W; 19

} 20 ~CRectangle() 21 {} 22 void Move(double , double); 23 void Size(double ,double); 24 void Where(); 25 void Area(); 26 }; 27 void CRectangle::Move(double x, double y) 28 { 29 cout<<"矩形按向量("<

VC++程序设计练习题

南京工业大学继续教育学院 《VC++程序设计》练习题 2010学年第一学期使用班级:H工升本/HY交升本/H自升本 一、选择题(每小题2分,共计40分) (1)下列关于栈的叙述正确的是 A)栈是非线性结构B)栈是一种树状结构 C)栈具有先进先出的特征D)栈具有后进先出的特征 (2)结构化程序设计所规定的三种基本控制结构是 A)输入、处理、输出B)树形、网形、环形 C)顺序、选择、循环D)主程序、子程序、函数 (3)结构化程序设计的一种基本方法是 A)筛选法B)递归法C)归纳法D)逐步求精法 (4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是: A)选择B)投影C)连接D)并 (5)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() A)面向过程B)面向对象C)安全性D)复用性 (6)C++语言的跳转语句中,对于break和continue说法正确的是() A)break语句只应用与循环体中 B)continue语句只应用于循环体中 C)break是无条件跳转语句,continue不是 D)break和continue的跳转范围不够明确,容易产生问题 (7)for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是() A)0B)5C)6D)无次数 (8)考虑函数原型void test(int a,int

b=7,char="*"),下面的函数调用中,属于不合法调用的是() A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*"); (9)下面有关重载函数的说法中正确的是() A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同; C)重载函数必须有不同的形参列表D)重载函数名可以不同; (10)下列关于构造函数的描述中,错误的是() A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行 C)构造函数可以是内联函数;D)构造函数不可以重载 (11)下面描述中,表达错误的是() A)公有继承时基类中的public成员在派生类中仍是public的 B)公有继承是基类中的private成员在派生类中仍是private的 C)公有继承时基类中的protected成员在派生类中仍是protected的 D)私有继承时基类中的public成员在派生类中是private的 (14)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是(B) A)fail B)eof C)bad D)good (15). ( D )能用作用户自定义标识符 A friend B-var C 3xyz D Float (16). 指针可以用来表示数组元素,int a[3][7],表示错误的是___A___ A.*(a+1)[5] B.*(*a+b) C.*(*(a+1)) D.*(a[0][0]+2)

VC++可视化程序设计入门

烟台南山学院计算机系《可视化程序设计Visual C++》作业 2016-2017学年第二学期 班级:计科1401 姓名:毛宗磊 学号:201422031026 专业:计算机科学与技术 指导教师:王玉健

1、创建计算器 1、打开vc6.0编译环境,选择file新建选项,选择工程,选择MFC APPWIZARD(exe),设置工程名字和位置,选择建立对话框,完成基本设置。 2、添加静态文本、编辑框以及按钮,修改基本属性,如图所示 3、创建类向导,在members variables中添加代码,如图所示 4、点击求和按钮,函数的代码如下

5、点击归零按钮,设置代码如下 6、实验结果如下

2、设置背景颜色 1、在文件视图中找到Onpaint()函数,设置代码如下: CRect rect; GetClientRect(rect); CPaintDC dc(this); dc.FillSolidRect(rect,RGB(10,20,180)); CDialog::OnPaint(); 2、设置完成后效果如下:

3、设置变色按钮功能 1、添加一个按钮,设置其基本属性 2、在头文件里定义几个控制颜色的变量 int m_nred; int m_ngreen; int m_nblue; 3、在变色按钮函数内添加如下代码: CColorDialog dlg; if(dlg.DoModal()==IDOK) { COLORREF color=dlg.GetColor(); m_nred=GetRValue(color); m_ngreen=GetGValue(color); m_nblue=GetBValue(color); Invalidate(); } 4、在绘图函数中修改几个变量的值 dc.FillSolidRect(rect,RGB(m_nred,m_ngreen,m_nblue)); 5、效果图如下 4、设置随机色 1、添加一个随机色按钮,设置基本属性

VC 程序设计

一、填空题:(每小题2分,共20分) 1.工程名称为kkk的单文档应用程序,默认情况下其文档类名称为() 2.切分窗口有两种类型:()切分和()切分。 3.ActiveX控件有三个属性集:()、()和方法。 4.Windows操作系统支持两种形式的多任务:基于()的多任务和基于()的多任务 5.Windows提供了四种同步对象:()创建或打开一个命名的或匿名的事件对象)、(把指定的事件对象设置为有信号状态)、(把指定的事件对象设置为无信号状态/)、(请求事件对象)事件对象、和临界区。 6.在Windows系统中,消息有数百种之多,可以大致分为以下三类:()、()和命令消息 7.套接字的数据结构中包含的信息应该有:()、()和协议 8.ActiveX控件的二进制文件的扩展名为(CAB)。9.若从扩展动态链接库中导出类,需在定义该类时添加关键字()10.画刷共有三种基本类型:()、()和图案画刷。 二、选择题:(每小题2分,共40分) 1.下列()函数用于弹出模式对话框? (A)OnInitDialog(B)DoModal(C)OnOK(D)OnCancel 2.()函数用于设置注册数据库,注册文档模板等初始化工作。 (A)I nitInstance(B)OnDraw(C)OnOK(D)OnCancel 3.()函数作用是初始化一个新文档。 (A)GetDocument(B)DeleteContent(C)OnNewDocument(D)Dump 4.自动化客户可以通过自动化服务器的()来控制自动化服务器。 (A)过程(B)属性(C)事件(D)方法 5.所有的标准Windows消息都以WM_为前缀,标准Windows消息应该由相应的窗口类和视图类进行处理,它又分为以下几类:() (A)鼠标消息(B)控件消息(C)键盘消息(D)命令消息(E)窗口消息 6.下列哪些属于文档与视图之间相互作用的函数?() (A)Serialize(B)OnUpdate(C)GetDocument(D)GetNextView 7.对于SDI应用程序,命令传递顺序为:() (A)文档->视图->SDI主框架窗口->应用程序 (B)视图->文档->SDI主框架窗口->应用程序 (C)应用程序->文档->视图->SDI主框架窗口 (D)应用程序->视图->文档->SDI主框架窗口 得分评卷人 得分评卷人

VC++程序设计说明书---计算器

目录 目录 ......................................................................................................................................... I 摘要 ....................................................................................................................................... II 1 设计目的 (1) 2 设计要求 (2) 3 设计内容 (3) 3.1 系统分析 (3) 3.2项目创建 (3) 3.3界面设计 (5) 3.4 代码实现 (8) 3.5 方案分析总结 (17) 总结与致谢 (20) 参考文献 (21) 附件 (22)

摘要 GPA英语全称是grade point average,意思就是平均分。GPA的精确度往往达到小数点后1到2位,如:3.0,3.45。GPA的标准计算方法是将大学成绩的加权平均数乘以4,再除以100,得出平均分。美国的GPA满分是4分,即A=4,B=3,C=2,D=1。一般来讲,百分制中的90分以上可视为4分,80分以上为3分,70分以上为2分,60分以上为1分,五分制中的5分为4分,4分为3分,3分为2分,2分为1分。 这次课程设计完成了一个简单的GPA计算器。本次设计系统具有良好的界面,必要的交互信息和较好的健壮性,使我们能快捷简单地进行操作,即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。 关键词:GPA;VC++6.0;MFC;控件;

(画图vc程序设计)

西安科技大学 《VC++程序设计》 实验报告 题目画图 院、系(部)计算机科学与技术学院专业及班级 学号 姓名:szgkb 日期 2014.6.2

1 题目要求 建立一个通过“画图”程序,它是基于MFC的多文档应用程序,并且应用程序的风格样式具有Office视觉样式的Ribbon风格。在实现程序的过程中,要创建具有Office视觉样式的项目,再为应用程序的Ribbon功能区添加相应的绘图命令。在实现绘图中,能够很好地使用CDC类中的绘图函数,以实现直线、矩形、圆弧、椭圆等的绘制。了解MFC中设备环境类和坐标映射方式,并且了解常用的GDI对象。扩展“画图”程序实现图形的绘制、保存、滚动等功能。 2 功能需求 选择“绘图”选项卡后,将会展开一些绘图工具。选择某个绘图工具后,便可以在客户区中绘制相应的图形,还可以点击面板上的“画笔颜色”和“填充颜色”按钮,利用弹出的颜色对话框分别设置绘图的颜色及填充的颜色,而且单击“文本”按钮还可以在客户区中输入文本内容,在文本输入中,涉及到文本的颜色、插入符的位置、字体、退格、回车、文本字符等的正确处理。 3 总体设计 建立一个MFC的基于对话框的应用程序,取名为MyPaint1。接下来创建Ribbon 功能区,创建了“工具”、“颜色”两个面板。新建绘图类CDrawShape用以封装自由线、直线、矩形、椭圆、圆的绘制过程。在CMyPaint1View中响应绘图命令并通过添加鼠标左键按下以及移动的消息响应函数(OnLButtonDown、OnMouseMovehe、 OnLButtonup)来实现图形绘制。另外设置插入符、文本内容、文本颜色,来实现文本的输出。最后进行对绘图光标的修改。 3.1 系统模块 3.2 系统业务处理流程运行“画图”程序“绘图”菜单 工具面板 客户区绘图 颜色面板 保存图形

VC++程序设计大作业格式

《Visual C++程序设计》课程大作业 题目名称:多功能模拟时钟 院系名称:计算机科学与信息工程学院 专业班级:10计科嵌入班 学号姓名:李博201003010028 2012 年 5 月

目录 一、选题意义 (1) 二、需求分析 (1) 三、总体设计 (1) 四、详细设计 (1) 五、系统测试 (1) 六、总结 (1) 七、参考文献 (1) 注意:大作用报告完成后要换成自己大作用的实际页码

一、选题的意义 此设计选择意义在于引导学生学会设计多功能模拟时钟显示窗口,进一步掌握Visual C++应用程序,系统的的学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++,并在此环境下设计并实现多功能模拟时钟显示程序。 二、需求分析 1、指针式时钟,为便于演示,时钟速度应比实际时间快20倍,即1小时相当于3分钟。 2、时间、日期数字式时钟显示,秒表功能。 3、数字式时钟的时间显示与指针式时钟显示一致。 4、可以进行时间和日期设置 三、总体设计 MainFrame.cpp程序框架类,实现通过工具栏上的按钮调整时间和指针式时钟的运行和停止。具体功能通过OnSettime(),OnStart(),OnStop()等函数实现。 Clock13View.cpp视图类。由于本程序的主要界面均通过函数绘制,故该类为本程序的主要部分,包含函数较多。有: CClock13View(),OnLButtonDown(),SetClock(),GetPoint(),OnDraw(),OnSetTime(),OnT imer(),OnStart(),OnStop()等实现定时、绘制表盘、指针、刷新及数字时钟的输出等功能 其余文件和类均由向导自动生成

VC++程序设计课内实验报告

实验报告 课程名称 VC++程序设计 专业班级电子0942 姓名 学号 电气与信息学院 和谐勤奋求是创新 实验教学考核和成绩评定办法 1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。 2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为、、;原则上根据上述三个方面进行综合评定。学生未取得1)和2)项成绩时,第3)项成绩无效。 4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。 实验报告主要内容 一.实验目的 二.实验仪器及设备 三.实验原理 四.实验步骤 五.实验记录及原始记录 六.数据处理及结论 七.实验体会(可选项) 注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。 2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。 3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事 实、概念或理论)的实验。 4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。 5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。

一、实验目的 1.进一步加深对类和对象的理解。 2.掌握类的构造函数和析构函数的概念、意义和使用方法。 3.掌握重载构造函数的含义和使用。 4.编写一个较为复杂的类和对象的应用程序。 二、实验内容 1.设计一个程序,定义一个矩形类,包括数据成员和函数成员。要求有构造函数、析构函数,还有一个成员函数area( )用来计算并显示矩形的面积,并编写main函数进行测试。程序:# include<> # include<> class Rect { public: Rect(int l, int w); ~Rect(); int Area(); private: int nLength; int nWidth; }; Rect::Rect(int l, int w) {cout<<"executing constructor..."<