当前位置:文档之家› 《C++语言程序设计》课程设计报告

《C++语言程序设计》课程设计报告

《C++语言程序设计》课程设计报告
《C++语言程序设计》课程设计报告

“信息与计算科学”专业

《C++语言程序设计》课程设计

班级计算091

姓名

学号3090811

指导教师冉占军

设计日期2011年春季学期19周

一、目的意义

《C++语言程序设计》是“信息与计算科学”专业的一门院级选修课,在学完《计算机基础》、《C 语言程序设计》后开设,内容涉及类与对象、函数、继承与派生、多态、流类库与输入输出、模板等。虽然是选修课程,但关系到大部分同学的就业问题。在理论上讲解完面向对象的程序设计方法之后,另一个主要环节就是通过课程设计加以强化,以达到以下目的:

1、通过编写比课堂上机内容更加复杂、深度更广、更加实用的程序达到综合训练的目的,使学生加深理论知识的理解,培养学生采用面向对象的方法开发软件的能力。

2、通过设置一些需要查阅相关资料才能做的题目,提高学生的自学习能力和创新能力。

3、为后续课程《数据结构》、《数据库原理》、《软件工程》、《信息安全与编码》、数值计算方面专业课的学习和编程打下坚实的基础。

二、内容要求

1、设计题目

有理数就是两个整数的比率,通常表示为/a b ,分母b 不能为0。

本设计要求设计一个Rational (有理数)类,实现有理数的四则运算,该类型的对象使用起来要像使用基本类型的对象一样自然。 2、设计要求 具体要求如下:

(1)抽象Ration 类,包含两个数据成员(分子、分母),比如有理数1/2可以用对象r 表示为(1,2)r 。

(2)如果分子分母有公约数,应该约分,例如4/6应表示为2/3。根据需要,有时要将1/2表示为0.5,或者将0.5表示为1/2

(3)重载相应的运算符(输入、输出、加、减、乘、除)。比如,要计算

1/41/23/4+=,希望像普通加法一样操作,1(1,4)r 和2(1,2)r 相加得(3,4)r ,算数

表达式为12r r r =+。又如,想使用如下形式直接输入分子分母 cin << r ; 1/6 //输入 cout >> r; 1/6 //输出

则需要重载这两个流运算符。

三、设计思想

1、构造函数

报告

1

构造函数的设计应能满足如下方式创建对象:

rational r(5L); // 5/1

rational p; // 0/1

rational s(2,3); // 2/3

rational q(5,-6); //-5/6

rational q(.5); // 1/2

r(5L)和q(.5)调用不同的构造函数,所以需要使用L(1)来区分。前者表示参数是整型数组,.5为double型数据。

使用默认参数的原型如下所示:

rational r1,r2(5L),r3(4,8),r4(.75);

不允许分母为零。调用Standardize()私有成员函数,使其对“-”号的表达统一。

如果输入的有理数有公约数,则进行化简。gcd()成员函数用来求公约数,它被Reduce()函数调用,完成化简任务。

2、重载“/”运算符

与构造函数同理,得到结果之后,调用Standardize()和Reduce()函数。

其他运算不需要调用Standardize()函数,根据计算公式很容易写出。

3、重载流运算符

输入输出就是按格式构造输出,很简单。

输入流需要保证正确的格式。首先保证分母不等于零;然后调用Standardize()和Reduce()函数调整格式。

四、程序代码

//rational.h

#ifndef RATIONAL_H

#define RATIONAL_H

#include

using namespace std;

