VFP照像程序实现源程序及说明

VFP照像程序实现源程序及说明
VFP照像程序实现源程序及说明

VFP照像程序说明

硬件准备

1. 能运行Windows 98或更高的计算机。

2. USB接口摄像头一只。

将USB摄像头接入电脑,安装好驱动程序和应用软件,打开应用软件,在Video Format设置中将其I mage Size(图像尺寸)设为CIF(352×288)。

软件准备

1. Visual Foxpro(6.0以上版本,以下简称VFP)。

2. AvCap.ocx控件

AvCap是一个基于DirectShow过滤器的音/视频捕捉和预览的ActiveX控件。在应用程序或页面中放一个AvCap,只需很少的代码就可让您的软件支持音/视频捕捉了。

3. PicClp32.ocx控件(类名PictureClip)。

本控件位于Windows的System或System32文件夹内,在安装VFP时被自动安装。

由于使用AvCap控件所捕捉的图像尺寸与实际应用时的图像尺寸不太一致,因此需用PictureClip控件将其剪裁为指定尺寸。用它的Picture属性将源位图加载到控件中,再用ClipX和ClipY属性指定剪裁区域的左上角。用 ClipHeight和ClipWidth属性指定剪裁区域的范围。然后利用VFP的SavePicture函数将其写入到指定的位图文件中。

编程

1.准备工作

(1)为便于管理,在某驱动器(如D盘)的根目录下建一子目录Photo,将下载的AcCap.ocx控件拷入该目录,用“画笔”程序画一图像,高×宽=288×216(如图1),命名为Default.bmp,将其保存入Ph oto目录。在本目录下再建一子目录Bmp,用于存放拍照的照片。

图1 默认图片

(2)建一数据库表Student.dbf,将其存入Photo目录,表结构如图2。

图2 数据表

在图2所示表中,索引类型设为“候选索引”的目的是保证学生在数据库表中的惟一性。在电子照相时,以学号作为该学生的照片文件名,可避免重复。xh(学号)字段的8位可按如下格式输入,如200400 01,其中前四位代表入学年级,后四位代表学生序列,学号范围从20040001至20049999。

(3)注册控件:可在命令行方式下注册两个控件,如:regsvr32 AvCap.ocx、regsvr32 PicClp32.o cx,也可在VFP环境中,通过菜单“工具→选项→控件→ActiveX控件”方式来注册。

2.制作表单

(1)运行VFP,建立如图3所示的表单集Formset1,添加两个表单Form1和Form2。设置Form1的C aption属性为预览窗口,在其内添加AvCap控件,控件的Name属性设为OleAvCap;设置Form2的Captio n属性为照相窗口,在其内添加如图3所示的6个控件(图像剪裁控件PictureClip、图像控件Image、列表框控件List、命令按钮控件CommandButton三个),控件的Name属性分别设为OlePicClip 、Image1、List1、CmdPhoto、CmdNext、CmdQuit。

图3 制作表单

(2)将数据库表Student.dbf添加到该表单集的数据环境中去,将CurSor1的Order属性设为xh。

(3)编写程序代码:

在Formset1的Init Event(即Formset1.Init)中添加以下代码:

IF thisformset.form1.oleAvCap.CurVcd=0

thisformset.form1.oleAvCap.PlayState

=1

ELSE

=Messagebox("视频设备连接不上! "+chr(13)+"请检查电源线或数据线!", 0+16,"错误信息!") RETU .F.

ENDIF

thisformset.form2.CmdPhoto.setfocus

在Form1的Init Event(即Form1.Init)中添加以下代码:

this.Left=3

this.Top=1

this.Width=216 &&&&&&与下面要拍照的照片宽度一致

this.Height=312

this.MaxButton=.F.

this.MinButton=.F.

this.ControlBox=.F.

this.BorderStyle=1

this.Caption="预览窗口"

*****以下设置AvCap控件的大小及位置

this.OleAvCap.Top=12

this.OleAvCap.Width=352

this.OleAvCap.Height=288

this.OleAvCap.Left=-(352-216)/2

&&&&&&将本控件居中,保证视频流中人像居中

在Form2的Init Event(即Form2.Init)中添加以下代码:this.Left=228

this.Top=1

this.Width=394

this.Height=394

this.MaxButton=.F.

this.MinButton=.F.

this.ControlBox=.F.

