VC课程设计题目(五篇模版)

时间:2019-05-14 14:56:59下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《VC课程设计题目》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《VC课程设计题目》。

第一篇:VC课程设计题目

VC++课程设计题目 B090110-12

(2012-04-23 – 2012-05-19)

前言:本课程设计分成自测题和综合题两部分。两部分都列入验收。

练习题:

共11道。内容覆盖主要基本技术:基本的开发环境(调试技术),文件操作,动态链接库,图形图像编程,多线程编程,控件开发等。

每个学生选择5个完成,要求如下:

必做:1;

2,3选择其一;

4,5选择其一;

6-11选择其二;

1. 基本环境调试

将例程1用VC++打开,修改错误使程序能够运行。理解编译错误,运行错误等。

2. 数据库操作

通过ODBC数据源访问数据库(ACCESS),数据库中保存以下内容:

学生姓名,性别,年龄,家庭住址,电话,电子邮件,爱好等。

再以上基础上进行该记录的读出并可编辑浏览显示。

3. 文件操作

写一个档案文件保存以下内容:

学生姓名,性别,年龄,家庭住址,电话,电子邮件,爱好等。

再以上基础上进行该文件的读出并可编辑浏览显示。

4. 图形编程

提供一个图形工具界面,让用户能够画出直线,椭圆,多边形等几何元素,结果可以保存并可读出。

5. 图像显示

编程加载显示位图文件(bmp)。实现多个位图的叠加显示效果。在此基础上,实现动画效果。

6. 字符串操作

能够从磁盘上选择打开文本文档,读入所有内容并显示,统计所有的字符数目,单词数目,中文字符串的数目。

7. 多线程技术

目的:掌握多线程编程的基本概念,掌握用户线程的编程方法和调试方法。

建立一个工程,主线程负责用户交互,界面上提供一个按钮,通过它用户建立一个新的线程处理复杂的计算。多个线程可以共享内存中的某些变量。线程可以中止,挂起。线程间需要同步。

8. 通信技术

利用套接字编写双机通信程序,从服务器接收GPS数据。协议内容如下:

0xDB,纬度(4字节浮点),经度(4字节浮点),时间(4字节CTime),速度(2字节整型),校验(1字节异或),0xDB

在此基础上,能够在屏幕上显示其位置和速度等信息。

把接收到的内容进行解析并且显示。

9. 动态链接库

目的:了解MFC 支持的三种动态链接库:Win32DLL,MFC 常规DLL, MFC扩展库。掌握封装DLL的基本方法。

步骤:

新建三个不同的DLL工程;

分别封装一些类和函数;

新建一个测试工程对上述库里的函数或类进行调用;

封装一个对话框类到DLL,并新建一个工程调用之。

10. 控件编程

利用ATL编写一个控件,并写一个测试程序进行调用。

目的:掌握ATL控件的编写方法,测试方法和调用方法。

步骤:

新建一个ATL工程;

添加ATL控件;

往接口里添加属性和事件;

修改绘制代码;

写测试程序;

11. 多媒体数据采集

利用微软的视频,音频采集API函数,编写一个能够进行图像,音频,视频采集的程序。

综合题:

1. 硬盘录像机的制作

要求:

对外接USB接口的摄像头的数据进行采集,结果保存在硬盘上。能够根据要求对文件进行检索,播放,备份,上传。

*能够架构一个视频流服务器,提供多人的基于IE的在线视频浏览。

2. 数字存贮示波器的制作

要求:编程实现一个数字存贮示波器。示波器的踪数1-10可变,示波器的数据采样点可达1024。

示波器可以实现图形以不同的形式显示(如波形图,柱图等)。

示波器的横向,纵向均可以用鼠标进行分辨率调整。

示波器提供文件接口,可以文件读写。

结果以DLL形式封装。

创建一个客户程序对示波器进行测试。

参考:SIMULINK的示波器。

3. 大地面积测量

要求:在文本文件中保存了一条封闭路径的顶点的经纬度数据,计算由这条路封闭出的区域面积。

步骤:

(1)自行编辑三个不同大小区域的文本文件(区域范围50KM,500KM,5000KM);

(2)生成一个单独的对话框工程(项目);

(3)导入区域文件;

(4)函数说明 float Area(int nNum/*顶点数目:>=3*/, float* vX/*经度*/, float* vY/*纬度

*/, char Coord=1/*坐标系: 1 经纬度 2平面坐标*/);

(5)对于结果进行误差分析。

参考资料:地理坐标变换算法(上网搜索)

测试方法:用MATLAB工具包函数可以进行对比测试。

4. 文件编辑

创建一个多文档工程,实现对于磁盘文件的浏览,编辑等功能。

能够以文本文件,二进制文件方式打开文件;

支持剪贴板功能;

支持搜索,查找,替换功能;

支持文件定位;

功能可参考:磁盘文件工具程序UltraEdit。

5. 个人简历

创建一个个人简历程序,能够编辑自己的个人资料,添加自己的相片集进行浏览,具有保存,打印等功能。

