当前位置:文档之家› C++课程设计

C++课程设计

C++课程设计
C++课程设计

《C++程序设计》课程设计说明书

题目模拟ATM取款机的设计学号1067118139

姓名苗宇霞

指导教师康懿

日期2012/6/18

.目录

第一章需求分析 (3)

1.1 教学要求 (3)

1.2 设计资料及参数 (3)

1.3设计要求及成果 (3)

第二章总体设计 (5)

2.1 设计介绍 (5)

2.2设计图形 (5)

第三章类的设计 (6)

3.1数据成员 (6)

3.2函数成员 (6)

第四章详细设计 (8)

4.1 工程视图 (8)

4.2 类图视图 (8)

4.3函数的调用关系 (9)

4.4主程序流程图函数关系 (9)

4.5主程序流程图 (10)

第五章测试 (10)

5.1身份验证 (11)

5.2修改密码 (12)

5.3取款 (12)

5.4查询余额 (13)

5.5转账 (13)

5.6挂失 (14)

5.7锁卡 (14)

5.8退出系统 (15)

第六章总结 (16)

参考文献 (19)

附录:程序代码 (20)

第一章需求分析

以链表存储集合,在此基础上完成对集合的操作。

要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:

输入、输出集合

查询集合中的元素

在集合中进行插入、删除元素

实现集合的并、交、差运算

并设计主函数测试该类。

第二章总体设计

2.1设计介绍

本系统可以录入ATM的信息包括,登录,挂失,取款,查询余额,修改密码,转账。存储模块可以将输入的信息存储在txt文件中。当系统中录入了用户的个人信息后的信息后,通过输入密码,就可以进行以上业务了。本程序设计根据C++类的基本知识和类的基本性质去实现ATM自动取款机基本功能。

2.2设计图形

图2.1

第三章类的设计定义格式如下:

user类的设计