this.BorderStyle=1

this.Caption="照相窗口"

*****以下设置image控件的大小、位置等属性

this.image1.Left=10

this.image1.Top=12

this.image1.Width=216

this.image1.Height=288

this.image1.BorderStyle=1

IF file('bmp/'+xh+'.bmp')

this.image1.picture='bmp/'+xh+'.bmp'

ELSE

this.image1.picture='default.bmp'

ENDIF

*****以下设置List控件的大小、位置等属性

this.List1.ColumnCount=2

this.List1.Left=236

this.List1.Top=12

this.List1.Width=148

this.List1.Height=288

this.List1.FontSize=12

this.List1.RowSourceType=0

this.List1.RowSource="student.xh,xm"

this.List1.RowSourceType=6

this.List1.ListItemId=1

在List1的InteractiveChange Event中添加以下代码:

*****以下代码保证记录变动后,学生照片跟着刷新

IF file('bmp/'+xh+'.bmp')

thisform.image1.picture='bmp/'+xh+'.bmp'

ELSE

thisform.image1.picture='default.bmp'

ENDIF

thisform.CmdPhoto.setfocus

在CmdPhoto的Click Event(CmdPhoto.Click)中添加以下代码:

IF file('bmp/'+xh+'.bmp')

?chr(7)

nChoice=Messagebox("照片已存在!"+chr(13)+chr(13)+"替换吗?", 4+32+256,"提示信息!") IF nChoice=6 &&&&&&&&&&&&&&&&&&选择YES

****以下代码先抓取当前视频流中的一幅图像将其保存为大照片 ****

thisformset.form1.OleAvCap.TakePictureToFile('bmp/'+xh+'.bmp')

****以下代码通过PicClip32.ocx控件将大照片剪裁为小照片*******

thisform.OlePicClip.picture=loadpicture('bmp/'+xh+'.bmp')

thisform.OlePicClip.clipx=(352-216)/2+1

thisform.OlePicClip.clipy=0

thisform.OlePicClip.clipheight=288

thisform.OlePicClip.clipwidth=216

SavePicture(thisform.OlePicClip.clip,'bmp/'+xh+'.bmp')

ENDIF

ELSE

thisformset.form1.OleAvCap.TakePictureToFile('bmp/'+xh+'.bmp')

thisform.OlePicClip.picture=loadpicture('bmp/'+xh+'.bmp')

thisform.OlePicClip.clipx=(352-216)/2+1

thisform.OlePicClip.clipy=0

thisform.OlePicClip.clipheight=288

thisform.OlePicClip.clipwidth=216

SavePicture(thisform.OlePicClip.clip,'bmp/'+xh+'.bmp')

ENDIF

thisform.List1.InteractiveChange &&&&刷新照片

this.parent.CmdNext.setfocus &&&&与CmdNext按钮转换焦点实现轻松拍照

在CmdNext的Click Event(CmdNext.Click)中添加以下代码:

thisform.List1.ListItemId=thisform.List1.ListItemId+1

thisform.List1.InteractiveChange &&&&刷新照片

this.parent.CmdPhoto.setfocus &&&&与Cmdphoto按钮转换焦点实现轻松拍照

在CmdQuit的Click Event(CmdQuit.

Click)中添加以下代码:

thisformset.release

至此,程序编写完毕,按按钮运行程序就可进行电子照相了。照相过程非常方便,只需按回车键或空格键就可轻松采集照片。要保证照片质量,USB摄像头最好固定,并且保证光线明亮、均匀、自然、柔和

C语言程序设计 入门源代码代码集合

#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

基于51单片机的步进电机控制-设计报告(说明书)及源程序

南京XX大学 指导老师:张X 课程设计基于51单片机的步进电机控制 机械电子工程学院 测控技术与仪器 XXXXX Xxx 2012年1年4日

步进电机控制系统 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启 动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算

详细设计文档 (含系统说明书,源代码说明书)

东北师范大学 外语培训机构数据库详细设计文档 雷蕾张丽云丁鼎孔祥楠 2009-11-1

目录 第一章引言 (1) 1.1项目说明 (1) 1.2文档目的 (1) 1.3参考资料 (1) 第二章设计流程图 (3) 2.1注册功能流程图 (3) 2.2用户登录功能流程图 (4) 2.3搜索课程功能流程图 (5) 2.3前台用户下载资料或留言功能流程图 (5) 2.3后台管理员功能流程图 (6) 第三章类规格说明 (7) 2.1模块类图 (7) 3.2 jsp页面说明 (8) 3.3类说明 (10) 第四章程序设计说明 (15)