6.文字聊天室

做一个基于点对点的聊天程序。同时具有客户端和服务器功能。

字体颜色可设置;

具有丰富的表情;

聊天记录可以保存,浏览。

7. 卡拉OK点歌管理系统

在本地硬盘库里存放歌曲文件(暂定WAV文件格式)。按照歌手,歌名(字数),类别进行检索播放。

对歌曲库可以进行管理,如添加,删除等。

计时计费功能。

8. 酒店管理系统

实现酒店客房的预定,登记,分配,计费等功能。

基本步骤:

(1)数据库后台设计,数据准备;

(2)界面设计;

(3)功能实现;

(4)测试;

9. 数字图像格式转换

能够进行BMP,GIF,TIF,JPG等图像的显示,保存,转换;

能够对图像进行处理:平滑,滤波,增强等。(算法可自行查找)

10. 简易电子地图编辑

用MapX实现地图的编辑功能:打开地图(Tab格式), 添加/删除点,线,面元素,通过属性查询并高亮显示。

请大家发挥想象,独立完成。

课程设计安排

时间与进度安排

课程设计共40学时,分在四周内完成。参考的时间分配如下(以每天4学时为例): 第1天: 基本环境熟悉;

第2-4 天: 基础练习题;

第5-9 天: 综合题;

第10天: 验收;

注:基础练习题11道中完成5道(如前所述),可在完成后请老师验收。综合课题任选一道。为避免重复,原则上每个题目只允许一定数目的同学选择。

实验报告要求

实验报告包括两部分的题目(基础练习题和综合题)。内容包括:

1. 实验目的2. 算法流程框图;

3. 数据结构说明;

4. 程序说明;

5. 测试结果;

6. 附件:程序代码。

成绩评定

成绩评定遵循过程与结果并重的原则,给出考查课成绩等级(不及格,及格,中等,良好,优秀)。依据下列因素进行学生的成绩评定:

1. 出勤率;

出勤率低于30%者将被成绩降级,低于50%将被要求重修。

2. 认真程度;

有如下行为者视情节轻重成绩将被降级直至重修:打游戏,看电影或其他无关事项。

3. 完成质量;

相同的课题,如果出现雷同的结果,将被降级。

4. 回答问题的水平;

对于完成的课题,如果不能解释,视同抄袭,成绩降级。

5. 实验报告

对于没有完成指定内容,或者雷同报告的,成绩降级。

特别的,对于完成内容超过题目要求或者有独特成果,给与成绩奖励。

2012-4-20

验收提示:

(根据最新的上级要求,做如下的通知)

5月18日: 验收日。在此之前,请大家完成准备工作(代码,必要的说明文档等)。验收时采用教师学生一对一方式进行,同学需要进行预约,并主动出示有效证件。为了提供良好的验收环境,非验收同学应在别处等候,不要围观,评论。验收老师会提问一些相关问题,请同学独立回答。学生也可能被要求进行现场的一些简单的功能改进。

对于上机时间没有达到最低要求的,取消验收资格。此数据来自计算机系统,请大家平时注意查询。

平时有问题,欢迎在教师值班时候来咨询。(见附表)

实验报告:需要提供报告的硬拷贝和电子版资料(文档,代码等),如果在成绩评定日尚未提交,则一律下一年重修。(提示:请班长或者学习委员负责统一收齐,按照学号排序,交到指定位置)。

第二篇:VC课程设计报告

编号:

河北工业大学计算机软件技术基础(VC)2007年课程设计报告

学院 班级 姓名 __ 学号 ____ 成绩 __ ____

一、题目:查找满足特定条件的三位数(27)

二、设计思路

1、总体设计 1)分析程序的功能

2)系统总体结构:设计程序的组成模块,简述各模块功能。

2、各功能模块的设计:说明各功能模块的实现方法

3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。1)如何将输出1~9不重复数字 2)困难2

4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能 2)准备的测试数据及运行结果

三、程序清单

如果是使用一个文件完成的程序,只需列出程序代码。

如果是使用多文件完成的程序,首先说明程序中的代码存放在哪些文件中,说明文件名(例如:本程序包含first.cpp、second.cpp、third.cpp和all.h四个文件);然后依次给出每个文件名及该文件清单,例如:

1、first.cpp文件清单

2、second.cpp文件清单

3、third.cpp文件清单

第1页/共2 页

编号:

4、all.h文件清单

(说明:程序清单中一定要有注释。将程序中自己编写的代码列在此处,系统自动生成的代码就不要列出了。程序清单部分的行间距设为1行即可。)

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

2、对课题提出更完善的方案

五、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

2、收获和心得体会。

日期: 2007年

(说明:本模板只提供参考,每个同学根据自己课题的特点,可减少或增加某方面的论述)

第2页/共2 页

第三篇:VC课程设计教学和任务

VC++ 课程设计指导书

江苏科技大学南徐学院电子信息系

2011年9月

《计算机程序设计(vc++)课程设计》课程设计指导书

一. 课程设计教学和任务

