课程设计报告

课程设计报告
课程设计报告

https://www.360docs.net/doc/ac18907532.html,

课程设计报告设计题目:计算机通信

年级四年级

班级计科075班

姓名刘风珍王盼盼李然学号20071515507 20071515508 20071515523 姓名刘冬晓张莹陈志杰学号20071515521 20071515525 20071515506 指导教师王建平

起止时间2010-12-12—2010-12-17

2010-2011年第一学期

1 需求分析 (3)

1.1 系统开发的目的和意义 (3)

1.2 要解决的问题 (3)

1.3 能解决的问题 (3)

1.4 没有解决的问题 (4)

1.5 开发的难度 (4)

2. 模块功能描述与设计实现: (4)

2.1 模块的描述 (4)

2.2 非归零反相码的设计实现。 (5)

2.3 双极性信号交替反转码的设计实现 (7)

2.4 双极性8零替换码的设计实现 (9)

2.5 曼彻斯特编码的设计实现 (20)

2.6 二进制振幅键控调制(2ASK)的设计实现 (24)

2.7 二相相对移相调制(2DPSK)的设计实现 (26)

3 开发小结 (27)

3.1 未来扩充方向 (27)

3.2 其他待考虑因素 (27)

4 参考文献 (27)

1 需求分析

1.1 系统开发的目的和意义

在Windows应用程序中,绘图是非常重要的操作。虽然我们可以用已经创建好的位图来显示图形,但是许多情况下仍然希望应用程序能够对视图控件绘图,这要求了解Windows的绘图机制。

任何程序需要直接在屏幕或打印机上绘图时,都需要使用图形设备接口。图形设备接口(Graphics Device Interface,GDI)是指这样一个可执行程序:他处理来自Windows 应用程序的图形函数调用,然后把这些调用传递给合适的设备驱动程序,由设备驱动程序来执行与硬件相关的函数,并产生最后的输出结果。经常同图形设备接口相提并论的另一个概念是设备上下文(Device Context,DC)。设备上下文是一种Windows数据结构,它包括了于一个设备(如显示器或打印机)的绘制属性相关的信息。所有的绘制操作通过一个设备上下文对象进行、,该对象封装了实现绘制线条、形状和文本的Windows API 函数。设备上下文可以用来向屏幕、打印机和图元文件输出结果。

利用C#开发图形绘制内容的相关知识,了解.NET对于绘图功能所提供的支持,以及相关的类运用,并且了解+GDI的绘图服务,一种专门提供在NET平台上绘制图形的绘图应用程序接口,然后绘制各种图形,如线条、曲线或虚线等,另外还有画笔和画刷的应用。

Graphics是System.Drawing命名空间里一个很重要的核心绘图类,这个类提供各种绘制图形以及文字的相关方法,GDI+不同于GDI,其本身导入面向对象设计模型,因此使用GDI+与使用其他类并无不同,在学习GDI+前先了解如何使用Graphics类。

本设计目的在于通过对图形设备接口的学习,能够绘制出基于计算机通信的数字数据编码波形图和频带传输系统编码波形图。

1.2 要解决的问题

(1)数字编码波形生成器:单极性编码、极化编码、双极性编码的所有波形的设计。

(2)频带传输编码波形生成器:FSK\ASK\PSK\2DPSK所有波形的设计。

(3)图形的保存与输出。

1.3 能解决的问题

我们能实现基带传输的二电平码、差分码、双极性信号交替反转码、8零替换码、曼彻斯特编码、差分曼彻斯特编码、密勒码、双二进制码、多电平码以及频带传输的2ASK/2PSK/2FSK/2DPSK波形图,能对文本框内的内容进行验证,只允许输入0或1,并且图形能在网页上显示输出。

1.4 没有解决的问题

帮助系统没有完善,图片画出不能自定义保存,双极性3零码没有实现,横坐标没有根据输入数据流的长度而变化。

1.5 开发的难度

图形编程需要频繁引用System.Drawing、System.Drawing.Drawing2D、System.IO名称空间中的类型,在代码的开头需要添加它们。在C#图形开发中,Graphics类型是最重要的类型,它表示一个画布对象,任何图形操作都是输出到这个画布上。这个类型提供了很多属性和方法,可以设置某些图形输出质量,还提供了一系列的以Draw开头的方法来绘制图形,以Fill开头的方法来填充图形。此外还提供方法和属性进行坐标转换。在开发自定义的控件时,可以相应控件的Paint事件,也可以重写OnPaint方法。主要是掌握直线,曲线的绘制方法。