第一章引言 1.1项目说明 1、在互联网络高速发展的今天,网站是企业在因特网上全面介绍公司信息的一个发布平台:可以把任何想让人们知道的东西放入网站,如公司简介、公司的厂房、生产设施、研究机构、产品的外观、功能及其使用方法等,都可以展示于网上。 2、网站树立培训机构形象,让别人看到自己,展示培训机构的实力。培训机构就能够在国内和世界"亮相",无疑是一种宣传机构、产品和服务的机会。从广告意义上看,培训机构网站事关机构形象建设,没有网站也谈不上机构形象。 3、主动抢占先机,培训机构建设自己的网站,这是时代发展的必然,任何一家培训机构要想跟上时代发展的潮流,必须要有展示自己的一个信息平台。为了不被竞争对手建立网站抢占先机,为了不落后于时代潮流,应该考虑建站的必要性。 4、可以扩大业务范围,可以与潜在客户建立商业联系:这是该网址最重要的功能之一,也是为什么那么多的国外企业非常重视网站建设的根本原因。现在,世界各国大的采购商主要都是利用互联网络来寻找新的产品和新的供应商,因为这样做费用最低,效率最高。原则上,全世界任何地方的人,只要知道了公司的网址,就可以看到公司的产品。因此,关键在于如何将公司网址推介出去。一种非常实用而有效的方法是将公司的网址登记在全球著名的搜索引擎(如Google,百度,雅虎等)上,并选择与公司的产品及服务有关的关键字,则可以使潜在的客户能够容易地找到公司和产品。这正是国际商业上通行的做法,而且被实践证明是十分有效的。 5、给广大热爱外语,渴望了解外语信息的群体提供一个方便快捷的平台。 1.2文档目的 该文档的阅读群体是该项目组的全部成员,为了让所有成员能对本网站的数据库构成,数据流向有个深刻的了解,方便在以后的编程中合理运用。 1.3参考资料 数据库原理及应用教程2版 北京人民邮电出版社 著者:陈志泊王春玲 数据库原理与应用 北京清华大学出版社 著者:狄文辉宋真君白劲波

代码说明书

系统编码规范 1.目的 为了统一开发过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。 2.适用范围 本规范适用于开发组全体人员,为详细设计,代码编写和代码审核提供参考和依据。 3.代码格式 在编写代码过程中,建议遵循以下规则。 (1)缩进规则:使用四个空格作为每层次代码的缩进值。 (2)在括号对对齐的位置垂直对齐左右括号,如: For(i=0;i++) { …. } (3)沿逻辑结构行缩进代码,如:

If…then If…then … Else … End if Else … End if (4)为了防止在阅读代码时左右滚动代码编辑器,每行代码或注释不得超过一个显示屏。 (5)当一行分别为几行时,通过将串联运算符放在每行的末尾而不是开头,清楚地表示没有后面的行是不完整的。 (6)Case 规则:default case 总应该存在,如果不允许到达,则应该保证:若到达了就会触发一个错误。Case的选择条件最好使用int或string类型。 (7)对齐规则:变数的申明和初始化都应对齐。

4.注释规范 4.1. 块注释 //用户名非空 验证+长度验证 +合法性验证 function checkUserName(){ var name = document.myform1.txtUser; if(name.value==""){ alert("请输入用户名"); name.focus(); return false; }else if(name.value.length<4||name.value.length>16){// 用户名长度验证 alert("用户名输入的长度4-16个字符"); name.select(); return false; } 4.2. 行注释 用户名非 空验证+长 度验证+合 法性验证 function checkUserName(){ var name = document.myform1.txtUser; if(name.value==""){ alert("请输入用户名"); name.focus(); return false; }else if(name.value.length<4||name.value.length>16){//用户名 长度验证 alert("用户名输入的长度4-16个字符"); name.select(); return false;

客户端程序源代码