Class user{

3.1 数据成员:

bool j;

int times; // 记录密码输入次数

consumer& cnsm;

3.2函数成员:

ATM(consumer& cn):cnsm(cn)

{ j=true;

}

void welcome();

// 说明:登陆界面

// 输入卡号,密码

//无返回值

bool check_passwd(char pwd[]);//

//说明:核对密码

//输入账号,密码

//无返回值

bool ATM::check_zhang(char num[]);

void change_passwd();

//说明:修改密码

//输入账号,密码

//无返回值

void fetchmoney();

// 说明:取款

//输入账号,密码

//无返回值

void trans();

//说明:转账

//输入账号,密码

//无返回值

void information(); // 说明:查询信息//输入账号,密码

//无返回值

void exitATM();

// 说明:退出系统//输入账号,密码

//无返回值

void functionshow(); // 说明:功能界面//输入账号,密码

//无返回值

void lock();

//说明:锁机

//输入账号,密码

//无返回值

bool cancle();

//说明:挂失

//输入账号,密码

//无返回值

第四章详细设计4.1工程视图

图4.1

4.2类图视图

图4.2

4.3函数的调用关系 如下图:

图4.3

4.4主程序流程图(函数关系)

图4.4

4.5主程序流程图

图4.5

第五章测试

5.1测试【1】身份验证

图5.1

5.2测试【2】修改密码

图5.2

5.3测试【3】取款

图5.3

\

5.4测试【4】查询余额

图5.4

5.5测试【5】转账

图5.5

5.6测试【6】挂失

图5.6

5.7测试【7】锁卡

图5.7

5.8 测试【八】退出系统

图5.8

第六章总结

通过本次的c++课程设计,巩固和加深了对C++语言课程的基本知识的理解和掌握,掌握了C++语言编程和程序调试的基本技能,提高运用C++语言解决实际问题的能力。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。

我的专业是电子信息工程,而我的专业与C++有着密不可分的关系。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的

问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得

不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

此程序运用到构造数据类型,包括基本数据类型,及结构体、共用体、和自定义数据类型。涉及到域作用符,函数的参数传递,const 函数,在定义数据类型时使用指针,可以有效地表示复杂的数据结构;能动态分配存储空间,能方便的使用数组和字符串,还运用到类与对象的相关知识,类的定义。类成员的访问,类的对象,类的构造函数。拷贝构造函数的使用,及继承与派生的意义,派生类的声明与构成,派生类的成员访问限制,及void指针类型参数与函数模板的使用等知识。

经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。

在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题,这并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力.

老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。

通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。

虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础。

在这次课程设计中遇到了好多种问题,但是在老师的悉心教导下终于都解决掉了。在这里我也向老师深深的鞠一躬,老师您辛苦了!

参考文献

1、官全龙, 姚国祥. 计算机工程与设计, 2005, 26(12): 3225-3227.

2、谭浩强,C++程序设计,北京:清华大学出版社,2004

3、杨国林,吴敏,C++面向对象程序设计,内蒙古大学出版社,2006

4、和克智,C++程序设计第二版,西安:西安交通大学出版社,1999

5、陈维新,林小荼,C++面向对象程序设计,北京:中国铁道出版社2004

6、陈卫卫,C++程序设计教程,北京:希望电子出版社,2002

7、马希荣,王洪权,蒋丽芬,C++语言程序设计,北京:电子工业出版社,2005

8、余苏宁,王明等,C++程序设计教程,北京:高等教育出版社,2003

9、杨学明,刘如海,余建军,C++面向对象程序设计,北京科学出版社,2003

10、孟威等C++程序设计教程习题解答及上机实践北京:机械工业出版社,2006.4

附录:程序代码

#include"iostream"

using namespace std;

class consumer;

class ATM // ATM取款机类

{

public:

ATM(consumer& cn):cnsm(cn)//构造函数初始化列表{ j=true;//用户卡号密码匹配时的真实身份

}

void welcome(); // 登陆界面申明

bool check_passwd(char pwd[]);// 核对密码

bool ATM::check_zhang(char num[]);

void change_passwd(); // 修改密码

void fetchmoney(); // 取款

void trans();//转账

void information(); // 查询信息

void exitATM(); // 退出系统

void functionshow(); // 功能界面

void lock(); // 锁机

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

C语言课程设计总结

C语言课程设计总结 一、设计题目: 猜数字和贪吃蛇小游戏。 专业:09电气工程及其自动化 组号:第十组 组员:马邢(组长)、王维、毛亮、汪小成、魏坤波、陈维康、高裴石、石峰、葛良志、冯鑫源 指导教师:黄莉莉 二、任务分配: 我们组分为两队,一对制作贪吃蛇游戏,另一对制作猜数字游戏。制作贪吃蛇的人员是马邢,葛良志,高裴石,石峰,陈维康。石峰和高裴石负责收集程序材料,马邢和葛良志负责整理和编写程序,陈维康辅助我们工作。制作猜数字的是魏坤波,王维,毛亮,汪小成,冯鑫源。魏坤波和王维负责编写程序,其他三人收集材料并帮助他们人编写和调试程序。 三、心得体会: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学

到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在黄老师的辛勤指导下,终于游逆而解。同时,在黄老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢

C语言课程设计参考模板

C语言课程设计 题目 XXXXXXX 二级学院电子与信息工程学院 班级 1X级XXXXX 专业X班 姓名 XXX 学号 XXX 指导教师梁建勇 2016年07月01日

通讯录管理系统 电子与信息工程学院C语言课程设计任务书

2014022061 刘言松 通讯录管理系统 刘言松安康学院 2014级电子与信息工程系电子信息工程2班 摘要:通讯录管理系统是生活中不可缺少的部分编写了一个通讯录管理系统是十分必要的。本程序设计具有通讯信息的输入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、结构体等知识点。可运用于小的管理软件。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。 关键词:通讯录管理系统;结构体;条件语句;循环结构;指针 1引言 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C 语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。 2设计方案 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改等信息,完成通讯录的功能。主函数可以调用五个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、退出系统等功能。在主函数中可以以1、2、3、4、5、数字键分别可以执行某个功能模块 3程序设计与实施 3.1根据该流程图定义数据类型建立函数 typedef struct { char score; //编号 char name[10]; //姓名 char num[15]; //电话号码

智能计算导论课程设计

西安电子科技大学 智能计算导论课程实验报告SAR图像变化检测

SAR图像变化检测 1 引言 遥感变化检测是指通过对不同时期同一区域的遥感图像进行比较分析,根 据图像之间的差异得到我们所需要的地物或目标的变化信息。现代遥感技术的飞速发展为变化检测提供了一种便捷的途径,遥感数据成为变化检测的主要数据源。 与可见光和红外遥感相比,微波遥感具有无可比拟的优点:微波能穿透云雾、雨雪,具有全天候、全天时的工作能力。二,微波对地物有一定穿透能力。三,采用侧视方式成像,覆盖面积大。正是这些优点,使得SAR 图像日益成为变化 检测的重要数据源。 SAR 变化检测技术的需求日益广泛。目前,全球坏境变化加剧,城市急速发展,洪水、地震等自然灾害时有发生,这些都需要及时掌握相关动态信息,为相关决策部门提供支持,而SAR 的种种优点为快速响应提供了技术支持和应急保障。 2 定义 变化检测是指通过分析同一地区不同时间的图像,检测出该地区的地物随时间发生变化的信息 SAR图像的变化检测是指利用多时相获取的同一地表区域的SAR图像来确定和分析地表变化,能提供地物的空间展布及其变化的定性与定量信息 3 常用方法

本报告所用算法流程图 4 实验结果

5 程序 %initial clc clear all close all

Ia=imread('2002.5.bmp');%read image Ib=imread('2005.4.bmp'); Iag=Ia(:,:,1);%rgb2gray Ibg=Ib(:,:,1); %midfilt Iam=medfilt2(Iag); Ibm=medfilt2(Ibg); %find difference ia_double = double(Iam)+1; %uint8todouble ia1 = ia_double/255; %unit ib_double = double(Ibm)+1; ib1 = ib_double/255; di_image=di(ia1,ib1); %构造模糊差异 di_image1=uint8(di_image.*256); di_image1=double(di_image1); %FCM bilateral_di_image=bilateral(di_image1,36,6); %双边滤波 bilateral_di_image1=uint8(bilateral_di_image); bilateral_di_image=double(bilateral_di_image1); fcm_image=fcm(bilateral_di_image); %聚类 [T]=mis(Re,fcm_image,N,L); k=T; disp(sprintf('12óD%d??????£??ó2??????a%d',N*L,k)); p=k/(N*L)*100 disp(sprintf('?ó2??ê?a%2.4f',p)) %display figure(1); subplot(2,3,1),imshow(Ia); title('原图a'); subplot(2,3,2),imshow(Iam); title('图a中值滤波图'); subplot(2,3,3),imshow(Ib); title('原图b'); subplot(2,3,4),imshow(Ibm); title('图b中值滤波图'); subplot(2,3,5),imshow(di_image); title('模糊差异图'); subplot(2,3,6),imshow(bilateral_di_image1); title('双边滤波图'); figure(2); imshow(fcm_image); title('聚类图'); function [img1] = bilateral(img,winsize,sigma) winsize = round( (winsize-1)/2 )*2 + 1;

仓库管理系统C课程设计报告

《高级语言程序设计》 课程设计报告 设计题目图书管理系统 专业计算机科学与技术 班级 姓名 学号 2007 年6 月5日 目录 1.设计目的 (3) 2.设计思想 (3) 3.类及对象设计 (4) 4.程序源代码 (5) 5.调试记录 (16) 6.总结 (18) 仓库管理系统 1.设计目的 通过实习进一步掌握所学的基本知识,学会解决实际问题的方法 2设计题目 1、问题描述(功能要求):某公司现有以下设备:普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。

2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 2.设计思想 (1)设计classadmin管理库,实现对仓库信息的描叙;class shelf柜台类库实现建立电器资料;class ele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;class mana函数类,实现对电器的入库,查找,出库等。 (3)设计菜单来实现功能设计 1、输入商品 2、商品查找 3、查询入库 4、商品出库 5、退出系统 3.设计类及对象 (1)本程序定义了四个类,定义如下: classadmin { public: admin(); private:

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

人工智能课程设计doc资料

人工智能课程设计

人工智能<五子棋> 技术报告 简介 本课程设计是基于alpha-beta剪枝算法的五子棋的博弈游戏,具有悔棋,可选择禁手,支持人机对战,人人对战等功能。整个设计基于Java语言开发,界面美观大方。 alpha-beta剪枝技术的基本思想或算法是,边生成博弈树边计算评估各节点的倒推值,并且根据评估出的倒推值范围,及时停止扩展那些已无必要再扩展的子节点,即相当于剪去了博弈树上的一些分枝,从而节约了机器开销,提高了搜索效率。具体的剪枝方法如下: (1) 对于一个与节点MIN,若能估计出其倒推值的上确界β,并且这个β值不大于 MIN的父节点(一定是或节点)的估计倒推值的下确界α,即α≥β,则就不必再扩展该 MIN节点的其余子节点了(因为这些节点的估值对MIN父节点的倒推值已无任何影响了)。这一过程称为α剪枝。 (2) 对于一个或节点MAX,若能估计出其倒推值的下确界α,并且这个α值不小于 MAX的父节点(一定是与节点)的估计倒推值的上确界β,即α≥β,则就不必再扩展该MAX节点的其余子节点了(因为这些节点的估值对MAX父节点的倒推值已无任何影响了)。这一过程称为β剪枝。 1、数据结构定义 本文定义15*15的五子棋棋盘,实现算法,在算法中采用的数据结构包括:int isChessOn[][]描述当前棋盘,0表示黑子,1表示白字,2表示无子;int pre[][]记录棋点的x,y坐标。 由于本课程设计是基于Java语言开发的,在Java中只能用类表示并实现所定义的数据结构。所以下面将用类来描述相应的数据结构及算法:public class ChessPanel{ private ImageIcon map; //棋盘背景位图 private ImageIcon blackchess; //黑子位图 private ImageIcon whitechess; //白子位图 public int isChessOn [][]; //棋局 protected boolean win = false; // 是否已经分出胜负 protected int win_bw; // 胜利棋色 protected int deep = 3, weight = 7; // 搜索的深度以及广度 public int drawn_num = 110; // 和棋步数 int chess_num = 0; // 总落子数目 public int[][] pre = new int[drawn_num + 1][2]; // 记录下棋点的x,y坐标最多 (drawn_num + 1) 个 public int sbw = 0; //玩家棋色黑色0,白色1 public int bw = 0; // 当前应该下的棋色 0:黑色(默认), 1:白色 protected int x_max = 15, x_min = 0; // 边界值,用于速度优化

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

c语言课程设计体会

体会 通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难, 三周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼, 回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊! 很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。 人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!

C+课程设计报告代码

C++课程设计报告 专业: 学号: 姓名: 同组人: 提交日期: 【设计目的】 1、通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。 2、了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。【设计内容】 1、设计某公司的库存管理系统。此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。 2、系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。 3、系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:date.dat。 4、作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能,所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。 5、下图中黑体字部分程序块为我完成的代码块

【实验环境】 1.硬件环境: (1)电脑型号戴尔 Inspiron 5557 笔记本电脑 (扫描时间:2017年01月11日) (2)操作系统Windows 10 Enterprise 64位 ( DirectX 12 ) (3)处理器英特尔 Core i7-6500U @ 2.50GHz 双核 (4)主板戴尔 03XTY7 ( 英特尔 PCI 标准主机 CPU 桥 - 100 Series 芯片组Family/eSPI Controller - 9D48 ) (5)内存8 GB ( 镁光 DDR3L 1600MHz ) (6)主硬盘三星 SSD 850 EVO 500GB ( 500 GB / 固态硬盘 ) (7)显卡Nvidia GeForce 930M ( 4 GB ) (8)显示器友达 AUO38ED ( 15.3 英寸 ) 2.软件环境:Windows 10 Enterprise 64位 ( DirectX 12 )、Visual Studio 2015 【设计中使用函数说明】 (1)char manage::first_face()//首页:该函数是该系统的首页。 (2)void manage::in_cangku()//入库函数:该函数是将商品信息录入到文件中。 (3)void manage::out_cangku()// 出库函数:该函数将商品信息读取后找到用户想要出库的商品然后进行商品报损。 (4)void manage::find_property()//查询函数:该函数用于让用户选择自己想要的查询商品的方式:俺商品名称查询、按商品价格查询、按商品价格查询。

C语言课程设计题目汇总

目录 题目6:通讯录程序设计(限2人)........................................................................................................................................... 题目10:机房机位预定系统(限2人)..................................................................................................................................... 题目13:工资纳税系统............................................................................................................................................................. 题目41:条件编译.....................................................................................................................................................................

题目6:回文数的形成............................................................................................................................................................... 杨顺民题目 C语言程序课程设计题目 题目1:年历显示 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。(2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”

智能仪器设计课程设计

智能仪器设计课程设计 8. 试设计智能仪表 实现智能数字显示仪表。要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警(蜂鸣器报警)。适配Cu100热电阻,测温范围为0℃~150℃。采用位式(两位、三位,具有滞环)控制、并用晶闸管过零驱动1000W电加热器(电源电压为AC220V)。 《智能仪器设计基础课程设计》----40题目 教学说明: 如下设计题目应该在课程开始时布置,并在教学中安排时间,以产品设计案例教学方式讲授如何理解题目以及如何实现题目,并补充完成题目所需要的相关知识。 如下的智能仪表课程设计题目,都是小型智能仪表产品开发方面的题目。涉及智能仪表硬件与软件设计。智能仪器课程设计是智能仪器课程教学的重要环节,根据设计智能仪表产品的课程改革目的,特选择一些小型智能仪表产品作为课设题目,满足教学需求。课程题目小,学生容易学,上手快,可以在短时间走完智能仪表设计的全过程,学会产品设计步骤。 1.设计基本要求 (1)正确理解设计题目,经过查阅资料,给出正确设计方案,画出详细仪表原理框图(各个功能部分用方框表示,各块之间用实际信号线连接)。 在互连网上收集题目中所用到的器件资料,例如传感器(热偶分度表等)、信号调理电路、AD转换器、单片机、继电器、电源、显示器件等。 在互连网上收集相关单片机的显示、AD转换、显示、控制算法等程序。 在充分研究这些资料基础之上,给出设计方案(选择信号调理电路、单片机、显示、按键输入、继电器驱动、电源等,简要说明选择的理由) (2)用Protel99SE软件设计仪表详细原理图。 要求正确标记元件序号、元件数值、封装名。 (3)设计PCB图 在画PCB前应该购买元件,因为有了元件才知道封装尺寸,但也可以不购买元件,只到元件商店测量实际元件尺寸后,画封装图。 (4)熟悉单片机内部资源,学会ADC、SPI接口、定时器、中断、串口、I/O引脚等模块的编程。 (5)采用C语言开发所设计仪表的程序。 按照题目要求,确定仪表需要完成的任务(功能),然后分别编制各任务的程序。程序应该有说明,并有详细注释。 说明:若是不安装实验板或是最小系统板,就只能用Atmel公司的A VR Studio软件或是Keil软件(随意下载)仿真,则学习效果将大打折扣。 2.设计(考试)说明书 说明书内容: (1)封面内容: 《智能仪器设计基础》考试题 题目号:

C课程设计报告含代码

C课程设计报告含代码Newly compiled on November 23, 2020

专业: C++课程设计报告 学号: 姓名: 同组人: 提交日期: 【设计目的】 1、通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。 2、了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。【设计内容】 1、设计某公司的库存管理系统。此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。 2、系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。 3、系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:。 4、作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能,所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。 5、下图中黑体字部分程序块为我完成的代码块

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

智能控制系统课程设计

目录 有害气体的检测、报警、抽排.................. . (2) 1 意义与要求 (2) 1.1 意义 (2) 1.2 设计要求 (2) 2 设计总体方案 (2) 2.1 设计思路 (2) 2.2 总体设计方框图 2.3 完整原理图 (4) 2.4 PCB制图 (5) 3设计原理分析 (6) 3.1 气敏传感器工作原理 (7) 3.2 声光报警控制电路 (7) 3.3 排气电路工作原理 (8) 3.4 整体工作原理说明 (9) 4 所用芯片及其他器件说明 (10) 4.1 IC555定时器构成多谐振荡电路图 (11) 5 附表一:有害气体的检测、报警、抽排电路所用元件 (12) 6.设计体会和小结 (13)

有害气体的检测、报警、抽排 1 意义与要求 1.1.1 意义 日常生活中经常发生煤气或者其他有毒气体泄漏的事故,给人们的生命财产安全带来了极大的危害。因此,及时检测出人们生活环境中存在的有害气体并将其排除是保障人们正常生活的关键。本人运用所学的电子技术知识,联系实际,设计出一套有毒气体的检测电路,可以在有毒气体超标时及时抽排出有害气体,使人们的生命健康有一个保障。 1.2 设计要求 当检测到有毒气体意外排时,发出警笛报警声和灯光间歇闪烁的光报警提示。当有毒气体浓度超标时能自行启动抽排系统,排出有毒气体,更换空气以保障人们的生命财产安全。抽排完毕后,系统自动回到实时检测状态。 2 设计总体方案 2.1 设计思路 利用QM—N5气敏传感器检测有毒气体,根据其工作原理构成一种气敏控制自动排气电路。电路由气体检测电路、电子开关电路、报警电路、和气体排放电路构成。当有害气体达到一定浓度时,QM—N5检测到有毒气体,元件两极电阻变的很小,继电器开关闭合,使得555芯片组成的多谐电路产生方波信号,驱动发光二极管间歇发光;同时LC179工作,驱使蜂鸣器间断发出声音;此时排气系统会开始抽排有毒气体。当气体被排出,浓度低于气敏传感器所能感应的范围时,电路回复到自动检测状态。

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

c语言课程设计

课程设计报告 课程设计名称:学生成绩管理系统 系别:三系 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013-2014 学年二学期 目录

一、课程设计目的 (2) 二、课程设计内容 (2) 三、学生成绩管理系统概要设计(包含几大功能模块) (4) 3.1、各个模块功能 (4) 3.2、各函数的功能和实现 (4) 四、成绩管理系统详细设计(各功能模块的具体实现算法——流程图) (5) 4.1、本人所负责的部分: (5) 4.2、其他附带源程序: (7) 五、总结 (18)

学生成绩管理系统 一、课程设计目的 建立学生成绩管理系统,利用计算机对学生成绩进行管理,方便学生查看自己成绩,对学生的基本信息,成绩录入,修改,删除,查询统计等提供一系列的操作。帮助广大师生提高工作效率,实现学生成绩管理工作流程的系统化,规范化,减少人力投资。 二、课程设计内容 对学生信息(包括学号、语文、数学、英语、)进行管理,包括学生成绩的信息保存,输入、输出、查询、删除、统计、修改、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语)进行管理,包括学生成绩的信息输入、输出、查询、删除、统计、保存、退出; 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2) 录入功能:从键盘输入学生的姓名学号及三科成绩 (3) 输出功能:完成全部学生记录的显示 (4)、查询功能:完成按姓名或者学号查找学生记录,并显示 (5)删除功能:按学号进行删除某学生的成绩

智能家居课程设计报告

南通大学 智能家居监控系统设计 学院:电气工程 班级:电115 姓名:刘家辰 学号: 1112002083

目录 1 引言 (3) 2 系统设计 (3) 3 硬件设计 (4) 3.1单片机的选型 (4) 3.2温度监测模块 (5) 3.2.1 温度传感器简介 . (5) 3.2.2测量原理 (5) 3.2.3电路仿真 (6) 3.3烟雾监测模块 (7) 3.4 Zigbee 模块 (8) 3.5报警模块 (9) 3.6键盘输入模块 (10) 3.7液晶显示模块 (11) 3.8人体红外感应模块 . (11) 4 主机软件设计 (12) 4.1主机程序整体框架 (13) 4.2无线发送 / 接收程序 . (13) 4.3温度监测节点程序 . (15) 4.4烟雾监测节点程序 . (17) 4.5红外热释电监测节点程序 . (18) 5 设计体会 (20)

6 参考文献 (20) 7 附录 (21) 主机电路原理图 (21)

1引言 随着社会经济和科学技术的发展,社会信息化程度越来越高,物联网的推出是 时代发展的需要,“三网合一”、“ 三屏合一” 等新概念不断提出,智能家居 成为未来家居的发展方向。智能家居在两个方面具有重要作用: (1)家居智化,继而实现住户舒适最大化,家庭安全最大化。智能家居通过 其智能家庭控制帮助人们改进生活方式,重新安排每天的时间计划表,并为高质 量的生活环境提供安全保障。 (2)智能家居的另一个重要作用是降低能源消耗,操作成本最小化,帮助人们 节约日常能源消耗开支。 智能家居主要通过智能家庭控制系统实现,家庭控制网络是实现智能家庭控制 系统的关键。近几年,各种家庭网络推进组织相继成立,并各自推出了相 关建议和标准,但这些技术标准缺乏统一的通信接口,相互间不兼容 , 无法提供家 庭控制网络的完整解决方案。因此,智能家居研究者面临的最大挑战和机遇是家用 电子领域缺乏统一的通信标准和互操作协议。 2系统设计 智能家居监控系统的总体设计框图如图 1 所示。该系统采用主从方式,主机 负责接收无线信息、GSM远程报警、传感器阈值设置,从机负责温度、气体、烟雾、等环境信号采集处理及无线发送。本文研制的智能家居环境监测报警系统能够实时 监测煤气泄漏、火灾、电热毯过热等温度异常、外人闯入等危险状态, 并可实现电话号码报警,设置传感器阈值等功能。

相关主题
文本预览
相关文档 最新文档