《计算机程序设计(vc++)课程设计》是实践性教学环节,是学生必修的一门计算机实践课程。

本课程设计的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言(vc++)基本语法,基本算法的理解,加深对面向对象程序设计的理解与应用,并使学生养成模块化,结构化程序设计的良好风格,以及一定的程序组织能力,掌握基本程序设计的方法和技巧,为学习后续课程和实际编程打下良好的基础。

本课程设计的重点要求学生掌握基本程序设计理念和方法,培养学生基本程序设计的应用和开发能力。二. 课程设计要求与内容

1.本课程设计要求

(1)学生必须完成本指导书中所有的小综合设计题,并且完成大综合设计题中的任意一题(具体题目由任课教师指定)。要求:对主要变量及函数要加注释,以说明其功能。

(2)每个学生必须完成课程设计报告一篇。(报告格式见附录)2.课程设计的内容

本课程设计内容包括两个部分:小综合设计题和大综合设计题。

====================================== 附:课程设计报告格式一、二、课程设计目的 课程设计内容

1、小综合题

2、大综合题

三、课程设计体会及建议

小综合设计题

1.二维数组的操作运算

定义一个n×n的二维数组a,将该二维数组中周边元素的值全部置为2,其他元素全部置为0。

例如: 当n为8时生成并输出的矩阵为:

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0 定义类MAT,具体要求如下:

(1)私有数据成员

int n;二维数组的阶数

int *p;将二维数组以一维数组方式存储,p是起始指针。

(2)公有成员函数

MAT(int n1);初始化n,并动态申请数组空间,令p指向该空间。

void create();给数组赋值。

void print();按矩阵方式输出二维数组。

~ MAT();析构函数,释放动态数组空间。

(3)在主函数中完成对该类的测试。键盘输入二维数组的阶数n(如8或6),定义一个MAT类的对象m,用n初始化m,按要求生成并输出数组的值。

2.链表

建立一条无序链表,结点名为node,用一个函数实现将这条链表构成一条新的逆序链表,即将链表头当链表尾,链表尾当链表头。输出这两条链表上各个节点的值。

3.字符串处理

将字符串中指定的英语单词(字母子串)进行单数变复数的处理,单词之间用非字母分隔。为了简化编程,将单词的单数变复数的规则是:直接在单词后加s。例如单词student的复数为students。例如,有下列字符串:

We are student, you are student, too.指定单词student,将字符串中所有的student修改为students。处理后的字符串为:

We are students, you are students, too.试建立一个类Modistr,完成以上工作。具体要求如下:

(1)私有数据成员

char *str;存放指定的字符串;

(2)公有成员函数

Modistr(char *s);构造函数,动态申请字符串空间,用s所指向的串初

始化str;

void print();输出字符串str;

void modify(char *wordp);将wordp所指向的单词转换为复数。

~Modistr();析构函数

(3)在主函数中完成对该类的测试。定义类Modistr的对象mys,用字符串“We are student, you are student, too.”初始化mys,调用函数modify(char *)完成将单词“student”单数变复数的处理。

输出变换前和变换后的字符串。

提示:判断一个字符ch是否为字母,可用系统库函数isalpha(ch)。该函数的功能是:若ch是字母,返回真,否则返回假。使用该函数必须包含头文件ctype.h。

4.素数问题

建立一个类PRIME,求指定范围内的所有素数(质数)。具体要求如下:

(1)私有数据成员

int data[200];依次存放指定范围内的所有素数。

int min,max;存放待求素数的数值范围的下限和上限。

int num;存放min与max之间的素数个数。

(2)公有成员函数

构造函数PRIME(int n1, int n2);用n1和n2初始化待求素数的范围 min、max及num(值为0)。

void process();求指定范围内的所有素数,把它们存放在数组data中。求素数的算法必须是:首先将min与max之间的所有奇数依次放入数组data中,然后依次判断data中的每一个元素是否为素数。

若不是素数,则将其值赋为0。最后,数组data中不为0的元素均为素数。将不为0的元素值集中连续存放到数组的前面,同时统计素数个数。

void print();输出求出的所有素数,同时输出素数个数。

(3)在主程序中对该类进行测试。

定义一个PRIME类的对象test,并用待求素数范围min =10, max=200初始化test。通过test调用成员函数求出10至200之间的所有素数,并输出结果。[提示] 素数的定义是“只能被1和它本身整除的正整数”,素数也称为质数。

5.信号系统问题

定义一个类为形状,由它公有派生出正方体、球体和圆柱体。利用虚函数的多态性形式完成计算正方体、球体和圆柱体的体积。具体要求如下:(1)基类: shape 保护数据成员:double a,b;

公有构造函数:shape(double,double); 公有纯虚函数:double volume();(2)派生类

正方体、球体和圆柱体的类名分别为cube,sphere,cylinder, 各派生类均需要定义公有的构造函数以及求体积的虚函数double volume()。(3)派生类为球体时,a为半径,b为0。

派生类为正方体时,a表示边长,b为0。

派生类为圆柱体时,a为圆柱体的边长,b为圆柱体的高。