#include #include #include #include #include #define rec_length 20 main(int argc, char **argv ) { // structure defined for request as a client struct hostent *hp1; struct sockaddr_in sin1; struct servent *sp1; char sbuf[50]; int ss,spid; char *sservice,*sdest; // structure defined for request as a server struct sockaddr_in sin; struct servent *sp; int s,ns,pid; char buf[50]; char *service; // test the environment parameter: lservice, dservice, server_name if(argc==4){ service=argv[1];sservice=argv[2]; sdest=argv[3];} else { fprintf(stderr,"Parameter assigned Error!\nUsage:\n"); fprintf(stderr,"\t%s lservice dservice server_name!\n",argv[0]); fprintf(stderr,"Note: server_name is defined in file /etc/hosts\n"); fprintf(stderr,"and: lservice dservice are defined in file /etc/services\n"); exit(-1); } if((sp=getservbyname(service,"tcp"))==NULL){ fprintf(stderr,"Error: getservbyname"); exit(-5); } if((s=socket(AF_INET,SOCK_STREAM,0))==-1){ fprintf(stderr,"Error: socket create"); exit(-6); } bzero(&sin,sizeof(sin)); sin.sin_port=sp->s_port; if(bind(s,&sin,sizeof(sin))==-1){ fprintf(stderr,"Error: bind"); close(s); exit(-6); }

源代码是什么

源代码是什么 源代码(也称源程序),是指一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。 代码组合 源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。 质量 对于计算机而言,并不存在真正意义上的“好”的源代码;然而作为一个人,好的书写习惯将决定源代码的好坏。源代码是否具有可读性,成为好坏的重要标准。软件文档则是表明可读性的关键。 作用 源代码主要功用有如下2种作用: 生成目标代码,即计算机可以识别的代码。 对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。

源代码例子以及页面设置说明

chdgdfgeclid.a 1 2 #ifnfdgdfdef __CHEDGDFGCLID_A_ 3 #dedfgdffine __CHEGDFGCLID_A_ 4 5 /************************************************************************/ 6 /* 定义*/ 7 /************************************************************************/ 8 #defgdfgdfine FLADGDFGSH_SEDGDFGION 9 #defidgdne EDFGDFNS_ ADDGDFDESS_TEST 10 11 #defidgdfne EDGDFGNS_ ADDEDGDGSS_TEST_3 12 13 #defdgdfine NDGDFGEED _CHECK 6 14 15 typdfgdfedef enum 16 { CA_ONEISDGDFGEMPTY, 17 18 CA_TWOISEDGDFGMPTY, 19 CA_TWOISFFDGDFGULL 20 }chedgdfckusdfdfm; 21 typedsfsdfef ssfsdftruct 22 23 { TX_U8 desfdfsKey[9]; 24 25 TX_U8 desfsdfdsresult[9]; 26 TX_U64 crc64; }DedgdfgsDatsfsdfdsa_f; 27 28 29 /************************************************************************/ 30 /* 函数声明*/ 31 /************************************************************************/ 32 TX_ ChesfsfckValid(checkenum checkcase); 33 TX_ ResfsdfadFlash(void); 34 TX_ ReadRanFromPanel(void); 35 TX_ ResfsdfadSerial(void); TX_ ResfsdfadIPanel(void); 36 37 vdgdfgoid Plasdfsdfsfsdfsdar_To_Linear(TX_U8,TX_U9 N); 38 TX_BOOL BufferIsEmsfsdfdsfty(TX_U9 buffer[],int bufsdfdsffer_len); 39 40 TX_BOOL TX_BoxValid(void); 41 TX_U64 GetBxNo(void); 42 usfsdfdsfed char *GetPFSDlSerial(void); 43 #endgdfdif 44 3 sr_burGDFGnflash.h 45 /* 46 sr_busdgdfffsgdfsdsh.a - hdfsdfer file for sr_bfdfsdflash.D 47 48 */ 49 50 #ifndgdfgdef _SR_BURFSDFNFLASH_A_

数字万年历简易C语言程序源代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit rs=P2^0; // lcd 控制端 sbit en=P2^2; // lcd 控制端 sbit all=P2^1; // lcd 控制端 sbit s0=P1^5; //时间调节 sbit s1=P1^6; sbit s2=P1^7; sbit voice=P2^7; int nt; sbit DQ=P2^6; sbit DS1302_CLK = P2^3; //实时时钟时钟线引脚sbit DS1302_IO = P2^4; //实时时钟数据线引脚sbit DS1302_RST = P2^5; //实时时钟复位线引脚sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; unsigned char time; #define ads_y 0 #define ads_mo 3 #define ads_d 6 #define ads_w 9 #define ads_h 65 #define ads_m 68 #define ads_s 71 #define DS1302_SECOND 0x80 //写入ds地址宏定义 #define DS1302_MINUTE 0x82 #define DS1302_HOUR 0x84 #define DS1302_WEEK 0x8A #define DS1302_DAY0x86 #define DS1302_MONTH 0x88 #define DS1302_YEAR 0x8C