2. 模块功能描述与设计实现:

2.1 模块的描述

主要包含14个编码,分别是:二电平码、差分码、双极性信号交替反转码、8零替换码、曼彻斯特编码、差分曼彻斯特编码、密勒码、双二进制码、多电平码以及频带传输的2ASK/2PSK/2FSK/2DPSK。

2.2 非归零反相码的设计实现。

采用这种码型时,如果传输一个比特的起始时刻电平发生了跳转,那么这个比特就表示二进制的1;如果此刻电平没有发生跳转,那么这个比特就代表二进制的0。图2.1描述了非归零反相码对数据流110001011010进行编码的情况。

图2.1 非归零反相码

for (int i = 0; i < str1length; i++)

{

g.DrawLine(BluePen , new Point(x += 30, y - 50), new Point(x, y + 50));

if (i == 0)

{

ch = str1[i];

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

m = m + 1;

{

Linestart.Y = Linestart.Y + 30;

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

else

{

ch = str1[i];

chpre = str1[i - 1];

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

m = m + 1;

if (m % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

}

2.3 双极性信号交替反转码的设计实现

双极性信号交替反转码用无电压的状态表示二进制0,用交替的正负电平表示二进制1。图2.2描述了用双极性信号交替反转码对数据110001011010进行编码的情况。

图2.2 双极性信号交替反转码

for (int i = 0; i < str1length ; i++)

{

g.DrawLine(BluePen, new Point(x += 30, y - 50), new Point(x, y + 50));

if (i == 0)

{

ch = str1[i];

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

m++;

Linestart.Y = Linestart.Y - 30;

Lineend.X = Lineend.X + 30;

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

else

{

ch = str1[i];

chpre = str1[i - 1];

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150)); m++;

if (chpre == '0' & m % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '0' & m % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & m % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & m % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

if (chpre == '0')

{

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & m % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & m % 2 != 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

}

2.4 双极性8零替换码的设计实现

8零替换码是北美地区使用的一种AMI变形码,它在一定程序上解决了为长0串提供同步信息的问题,B8ZS通过对连续8个比特0进行替换实现功能,具体的替换方法是,如果前导1是正电平,则8个0被编码为0,0,0,正,负0,负,正;当前导1为负电平,则8个0被编码为0,0,0,负,正,0,正,负,即如图2.3(a)所示。图2.3(b)描述了用双

极性8零替换码对数据1001000000000进行编码的情况。

(a)

(b)

图2.3 8零替换码

for (int i = 0; i < str1length ; i++)

{

ch = str1[i];

if (ch == '0')

{

b++;

m = 1;

if (b == 8 & m == 1)

{

b = 0;

k = i - 8;

}

}

else

{

m = 0;

b = 0;

}

} //判断是否有8个连续零

for (int i = 0; i <= k; i++)

{

g.DrawLine(BluePen, new Point(x += 30, y - 50), new Point(x, y + 50));

if (i == 0)

{

ch = str1[i];

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

a++;

Linestart.Y = Linestart.Y - 30;

Lineend.X = Lineend.X + 30;

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

else

{

ch = str1[i];

chpre = str1[i - 1];

{

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

if (chpre == '1' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

Linestart = Lineend;

}

else if (ch == '0')

{

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

a++;

if (chpre == '1' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '0' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

Linestart = Lineend;

}

else if (chpre == '0' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

}

}

for (int i = k + 1; i <= k + 8; i++)

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

g.DrawLine(BluePen, new Point(x += 30, y - 50), new Point(x, y + 50));

if (i == k + 1)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

else

{

if (i == k + 2 | i == k + 3)

{

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

if (i == k + 4)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

if (a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

if (i == k + 5)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

if (a % 2 != 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

if (i == k + 6)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

if (a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

if (i == k + 7)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

if (a % 2 != 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

if (i == k + 8)

{

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

if (a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

}

}

for (int i = k + 9; i < str1length ; i++)

{

g.DrawLine(BluePen, new Point(x += 30, y - 50), new Point(x, y + 50));

ch = str1[i];

if (i == k + 9)

{

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

a++;

if (a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

else

{

ch = str1[i];

chpre = str1[i - 1];

if (ch == '0')

{

g.DrawString("0", smFont, myBrush, new Point(Linestart.X + 8, 150));

if (chpre == '1' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (ch == '0')

{

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

if (ch == '1')

{

g.DrawString("1", smFont, myBrush, new Point(Linestart.X + 8, 150));

a++;

if (chpre == '1' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '1' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 60;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '0' & a % 2 == 0)

{

{

Lineend.Y = Lineend.Y + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

else if (chpre == '0' & a % 2 != 0)

{

{

Lineend.Y = Lineend.Y - 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

Lineend.X = Lineend.X + 30;

g.DrawLine(RedPen, Linestart, Lineend);

Linestart = Lineend;

}

}

}

}

2.5 曼彻斯特编码的设计实现

曼彻斯特编码以在比特中点位置上出现的从负电平到正电平时的跳变表示二进制的1,

数据结构课程设计报告(完整版)[1]

第二题:电梯模拟 1、需求分析: 模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼层由下至上依次称为地下层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。 模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电梯在某层静止时间超过300t,则驶回1层侯命。 而题目的最终要求输出时: 按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。 2、设计 2.1设计思想: (1)数据结构设计 本题中的电梯的变化,是一个动态变化的过程,要在动态过程中实现 正常跳转,首先要确定各种跳转的状态,因而这里我使用枚举类型来 表示电梯的各种状态的: enum {up,down,stop,home}State(home); 同时初始化最初状态为电梯在本垒层。而在电梯的运行过程中对于乘 客来说,显然有一个进入电梯与出电梯的队列,因而在这里我是用的 链表来实现这个过程的,同时用结构体来保存该乘客的信息: typedef struct passage { int now;//乘客当前所在的位置 int dis;//乘客的目地地 int wait;//最长的等待的时间 int waitnow;//已经等待的时间 struct passage *next; }Passage; 虽然电梯中的状态是由枚举类型来实现的,但是在整个程序的运行过 程中,我还是为电梯设置了一个结构体类型,以便保存更多的信息: typedef struct lift { int count_C;//计数电梯已到达的层数 int count_A;//系统的总时间计数器记得必须初始化为0 int flag_in[High];//九个楼层有无请求的标志哪个楼层如果有请 求该标志置1 int num;//等待队列中的人数记得要进行初始化为0 int people;//电梯中人数

课程设计报告模板)

课程设计报告模板()

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

课程设计(论文)任务书 软件学院软件+电商专业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)代码实现:优()、良()、中()、一般()、差();

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); //调用函数为新局初始化,第二个

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信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 设计原理

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

网课程设计报告例子样本

湖南涉外经济学院 课程设计报告 课程名称:网页设计 报告题目:“舌尖上中华人民共和国”网页设计报告 学生姓名: *** 所在学院:信息科学与工程学院 专业班级:电商本**班 学生学号: * * 指引教师: *** 6 月24 日

课程设计任务书

摘要 《舌尖上中华人民共和国》是中华人民共和国央视播出美食类纪录片,重要内容为中华人民共和国各地美食生态。通过中华美食各种侧面,来呈现食物给中华人民共和国人生活带来典礼、伦理等方面文化;见识中华人民共和国特色食材以及构成中华人民共和国美食特有气质一系列元素;理解中华饮食文化精致和源远流长。该片重要主题是“变”,向观众展示老式农耕中华人民共和国,同步也告诉观众诸多中华人民共和国老式正在变化。这不但仅是在拍摄美食,更是在拍摄承载中华人民共和国人精神食物。本网站简介了中华人民共和国各地美食,网页是依照《舌尖上中华人民共和国》这档节目中七个主题来设计。分别为:自然地馈赠、主食故事、转化灵感、时间味道、厨房秘密、五味调和、咱们田野。本站建立使用了Fireworks、Flash和Dreamweaver网页制作工具。采用HTML语言、CSS样式、Javascript脚本语言编写网页,最后使静态页面也有丰富多彩视觉效果;此外又使用了网页特效,赋予了其她页面动态之美,动静结合,主题突出,吸引浏览者目光。 核心词:中华人民共和国;美食;文化 内容涉及:1.为什么要设计该网站? 2.本网站包括什么内容?采用了什么技术实现 3.建立本网站可以达到什么效果?

目录 一、作品简介................................................................................ 错误!未定义书签。 二、设计方案................................................................................ 错误!未定义书签。 1. 软硬件环境........................................................................ 错误!未定义书签。 2. 色彩方案............................................................................ 错误!未定义书签。 3. 目录构造图........................................................................ 错误!未定义书签。 三、实现过程................................................................................ 错误!未定义书签。 1. 创立本地站点.................................................................... 错误!未定义书签。 2. 首页.................................................................................... 错误!未定义书签。 3. “自然馈赠”页面............................................................ 错误!未定义书签。 4. “主食故事”页面............................................................ 错误!未定义书签。 5. “**”页面........................................................................... 错误!未定义书签。 6. 申请域名,发布网站........................................................ 错误!未定义书签。 四、结论与心得............................................................................ 错误!未定义书签。 五、参照文献................................................................................ 错误!未定义书签。附录................................................................................................ 错误!未定义书签。

城市轨道交通课程设计报告(很齐全,很完整的课程设计)

轨道交通课程设计报告 指导老师:江苏大学武晓辉老师 一、项目背景及镇江市轨道交通建设必要性 镇江市位于北纬31°37′~32°19′,东经118°58′~119°58′,地处长江三角洲地区的东端,江苏省的西南部,北临长江,与扬州市、泰州市隔江相望;东、南与常州市相接;西邻南京市。镇江市域总面积3847平方公里,总体规划定位城市性质为国家历史文化名城,长江三角洲重要的港口、风景旅游城市和区域中心城市之一。 2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求。镇江市为江苏省辖地级市,现辖京口、润州、丹徒三区,代管句容、丹阳、扬中三市。另有国家级经济技术开发区-镇江新区行使市辖区经济、社会管理权限。镇江全市总面积3848平方公里,人口311万人,市区户籍人口103.3万人市,市区常住人口122.37万人,人民政府驻润州区南徐大道68号。 内部城市空间结构调整:2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成

为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求,建设轨道交通是未来城市规划的必然结果。 城市化发展水平规划: 近期(2000-2010):城市化水平达到:55% 城镇人口162万 中期(2010-2020):城市化水平达到:60% 城镇人口184万 远期(2020-2050):城市化水平达到:70% 城镇人口231万城市等级规模规划: 中期:形成1个大城市,1个中等城市,2个小城市和38个小城镇的等级结构。 远期:形成1个特大城市,2个中等城市,1个小城市和27个小城镇的等级结构。 镇江位于南京都市圈核心层,是一座新兴工业城。镇江拥有2个国家级开发区、6个省级开发区、5个国家级高新技术产业基地,镇江市的经济发展水平居江苏省中等偏上水平。2013年实现国内生产总值2927.09亿元,完成公共财政预算收入245.52亿元,城镇居民人均可支配收入32977元,农民人均纯收入16258元,增长18.1%,;人均GDP73947元,居江苏省第5名。“三次产业”分别实现增加值129.06亿元、1549.4亿元、1248.63亿元,同比分别增长3.1%、12.5%和12.3%。

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)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

数据结构课程设计报告范例

Guangxi University of Science and Technology 课程设计报告 课程名称:算法与编程综合实习 课题名称: 姓名: 学号: 院系:计算机学院 专业班级:通信121 指导教师: 完成日期:2012年12月15日

目录 第1部分课程设计报告 (3) 第1章课程设计目的 (3) 第2章课程设计内容和要求 (4) 2.1 问题描述 (4) 2.2 设计要求 (4) 第3章课程设计总体方案及分析 (4) 3.1 问题分析 (4) 3.2 概要设计 (7) 3.3 详细设计 (7) 3.4 调试分析 (10) 3.5 测试结果 (10) 3.6 参考文献 (12) 第2部分课程设计总结 (13) 附录(源代码) (14)

第1部分课程设计报告 第1章课程设计目的 仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方………………………………………………………………………………………………………………………………………………………………………………………..(省略)

第2章课程设计内容和要求 2.1问题描述: 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。 图A 2.2设计要求: 要求设计程序输出如下: (1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏 幕上显示出来; (2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。 (3)用一种标志(如数字8)在迷宫中标出该条通路; (4)在屏幕上输出迷宫和通路; (5)上述功能可用菜单选择。

城市轨道交通课程设计报告很齐全很完整的课程设计

城市轨道交通课程设计报告很齐全很完整的课程设计

轨道交通课程设计报告 指导老师:江苏大学武晓辉老师 一、项目背景及镇江市轨道交通建设必要性 镇江市位于北纬31°37′~32°19′,东经118°58′~119°58′,地处长江三角洲地区的东端,江苏省的西南部,北临长江,与扬州市、泰州市隔江相望;东、南与常州市相接;西邻南京市。镇江市域总面积3847平方公里,总体规划定位城市性质为国家历史文化名城,长江三角洲重要的港口、风景旅游城市和区域中心城市之一。 ,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求。镇江市为江苏省辖地级市,现辖京口、润州、丹徒三区,代管句容、丹阳、扬中三市。另有国家级经济技术开发区-镇江新区行使市辖区经济、社会管理权限。镇江全市总面积3848平方公里,人口311万人, 市区户籍人口103.3万人市, 市区常住人口122.37万人,人民政府驻润州区南徐大道68号。

内部城市空间结构调整:,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求,建设轨道交通是未来城市规划的必然结果。 城市化发展水平规划: 近期( - ):城市化水平达到:55% 城镇人口162万 中期( -2020):城市化水平达到:60% 城镇人口184万 远期(2020-2050):城市化水平达到:70% 城镇人口231万 城市等级规模规划: 中期:形成1个大城市,1个中等城市,2个小城市和38个小城镇的等级结构。 远期:形成1个特大城市,2个中等城市,1个小城市和27个小城镇的等级结构。 镇江位于南京都市圈核心层,是一座新兴工业城。镇江拥有2个国家级开发区、6个省级开发区、5个国家级高新技术产业基地,镇江市的经济发展水平居江苏省中等偏上水平。实现国内生产总值2927.09亿元,完成公共财政预算收入245.52亿元,城镇居民人均可支配收入32977元,农民人均纯收入16258元,增长18.1%,;人均GDP73947元,居江苏省第5名。“三次产业”分

课程设计报告(模板)

《地震勘探课程设计》 报告 院系 班级 学生 学号 指导教师 完成日期2014年3月12日 长江大学工程技术学院

目录 一、课程设计目的 (3) 二、课程设计的容 (3) 三、课程设计原理 (3) 四、工区数据 (4) 五、课程设计步骤 (5) 1、建立工区 (5) 2、资料加载 (8) 3、层位标定和层位追踪 (10) 4、断层解释 (13) 5、构造图绘制 (14) 六、心得体会 (15)

一、课程设计目的 地震勘探解释课程设计是我们勘查技术与工程专业和资源勘查工程专业教学中的一个重要的实践性训练环节,通过上机实际操作,训练我们对地震资料进行常规构造解释的实际能力,最终使我们达到:学会利用地震解释软件来进行地震数据的加载,地震层位的标定,地震层位的追踪对比,在地震资料上分析和解释各种断层,以及地震构造图的编制方法。同时,还要学会综合地震地质资料对构造解释结果进行分析,进而对含油气有利地带进行评价和预测,最终编制成果报告。 二、课程设计的容 本次课程设计是理论联系实际的具体表现,是培养学生分析问题、解决问题能力的一个必不可少的环节,主要分为两部分:一、通过对地震资料解释软件Discovery的使用,追踪解释层位数据;二、通过surfer软件学习成图。使学生对地震常用的解释软件有一个初步的认识,能为毕业后从事地震勘探工作奠定良好的基础。地震解释课程设计是勘查技术与工程专业教学中的一个重要的实践性训练环节。通过实验主要训练学生对地震资料进行常规构造解释的实际能力,具体要使学生达到: 1.了解人机联作的基本知识; 2.初步学会地震解释软件的操作流程(工区建立、资料加载、合成记录制作、层位标定、层位追踪、断层解释、断点组合); 3. 进一步巩固和掌握地震资料解释的基本功; 4.初步学会地震成果的地质分析; 5.初步学会编写地震资料解释文字报告;

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");

51CTO下载-电子商务网站课程设计报告范例

1.正文 (1)引言 ①.程序设计的背景 21世纪的重要特征是数字化、网络化和信息化。自从上个世界90年代以后,以因特网为代表的计算机网络得到了飞速的发展,已从最初的教育科研网络发展成为商业网络,并已成为仅次于全球网的世界第二大网络。很多人认为现在已经是互联网的时代,这是因为互联网正在并继续改变着我们的工作和生活的各个方面,加速了全球信息革命的进程。现在人们的生活、工作、学习和交往都已经离不开因特网,互联网成为全球通信与贸易的重要工具。网上购物系统正在成为人们日益信赖的购物平台,其以优越的方便快捷性、实用性、可获得性等特性获得越来越多人的青睐,网上购物逐渐成为很多人购物的主要途径。另外,随着计算机身份认证技术、数字签名、数据库安全、数字水印、信息隐藏、入侵检测、防火墙等网络安全技术的发展使得网上购物的环境越来越安全,大型的合理构建,政府机构完备的法律制度都极大的保证了网上购物的安全性,提高了顾客的信任度,使得网络购物更加普及。作为当代的大学生,网络更是贯穿于我们的生活,加上年轻人乐于尝试新生事物的心理趋向也让我们对于网上购物有了更多了解并参与其中。基于对网络购物环境的理解,结合自己的网络购物的体会,本小组成员进行了此次课程设计,基本上实现了简单的基于Java平台的JSP电子商务设计(电脑购物B2C模式的电子商务)。 ②.程序设计的需求分析 本电子商务总体基于Java,利用服务器端动态网页开发的JSP技术,辅以客户端动态网页开发的Javascript技术,主要设计实现以下功能: 1.前台销售,包括以下容: 1)用户注册: 显示注册界面,通过Javascript技术判断用户填写的注册信息是否规,用户名是否已经存在、填写的密码是否一致、Email是否为正确格式等等。用户确认所填注册信息并通过验证后,将注册信息添加到数据库中的userInfo表中。 2)用户登录 用户输入用户名和密码后,检验所输入的用户名和密码是否与数据库中的用户名和密码一

数据结构课程设计报告约瑟夫环完整版

******************* 实践教学 ******************* 兰州理工大学 软件职业技术学院 2011年春季学期 算法与数据结构课程设计 题目:约瑟夫环 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 约瑟夫环问题是典型的线性表的应用实例,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用MICROSOFT公司的Microsoft Visual C++6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键词:单循环链表;c语言;约瑟夫环;

序言 数据结构是研究数据元素之间的逻辑关系的一门课程,以及数据元素及其关系在计算机中的存储表示和对这些数据所施加的运算。该课程设计的目的是通过课程设计的综合训练,培养分析和编程等实际动手能力,系统掌握数据结构这门课程的主要内容。 本次课程设计的内容是用单循环链表模拟约瑟夫环问题,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活,约瑟夫环问题就是用单循环链表处理的一个实际应用。通过这个设计实例,了解单链表和单循环链表的相同与不同之处,进一步加深对链表结构类型及链表操作的理解。 通过该课程设计,能运用所学知识,能上机解决一些实际问题,了解并初步掌握设计、实现较大程序的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

课程设计报告模版

课程设计报告模版

《城市排水处理》 课程设计报告 系别:城市建设系 专业班级:给水排水0601班 学生姓名: 指导教师:段泽琪 (课程设计时间: 6月15日—— 6月19日) 华中科技大学武昌分校

目录 1.课程设计目的 (1) 2.课程设计题目描述和要求 (1) 3.课程设计报告内容 (3) 3.1污水处理工艺方案比较 (3) 3.2主要污水处理构筑物选型 (6) 3.3污水处理构筑物的主要设计参数 (7) 3.4污水处理辅助构筑物设计 (8) 3.5污水处理厂平面布置设计 (8) 3.6 污水处理厂高程布置设计 (9) 3.7 设计计算………………………………………………………………………

10 4.总结……………………………………………………………………………页码 参考文献…………………………………………………………………………页码 (要求:目录题头用三号黑体字居中书写,隔行书写目录内容。目录中各级题序及标题用小四号黑体)

1. 课程设计目的 (1) 经过污水处理厂课程设计,巩固学习成果,加深对《水污染控制》课程内容的学习与理解,使学生学习使用规范、手册与文献资料,进一步掌握设计原则、方法等步骤,达到巩固、消化课程的主要内容; (2) 锻炼独立工作能力,对污水处理厂的主体构筑物、辅助设施、计量设备及污水厂总体规划、管道系统做到一般的技术设计深度,培养和提高计算能力、设计和绘图水平; (3) 在教师指导下,基本能独立完成一个中、小型污水处理厂工艺设计,锻炼和提高学生分析及解决工程问题的能力。 2.课程设计题目描述和要求 2.1 设计题目描述 (1) 设计题目 某城市污水处理厂工艺初步设计。 (2) 设计内容 根据任务书所给定的资料,综合运用所学的基础、专业基础和专业知识,设计一个中小型污水处理厂。 ①确定污水处理方法和工艺流程; ②选择各种处理构筑物形式,并进行工艺设计计算(计算书中要附计算草图); ③估算各辅助构筑物的平面尺寸; ④进行污水厂平面布置和高程布置。

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语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

C语言课程设计报告示例

课程设计和调试过程规范化要求 1)需求分析 分析系统功能需求以及用户操作流程。 2)概要设计 在需求分析的基础上,确定系统总体框架(系统功能结构图)。 3)详细设计 定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。 4)代码设计 根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。 5)程序调试 程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。 如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。 课程设计报告及书写内容要求 课程设计任务完成后,每位同学必须独立书写一份课程设计报告。课程设计报告的内容

应包括以下部分: 1)需求分析。包括设计题目、设计要求以及系统功能需求分析; 2)概要设计。包括系统总体设计框架和系统功能模块图; 3)详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图; 4)主要源程序代码。包括存储结构设计说明,以及完整源程序清单; 5)调试分析过程描述。包括测试数据、测试输出结果,以及对程序调试过程中存在问题的 思考(列出主要问题的出错现象、出错原因、解决方法及效果等); 6)测试结果。列出所有功能的运行界面,并作文字说明。 7)总结。包括课程设计过程中的学习体会与收获、对C语言和本次课程设计的认识以及 自己的建议等内容。 8)源代码。完整的c语言代码。

课程设计报告完整电子版模板

武汉东湖学院计算机科学学院课程设计报告 课程名称:数据库原理课程设计 题目: 专业班级: 学号: 学生姓名: 指导教师:谭玲丽 2016 年 5 月 12 日

课程设计任务书 (由指导教师填写) 课程名称:数据库原理课程设计 设计题目: 专业:计算机科学班级: 完成时间:2016.5.12-2016.6.14 指导教师:谭玲丽专业负责人:

课程设计成绩评价表 指导教师:年月日

数据库原理课程设计 目录 1 需求分析............................................................................................................... n 1.1 需求概述 ................................................................................................... n 1.2 功能简介 ................................................................................................... n 2 数据库概念结构设计 .......................................................................................... n 2.1 确定联系集.......................................................................................................... n 2.2 局部E-R图 .......................................................................................................... n 2.3总E-R图 ............................................................................................................... n 3 数据库逻辑结构设计阶段 ......................................................................................... n 3.1关系模式的转换................................................................................................... n 3.2模式求精(规范化过程)................................................................................... n 4 数据库物理设计........................................................................................................... n 4.1数据库物理结构................................................................................................... n 4.2数据表存放位置、系统配置............................................................................... n 5 数据库的实施和维护 .................................................................................................. n 5.1 定义...................................................................................................................... n 5.1.1 数据库的定义 ........................................................................................... n 5.1.2 表的定义 ................................................................................................... n 5.2 数据操作.............................................................................................................. n 5.2.1 单表查询 ................................................................................................... n 5.2.2 连接查询 ................................................................................................... n 5.2.3 操作结果集查询 ....................................................................................... n 5.2.4 嵌套查询 ................................................................................................... n 5.3 数据库更新操作.................................................................................................. n 5.3.1 插入数据 ................................................................................................... n 5.3.2 修改数据 ................................................................................................... n 5.3.3 删除数据 ................................................................................................... n 5.4 为数据库建立索引.............................................................................................. n 5.4.1 索引的建立 ............................................................................................... n 5.4.2 索引的删除 ............................................................................................... n 5.5 数据库的安全性(自主存取控制)........................................................................ n 5.5.1 登录帐户管理 ........................................................................................... n 5.5.2 用户权限管理 ........................................................................................... n 5.6 数据库的完整性.................................................................................................. n 5.6.1 实体完整性定义 ....................................................................................... n 5.6.2 参照完整性定义 ....................................................................................... n 5.6.2 用户自定义完整性定义 ........................................................................... n 5.6.3 触发器定义 .............................................................................................. n 5.7自定义函数.......................................................................................................... n 5.8存储过程的定义.................................................................................................. n 5.9事务的定义.......................................................................................................... n 6 总结................................................................................................................................. n 参考文献 ............................................................................................................................ n

相关文档
最新文档