(4)设计一个完整的程序,分别计算正方体、球体和圆柱体的体积并输出结果。

测试数据如下:

形状类指针变量:p、球体对象:C(0.8)、正方体对象:S(3.2)和圆柱体类对象:R(4.1,5)。用指针p分别指向派生类对象。

输出结果为:

球体的体积是2.14357

正方体的体积是32.768

长方体的体积是263.917 提示:球体的体积公式=4/3*π*半径*半径*半径(其中π取常数3.14)

正方体的体积=棱长×棱长×棱长

圆柱的体积=底面积×高

6.求两个日期之间相差的天数。

设计一个日期类Date,包括日期的年份、月份和日号,编写一个友元函数,求两个日期之间相差的天数。具体要求如下:(1)私有数据成员

int year, month, day;

(2)公有成员函数

Date(int y,int m,int d);//构造函数,初始化日期。void disp();//输出日期。

friend int count day(Date &d,int);// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年。

friend int leap(int year);

//判断是否闰年,是返回1,否则返回0。friend int subs(Date &d1,Date &d2);

//求两个日期之间相差的天数。

(3)在主函数中完成对该类测试,定义两个对象d1(2000,1,1)和d2(2002,10,1),调用subs函数。程序正确的运行结果是: 2000.1.1与2002.10.1之间有1002天

7.身份证。

已知旧身份证号码共15位,其中第7~12位是以2位年份+2位月份+两位日期组成,而新身份证号码共18位,其中第7~14位是以4位年份+2位月份+两位日期组成。试定义一个类ID,根据居民的出生日期检查其身份证号是否正确。

具体要求如下: 1)私有成员:

char s[19] : 存放身份证号。

int yy, mm, dd : 分别存放居民出生日期的年(4位)、月(10~12月两位,其余1 位)、日(两位)。

2)公有成员:

ID(char str[]):构造函数。

int val(char *p): 将数字字符串p转换为相应的十进制数,如“123”转换为数值123,“08”转换为数值8;

int fun(): 根据出生日期检验身份证号是否正确,如果正确,函数值为1,否则为0。

必须使用如下算法:先分别取出身份证中的表示年份、月份、日期的子字符串,然后利用上述int val(char *p)函数转换为数值,再与出生日期的相应成员数据比较。

void print(): 输出所有成员数据。

3)在主函数中输入两个身份证号(一个18位:***910,另一个15位***),分别用这两个身份证号生成类ID的对象,在主函数中通过成员函数fun确定身份证号是否正确并输出相应的信息(身份证号、出生日期、检验结果)。

8.9×9乘法口诀表。

定义一个类MUL,生成如下的9×9乘法口诀表,要求口诀表存储在动态数组中,并输出到屏幕上。运行结果如下: 1 2 3 4

5

6

7

8

9

具体要求如下:(1)私有数据成员

nt(*a)[9];a是一个行指针变量,其指向的数组空间是动态生成的,用于存放口诀表。口诀表存放在二维数组的左下三角形中。

(2)公有成员函数

MUL();构造函数,动态生成数组空间。void process();生成乘法口诀表。void print();输出乘法口诀表。

~MUL();析构函数,释放动态数组空间。

(3)在主函数中完成对该类的测试。定义一个MUL类的对象a,通过a调用成员函数求出并输出乘法口诀表。

9.字符串分类。

输入一个字符串,串内有数字和非数字字符。

例如:

ABC2345

345rrf678

jfkld945

将其中连续的数字作为一个整数,依次存放到另一个整型数组b中。如对于上面的输入,将2345存放到b[0]、345放入b[1]………

统计出字符串中的整数个数,并输出这些整数。要求:

(1)在主函数中完成输入和输出工作。

(2)设计一个函数,把指向字符串的指针和指向整数的指针作为函数的参数,并完成从字符串中依次提取出整数的工作。

10.数组元素排序

将含有12个元素的数组作如下处理:先将所有数据按其在数组中的次序分成4等分,然后以每一组数据为单位按其平均值从小到大排序。例如,原数组为:{5,6,7,1,2,3,7,8,9,2,3,5 }处理后的数组为:{1,2,3,2,3,5,5,6,7,7,8,9}试定义一个类DATA完成上述功能,具体要求如下:

(1)私有数据成员int a[12], b[12];数组a用以存放原始数据,数组b用以存放处理后的数据。

(2)公有成员函数DATA(int x[], int n);构造函数。用参数x初始化a,将b的所有元素初始化为0,n为数组x的元素个数。

void convert(int x[4][3]);将a中的数据进行分组,并转换为二维数组x,其中每一组依次为数组x的一行。

void sort();按每组的平均值实现分段排序,并将排序后的数据存放到数据成员b中。

算法要求:利用函数convert()将a转换为二维数组,再求二维数组每一行的平均值,然后根据该平均值从小到大对该二维数组进行行排序,并将结果按题意转换为一维数组存放到b中。

void print();输出a和b的所有元素。