namespace std{

class rational{

private:

long num,den;

//标准化

void Standardize(void);

//公约数

long gcd(long m,long n)const;

public:

//用于整数—>有理数,实数—>有理数的构造函数

rational(long p=0,long q=1);

rational(double x);

//重载流运算符

friend istream& operator >>(istream& istr,rational& x);

friend ostream& operator <<(ostream& ostr,const rational& x);

//双目运算符

rational operator+(rational& x)const;

rational operator-(rational& x)const;

rational operator*(rational& x)const;

rational operator/(rational& x)const;

//单目运算符

rational operator-(void)const;

//关系运算符

int operator<(rational& x)const;

int operator==(rational& x)const;

int operator>(rational& x)const;

//转换运算符,有理数->实数

operator double(void)const;

//例程

int GetNumerator(void) const{return num;}

int GetDenominator(void) const{return den;}

//化简有理数

void Reduce(void);

};

//各成员函数实现

rational::rational(long p,long q):num(p),den(q){ if(den==0){

cout<<"A Zero denominator is invalid"<

exit(1);

}

Standardize();

Reduce();

}

rational::rational(double x){

double val1,val2;

val1=100000000L*x;

val2=10000000L*x;

num=long(val1-val2);

den=90000000L;

Reduce();

}

void rational::Standardize(void){

if(den<0){

num=-num;

den=-den;

}

}

long rational::gcd(long m,long n)const{

static long x;

if(m>n){

if(n==0)x=m;

else gcd(n,m%n);

}

else {

if(m==0)x=n;

else gcd(m,n%m);

}

return x;

}

istream& operator >>(istream& istr,rational& x){

char c;

istr>>x.num>>c>>x.den;

if(x.den==0){

cout<<"A Zero denominator is invalid"<

exit(1);

}

x.Standardize();

x.Reduce();

return istr;

}

ostream& operator <<(ostream& ostr,const rational& x){ ostr<

return ostr;

}

rational rational::operator +(rational& x)const{

rational temp=rational(num*x.den+den*x.num,den*x.den);

temp.Reduce();

return temp;

}

rational rational::operator -(rational& x)const{

rational temp=rational(num*x.den-den*x.num,den*x.den);

temp.Reduce();

return temp;

}

rational rational::operator*(rational& x)const{ rational temp=rational(num*x.num,den*x.den);

temp.Reduce();

return temp;

}

rational rational::operator/(rational& x)const{ rational temp=rational(num*x.den,den*x.num);

temp.Standardize();

temp.Reduce();

return temp;

}

rational rational::operator-(void)const{

return rational(-num,den);

}

int rational::operator<(rational& x)const{

return(num*x.den

}

int rational::operator==(rational& x)const{

return(num*x.den==den*x.num);

}

int rational::operator>(rational& x)const{

return(num*x.den>den*x.num);

}

rational::operator double(void)const{

return double(num)/den;

}

void rational::Reduce(void){

long bigdivisor,tempnumerator;

tempnumerator=(num<0)?-num:num;

if(num==0)den=1;

else{

bigdivisor=gcd(tempnumerator,den);

if(bigdivisor>1){

num/=bigdivisor;

den/=bigdivisor;

}

}

}

void PrintMixedNumber(rational x){

long wholepart=long(x.GetNumerator()/x.GetDenominator());

rational fractionpart=x-rational(wholepart);

if(fractionpart==rational(0L))

cout<

else{

fractionpart.Reduce();

if(wholepart<0)

fractionpart=-fractionpart;

if(fractionpart!=0)

cout<

else cout<

}

}

}

#endif

//rational.cpp

#include"rational.h"

void main(){

cout<<"一、有理数的转换及四则运算"<

rational r1,r2(5L),r3(4,8),r4(.75);

cout<<"已知:"<<"r1="<

cout<<"1、r5=r1+r2-r3+r4=";

rational r5=r1+r2-r3+r4;

cout<

cout<<"2、-r5="<<-r5<

cout<<"3、r6=r1+r2*r3-r4+r2/r4="<

cout<<"二、以带分数形式输出有理数"<

cout<<"1、r5=";

PrintMixedNumber(r5);

cout<

cout<<"2、-r5=";

PrintMixedNumber(-r5);

cout<

cout<<"三、动态分数与小数的转化运算"<

float f;

cout<<"已知r5="<

cout<

cout<<"请输入一个分数:";

cin>>r1;

f=float(r1);

cout<<"等效的小形式数为:"<

cout<<"请输入一个浮点数:";

cin>>f;

r1=f;

cout<<"转化为分数形式为:"<

cout<<"四、有理分数的化简"<

cout<<"请输入一个能够化简的分式:";

cin>>r1;

cout<<"化简后:";

cout<

cout<<"五、比较两个分数的大小"<

rational r7,r8;

cout<<"请输入两个分数:"<

cin>>r7>>r8;

cout<<"结果为:";

if(r7>r8)cout<"<

if(r7==r8)cout<

if(r7

}

五、测试用例及测试结果

六、程序不足及升级方向

这个程序的设计涉及的知识较多,测试工作量也比较大。要求设计好测试用例,编写合适的测试程序进行测试,以上我编的测试程序可能也不是十分全面。需要进一步努力和更深入的考虑。

程序编写上有些地方还可以使用菜单程序,使得使程序的灵活性和可操作性更大、更广。

七、参考文献

[1] 姚全珠.C++面向对象程序设计[M].北京:电子工业出版社,2010.

[3] 刘振安,刘燕君,孙枕.C++程序设计课程设计[M].北京:机械工业出版社,2004.

报告2一、目的意义

《C++语言程序设计》是“信息与计算科学”专业的一门院级选修课,在学完《计算机基础》、《C语言程序设计》后开设,内容涉及类与对象、函数、继承与派生、多态、流类库与输入输出、模板等。虽然是选修课程,但关系到大部分同学的就业问题。在理论上讲解完面向对象的程序设计方法之后,另一个主要环节就是通过课程设计加以强化,以达到以下目的:

1、通过编写比课堂上机内容更加复杂、深度更广、更加实用的程序达到综合训练的目的,使学生加深理论知识的理解,培养学生采用面向对象的方法开发软件的能力。

2、通过设置一些需要查阅相关资料才能做的题目,提高学生的自学习能力和创新能力。

3、为后续课程《数据结构》、《数据库原理》、《软件工程》、《信息安全与编码》、数值计算方面专业课的学习和编程打下坚实的基础。

二、内容要求

1、设计题目

使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。

2、设计要求

设计要求实现如下功能:

(1).建立职工信息数据,包括职工编号、姓名,性别和年龄。

(2)据职工信息表,建立只含姓名和年龄的职工信息简表。

(3)使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。(4)编写同名display( )成员函数,用来输出数组的内容。

(5)编写函数printer( ),用来根据实际对象输出它们的内容。

三、设计思想

1、类的结构

这里把简表的内容作为基类worker,由它派生详表类workers。这样,简表可以由赋值兼容规则得到。例如workers的一个对象wks为:

编号姓名性别年龄

1001 张三男 25

则worker的对象wk可以通过以下赋值兼容规则得到:

wk=wks;

这时wk的信息为:

姓名年龄

张三 25

2、多态性

将worker的display()成员函数设计为虚函数,printer()函数使用基类worker对象的引用作为参数,即可实现多态性。

void printer(worker&s)

{

s.display();

}

3、设计主函数

要求编写最多输入10个职工的信息表,这里的意思是可以少于10个职工。使用ch存放读入的字符,当输入0时退出输入,同时将输入个数作为输出语句的循环次数。例如使用整型变量number存放输入个数,则可使用如下方法实现:if(0==w_num)

{

number=i;

break;

}

使用cons t定义一个常量SIZE=10,这样可以增加程序的灵活性。

四、程序代码

#include

#include

using namespace std;

const int SIZE=10;

//职工简表类

class Worker{

private:

int age;

public:

char name[100];

void setname(char n[100]);

char getname();

void setage(int a);

int getage();

virtual void display();

};

class Workers:public Worker{

private:

int num;

char sex[6];

public:

void setnum(int n);

int getnum();

void setsex(char s[SIZE]);

char getsex();

void display();

};

void printer(Worker&);

void Worker::setname(char n[100]) {strcpy(name,n);}

char Worker::getname()

{ cout<

return(1);

}

void Worker::setage(int a)

{age=a;}

int Worker::getage()

{return age;}

void Worker::display(){

cout<<"\t"<

void Workers::setnum(int n)

{num=n;}

int Workers::getnum()

{return num;}

void Workers::setsex(char s[SIZE]) {strcpy(sex,s);}

char Workers::getsex()

{cout<

return(1);

}

void Workers::display(){

cout<

<

//显示职工信息处理函数

void printer(Worker&s)

{s.display();}

//主函数

void main(){

Workers wks[SIZE];

Worker wk[SIZE];

int number;

int w_num;

char ch[10];

int w_age;

cout<

cout<<"请输入职工信息,以输入编号为0结束!"<

for(int i=0;i

cout<<"编号:";

cin>>w_num;

if(0==w_num){

number=i;

break;

}

wks[i].setnum(w_num);

cout<<"姓名:";

cin>>ch;

wks[i].setname(ch);

cout<<"性别:";

cin>>ch;

wks[i].setsex(ch);

cout<<"年龄:";

cin>>w_age;

wks[i].setage(w_age);

cout<

}

cout<

for(i=0;i

wk[i]=wks[i];

cout<<"\t职工信息详表"<

cout<<"编号"<<"\t姓名"<<

"\t年龄"<<"\t性别"<

for(i=0;i

printer(wks[i]);

cout<

cout<<"\t职工信息简表"<

cout<<"\t姓名"<<"\t年龄"<

for(i=0;i

printer(wk[i]);

}

五、测试用例及测试结果

1、输入职工信息,以编号输入0结束,输出职工信息(简表和详表):

2、直接输入0,结束输入:

六、程序不足及升级方向

这个程序设计的目的主要是通过典型例子熟悉基本知识,程序设计比较简单。可以考虑使用菜单和其他功能,比如使用向量设计的方法,用添加对象的方法操

作向量。

七、参考文献

[1] 姚全珠.C++面向对象程序设计[M].北京:电子工业出版社,2010.

[2] 郑莉.C++语言程序设计[M].北京:清华大学出版社,2007.

[3] 刘振安,刘燕君,孙枕.C++程序设计课程设计[M].北京:机械工业出版社,2004.

报告3一、目的意义

《C++语言程序设计》是“信息与计算科学”专业的一门院级选修课,在学完《计算机基础》、《C语言程序设计》后开设,内容涉及类与对象、函数、继承与派生、多态、流类库与输入输出、模板等。虽然是选修课程,但关系到大部分同学的就业问题。在理论上讲解完面向对象的程序设计方法之后,另一个主要环节就是通过课程设计加以强化,以达到以下目的:

1、通过编写比课堂上机内容更加复杂、深度更广、更加实用的程序达到综合训练的目的,使学生加深理论知识的理解,培养学生采用面向对象的方法开发软件的能力。

2、通过设置一些需要查阅相关资料才能做的题目,提高学生的自学习能力和创新能力。

3、为后续课程《数据结构》、《数据库原理》、《软件工程》、《信息安全与编码》、数值计算方面专业课的学习和编程打下坚实的基础。

二、内容要求

1、设计题目

菜单是应用程序的界面,通过控制语句改变程序执行的顺序,设计菜单是程序设计的基础。本设计分两步:

2、设计要求

第一步:设计一个菜单程序。

菜单内容:程序运行后,给出3个菜单项的内容和输入提示,如下:

1)利用克莱姆法则求解线性方程组。

2)统计一篇英文文章的单词数。

3)退出程序。

第二步:为上述菜单项配上相应的功能。

三、设计思想

首先编写一个菜单驱动程序,输入1~3中的任意一个数字,即可进入相应的菜单选项。

1、实现循环和功能选择

编写一个菜单函数menu(),用whlie循环控制菜单的重复选择,用switch语句对应用户的选择,并且实现相应的功能。实际使用时,只有选择3,程序才会运行结束。

2、设计各个选择功能

对于选择一,运用克莱姆法则求解线性方程组,用了多个循环和if判断语句,其中两个函数调用,其主要功能是求解行列式的数值。

选择二,统计一篇英语文章的单词数,设计了一个Word类,定义了一个构造函数,用于输入文章。定义了一个cacula()成员函数,用到了一个for循环,运用’

\0’控制上限,再运用空格间接实现单词数的统计。比较简单。

3、设计头文件和主函数

这里选择一中用到的二维数组,再头文件中定义了全局变量,用到了math和字符串两个头文件。

主函数运用循环控制语句—while和switch的组合进行的设计。简单明了。

四、程序代码

#include

#include

using namespace std;

const int N=20;

static int a[N][N] ,b[N];

int di[N],c[N];

double x[N];

void menu();

class Word{

private:

int s;

char str[100];

public:

Word();

int cacula();

};

Word::Word(){

cout<<"请输入一篇英语文章:"<

gets(str);

}

int Word::cacula(){

int num=0,word=0;

char c;

char str[100];

gets(str);

for(int s=0;(c=str[s])!='\0';s++){

if(c==' ')word=0;

else if(word==0){

word=1;

num++;

}

}

return num;

}

void menu(){

cout<<"\t"<<"菜单"<

cout<<"[选择一]:利用克莱姆法则求解线性方程组;"<

cout<<"[选择二]:统计一篇英文文章的单词数;"<

cout<<"[选择三]:退出。"<

cout<

}

int term (int n, int k[])

{

int p,q,t=1;

for (p=1; p

for(q=0; q

if(k[q]>k[p]) t=-t;

for (p=0;p

t*=a[p][k[p]];

return (t);

}

int det(int n)

{

int j0,j1,j2,j3,j4,j5,j6,d,k[N];

d=0;

for(j0=0;j0

if(a[0][j0]==0) continue;

k[0]=j0;

for(j1=0;j1

if(j1==j0) continue;

if(a[1][j1]==0) continue;

k[1]=j1;

if(n==2) d+=term(n,k);

for (j2=0;j2

if(j2==j0) continue;

if(j2==j1) continue;

if(a[2][j2]==0) continue;

k[2]=j2;

if(n==3) d+=term(n,k);

for (j3=0; j3

if(j3==j0) continue;

if(j3==j1) continue;

if(j3==j2) continue;

if(a[3][j3]==0) continue;

k[3]=j3;

if(n==4) d+=term(n,k);

for(j4=0; j4

if(j4==j0) continue;

if(j4==j1) continue;

if(j4==j2) continue;

if(j4==j3) continue;

if(a[4][j4]==0) continue;

k[4]=j4;

if(n==5) d+=term(n,k);

for(j5=0;j5

if(j5==j0) continue;

if(j5==j1) continue;

if(j5==j2) continue;

if(j5==j3) continue;

if(j5==j4) continue;

if(a[5][j5]==0) continue;

k[5]=j5;

if(n==6) d+=term(n,k);

for(j6=0;j6

if(j6==j0) continue;

if(j6==j1) continue;

if(j6==j2) continue;

if(j6==j3) continue;

if(j6==j4) continue;

if(j6==j5) continue;

if(a[6][j6]==0) continue;

k[6]=j6;

d+=term(n,k);

}

}

}

}

}

}

}

return (d);

}

void main(){

int v,g=1;

while(g)

{

menu();

《贪吃蛇游戏课程设计》报告资料整理

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量 }food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

电子电路课程设计密码锁(满分实验报告)

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁GAL16V8 28C64 解锁与报警 1

目录: 一、系统结构与技术指标 1、系统功能要求 (4) 2、性能和电气指标 (5) 3、设计条件 (5) 二、整体方案设计 1、密码设定 (6) 2、密码判断 (6) 3、密码录入和判断结果显示 (6) 4、系统工作原理框面 (7) 三、单元电路设计 1、键盘录入和编码电路图 (8) 2、地址计数和存储电路 (12) 3、密码锁存与比较电路 (12) 2

4、判决与结果显示电路 (14) 5、延时电路 (15) 6、复位 (17) 7、整机电路图 (19) 8、元件清单……………………………………………19四、程序清单 1、第一片GAL (21) 2、第二片GAL (23) 五、测试与调整 1、单元电路测试 (25) 2、整体指标测试 (26) 3、测试结果 (26) 六、设计总结 1、设计任务完成情况 (27) 2、问题及改进 (27) 3、心得体会 (28) 3

一、系统结构与技术指标 1.系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如 果输入密码有误或者输入时间过长,则发出警报。 密码锁的系统结构框图如下图所示,其中数字键盘用于输入 密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。 开锁green 键盘密码锁 错误red 4

游戏24点课程设计报告

游戏24点课程设计报告 一.题目: 分析类: 计算24点:任意输入4位数字,利用+,-,*,/四则运算使之得到结果 24。输出所有不同算法的计算表达式,可为运算优先级而使用括号。 二.问题分析: 1.全面性: 此问题要求输出结果为24的计算表达式,并且要求输出要全面,我考虑用for循环与递归实现遍历来保证输出的全面性,考虑到递归的‘一归到底',每一次完整递归都代表一种算法(详情见算法)。 2.输出的判定和四位数字的类型: 在输出的时候对最后结果等于24的判别,因为考虑到有除法,有可能中途结果可能会出现不能整除的情况与小数,所以输出的四个数都设为float型,且输出判定的时候用近似判定法,而不直接写让最后结果等于24(详情见算法)。 3.重复性: 如果用循环与递归保证了输出24的表达式的全面性,但不可避免的会出现重复,才开始我想在遍历与递归时,加一些限定条件来消除重复但是这样做不但会出错,还不能保证它的输出全面性。于是我想在输出的时候加限定条件,使重复的只输出一遍。 但是对于输入的那4位数字中如果有重复的话,程序结果还是会出现重复的,此问题尚未解决.(详情见算法)。 4.括号问题的处理: 对于括号问题,我规定对每一步的计算表达式,除了*之外,+,-,\都加上括号,即让程序按自己规定的方向执行,输出的括号只是让人能看懂,其实在运算时不起作用(详情见算法)。 5.输出: 输出方面我以为用了遍历所以在每一层遍历都把运算表达式存到一个较大的数组中,在输出的时候如果满足输出条件(在遍历时纪录每次递归的第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符),就直接把那个数组里的内容输出,遍历会直接去寻找表达式里的表达式(详情见算法)。 三.算法描述(源代码里有更详尽解释): 1.主要方法: 遍历与递归。 2.主要思路: 把输入的四个数放在一个数组n[4]中,然后任取其中任意两个(不能取同一个--既不能出现自己和自己运算的情况),然后用一个for和一个switch语句来实现这两个数的加减乘除运算,然后把运算的结果放到另一个数组b[4]中并记录此运算的表达式(放到一个大一点的数组tm[4][25]中),同时把其他两个没用到的数也放到该数组中,然后重复以上过程(用遍历实现),最后先判定是不是最后一层运算,是的话在判定最后结果是不是等于24,等于24的话就把那个纪录运算式的数组输出。然后考虑到不能出现重复的(例如:1*2*3*4和2*4*3*1等等)我在遍历的同时记录了第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符,对输出的时候做限定(例如:对运算符全*的只输出一遍等等)。在有一次输出后我还定义了另外两个数组用来分别保存上一次输出的第一次运算的结果,第一次运算的运算符,第二次运算的结果,第二次运算的运算符和第三次运算的运算符,来解决重复输出的问题,不过此种做法有可能导致输出的时候不全。(此问题尚未解决)即还不能同时保证全面性与不重复性。 3.主要函数与数组:

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

数电课程设计报告 乒乓球游戏设计

电子线路综合设计 乒乓球比赛模拟及计分器设计 2014年6月

摘要 在信息社会高速发展的今天,数字电路芯片已经实现高度集成化,并逐步渗透到医学、计算机等各个领域,对人类的生活有着深远的影响。本设计采用基本门电路以及74LS系列芯片的搭建,以multisim 12.0软件为平台进行仿真,实现了对乒乓球游戏的模拟。主要解决的问题有: (1)模拟乒乓球的轨迹:用双向移位4位寄存器74194以及基本门电路实现;(2)球速的调节:利用555电路实现; (3)球被击中、犯规的判断; (4)计数器的使用:采用74LS90和74LS161的组合,给玩家计分; (5)关于比分的显示:通过CD4511译码芯片将计数器的输出状态显示到2位共阴极数码管上。 关键词:双向移位4位寄存器、555电路、译码电路、计数器系统

目录 1 设计任务 (1) 2 电路整体设计 (2) 2.1 译码显示电路设计 (4) 2.2 555定时器组成脉冲发生器 (5) 2.3模拟乒乓球电路的设计 (6) 3 电路整体性能的检测 (7) 3.1 译码显示电路的检测 (7) 3.2 脉冲发生器电路的检测················································································· 3.3模拟乒乓球电路的检测··················································································4实验结论····················································································································5课程设计心得体会以及建议····················································································6 Abstract ······················································································································7附录(包含元器件清单以及各元器件功能表) ······················································8参考文献····················································································································

EDA课程设计说明书参考格式

<>课程设计说明书 题目 院、部: 学生姓名: 指导教师:王晓丽职称助教 专业: 班级: 完成时间:

摘要(三号,黑体,居中,字间空两格字符) (空二行换行) 空4格打印摘要内容(小四号宋体,行距20)。 关键词:(摘要内容后下空一行打印“关键词”三字(小四号黑体),其后为关键词(小四号宋体),每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 ABSTRACT ①居中打印“ABSTRACT”,再下空二行打印英文摘要内容。②摘要内容每段开头留四个空字符。③摘要内容后下空一行打印“Key words”,其后为关键词用小写字母,每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 Key words :aaa;bbb;ccc

目录(3号,黑体,居中) (空1行,以小4号黑体设置字体及大小,行间距22、字间距标准) 1 XXXXXX………………………………………………………………………… 1.1 XXXXXX……………………………………………………………………… 1.2 XXXXXX……………………………………………………………………… ┇ 2 XXXXXX………………………………………………………………………… 2.1 XXXXXX……………………………………………………………………… 2.2 XXXXXX……………………………………………………………………… ┇ 3 4 结束语 参考文献………………………………………………………………………………. 致谢……………………………………………………………………………………附录……………………………………………………………………………………

电子商务系统分析与设计课程设计实验报告范本

电子商务系统分析与设计课程设计实 验报告

江苏科技大学 电子商务系统分析与设计课程设计 网上书城系统的开发 学生姓名张颖 学号 班级08404121 指导老师 成绩 经济管理学院信息管理系 1月8日 目录 一.系统规划 (4)

1.2初步调查 (5) 1.3确定电子商务模式和模型 (6) 1.4可行性分析和可行性分析报告 (6) 二.系统分析 (8) 2.1系统调查 (8) 2.2需求规格说明书 (9) 2.2.1 引言 (9) 2.2.2项目概述 (9) 2.2.3需求规定 (10) 2.2.4环境要求 (16) 2.3组织结构分析 (17) 2.4业务流程分析 (17) 2.5数据流程分析 (19) 三.系统设计 (21) 3.1系统总体结构 (21) 3.2网络基本结构 (22) 3.3系统平台选择 (22) 3.4应用系统方案 (23) 3.4.1各功能模块简要描述 (23) 3.4.4数据库设计 (24) 3.4.5用户界面设计 (31)

3.5.1客户端要求 (32) 3.5.2服务器端要求 (32) 3.5.3系统测试 (32) 四.支付系统设计 (39) 4.1支付协议选择 (39) 4.2支付系统数据流程分析 (39) 4.3支付系统安全需求分析 (41) 4.4支付系统总体设计 (42) 4.5支付系统功能 (44) 4.6交易流程设计 (46) 4.7支付系统安全设计 (47) 五.心得体会 (47) 一.系统规划 1.1明确用户需求 随着当今社会新系统大度的提高,网络的高速发展,计算机已被广泛应用于各个领域,因而网络成为人们生活中不可或缺的一部分。互联网用户应经接受了电子商务,网购成为一种时尚潮流。

C++课程设计报告---21点纸牌游戏程序

#include #include #include #include #include #include class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();//显示规则 void BET(); //下注 void deal();//交易 void run(Game &);//进行异常处理 void hit1();//拿下一牌 void hit2();//确保庄家不会爆庄并且点数大于16 void print();//打印出最后结果 void results();//最后的胜利结果 void check();//检查是否爆庄 Game operator=(Game &d);//运算符重载 void replay(char &ans);//是否进行新一轮的游戏 void clean();//清屏 void wait(int); void pause(); int GetInt(int,int); int random(long,long); private: int playerturns,cputurns,money; int win,lose,draw,bet; float player,cpu; char answer[7]; char daan[7]; }; //--------------------------------------------------------------------------------------- void Game::wait(int milli) {

课程设计报告撰写规范

.课程设计报告撰写规范

————————————————————————————————作者:————————————————————————————————日期: 2

江西理工大学应用科学学院信息工程系 课程设计规范 (试行) 信息工程系 二○一○年六月

第1章内容要求 第1章内容要求 课程设计报告由以下几个部分组成组成,依次为: I、统一的封面,封面之后为课设评分表及答辩记录表; II、摘要; III、目录; IV、课程设计总结报告正文; V、总结(本课题核心内容、特点和方案的优缺点、改进方向和意见)VI、按统一格式列出主要参考文献。 1

第2章格式要求 第2章格式要求 课程设计报告每部分从新的一页开始,各部分要求如下: 2.1封面 统一的封面(含课程设计课题名称、专业、班级、姓名、学号、指导教师等,详见第五部分“格式范例”) 2.2摘要 应概括地反映出本课程设计的主要内容,包括工作目的、实验研究方法、研究成果和结论,重点是本论文的主要工作。摘要力求语言精炼准确,建议500字以内。摘要中不要出现图片、图表、表格或其他插图材料。 关键词是为了便于作文献索引和检索工作而从论文中选取出来用以表示全文主题内容信息的单词或术语。 关键词在摘要内容后另起一行标明,一般3~5个,之间用“;”分开。 2.3 目录 目录由标题名称和页码组成,包括:正文(含结论)的一级、二级和三级标题和序号。具体格式见第五部分“格式范例”。 2.4 符号说明 如果课程设计报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应将全文中常用的这些符号及意义列出。如果上述符号和缩略词使用数量不多,可以不设专门的主要符号表,但在报告中出现时须加以说明。缩略词应列出中英文全称。 2

算24点小游戏

研究生课程论文 课程名称C++面向对象程序设计 授课学期2013 学年至2014 学年 第一学期 学院电子工程学院 专业电子与通信 学号 姓名 任课教师 专题算24点小游戏 交稿日期2014年01月10日 成绩 阅读教师签名 日期 广西师范大学研究生学院

目录 1 引言 (2) 1.1 设计任务与要求 (2) 1.2 设计目的 (2) 1.3 C++面向对象语言简介 (2) 2 C++课程设计原理及方案选择 (3) 2.1 概述 (3) 2.1.1 方案设计与论证 (3) 2.2 二十四点游戏的原理 (4) 2.2.1 主函数设计 (4) 2.2.2 子函数的设计 (4) 2.2.3 类体的设计 (5) 3 程序流程及演示 (6) 3.1 程序流程图,程序清单与调用关系 (6) 3.2 程序 (7) 3.3 运行结果 (9) 4 结论 (10)

1引言 随着网络技术的发展,小游戏在网络发展如火如荼。二十四点小游戏是一个不仅能放松认得神经而且益智的趣味小游戏。对于21世纪的今天,作为一个社会工作者来说,面对日益剧烈的竞争,工作压力都是很大的,为了释放压力就需要一个很好的减压平台,那么网络上的小游戏首当其冲,24点小游戏受到了欢迎。 1.1设计任务与要求 题目要求在输入4个数后,程序对这个4个数进行运算,若能计算出结果等于24,即输出运算过程。目标是在输入四个数之后,先进行全排列,然后进行全运算,从而最终得到结果以输出。 1.2设计目的 本次设计的目的就是在掌握c++编程语言和visual c++编译软件的基础上。完成一个算24的小游戏程序设计,在系统提示下输入4个数后,程序对这4个数进行运算,若能计算出结果等于24,即输出运算过程。程序设计目标很明确,在输入4个数之后,先进行全排列,然后进行全运算,重而得到最终结果输出。 1.3C++面向对象语言简介 C++是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。其编译器比目前其他计算机语言的编译技术更复杂。类是C++中十分重要的概念,它是实现面向对象程序设计的基础。类是所有面向对象的语言的共同特征,所有面向对象的语言都提供了这种类型。一个有一定规模的C++程序是由许多类所构成的。 C++支持面向过程的程序设计,也支持基于对象的程序设计,又支持面向对象的程序设计。以后我们将介绍基于对象的程序设计。包括类和对象的概念、类的机制和声明、类对象的定义与使用等。这是面向对象的程序设计的基础。基于对象就是基于类。与面向过程的程

中南大学电工电子课程设计实验报告

中南大学 电工电子技术课程设计报告 题目:可编程乐曲演奏器的设计 学院:信息科学与工程学院 指导老师:陈明义 专业班级: 姓名: 学号:

前言 随着科学技术发展的日新日异,电工电子技术在现代社会生产中占据着非常重要的地位,因此作为二十一世纪的自动化专业的学生而言,掌握电力电子应用技术十分重要。 电工电子课程设计的目的在于进一步巩固和加深所学电工电子基本理论知识。使学生能综合运用相关关课程的基本知识,通过本课程设计,培养我们独立思考的能力,学会和认识查阅学习我们未学会的知识,了解专业工程设计的特点、思路、以及具体的方法和步骤,掌握专业课程设计中的设计计算、软件编制,硬件设计及整体调试。设计过程中还能树立正确的设计思想和严谨的工作作风,达到提高我们的设计能力的目标。 从理论到实践,往往看似简单,实则是有很大的差距的,通过课程设计,可以培养我们学到很多东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的学到知识,从而提高自己的实际动手能力和独立思考的能力。 在次,特别感谢老师给我们以实践动手的机会,让我们对以前的知识以复习,整合,并从理论走向实践,相信我们都会在这次课程设计中学到很多!!!

目录 前言 (2) 正文 第一章系统概述 (4) 系统功能 (4) 系统结构 (4) 实验原理 (4) 整体方案 (5) 第二章单元电路的设计与分析 (5) 音频发生器的设计 (5) 节拍发生器的设计 (6) 读取存储器数据 (7) 选择存储器地址 (8) 控制音频电路设计 (8) 第三章电路的安装与调试 (9) 第四章结束语 (9) 元器件明细表 (10) 参考文献 (10) 附录 (11)

猜数字游戏课程设计报告

XXXX学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

目录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

1 、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

课程设计报告书正文标准格式

课 程 设 计 报 告 书 专 用 纸 1 引言(或绪论)(可作为正文第1章标题,用小3号黑体,加粗, 并留出上下间距为:段前0.5行,段后0.5行) ×××××××××(小4号宋体,20磅行距)××××××××××××××××××××××××××××××………… 1.1 ××××××(作为正文2级标题,用4号黑体,加粗) ×××××××××(小4号宋体,20磅行距)×××××××××××××××××××××××××××××××………… 1.1.1 ××××(作为正文3级标题,用小4号黑体,不加粗) ×××××××××(小4号宋体,20磅行距)×××××××××××××××××××××××××××………… 2 ×××××××(作为正文第2章标题,用小3号黑体,加粗, 并留出上下间距为:段前0.5行,段后0.5行) ×××××××××(小4号宋体,20磅行距)×××××××××××××××××××××××××××××××××××………… ×××××××××××××××××××………… ………… 注:1.正文中表格与插图的字体一律用5号宋体; 2.正文各页的格式请以此页为标准复制。 请留出一个汉字的空间,下同

报告中的内容仅为参考字体格式,与本次设计无关! 题目 内部排序教学软件。 1需求分析和说明 内部排序教学软件的总体目标:在TURBO C2.0 的开发环境下,利用所学C语言和数据结构的相关知识,开发一个具有良好人机界面的内部排序教学软件,实现各种内部排序,并能使用户通过其显示结果对每种排序方法的性能有一个直观的了解,从而达到教学的目的。 1.1基本要求 (1)界面友好,易与操作。采用菜单或其它人机对话方式进行选择。 (2)实现各种内部排序。包括冒泡排序,直接插入排序,直接选择排序,希尔排序,快速排序,堆排序。 (3)待排序的元素的关键字为整数。可用随机数据和用户输入数据作测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换以3次计)。 (4)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标 的列表,以便比较各种排序的优劣。 1.2各功能模块的功能描述: 1.主函数模块 本模块的主要功能是初始化图形界面,调用各模块,实现软件功能。 2.排序功能及输出子模块 本模块的主要功能是根据用户的选择进行数组的创建,并对输入数据或者随机产生的数据使用六种排序方法进行排序并统计每种方法的移动次数和比较次数,然后输出以表格形式输出。 3.封面和结束画面子模块 本模块的主要功能是当用户打开本软件时模拟软件加载,延时数秒后关闭,并进入图形界面,在用户退出软件时显示结束画面,延时数秒后关闭程序。 4.图形界面子模块 本模块的主要功能是根据用户的选择显示不同的画面,引导用户使用软件所提供的各种功能,并在用户提供必要数据,并选择排序功能时调用排序模块,并显示结果画面。 5.输入子模块 本模块的主要功能是进行光标定位,输出提示文字,并对用户输入数据进行处理,创建数组。 6.鼠标实现模块 本模块的主要功能是为用户提供鼠标操作支持,使用户能使用鼠标进行功能的选择。2详细设计

电子CAD课程设计实验报告

一.课程设计的目的 课程设计以电子线路CAD软件设计原理为基础,重点在硬件设计领域中实用的电子线路设计软件的应用。掌握电子线路设计中使用CAD的方法。为后继课程和设计打下基础。 通过电路设计,掌握硬件设计中原理图设计、功能仿真、器件布局、在线仿真、PCB设计等硬件设计的重要环节。 二.课程设计题目描述和要求 2.1振荡电路的模拟和仿真。 由555定时器构成多谐波振荡电路,用模拟的示波器观察输出的信号,熟悉555定时器构成多谐波振荡电路的基本原理,熟悉proteus的基本操作,和各元器件的查找。 2.2 8051单片机 用80c51单片机完成以下功能:(1)构成流水灯的控制电路,使八个流水灯轮流点亮。(2)构成音乐播放的简单电路。(3)构成串口通信电路,完成信息在单片机和串口之间的传播。(4)构成8255键盘显示模块。(5)构成A/D和D/A 转换模块。 首先用模拟器件构成基本电路,然后在单片机中加入驱动程序,运行仿真,最后对电路进行调整校正,完成相关功能。 熟悉单片机实现相关功能的基本原理,对单片机有个框架的了解。学习用proteus仿真单片机电路中不同模块间的组合,扩展单片机电路的功能。 三.课程设计报告内容。 3.1设计原理 3.1.1振荡电路仿真的原理 振荡电路原理: 555管脚功能介绍: 1脚为地。2脚为触发输入端;3脚为输出端,输出的电平状态受触发器控制,而触发器受上比较器6脚和下比较器2脚的控制。 当触发器接受上比较器A1从R脚输入的高电平时,触发器被置于复位状态,3脚输出低电平; 2脚和6脚是互补的,2脚只对低电平起作用,高电平对它不起作用,即电压小于1Ucc/3,此时3脚输出高电平。6脚为阈值端,只对高电平起作用,低电

21点游戏课程设计

/*玩家最多可以要5张牌,但是如果牌的点数之和超过21,则自动出局,在不超过21点的情况下,玩与庄家比牌的点数大小,大者为赢家。*/ #include #include #include using name space std; class C Card { priv ate: int na Pip[5]; //定义一个数组,一共是5张牌。 int nNu mbe r; //发了多少张牌。 int nDol lar; //有多少钱 int nGa mble; //赌注 int nW in; //赢局数 int n Lose; //输局数 int nDraw; //输局数 public: C Card(); //构造函数 v oid FirstPla yTwo();//最初两张牌 int Ge tNumbe r();//返回牌张数

int Ge tPip(); //返回点数 v oid Displa yPip();//一次全部显示牌面点数。 v oid Displa yPip(int ); //除了第一张牌,一次全部显示牌面点数(针对计算机牌的显示) v oid TurnPla y();//出了一张牌 v oid Win();//赢了计算赌注 v oid Lose();//输了 v oid Draw();//平局 int se tGamb le(int );//设置赌注,赌本不够返回1 int ge tM one y();//返回钱数 v oid Displa yInfo();//打印必要的信息 int Ge tCurre ntCard();//返回当前牌点。 }; CCard::C Card() { nNu mbe r=0;//开始没有发牌 nDollar=100;//初始赌本为0 for(int i=0;i<5;i++) na Pip[i]=0; //五张牌全部为0 nGa mble=0;

数独游戏课程设计报告

数独游戏课程设计报告 将“数独”智力游戏的难度划分与创建问题分解为建立终盘和初盘、难度评分、游戏创建。首先采用行列变换的方法建立终盘,然后隐去部分数字并检验解唯一性,得到初盘。 在已得到初盘的基础上,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建例外等级难度的“数独”游戏。最后通过实验验证了模型的实用性。下面是整理的数独游戏课程设计报告,欢迎来参考! “数独”是18世纪瑞士数学家欧拉发明。该游戏是在9×9的单元网格中进行,这些网格被分9行、9列和3×3个九宫格。单元网格中已有若干数字,其余均为空格。玩家需要推理出所有剩余空格的数字,并满足每一行、每一列、每一个小九宫格内的数字均含1-9且不重复。每一道合格的“数独”谜题都有且仅有唯一答案。 目前,“数独”作为一种智力游戏已经盛行世界,国内外许多学者已对数独的求解算法做了深入研究,例如递归法、回溯候选数法、枚举算法等,但在数独的难度划分与创建方面的研究还很少。由于影响“数独”难度的因素有很多,就问题本身而言,难度因素包括最高难度的技巧、各种技巧所用次数、是否有隐藏及隐藏的深度和广度的技巧组合、当前盘面可逻辑推导出的个数等等;就玩家而言,了解的技巧数量、熟练程度、观察力等也属于难度划分应考虑的因素。因此,单单利用空格数或求解时间对题目难度进行划分是不全面的,其难度指标定义过于主观,讨论也不够细密,无法真正划分难度的级别。 本文首先创建符合要求的“数独”终盘,然后在终盘的基础上生成具有数独特性的初盘,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建例外等级难度的“数独”游戏。 首先运用初等行、列变换,构造一个新的简单明了的终盘生成算法,具体步骤如下: Step1:从行的角度出发,在第一行随机输入1-9的数字。以一个小九宫为单位,将相邻三个数字作为一个集体进行交替,由此获得第二行的数字,再由

课程设计报告书写规范

郑州工业应用技术学院 课程设计报告科目: 题目: 姓名: 院(系): 专业班级: 学号: 指导教师: 成绩: 时间:年月日至年月日

课程设计报告的格式 一、课程设计报告内容 课程设计报告一般由以下几部分组成:A.任务书; B.目录; C.正文; D.参考文献;E.附录。 课程设计题目 摘要(200~300字) 目录 1.概述 包括课程设计选题、项目背景、课程设计报告编写目的、课程设计报告的组织等内容。 2.课程设计任务的需求分析 2.1任务描述 2.2需求描述的规范文档(要画出DFD数据流图和DD(数据字典)) 3.概念结构设计 3.1概念结构设计工具(E-R模型) 3.2XXX子系统(局部) 3.2.1子系统描述 3.2.2分E-R图 3.2.3说明 3.3YYY子系统 3.3.1子系统描述 3.3.2 分E-R图 3.3.3 说明 …… 3.X 总体E-R图 3.X.1 E-R图的集成 3.X.2 总体E-R图 4.逻辑结构设计(参考教材P16图1-10逻辑结构设计步骤) 4.1关系数据模式 4.2优化 5.数据库物理设计与实施(至少包含前4节) 5.1数据库应用的硬件、软件环境介绍 5.2表结构设计 5.3索引的设计

5.4视图设计 5.5 存储过程 5.6 触发器 5.7 游标 5.8建立数据库 5.9 建立表 5.9 加载数据库测试数据 6.数据操作 6.1数据查询操作 6.2数据更新操作 6.3数据维护操作 6.4其他 7.数据库应用系统的实现 8.设计心得体会 9.参考文献 二、书写要求 1.层次标题 层次标题要简短明确,同一层次的标题应尽可能“排比”,词(或词组)类型相同(或相近),意义相关,语气一致。 各层次标题一律用阿拉伯数字连续编号;不同层次的数字之间用英文输入状态下小圆点“.”相隔,末位数字后面不加点号,如“1”,“2.1”,“3.1.2”等;各层次的序号均左顶格起排,编号与标题或文字间空一个汉字的间隙。段的文字空两个汉字起排,回行时顶格排。 报告正文撰写的题序层次格式 2.篇眉和页码 篇眉从摘要开始,内容与该部分的一级标题相同。 页码从正文开始按阿拉伯数字(1,2,3……)连续编排,之前的部分(中文摘要、目录等)用大写罗马数字(Ⅰ,Ⅱ,Ⅲ……)单独编排,均居中排列。 3.有关图、表、表达式 (1)图

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