代码编写规范说明书

代码编写规范说明书(c#.net与https://www.360docs.net/doc/f617396524.html,)目录 1 目的 2 范围 3 注释规范 3.1 概述 3.2 自建代码文件注释 3.3 模块(类)注释 3.4 类属性注释 3.5 方法注释 3.6 代码间注释 4 命名总体规则 5 命名规范 5.1 变量(Variable)命名 5.2 常量命名 5.3 类(Class)命名 5.4 接口(Interface)命名 5.5 方法(Method)命名 5.6 名称空间Namespace)命名 6 编码规则 6.1 错误检查规则 6.2 大括号规则 6.3 缩进规则 6.4 小括号规则 6.5 If Then Else规则 6.6 比较规则 6.7 Case规则 6.8 对齐规则 6.9 单语句规则 6.10 单一功能规则 6.11 简单功能规则 6.12 明确条件规则 6.13 选用FALSE规则 6.14 独立赋值规则 6.15 定义常量规则 6.16 模块化规则 6.17 交流规则 7 编程准则 7.1 变量使用 7.2 数据库操作 7.3 对象使用 7.4 模块设计原则 7.5 结构化要求 7.6 函数返回值原则 8 代码包规范 8.1 代码包的版本号

8.2 代码包的标识 9 代码的控制 9.1 代码库/目录的建立 9.2 代码归档 10 输入控制校验规则 10.1 登陆控制 10.2 数据录入控制 附件1:数据类型缩写表 附件2:服务器控件名缩写表 1 目的 一.为了统一公司软件开发设计过程的编程规范 二.使网站开发人员能很方便的理解每个目录,变量,控件,类,方法的意义 三.为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。 四.编码规范和约定必须能明显改善代码可读性,并有助于代码管理、分类范围适用于企业所有基于.NET平台的软件开发工作 2 范围 本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。 3 注释规范 3.1 概述 a) 注释要求英文及英文的标点符号。 b) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。 c) 每行注释的最大长度为100个字符。 d) 将注释与注释分隔符用一个空格分开。 e) 不允许给注释加外框。 f) 编码的同时书写注释。 g) 重要变量必须有注释。 h) 变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个“空格”键。 如:int m_iLevel,m_iCount; // m_iLevel ....tree level // m_iCount ....count of tree items string m_strSql; //SQL i) 典型算法必须有注释。 j) 在循环和逻辑分支地方的上行必须就近书写注释。 k) 程序段或语句的注释在程序段或语句的上一行 l) 在代码交付之前,必须删掉临时的或无关的注释。 m) 为便于阅读代码,每行代码的长度应少于100个字符。 3.2 自建代码文件注释 对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释: /****************************************************** FileName: Copyright (c) 2004-xxxx *********公司技术开发部 Writer: create Date: Rewriter:

c 校园超市商品信息管理系统课程设计说明书 含源代码

计算机科学与技术教研室课程设计说明书 (2015-2016学年第二学期)

注:成绩均用百分制。总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*40%

设计题目:校园超市商品信息管理系统1.课程设计目的 本系统的目的在于,可以很好的管理超市商品与销售员之间的关系,使得系统的功能和用途更加的全面和实用,这样两个和在一起可以避免用户使用起来的麻烦,使得可以更好的方便于使用者。 本课程设计的目的就是要通过一次集中的强化训练,能及时巩固已学的知识,补充未学的但又必要的内容。进行课程设计目的在于加深对程序设计基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计能力。具体目的如下: (1)更深入地理解和掌握该课程中的有关基本概念,程序设计思想和 方法。 (2) 培养综合运用所学知识独立完成课程设计的能力。 (3) 培养勇于探索、严谨推理、实事求是、有错必改、用实践来检验 理论,全方位考虑问题等科学技术人员应具备的素质。 (4) 可以运用自己所学的知识在系统的实现。 2、课程设计正文 系统分析 从经济、技术、法律、操作四方面的分析可以看出,本系统的开发时机成熟。从多种角度考虑,都是可行的,采用本系统,能够使整个超市内部所有的信息工作简化、提高工作效益。由于采用统一的数据信息,使相关资料能够查询所需要的数据、资料及其它信息,使信息快速高效运行。需求分析