(3)在主函数中利用给定的数组生成类DATA的对象test,并对该类进行测试。假设给定数组为{5, 6, 7, 1, 2, 3, 7, 8, 9, 2, 3, 5}。输入/输出示例:

处理前的数组:5 6 7 1 2 3 7 8 9 2 3 5

处理后的数组:1 2 3 2 3 5 5 6 7 7 8 9

大综合设计题

设计题目一:学生学籍成绩管理系统

每个学生的信息包括:姓名、学号、性别、和学生的成绩信息 如:英语、数学、程序设计及体育成绩等各门课的成绩,要求程序能自动增加一门或是几门课的成绩,同时可以删除课程。

从键盘输入数据,然后,完成如下处理:

1.对学生姓名或学号进行查询,显示其信息,求出其总成绩、平均成绩、平均基点,并且显不在全班的学成绩排名。2.对所有学生,按班级计算平均。

设计题目二:通讯录管理系统

1.系统概要

该系统的功能是实现通讯录管理。2.基本功能要求

(1)输入姓名、单位、电话号码(2)显示上述内容(3)按姓名查找后显示(4)删除有关记录(5)增加记录

(6)保存修改后的文件(7)显示修改后的文件

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目三:小型特殊计算器

1.系统概要

本程序的功能是实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。注:可任选两种运算。

2.基本功能要求

(1)功能选择可以用菜单来实现 例如:请选择您的计算内容: 1.复数计算 2.有理数计算 3.矩阵计算 4.集合计算 0.退出

用户通过输入不同的数字进入不同的菜单。次级菜单主要显示本程序的功能,主要的功能有加法、减法、乘法和除法以及集合的求交集、求并集、求子集。(2)运行时给出明确的提示信息。

比如,输入一个什么类型的数据。根据用户的输入计算输出结果。由于数据类型比较多,可以一次输入第一个复数的实部,第一个复数的虚部,再输入第二个复数的实部、虚部。矩阵运算需要先输入矩阵的行数和列数,然后依次输出矩阵的第一行第一列的元素、第一行第二列的元素等等,依次类推。有理数运算需要一次输入有理数的分子、分母。集合运算需要输入集合的元素个数,然后依次输入集合中的每一个元素。

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目四:选修课小系统

1.系统概要

通过这一款选修课小系统,学生可以登入学生端进行选课及其他的操作,管理者通过登入管理端可以进行对选修课系统的数据的管理和维护。在学生端主要设置了3个基本功能:学生选课、学生情况、选课情况等;在管理端主要设置了9个基本功能:增加/删除学生、增加/删除课程、更改学分、填写成绩、学生情况、选课情况、保存数据等。这些功能基本上能满足选课的基本要求。此程序可以初步体现课程设计的目标。2.基本功能要求

用VC++编写一个界面美观流畅学生选课系统。学生有名字,学生最多可学五门课程,学生实际学的门数,可以给定学生的名字,可以得到学生的名字,可以得到学生给定课程的成绩,可以得到学生所学课程的平均成绩,可以给学生增加一门课(同时在该课程中增加一个学生)。课程最多有30个学生,课程有实际学生

数,课程有实际学生名单,课程有学分数,课程有每个学生成绩,课程可以得到学分数,课程可以设置学分数,课程可以得到班平均成绩,课程可以得到某个学生成绩。

3.各功能模块的程序流程图。(学生完成)4.完整的源程序代码。(学生设计完成)

设计题目五:学生成绩管理系统

系统上采用VC++为开发环境,这个编译器功能完善,使用方便。课程设计《学生成绩管理系统》,它的主要功能是对学生的成绩进行修改和管理。

系统功能要求:(1)界面

************************************ 学生成绩管理系统

************************************ ************************************ ** 1--输入数据 ** ** 2-查询成绩 ** ** 3--修改成绩 ** ** 4--输出所有学生成绩 ** ** 5--统计及格和优秀人数 ** ** 6--退出系统 ** *************************************(2)功能

程序的主要功能是输入学生姓名、成绩,学号自动生成,并可以对学生的成绩按学号和姓名进行查询。该系统具有存贮学生数据,按学号、姓名查询,按需要修改学生成绩,列出学生成绩和统计功能。

第四篇:VC课程设计教学和任务12131

VC++ 课程设计指导书

江苏科技大学南徐学院电子信息系

2012年6月

《计算机程序设计(vc++)课程设计》课程设计指导书

一. 课程设计教学和任务

《计算机程序设计(vc++)课程设计》是实践性教学环节,是学生必修的一门计算机实践课程。

本课程设计的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言(vc++)基本语法,基本算法的理解,加深对面向对象程序设计的理解与应用,并使学生养成模块化,结构化程序设计的良好风格,以及一定的程序组织能力,掌握基本程序设计的方法和技巧,为学习后续课程和实际编程打下良好的基础。

本课程设计的重点要求学生掌握基本程序设计理念和方法,培养学生基本程序设计的应用和开发能力。二. 课程设计要求与内容

1.本课程设计要求

