VC++课程设计指导书
2009-01-13 22:51
注意:
1、按学院要求课程设计说明书字数(不包括英文代码)不少于3000字
2、每人需提交说明书的电子文档,发到本邮箱(sdxx08@126.com);及源代码的压缩文件,邮件的标题注明:学号、姓名、班级、题目
3、说明书的第一页即任务书中要写明设计任务(可写出主要的功能)
一、课程设计的目的
本课程设计以《VC++程序设计》课程为基础,目的是进一步培养学生综合应用VC++的各种编程知识和技巧进行程序设计的能力,最终掌握面向对象的编程技术。通过本次课程设计,学生应能达到具备设计功能较为复杂的Windows应用程序的能力,同时培养学生自主学习和独立创新的精神。
二、课程设计的基本要求
1、要充分认识课程设计对自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
5、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
三、课程设计的主要内容
可以以小组为单位,每组1至3名学生,在教师的指导下,每组完成一至二个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。
具体要求:
1、要求利用面向对象的方法以及VC++的编程思想来完成系统的设计;
2、要求在设计的过程中,对Windows环境下的编程有一个基本的认识;
3、能够综合运用所学知识,编程解决实际问题;
4、在基本要求达到后,可进行创新设计;
5、上机调试源程序,并进行充分的测试,力求程序的正确性、可读性和运行的高效性;
6、写出课程设计报告。
课程设计报告应包含以下八个内容:
⑴ 课程设计题目。
⑵ 功能描述:对系统要实现的功能进行简明扼要的描述。
⑶ 方案论证:
概要设计:根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框
图表示各功能模块之间的衔接关系,并简要说明各模块的功能。
详细设计:详细说明各功能模块的实现过程,所用到的算法、技巧等。
⑷ 程序说明:给出功能的实现。
⑸ 效果及存在问题:说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期解决办法。 ⑹ 结果分析及心得体会:谈谈自己在课程设计过程中的心得体会。
⑺ 参考文献:按参考文献规范列出各种参考文献,包括参考书目,论文和网址等。
⑻ 附录:附上各功能模块的主要代码。
参考选题如下:
选题一 多功能计算器
要求所编写的计算器能够完成加、减、乘、除、基本的函数运算,类似于Windows附件中的计算器。 选题二 指针式时钟
要求所编写的时钟能够完成基本的走时、对时、定时功能。
选题三 行驶的小车
要求小车能够根据信号灯的状态来行进或停车。
选题四 翻动的三角形
要求三角形能够沿某一路线根据要求翻动。
选题五 简单的聊天程序
要求能够实现文本的传输。
选题六 通讯录管理系统
能够对通讯录中的姓名、通讯方式、地址等信息进行各项维护,包括增加、删除、修改、查询和统计,要求查询条件不唯一,且应能根据实际需要进行组合查询;对通讯录中的各项信息进行分类统计。
选题七 学生成绩管理系统
能够对学生的基本信息、各学期的各门课程的成绩进行各项维护,包括增加、删除、修改、查询和排名。要求查询条件不唯一,且应能根据实际需要进行组合查询;对学生的排名可根据实际需要以多种方式进行,如单科排名或总成绩排名。
选题八 员工工资管理系统
能够对员工的基本信息、工资信息进行各项维护,包括增加、删除、修改、查询和统计。要求查询条件不唯一,且应能根据实际需要进行组合查询,例如,查询当月工资、季度工资、年度工资等。
四、主要技术关键的分析、解决、方案比较
以下是可以参考的课程设计可能包含的相关知识:
1、面向对象编程思想
2、MFC的核心机制,如文档和视图结构、消息映射
3、Windows控件和 ActiveX控件的使用
4、数据库技术
五、课程设计考核方式
由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量和设计结果的验收情况进行综合考核,并给出成绩。成绩分为优、良、中、及格、不及格五级。
六、主要参考资料
1、《Visual C ++ 程序设计—基础与实例分析》,朱晴婷,黄海鹰,陈莲君,清华大学出版社
2、《Visual C ++ 6.0开发技巧与实例教程》,同志工作室,人民邮电出版社
3、《Visual C++面向对象程序设计教程》,刘瑞新,机械工业出版社
4、《Visual C++面向对象与可视化程序设计(第2版)》,黄维通,清华大学出版社
第二篇:20xx年vc++课程设计报告
南京理工大学VC++课程设计报告
课 程:VC++课程设计
系 别:计算机学院
班 级:
学 号:
姓 名:
选题1名称:
选题1难易级别:
选题2名称:
选题2难易级别:
自报成绩
起止时间:
指导教师:
日期: 年 月 日
目 录
一、 课题目标
1.1 程序功能简介
1.2 课程设计要求
1.3 评定难易级别
二、 具体实现
2.1 程序总体方案
2.1.1开发平台
2.1.2程序结构或流程图
2.2 所做改进
2.2.1改进一
2.2.1.1 改进方案
2.2.1.2 具体实现
2.2.2改进二
2.2.2.1 改进方案
2.2.2.2 具体实现
…
2.2.n 改进N
2.2.n.1 改进方案
2.2.n.2 具体实现
三、 调试报告
(在设计和实现过程所遇到的问题和解决,请如实填写)…
四、 总体小结
(在整个设计过程中的心得体会)
五、 分工介绍
(是独立完成还是合作完成,若为合作完成,说明合作者以及之间的具体分工)…
2
例:
一、课题目标
1.1 程序功能简介
该程序是TICTACTOE游戏,棋盘为3*3,3个棋子连起来即为赢。输入参数时,若输入的数字超出边界或在已有棋子的地方再输入,则提示出错,要求重新输入。
1.2 课程设计要求
(1)将所需的数据和相应的函数封装在类中,改写程序使之结构化。
(2)将棋盘扩充成4*4的。
(3)统计输赢结果并打印输出。
(4)选做:使游戏更加生动。(输赢条件相同)
1.3 评定难易级别
B级
二、具体实现
2.1 程序总体方案
2.1.1开发平台
操作系统:Windows XP
开发工具:VC++6.0
2.1.2程序结构或流程图
(1)主函数的流程图:
3
主函数流程结构图
(3)子函数(circuit())的流程图:
(2)子函数(huiqi(int& x,int& y))的流程图:
4
2.2 所做改进
2.2.1改进一
2.2.1.1 改进方案
把程序改成类:在程序中定义了TICTACTOE类,里面封装了棋盘、棋子类别和输赢次数等成员数据,其中把输赢盘数定义为私有成员。利用这个类实现了数据的封装和隐藏,它将不同的类型的数据和对这些数据相关的操作封装在一起的集合体,使程序结构化。
2.2.1.2 具体实现
class TICTACTOE{
char choice;
int ROW; //行数
int COLUMN; //列数
int FirstPlayer; //玩家获胜的盘数
int SecondPlayer; //计算机获胜的盘数
int Draws; //平局的盘数
char m[30];
public:
int circuit(); //产生流程的函数
void shuchu(); //输出函数
void wait(int); //时间等待函数
5
}; void huiqi(int&, int&); //悔棋函数 void PrintBoard(); //显示棋盘和棋盘上棋子的函数 void PrintInfo(); //介绍游戏规则的函数 void PrintStats(int, int, int); //显示总的战况的函数 void IfError(int&, int&); //检验棋子是否摆放错误的函数 void ChoiceOfChar(char&); //选择是否再玩的函数 void PromptTurnO(int&, int&); //转换到玩家摆放棋子的函数 void PromptTurnX(int&, int&); //转换到计算机摆放棋子的函数 int random(long hi,long lo); //计算机摆放棋子的函数 int Whoiswinner(); //判断谁获胜的函数
2.2.2改进二
2.2.2.1 改进方案
将棋盘扩充为4*4:原来程序中的棋盘是3*3 的,现在只要在原来代码的基础上增加部分相同的语句就可以把这个要求实现了。但是现在这种写法仍觉得比较繁琐,若需要任意的棋盘,就必须将其改写成for循环,但是课程设计要求只要4*4的棋盘,改写就此免了。
2.2.2.2 具体实现
void TICTACTOE::PrintBoard() //显示棋盘和棋子的函数 {
cout<<endl;
cout<<" 1 2 3 4 " << endl;
cout<<"1 " << board[0][0]<<" | "<<board[0][1]<<" | "<<board[0][2]<<" | "<<board[0][3]<<endl;
cout<<" ---|---|---|---" << endl;;
cout<<"2 " << board[1][0]<<" | "<<board[1][1]<<" | "<<board[1][2]<<" | "<<board[1][3]<<endl;
cout<<" ---|---|---|---" << endl;
cout<<"3 " << board[2][0]<<" | "<<board[2][1]<<" | "<<board[2][2]<<" | "<<board[2][3]<<endl;
cout<<" ---|---|---|---" << endl;
cout<<"4 " << board[3][0]<<" | "<<board[3][1]<<" | "<<board[3][2]<<" | "<<board[3][3]<<endl;
cout<<endl;
cout<<endl;
}
2.2.3改进三
2.2.3.1 改进方案
实现人机对抗:利用一个随机函数,主要是在程序执行过程中产生一个随机数,并且返回一个随机数,实现计算机能够自行摆放棋子,完成简单的随机对抗。若想调用此函数,必 6
须要包含头文件stdlib.h,否则程序会报错。
2.2.3.2 具体实现
int TICTACTOE::random(long hi,long lo) {
int ran;
ran=rand()%(hi-(lo-1))+lo; return(ran); }
………
三、调试报告
四、总体小结
(在整个设计过程中的心得体会)
五、分工介绍
独立完成。
7