该设计是通过计算机设计程序软件来实现校园超市商品信息管理系统的基本业务,商品共包含以下信息项:商品编号、商品名称、商品进货数目、商品销售数目、商品剩余库存数目、商品单价、商品产地、商品销售额等;主要功能包括:创建商品信息文件,增加、删除、修改商品信息,销售商品、通过关键字、厂家名称或者编号来查找商品,按照不同的条件对商品信息进行统计工作。在该系统中利用通过类的方式来定义对象以及在类中定义各项的成员函数和数据成员来实现对商品信息的管理。 中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可少。每件商品一般都需要记录商品名、商品编号、产地、价格、出厂日期等商品的基本信息。除此之外,还需要记录商品的其他相关信息,如生产厂家、进货数量、销售数量、剩余库存数量等。超市商品的相关信息需要存储到磁盘文件中,一般都需要提供对商品信息的添加、编辑、删除、查找等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了巩固我们所学的C++语言程序设计知识,也为了满足课程设计的要求,我们设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑、查找等功能。同类系统多数使用结构体数组来操作数据,本系统使用类定义对象,以及成员函数和数据成员来完成对增删查改功能的实现,利用链表结构操作数据,提高了数据处理的效率。 (1)分别定义两个类为Supermarket和Supermarketmassage来实现对价格信息、名称信息、数量信息的存储、更正、删除与查询以及其他功能的实现。 (2)初始化功能

C语言程序设计-入门源代码代码集合

演示1 #include void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "stdio.h" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "stdio.h" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

return 0; } int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

html源代码解释

常用HTML代码解释 一、文字 1.标题文字.......... #=1~6;h1为最大字,h6为最小字 2.字体变化.......... 【1】字体大小.......... #=1~7;数字愈大字也愈大【2】指定字型.......... 【3】文字颜色.......... rr:表红色(red)色码 gg:表绿色(green)色码 bb:表蓝色(blue)色码 rrggbb也可用6位颜色代码数字 3.显示小字体.......... 4.显示大字体.......... 5.粗体字.......... 6.斜体字.......... 7.打字机字体.......... 8.底线.......... 9.删除线.......... 10.下标字.......... 11.上标字.......... 12.文字闪烁效果.......... 13.换行(也称回车)
14.分段

15.文字的对齐方向

#号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐P.S.

之后的文字都会以所设的对齐方式显示,直到出现另一个

改变其对齐方向,遇到


标签时会自动设回预设的向左对齐。 16.分隔线
【1】分隔线的粗细
【2】分隔线的宽度
【3】分隔线对齐方向
#号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐 【4】分隔线的颜色
【5】实心分隔线
17.居中对齐
..........
18.依原始样式显示
..........
19.指令的属性 【1】背景颜色-- bgcolor 【2】背景图案-- background 【3】设定背景图案不会卷动-- bgproperties 【4】文件内容文字的颜色-- text 【5】超连结文字颜色-- link 【6】正被选取的超连结文字颜色-- vlink 【7】已连结过的超连结文字颜色-- alink 20.文字移动指令.......... 移动速度指令是:scrollAmount=# #最小为1,速度为最慢;数字越大移动的越快。 移动方向指令是:direction=# up向上、down向下、left向左、right向右。 指令举例:.......... 二、图片 1.插入图片 2.设定图框-- border 3.设定图形大小-- width、height

程序使用说明

天下陶网络商城使用说明书 配置源程序 附加MySQL数据库 (1)将MR\05\WebRoot\Database文件夹中的扩展名为db_database05.sql的文件拷贝到本地机器中。 (2)打开MySQL的“MySQL Administrator”,并登录(本系统需要使用root和111登录),然后单击restore节点,在右侧单击“Open backup File”按钮,在弹出的对话框中,选择db_database05.sql 文件,并单击“打开”按钮。 (3)单击“Open Restore”按钮,即可完成数据库的附加操作。 将程序导入到MyEclipse中,并发布运行 (1)将“MR\05\Shop”文件夹拷贝到MyEclipse的工作空间中。 (2)启动MyEclipse,在左侧的“包资源管理器”中,单击鼠标右键,选择“Import”菜单项,在弹出的对话框中,展开General节点,并选择“Existing Projects into Workspace”子节点,如图1.1所示。 图1.1 Import对话框 (3)单击“next”按钮,进入到Import Projects对话框中,选择工作空间中的Shop,单击“Finish”按钮,完成项目的导入。 (4)将程序所需的MySQL数据库驱动包(mysql-connector-java-3.0.16-ga-bin.jar)以及Srtuts2框