(1)学生必须完成本指导书中所有的小综合设计题,并且完成大综合设计题中的任意一题(具体题目由任课教师指定)。要求:对主要变量及函数要加注释,以说明其功能。

(2)每个学生必须完成课程设计报告一篇。(报告格式见附录)2.课程设计的内容

本课程设计内容包括两个部分:小综合设计题和大综合设计题。

====================================== 附:课程设计报告格式一、二、课程设计目的 课程设计内容

1、小综合题

2、大综合题

三、课程设计体会及建议

小综合设计题

1.二维数组元素旋转

以下程序将N×N阶矩阵向左旋转90°,得到一个新的N×N阶矩阵。例如:原矩阵为:

向左旋转90°后的矩阵为:2.找回文数

判断一个字符串是否文回文,是指正向拼写和反向拼写都一样的字符串。例如,“madam”是回文。假定字符串中只出现字母,且不区分字母的大小写,即“A”和“a”被视为同一字母,其余类似。如“Madam”是回文。而“Sir”不是回文。函数plain(char*s)判断一个字符串是回文时,若是回文,函数返回1,否则,返回0.在主函数中,当判断一个字符串是回文时,输出Yes,否则输出No。

3.二维数组的操作运算

定义一个N×N的二维数组a,将该二维数组中周边元素的值全部置为2,其他元素全部置为0。例如,当n为8时生成并输出的矩阵为

定义类MAT,具体要求如下:(1)私有数据成员。

●int n:二维数组的行数(列数)。

●int *p:将二维数组以一维数组方式存储,p是起始指针。(2)共有成员函数。

●MAT(int n1):初始化n,并动态申请数组空间。令p指向该空间。

●void create():给数组赋值。

●void print():按矩阵方式输出二维数组。●~MAT():析构函数,释放动态数组空间。

(3)在主函数中完成对该类的测试。从键盘输入二维数组的行数(列数)n(如8或6)。定义一个MAT类的对象m,用n初始化m,按要求生成并输出数组元素的值。

4.删除序列中相同的数

定义一个字符串类STR,从左到右对字符串中每个字符删除其后所有相同的字符,只留下第一次出现的那一个。例如,若字符串为“cocoon”,删除重复出现的字符后,其结果是字符串“con”。

具体要求如下:(1)私有数据成员。

●char *s1:指向原字符串,存放字符串的空间需动态分配。

●char *s2:指向结果字符串,存放字符串的空间需动态分配。(2)公有成员函数

●STR(char *str:构造函数,用str初始化s1,动态分配s1和s2指向的空间。

●void delsame():删除重复出现的字符。

●void show():输出原字符串和结果字符串。

●~STR():析构函数,释放动态分配的存储空间。

在主函数中定义一个STR类的对象test,用字符串“cocoon”初始化test,通过test调用成员函数完成删除工作,输出删除前后的两个字符串。

5.求任意数降序数

对任意一个各位数字不完全相同的四位数(如4133),将各位上的数字从小到大排列得到一个升序数(1334),再将各位上的数字从小到大排列得到一个降序数(4331)。用大数(降序数)减去小数(升序数)得到一个新的四位数(2997=4331-1334)。若相减后不足四位,则高位上补零,称此过程为一次变换。将新的四位数按上述方法再变换一次,又得到一个四位数。有断言,经过多次变换,最后一定会得到一个固定的数6174。以下程序试图验证这个断言。

6.求两个日期之间相差的天数。

设计一个日期类Date,包括日期的年份、月份和日号,编写一个友元函数,求两个日期之间相差的天数。具体要求如下:(1)私有数据成员 int year, month, day;

//构造函数,初始化日期。(2)公有成员函数 Date(int y,int m,int d);void disp();//输出日期。

friend int count_day(Date &d,int);// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年。

friend int leap(int year);

//判断是否闰年,是返回1,否则返回0。

friend int subs(Date &d1,Date &d2);

//求两个日期之间相差的天数。(3)在主函数中完成对该类测试,定义两个对象d1(2000,1,1)和d2(2002,10,1),调用subs函数。程序正确的运行结果是: 2000.1.1与2002.10.1之间有1002天

7.实现点对象之间的各种运算。

设计一个点类Point,Point类提供了6个运算符重载函数(参加程序中的代码和注释),以实现相应的运算。具体要求如下:(1)私有数据成员 int x,y;

// x,y分别表示横坐标和纵坐标。Point();//构造函数,初始化x,y的值为0。Point(int i,int j);

// //置x、y坐标。

Point(Point &);//利用完成拷贝的构造函数,给x、y赋值。~Point(){};

//析构函数,无操作。int getx();

//取x坐标。int gety();

//取y坐标。void disp();//输出x、y的值。void offset(int,int);// 提供对点的偏移。

void offset(Point);// 重载,偏移量用Point类对象表示。bool operator==(Point);// 运算符重载,判断两个对象是否相同。bool operator!=(Point);// 运算符重载,判断两个对象是否不相同。void operator+=(Point);// 运算符重载,将两个点对象相加。void operator-=(Point);// 运算符重载,将两个点对象相减。

Point operator+(Point);// 运算符重 载,相加并将结果放在左操作数中。Point operator-(Point);// 运算符重载,相减并将结果放在左操作数中。(3)编写一个程序测试该类,测试数据及要求如下:

点类:p1(2,3),p2(3,4),p3(p2)完成的运算有:

以p3为主要测试对象,首先输出p3坐标值,置p3偏移量(10,10),p2==p3;p2!=p3;p3+=p1;p3-=p2;p3=p1+p3;p3=p1-p2;每完成一次运算,要将结果进行输出。程序正确执行的结果如下:

1:(3,4)2:(13,14)3:0(2)公有成员函数

4:1 5:(15,17)6:(12,13)7:(14,16)8:(11,12)8.定义一个描述学生通讯录的类,并进行测试。

定义一个描述学生通讯录的类COMMU,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。

分析:由于姓名、学校和电话号码的数据长度是可变的,可使用动态的数据结构。邮编的长度是固定的,可定义一个字符数组来存放邮编。将数据成员均定义为私有的。用一个成员函数输出所有的成员数据,用四个成员函数分别设置姓名、单位、电话号码和邮编,再用四个成员函数分别获取姓名、单位、电话号码和邮编。主函数完成简单的测试工作。具体要求如下:(1)私有数据成员

char *pName;//

char *pSchool;

char *pNum;

char

Box[10];(2)公有成员函数

void Print(void);

//输出数据成员

//释放数据成员占用的void Init(char *,char *,char *,char *);

//完成初始化

void FreeSpace(void);空间

void SetName(char *name);void SetScool(char *unit);void SetNum(char *num);void SetBox(char *mailnum);char *GetName(void);char *GetScool(void);char *GetNum(void);char *GetBox(void);

//置姓名

//学校名称 //置电话号码 //置邮编 //取姓名 //取学校 //取电话号码 //取邮编

//单位 //电话号码 //邮编

(3)在主函数中完成对该类测试,定义两个对象c1和c2,分别两个对象的成员进行初始化、值设置并输出测试结果。

9.打印日历。

根据所输入的年份打印该年的日历。主要功能函数如下: void printmonth(int);//打印每个月的日历

void printhead(int);

//打印日历每个月的头,并将打印位置移到该月第一天的星期几处

int firstday(int);

//计算第一天是星期几 int daysofmonth(int);//该月有多少天 int isleap(int);

//判断是否是闰年

需定义两个全局变量year和weekday,分别存放年份 和 每个月的第一天是星期几

10.集合的操作

定义一个求两个集合的交集的类DataSet。并在主函数中用两个字符串进行测试。具体要求如下:

1)私有数据成员:

char *p1, *p2;指向存放两个原始数据集合的指针。

char *p;指向复制出来的两个集合的交集数据的指针。

2)公有成员函数:

DataSet(char a[ ], char b[ ]): 构造函数,提供原始数组,同时也要根据两个数组中较大的一个初始化指针p所指向的内存。

void fun(): 功能函数,求交集。要求交集中无重复字符。

void print(): 输出函数,输出原始数据及结果。

~DataSet(): 析构函数,实现必要的功能。

大综合设计题

设计题目一:学生成绩管理系统

1.系统概要

该系统完成学生信息的输入,插入,删除一个学生信息,修改,查找学生信息,计算学生的总分,并能按学生的总分排序。

2.基本功能要求

(1)按顺序输入若干个学生信息

(2)插入一个学生信息(先输入插入位置,再输入学生信息)(3)删除一个学生信息(先删除插入位置,再删除学生信息)(4)修改已知学号的学生信息(按学号来找)(5)查找已知学号的学生信息(按姓名来找)(6)统计一个学生的总分成绩(7)按总分从高到低输出学生成绩表(8)显示所有学生的信息(9)退出。

3.各功能模块的程序流程图。(学生完成)

4.完整的源程序代码。(学生设计完成)

设计题目二:通讯录管理系统

1.系统概要

该系统的功能是实现通讯录管理。

2.基本功能要求

(1)输入姓名、单位、电话号码(2)显示上述内容(3)按姓名查找后显示(4)删除有关记录(5)增加记录(6)保存修改后的文件

(7)显示修改后的文件

3.各功能模块的程序流程图。(学生完成)

4.完整的源程序代码。(学生设计完成)

设计题目三:小型特殊计算器

1.系统概要

本程序的功能是实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。注:可任选两种运算。

2.基本功能要求

(1)功能选择可以用菜单来实现 例如:请选择您的计算内容:

1.复数计算 2.有理数计算 3.矩阵计算 4.集合计算 0.退出

用户通过输入不同的数字进入不同的菜单。次级菜单主要显示本程序的功能,主要的功能有加法、减法、乘法和除法以及集合的求交集、求并集、求子集。(2)运行时给出明确的提示信息。