架需要的jar包、Hibernate框架需要的jar包以及Spring框架包拷贝到工程的WebRoot\WEB-INF\lib文件夹中。 (5)单击工具栏中的按钮,在弹出对话框的project下拉列表框中,选择项目名称Shop,单击add按钮,在弹出的new deployment对话框的server下拉列表框中选择要使用的服务器这里为MyEclipse Tomcat,单击Finish按钮,返回到Project Deployments对话框中,单击OK按钮。 (6)单击工具栏中的按钮的三角形,在弹出菜单中选择“MyEclipse Tomcat/Start”菜单项,开启Tomcat服务器。 (7)打开IE浏览器,在地址栏中输入http://localhost:8080/Shop,并按下Enter键,进入本程序主页面。 使用说明 系统介绍 本章的天下陶网络商城主要分为:前台游客浏览、普通用户操作和后台管理3部分。结合目前网上购物平台系统的设计方案,本项目具有以下特点:界面设计美观大方、操作简单。功能完善、结构清晰。普通用户的购物操作。能够实现后台用户和商品管理。能够实现推荐商品的操作。能够实现后台对用户、订单、商品的管理。 操作注意事项 (1)进用后台地址为:http://localhost:8080/Shop/admin/user/user_login.html 本系统的后台用户名为:admin,密码为:admin。 (2)系统注册页面中提供了验证信息,用户只有添加了合法的信息后,才能注册成功。 操作流程 (1)通过系统首页,可实现浏览系统推荐商品、热销商品、以及各种分类商品等内容,也可以通过首页提供的“登录”、“注册”超链接来登录系统或注册新用户。 注意 由于需要与银行交互,一些页面无法实现,读者可以根据自己的需要模拟实现相应功能。

基于-51单片机步进电机控制-设计报告说明书源程序

一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到 一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率围通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算机 控制带来了很大的方便,反过来,计算机的出现也为步进电机开辟了更为广阔的使用市场; 4.整机结构简单传统的机械速度和位置控制结构比较复杂,调整困难,使用步进电机后,使得整机的结构变得简单和紧凑。 1.4 步进电机的原理 图1是一种四相可变磁阻型的步进电机结构示意图。这种电机定子上有八个凸齿,每一

简易水电费管理系统源程序代码

简易水电费管理系统源程序代码 法一: #include #include #include struct member {char no[100]; char name[20]; char password[20]; float wfee; float efee; }memb; void newadd(int n) { int t,i; fseek(fp,0,SEEK_END); printf(">>新添人数:"); scanf("%d",&t); for(i=0;i>输入卡号:"); scanf("%s",a); int i=0; rewind(fp); while(1) { fread(&memb,sizeof(struct member),1,fp); if(feof(fp)||memb.no==a) break; i++; } if(!feof(fp)) { printf(">>卡号:"); printf("%s\n",memb.no); printf(">>姓名:"); printf("%s\n",https://www.360docs.net/doc/f617396524.html,"); printf(">>水费:"); printf("%f\n",memb.wfee);

源代码管理办法的拟草说明