比如,输入一个什么类型的数据。根据用户的输入计算输出结果。由于数据类型比较多,可以一次输入第一个复数的实部,第一个复数的虚部,再输入第二个复数的实部、虚部。矩阵运算需要先输入矩阵的行数和列数,然后依次输出矩阵的第一行第一列的元素、第一行第二列的元素等等,依次类推。有理数运算需要一次输入有理数的分子、分母。集合运算需要输入集合的元素个数,然后依次输入集合中的每一个元素。

3.各功能模块的程序流程图。(学生完成)

4.完整的源程序代码。(学生设计完成)

第五篇:课程设计题目

1、家庭财务管理系统

设计一个用于管理家庭收入和支出的系统,实现以下功能:

1)对收入和支出的类别进行分类,实现类别的添加、删除、修改操作;

2)对每天的各项支出和收入进行记录和管理,该系统包括每月预算,每日消费记录的录入、修改、查询、删除,3)可按年、月、日对收入和支出进行统计和浏览的功能。并生成相应的结算报表。

2、银行个人账户管理系统

包括账户管理(开户、销户、挂失等功能)和存取款管理(存款、取款,操作明细打印)功能,各项操作应符合银行实际操作。

3、网络图片管理系统

设计一个网络的图片管理系统,可以通过该系统上传,分享,浏览,评论自己或者好友的图片。实现以下功能:1)用户注册与登录、2)个人资料修改、3)添加好友功能、4)创建相册和子相册、5)上传图片到指定相册等功能,6)服务器处理并存至特定文件夹,同时用户设定是否允许其他人浏览,默认为好友间才能浏览,7)添加/取消好友的功能,8)可以在图片下添加评论。

4、师生网上互动平台

设计一个网络教学互动平合, 具体实现的功能如下:

(1)教师部分功能

进行课程管理: 进行答疑管理;进行试题管理。

(2)学生部分功能

阅读公告、修改个人信息、查看“我的问题”、进行网上提问、进行网上测试。

5、业绩考核系统设计与实现

功能要求:

1)论文分类管理功能(期刊刊物类别(核心、一级等)、影响因子等相关信息的管理)

2)个人论文信息管理功能(个人发表论文情况的录入、修改、删除)

3)用户管理(包括普通用户、管理用户、审核用户的相关权限及功能设计)

4)生成个人业绩报表

进度安排及主要内容:

第1天:理解题目,进行需求分析,功能确定,模块划分,及总体设计;

第2天:确定编程开发环境,并熟悉环境及相关API;

第3天--第4天:进行详细代码设计,完成系统基本功能;

第5天:系统运行测试修改,完成系统设计,撰写实习报告。

报告内容:

1、系统需求分析、功能确定、模块划分,开发环境选定;

2、系统总流程图,(如有必要画主要模块流程图)

3、系统设计主要代码及解析(要求只写主要功能模块的关键代码)

4、课程设计总结。

下载VC课程设计题目(五篇模版)word格式文档
下载VC课程设计题目(五篇模版).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    课程设计题目

    青海大学电2013《微机原理及应用》课程设计题目 1. 小型水泵定时控制装置 ............................................. 2 2. 温度监测装置 .................................

    课程设计题目

    题目一 题目:广告公司网络的设计 1.基本背景描述 某广告公司现有分公司1(50台pc)和分公司2(40台pc),分公司1和分公司2都拥有各自独立的部门。分公司1和分公司2包括:策划部、市场部......

    课程设计题目

    A 哈尔滨市旅游需求预测与分析哈尔滨市旅游资源极其丰富。夏季,哈尔滨市是中国的避暑胜地;冬季,哈尔滨独特的冰雪旅游也吸引了国内外众多的游客。旅游业受到诸多因素的影响,包括......

    VC计算机毕业设计题目大全(5篇)

    VC计算机毕业设计题目大全: VC001游戏程序设计(五子棋) VC002题库管理系统 VC003局域网即时聊天程序的设计与实现 VC004人脸识别系统设计 VC005指纹识别系统 VC007中国象棋软......

    VC课程设计报告--教学事务管理系统

    C++ 课 程 设 计 实 验 报 告 学号 姓名院系专业 能源与环境工程 热能与动力工程 一、 课题名称 《教学事务管理系统》 二、 问题陈述 使用面向对象设计的系统分析和设计,......

    传热学课程设计题目

    1、煤油冷凝器的设计任务书 1、设计题目:煤油冷却器的设计 工程背景:在石油化工生产过程中,常常需要将各种石油产最(如汽抽、煤油、柴油 等)进行冷却,本设计以某炼油厂冷却煤油产......

    计算机网络课程设计题目汇总

    1. 帧的封装实现 2. 入侵检测初步研究 3. 员工宿舍组网设计 4. DHCP服务器的配置 5.小型HTTP服务器的设计与实现 5.多校区网络互联方案设计 6. 小型企业办公楼局域网构建 7.......

    PLC课程设计参考题目

    1.停车场车位控制 2.病床呼叫系统 3.自助洗车机控制 4.自动售货机控制系统设计 5.液体混合装置控制系统设计 6.霓虹灯PLC控制系统设计 7.四层电梯PLC控制系统设计 8.车辆出......