关于拟草源代码归档、保密、使用管理办法的说明 根据公司产品的开发情况,在开发过程中经常会存在一个项目会有多个开发人员共同开发,每个人在各自的机器上有整个软件的拷贝,并对之实施编码,分别完成各自任务之后,再通过文本比对工具将各自机器上的不同版本的软件整合到一台机器上。 在开发中会存在如下版本控制管理的问题: 1 软件代码的一致性 软件的开发、维护和升级,往往是多个人共同协作的过程。不同人对同一个软件的不同部分同时做着修改,这种行为有时会出现彼此交叉的情况。为了始终保证代码的一致性,一种解决办法是,要求修改者每次修改后都通过某种方式告知同组其他人员,或者随时对软件做整合。但是这样,一方面会增加开发人员的负担,另一方面也降低了软件的开发效率。 2 软件内容的冗余问题 软件在各自开发人员的机器上都有拷贝,并且同一个开发人员在不同时期也会在本机保留当时的软件版本,也就是说,一台机器上还可能不止一个版本。对于不同版本而言,其差别有时可能并不很大。随着时间的推移,开发人员可能对自己机器上的不同版本间具体差异的了解变得模糊不情,甚至忘记了当时为什么区分这些版本的原因,这会给整合带来麻烦。 3 软件过程的“事务性” 对于软件的某个版本,如果开发人员想要为其增添新的功能,或改善原有功能,而又担心会搅乱原来运行良好的软件。一种常用的办法,就是保留现有版本,另复制一个新的拷贝,并在新的副本上进行修改。这类似于一种事务处理,当将一系列操作做为一个事务时,如

果中间某个操作出现偏差,则希望恢复到执行事务之前的状况。而当完成修改之后,开发人员该如何处理这两个副本呢? 4 软件开发的“并发性” 由于是多人共同开发一个软件,期间出现多人修改软件的同一部分,尤其是同时修改,有时是不可避免的。对于前者,具有良好编程习惯的人员的一种通常做法是,对他人的源程序进行修改时添加必要的注释,写明修改人,修改原因,修改日期等。这种做法增加了开发人员的负担:他需要在考虑代码逻辑的同时,兼顾如何写注释,而且,不论是否是同时修改,都需要考虑提到的一致性问题,需要及时进行人工的差异比较和整合以便形成一个统一的新版本。 5 源代码的安全性 公司项目开发的成果即为源代码,如何记录编写源代码的全过程,如何保证源代码的正确性和安全性是关乎公司生存和发展的头等大事。 为了解决上述存在的问题,记录开发项目的全过程,使开发过程可追塑、可修改、可完善,确保公司研发的源代码和技术文档的正确性,经公司领导人员讨论一致认为必须将公司的研发过程和研发成果管理好,确保源代码的安全性,因此着手拟草源代码归档、保密、使用管理办法。

详细设计说明书又可称程序设计说明书

详细设计说明书又可称程序设计说明书。 详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。 对详细设计说明书的内容要求如下: 12.1引言 12.1.1编写目的 12.1.2背景 12.1.3定义 12. 1. 4参考资料 12.2程序系统的组织结构 12. 3程序1(标识符)设计说明 12. 3.1程序描述 12.3.2功能 12.3.3性能 12.3.4输入项 12.3.5输出项 12.3.6算法 12.3.7流程逻辑 12.3.8接口 12.3. 9存储分配 12. 3.10注释设计 12.3 .11限制条件 12. 3.12测试计划. 12.3.13尚未解决的问题 12.4程序2(标识符)设计说明 详细设计说明书的编写提示(参考件) F.1引言 F.1.1编写目的 说明编写这份详细设计说明书的目的,指出预期的读者。 F.1.2背景 说明: a.待开发软件系统的名称; b.本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。 F.1.3定义 列出本文件中用到专门术语的定义和外文首字母组词的原词组。 F.1.4参考资料 列出有关的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.属于本项目的其他已发表的文件; c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。 F.2程序系统的结构

用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。 F.3程序1(标识符)设计说明 从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。 F.3.1程序描述 给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发处理卜…..等)。 F.3.2功能 说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。 F.3.3性能 说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。 F.3.4输人项 给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。数量和频度、输入媒体、输入数据的来源和安全保密条件等等。 F. 3. 5输出项 给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。 F.3.6算法 详细说明本程序所选用的算法,具体的计算公式和计算步骤。 F.3.7流程逻辑 用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。 F.3.8接口 用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。 F.3.9存储分配 根据需要,说明本程序的存储分配。 F.3.10注释设计 说明准备在本程序中安排的注释,如: a. 加在模块首部的注释; b.加在各分枝点处的注释;对各变量的功能、范围、缺省条件等所加的注释; d.对使用的逻辑所加的注释等等。 F.3.11限制条件 说明本程序运行中所受到的限制条件。 F.3.12测试计划 说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。 F.3.13尚未解决的问题 说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。 F.4程序2(标识符)设计说明 用类似F.3的方式,说明第2个程序乃至第N个程序的设计考虑。

相关文档
最新文档