软件课程设计实验报告10161015

软件课程设计实验报告10161015
软件课程设计实验报告10161015

软件课程设计报告的格式要求

1 软件课程设计报告打印的用纸要求

本科学生软件课程设计报告采用A4打印纸或复印纸印制。

2 软件课程设计报告的排版要求

2.1 页面设置

本科学生软件课程设计报告要求纵向打印,页边距的要求为:

上(T):2.5 cm

下(B):2.5 cm

左(L):2.5 cm

右(R):2.5 cm

装订线(T):0.5 cm

装订线位置(T):左

其余设置采取系统默认设置。

2.2 排式与用字

文字图形一律从左至右横写横排。

文字一律通栏编辑。

字迹必须清楚整齐,忌用异体字、复合字及一切不规范的简化字。

除非必要,不使用繁体字。

2.3 段落设置

在“格式”选项中的“段落”设置窗口中,取消“如果定义了文档网格,则与网格对齐(W)”选项,采用多倍行距,行距设置值为1.25。

其余设置采取系统默认设置。

2.4 页眉、页脚设置

本科学生软件课程设计报告的页眉自己不设置内容; 页脚需要设置页码,页码采用10.5号、宋体、居中放置。

3 软件课程设计报告各部分的编排式样

报告的打印顺序为封面、中文提要、关键词、正文、参考文献、附录(附图)、致谢。具体要求见后。

中南民族大学

软件课程设计报告

生物医学工程学院10级医学信息专业题目药品管理系统

学生杨宝钦学号10161015

指导教师唐奇玲

2012年12月02日

目录

(目录内容字体:小四宋体)

设计题目(加粗/黑体/居中/三号字) ................................... - 3 -

1 引言(小三号宋体加粗居中)........................................ - 3 -

2 设计依据及框图(小三号宋体加粗居中) .............................. -

3 -

2.1设计平台(四号宋体加粗) (3)

2.2设计思想(四号宋体加粗) (4)

3各模块功能及主要模块的流程图(小三号宋体加粗居中)............... - 4 -

3.1各模块功能简介(四号宋体加粗) (4)

3.2主要流程图(四号宋体加粗) (4)

4 软件调试分析(小三号宋体加粗居中) ................................ - 8 -

5 结语(小三号宋体加粗居中)........................................ - 8 -参考文献(小三号宋体加粗居中) .................................. - 11 -

附录(主要程序列表, 正文中不能写大段程序代码,太多就列在此处附录中;若

超过3页,注明见电子文档即可) ...................................... - 11 -致谢.................................................... 错误!未定义书签。

设计题目

摘要:用C语言建立一个药品管理系统,可对医院药品的库存和销售进行管理。在内容上,包括库存和销售两方面。库存应包括:商品的货号、名称、生产厂家、库存量、进货日期、进货价格、进货量。销售应包括:商品的货号、名称、销售日期、销售价格、销售数量、利润。

关键字:药品管理系统;库存管理;销售管理

1 引言

背景:本次软件课程设计是在大三上学期开设的,而我们C语言课程是在大一下开设的。C语言编程的水品停留在二级的水品,因此,此次的课程设计的正好可以用来提高我们的编程水品。当今社会发展讯速,科技日新月异。作为大学生,特别是工程专业的本科生,编程能力尤为重要。

目的:本次课程设计主要是设计一个药品管理系统,通过实践来提高我的动手能力。

2 设计依据及框图

设计依据:(1)登陆系统:用户通过密码验证登陆系统;(2)药品管理系统:包括库存管理和销售管理;库存包括:商品的货号、名称、生产厂家、库存量、进货日期、进货价格、进货量。销售:商品的货号、名称、销售日期、销售价格、销售数量、利润。(3)用结构体数组组织数据,采用链表实现系统,对已建立的结构数组,在指定位置进行插入和删除一个结构数组元素工作,数据以文件形式存放,分为库存和销售两个文件。分成六个模块:数据输入,数据输出,数据更新,查询,统计,排序。

2.1 设计平台

Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++

已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Window。

Visual C++6.0由Microsoft开发, 它不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard 等开发工具。

2.2 设计思想

系统管理模块分为接受输入药品信息、查询药品信息,更新药品信息,更新库存,产生报表,来完成系统功能。通过接受输入信息信息,来查询药品信息,输入药品信息对数据库进行更新,划单触发库存自动更新。并可按用户命令产生两种报表:库存报表和销售报表来协助管理员对药品信息进行管理。并且可查询药品信息来使管理员随时了解库存信息。

2.3 用户界面

用户界面:

|**************************************************************************|

主菜单

|**************************************************************************|

| ************---1---输入信息--************* |

| ************---2---显示信息--************* |

| ************---3---查找------************** |

| ************---4---修改------************** |

| ************---5---添加------************** |

| ************---6---删除------************** |

| ************---7---排序------************** |

| ************---0---退出系统--************* |

|**************************************************************************|

3各模块功能及主要模块的流程图

3.1 各模块功能简介

一、结构体的定义

药品库存信息的结构体

struct Drugstock

{ long num; //商品的货号

char name[30]; //商品的名称

char factoryname[30]; //生产厂家名

long storage; //库存量

long indate; //进货日期

long inprice; //进货价格

long innum; //进货量

struct Drug *next;

};

药品销售信息的结构体

struct Drugsell

{ long num; //商品的货号

char name[30]; //商品的名称

long outdate; //销售日期

long outprice; //销售价格

long outnum; //销售数量

long profit; //利润

struct Drugsell *next;

};

二、函数编写

1、主函数void main()

主函数void main()实现各功能的选择,分为创建、增加、删除、修改、查询,以及统计等功能,而各功能分别编写为被调函数。利用while循环实现用户的人性化操作,以达到结束程序或继续运行程序的目的。创建、增加、删除、修改、查询、统计等被调函数,都须写于主函数之上;利用switch()函数实现各功能的选择。对数据的增、删、改操作,必须返回结构退指针,而查找功能只需要输出即可。

2、创建链表struct Drugstock *creat(void) 和 struct Drugsell *creat1(void)

创建新链表函数,返回链表头指针。定义结构体指针变量“struct Drugstock *head=NULL, *p1,*p2;”。head为头指针,及数据表的表头;动态分配内存给p1,令其始终指向新节点;而p2为中间辅助指针,是链表按要求链接。在创建链表的过程中,动态分配内存给指针p1,分别输入库存药品信息和销售药品信息,进行赋值。

在输入玩一个信息之后,选择退出选择货号为0。

3、增加新节点 struct Drugstock *insert(struct Drugstock *head,struct Drugsell

*head1)和struct Drugstock *insert1(struct Drugstock *head,struct Drugstock *head1)

增加过程与创建过程大致相同,唯一不同的是,增加过程需要得到形参继续增加库存和销售信息。

4、删除节点 struct Drugstock *Delete(struct Drugstock *head)

struct Drugsell *Delete1 (struct Drugsell *head) 删除库存药品信息实质就是,将链表指针所指向的地址在内存中擦除。主要分为两种情况:删除头指针所指向的节点地址是否为空和删除中间或结尾的节点地址。首先,需要判断所删除节点的地址所指的空间if(head==NULL) {printf("\n链表是空的!\n") ,然后进行判断while(num!=p1->num && p1->next!=NULL),然后,进行逻辑判断,是否存在该货号的节点,以及判断是否为头指针。

5、修改节点 struct Drugstock *modify(struct Drugstock *head)

struct Drugsell *modify1(struct Drugsell *head)

即删除和增加过成功地结合。先进行用while(p->num!=t&&p->next!=NULL) 判断是否

是所需寻找的节点,p=p->next;如果是的话,if(p->num==t),开始进行选择你想要修

改的是药品的什么信息,货号、名称、生产厂家、库存量、进货日期、进货价格、进

货量还是货号、名称、销售日期、销售价格、销售数量、利润,进行判断后,开始进

行选择修改。

6、查找节点 void search(struct Drugstock *head)

void search2(struct Drugsell *head) 查找节点,即根据所查询的信息查找记录,需要定义结构体指针变量p,进行逻辑判

断即可。查找所需节点信息,根据需要选择是销售还是库存,判断后进入函数体后进

行查找所需内容,用if语句进行判断后选择。

7、统计 void statistic1(struct Drug *head)

void statistic2(struct Drugsell *head)

需要根据创建(或增加)时计算出各节点段的个数来统计。分为销售和库存信息二个

部分,根据需要进行选择,用count,sum,计算统计个数,用if语句进行判断统计个

数。

8、排序 struct Drugstock *sort(struct Drugstock *head)

struct Drugsell *sort1(struct Drugsell *head)

按选择进行排序需要建立新的链表。是选择升序还是降序,创建struct Drugsell

*m,*f,*p,*han。struct Drugstock *m,*f,*p,*han。

9、数据的文件存储, void savetofile(struct Drugstock *head,char fname[30])

struct Drugstock * readfromfile(char fname[30])

void savetofile1(struct Drugsell *head,char fname[30])

struct Drugsell * readfromfile1(char fname[30]) 分别调用这些函数进行药品库存信息数据和药品销售信息数据的存储,将

数据存入指定的文档中。

3.2 主要流程图

一、用户登录

(1)功能流图

用户登录功能流图

用户根据已知的密码登录系统,只有登录成功才能进行系列的药品库存管理、药品销售管理,入库和出库管理的操作。

二、药品管理程序流程图

(1)功能流图

药品添加功能流图

(2)功能描述

用户进入系统以后,首先需要添加药品信息,没有药品信息就无法进行库存管理了,更做不到药品入库和出库。药品信息作为库存管理的一部分,是药品入库和出库的编号查询;还有为提供药品有效期的报警来源。

三、库存管理

(1)功能流图

库存初始化功能流图

用户登录进入库存管理页面,进行库存初始化。库存初始化是把现有的库存添加到库存表当中去,但是首先这些库存的药品信息已经都是被录入药品表。所以在查询到这些药品信息后便可以进行库存初始化了。

4 软件调试分析

说明:整个系统分为两个模块:药品库存管理和药品销售管理,在软件调试中,先输入药品信息(库存和销售)、查看已有药品信息(库存和销售)、添加新的药品信息(库存和销售)、删除药品信息(库存和销售)、修改药品信息(库存和销售)、查询药品信息(库存和销售)、统计药品信息(库存和销售)、对药品按货号升序排序。

1.登陆

2.输入及显示信息

3查找信息

4修改信息

5添加信息

6删除信息

7排序

8统计

5 结语

课程设计结束了,通过实践我对学过的软件知识娱乐提高。从刚开始的不懂或者说很是模糊,开始去查找各种资料,到基本了解了整个软件设计的过程,对c语言编程的过程更加清楚,并懂得了需求分析阶段的重要性,了解现实世界中业务流程和软件想结合的需要,整个设计过程是对系统的一点点加深理解的过程,经过对问题的一步步深入的了解,对系统实现的功能进一步清楚,对模糊的功能需求通过询问,查找资料,使之得到了充分的解决。

本次软件课程设计是在大三上学期开设的,而我们C语言课程是在大一下开设的。C语言编程的水品停留在二级的水品,因此,此次的课程设计的正好可以用来提高我们的编程水品。当今社会发展讯速,科技日新月异。作为大学生,特别是工程专业的本科生,编程能力尤为重要。本次课程设计主要是设计一个药品管理系统,通过实践提高我的实践动手能力。

参考文献

[1]谭浩强.C语言程序设计(第四版).北京:清华大学出版社,2010.6

[2]刘振安, 孙忱,刘燕君.C语言程序设计课程设计.机械工业出版社,2004.9

附录

详细程序:

#include

#include

#include

#define N 30

struct Drugstock //药品进货

{

long num; //药品货号

char name[N]; //名称

char factory[N]; //生产厂家

long storage; //库存量

long indate; //进货日期

long inprice; //进货价格

long innum; //进货量

struct Drugstock *next;

};

struct Drugsell //药品销售

{

long num; //药品的货号

char name[N]; //名称

long outdate; //销售日期

long outprice; //销售价格

long outnum; //销售数量

long profit; //利润

struct Drugsell *next;

};

int n;

/*************************************************药品库存

/*----------------------------药品库存链表函数create---------------------------------*/ struct Drugstock *create(void) //建立药品库存的链表函数create

{

struct Drugstock *head;

struct Drugstock *p1,*p2;

n=0;

p1=p2=(struct Drugstock *)malloc(sizeof(struct Drugstock)); //强制类型转换为指针

printf("\n 注意:");

printf("(1)您输入的药品货号必须是唯一的;\n");

printf(" (2)输入药品货号为空时返回主菜单。\n");

printf("\n 请依次输入药品的信息:货号名称生产厂家库存量进货日期进货价格进货量\n");

printf("\n 请输入第一个药品的货号:");scanf("%ld",&p1->num);

/* 输入药品的货号*/

if(p1->num!=0)

{ printf(" 请输入第一个药品的名称:");scanf("%s",p1->name);

//输入药品的名称

printf(" 请输入第一个药品的生产厂家名:");scanf("%s",p1->factory);

/* 输入药品的生产厂家名*/

printf(" 请输入第一个药品的库存量:");scanf("%ld",&p1->storage);

/* 输入药品的库存量*/

printf(" 请输入第一个药品的进货日期:");scanf("%ld",&p1->indate);

/* 输入药品的进货日期*/

printf(" 请输入第一个药品的进货价格:");scanf("%ld",&p1->inprice); //输入药品的进货价

printf(" 请输入第一个药品的进货量:");scanf("%ld",&p1->innum);

//输入药品的进货量

}

else

{

printf("\n 您输入的货号为0!!!\n");

}

head=NULL;

printf("\n 请接着输入药品的信息:货号名称生产厂家库存量进货日期进货价格进货量\n");

while(p1->num!=0)

{ printf("\n 注意:输完信息要退出请输入货号为0\n");

n=n+1;

if(n==1) head=p1;

else p2->next=p1;

p2=p1;

p1=(struct Drugstock *)malloc(sizeof(struct Drugstock));

printf("\n 请输入药品的货号:");scanf("%ld",&p1->num);

/* 输入药品的货号*/

if(p1->num!=0)

{

printf(" 请输入药品的名称:");scanf("%s",p1->name);

//输入药品的名称

printf(" 请输入药品的生产厂家名:");scanf("%s",p1->factory);

/* 输入药品的生产厂家名*/

printf(" 请输入药品的库存量:");scanf("%ld",&p1->storage);

/* 输入药品的库存量*/

printf(" 请输入药品的进货日期:");scanf("%ld",&p1->indate);

/* 输入药品的进货日期*/

printf(" 请输入药品的进货价格:");scanf("%ld",&p1->inprice);

//输入药品的进货价格

printf(" 请输入药品的进货量:");scanf("%ld",&p1->innum);

//输入药品的进货量

}

else printf("\n 输入成功!\n");

}

p2->next=NULL;

return(head);

}

/*------------------------------------------------------------------------------------------*/

/*-----------------------------------------库存显示-----------------------------------------*/ struct Drugstock *printlink(struct Drugstock *head)

{ struct Drugstock *p;

printf("\n 以下是%d个库存药品信息:\n\n",n);

p=head;

if(head!=NULL) /* 如果链表不是空,则打印每个结点信息*/

{ printf(" |------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

do

{ printf(" |------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

p=p->next;

}while(p!=NULL);

printf(" |------|------|------------|--------|----------|----------|--------|\n");

}

else printf("链表是空的!\n"); /* 如果链表是空表,刚提示这个链表是空表*/

return head;

}

/*------------------------------------------------------------------------------------------*/

/*------------------------------------------库存存文件--------------------------------------*/ void savetofile(struct Drugstock *head,char fname[30])

{

FILE *fp;

if((fp=fopen(fname,"wb"))==NULL)

{

printf("\n open file error!");

exit(0);

}

if(head==NULL) printf("\n 输入不能为空!!!");

else

{

while(head!=NULL)

{

fwrite(head,sizeof(struct Drugstock),1,fp);

fprintf(fp,"%ld,%s,%s,%ld,%ld,%ld,%ld\n",head->num,head->name,head->facto ry,head->storage,head->indate,head->inprice,head->innum);

head=head->next;

}

}

fclose(fp);

}

/*------------------------------------------------------------------------------------------*/

/*------------------------------------------库存读文件--------------------------------------*/ struct Drugstock *readfromfile(struct Drugstock *head,char fname[30])

{

FILE *fp;

struct Drugstock *p1,*p2;

int n=0;

if((fp=fopen(fname,"rb"))==NULL)

{

printf("\n open file error!");

exit(0);

}

p1=p2=(struct Drugstock *)malloc(sizeof(struct Drugstock));

head=NULL;

while(fread(p1,sizeof(struct Drugstock),1,fp)==1)

{

n++;

if(n==1)

head=p1;

else p2->next=p1;

p2=p1;

p1=p2=(struct Drugstock *)malloc(sizeof(struct Drugstock));

fscanf(fp,"%ld,%s,%s,%ld,%ld,%ld,%ld\n",&p1->num,p1->name,p1->factory,& p1->storage,&p1->indate,&p1->inprice,&p1->innum);

}

p2->next=NULL;

return head;

fclose(fp);

}

/*------------------------------------------------------------------------------------------*/

/*------------------------------------------库存查找--------------------------------------*/ struct Drugstock *search(struct Drugstock *head) //查找

{

struct Drugstock *p;

int flag;

while(1)

{

printf("\n*************---请您选择要查找的方式:\n");

printf("\n*************------1---货号-------***********\n");

printf("\n*************------2---名称-------***********\n");

printf("\n*************------0--返回主菜单--***********\n\n");

printf("\n 您选择的操作序号是:");

scanf("%d",&flag);

if(flag==1)

{

long a;

printf("\n 请输入您要查找的药品货号:");

scanf("%ld",&a);

p=head;

if(p->num==a)

{ printf("\n 以下是您要查找的药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 查找成功!\n");

}

while(p->next!=NULL)

{

p=p->next;//不是要找的节点,指针后移

if(p->num==a)

{ printf(" \n 以下是您要查找的药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 查找成功!\n");

}

}

}

else if(flag==2)

{

char b[20];

printf("\n 请输入您要查找的药品名称:");

scanf("%s",b);

p=head;

if(strcmp(p->name,b)==0)

{

printf("\n 以下是您要查找的药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 查找成功!\n");

}

while(p->next!=NULL)

{

p=p->next;

if(strcmp(p->name,b)==0)

{

printf("\n 以下是您要查找的药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 查找成功!\n");

}

}

}

else if(flag==0)

break;

}

return head;

}

/*------------------------------------------------------------------------------------------*/

/*------------------------------------------库存修改--------------------------------------*/ struct Drugstock *modify(struct Drugstock *head) //修改

{

struct Drugstock *p;

long a;

int b;

printf("\n 请输入您想修改库存药品的原货号:");

scanf("%ld",&a);

p=head;

while(p->num!=a&&p->next!=NULL)

p=p->next;

if(p->num==a)

{

printf("\n 以下是修改后的库存药品信息:\n\n");

printf(" |------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf(" |------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf(" |------|------|------------|--------|----------|----------|--------|\n");

printf("\n 修改成功!\n");

while(1)

{

printf("\n 请选择您要修改的项目:\n\n");

printf("\n **************----0---退出

--------**************\n");

printf("\n **************----1---货号

--------**************\n");

printf("\n **************----2---名称

--------**************\n");

printf("\n **************----3---生产厂家

----**************\n");

printf("\n **************----4---库存量

--------************\n");

printf("\n **************----5---进货日期

------************\n");

printf("\n **************----6---进货价格

--****************\n");

printf("\n **************----7---进货量

----****************\n");

printf("\n 您选择的操作序号是:");

scanf("%d",&b);

if(b==1)

{

printf("\n 请输入您修改后的货号:");

scanf("%ld",&p->num);

printf("\n 以下是修改后的库存药品信息:\n\n");

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 修改成功!\n");

}

if(b==2)

{

printf("\n 请输入您修改后的名称:");

scanf("%s",p->name);

printf("\n 以下是修改后的库存药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("

|%-6ld|%-6s|%-12s|%-8ld|%-10ld|%-10ld|%-8ld|\n",p->num,p->name,p->factory,p->s torage,p->indate,p->inprice,p->innum);

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf("\n 修改成功!\n");

}

if(b==3)

{

printf("\n 请输入您修改后的生产厂家:");

scanf("%s",p->factory);

printf("\n 以下是修改后的库存药品信息:\n\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

printf(" | 货号| 名称| 生产厂家名| 库存量| 进货日期| 进货价格| 进货量|\n");

printf("

|------|------|------------|--------|----------|----------|--------|\n");

课程设计实验报告

竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。

2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度

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

单片机电子时钟课程设 计实验报告 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)完成整个系统的设计、调试和制作。

软件质量与测试课程设计实验报告

华中科技大学文华学院 《软件质量与测试》课程设计 软件工程专业07级3班 姓名:曹洪 学号全称:0101 时间:2010年11月12日

《软件质量与测试》课程设计 1、实验目的 掌握软件测试用例的设计 掌握软件缺陷报告的设计 掌握软件缺陷修正报告的设计 2、实验过程 程序preday的基本功能:输入有效的年、月、日,按[计算]按钮,画面输出显示前1天的年,月,日;能对日期非法输入的合理提示等。 程序代码的编写详见preday文件 黑盒软件测试用例的设计 2.2.1等价类划分法 程序的有效输入日期为1800年1月1日到2050年12月31日之间的有效日期。其中, 有效等价类为 1800年1月1日到2050年12月3日之间的日期,其中 年份为1800到2050之间的整数; 月份为1到12之间的整数; 当月份为1、3、5、7、8、10、12时,日为1到31之间的整数,当月份为4、6、9、11时,日为1到30之间的整数,当年份为闰年元份为2时,日为1到29之间的数值,否则为1到28之间的数值。 无效等价类: 1800年1月1日之前的日期; 2050年12月3日之后的日期; 1800年1月1日到2050年12月31日之间的日期,但是月份不为1到12之间的整数;或者当月份为1、3、5、7、8、10、12时,日不为1到31之间的整数,当月份为4、6、9、11时,日不为1到30之间的整数,当年份为闰年元份为2时,日为1到29之间的数值,否则为1到28之间的数值。 最简单的等价类划分直接以输入条件边界来划分,得到的等价类集合见下表,其中Y1-Y3,M1-M3,D1-D3分别是三个输入条件的相应的等价类的编号。 表1:preday问题的等价类划分 等价类年份月份日期 有效等价类 Y1:1800≤年份≤2500 M1:1≤月份≤12 D1:1≤日期≤31 无效等价类 Y2:年份<1800 M2:月份<1 D2:日期<1Y3年>205M3月>1D3日>3

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

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁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

vf课程设计实验报告模板

vf 课程设计实验报告模板 经济管理学院 学生信息管理系统的设计与实现 09年12 月28 日 、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对学生信息管理系统的设计,来提高学生的操作能力,及对理论知识的实践能力,从而提高学生的基本素质,使其能更好的满足社会需求。 学生信息管理系统是一个简单实用的系统,它是学校进行学生管理的好帮手。 此软件功能齐全,设计合理,使用方便,适合各种学校对繁杂的学生信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。它可以融入学校的信息管理系统中,不仅方便了学生信息各方面的管理,同时也为教师的管理带来了极大地便利。 我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设 计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定 义、数据操纵、数据控制,以及简单VF程序的编写。基本实现学生信息的管理, 包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除,并对Visual FoxPro6.0 的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 - 1 -

、系统功能设计 通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录 入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统 功能模块如下图所示。 学生信息管理系统主界面 登录 管理 学学学学学 生生生生生 信信信信信 息息息息息 录查浏修删 入询览改除 三、系统设计内容及步骤 3.1创建项目管理文件 1.启动foxpro 系统,建一个项目管理器,命名为“学生管理”。 哑 目f ■ 也 电 岂同左 矣 氏H. 0 存 JI 蛋誤曾

(完整word版)数据结构课程设计实验报告

设计题目:一 单位员工通讯录管理系统 一、题目要求 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。二、概要设计 本程序通过建立通讯录链表,对员工信息进行记录,并建立一个系统的联系。 三、主要代码及分析 这里面关于链表的主要的操作有插入,查询,删除。则这里只列出这几项的主代码。 1、通过建立通讯录结构体,对信息进行存储,建立链表,建立信息之间 的联系。 typedef struct { }DataType;结构体来存储通讯录中的基本信息 typedef struct node { DataType data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ }ListNode,*LinkList; 2、信息插入操作,将信息查到链表的后面。 void ListInsert(LinkList list){ //信息插入 ListNode *w; w=list->next; while(w->next!=NULL) { w=w->next; } ListNode *u=new ListNode; u->next=NULL; cout<<"员工编号:";cin>>u->data.num; cout<<"员工姓名:";cin>>u->https://www.360docs.net/doc/2f577991.html,; cout<<"手机号码:";cin>>u->data.call; cout<<"员工邮箱:";cin>>u->data.email; cout<<"办公室电话号码:";cin>>u->data.phone; w->next=u;w=w->next; }

过程控制系统课程设计报告报告实验报告

成都理工大学工程技术学院《过程控制系统课程设计实验报告》 名称:单容水箱液位过程控制 班级:2011级自动化过程控制方向 姓名: 学号:

目录 前言 一.过程控制概述 (2) 二.THJ-2型高级过程控制实验装置 (3) 三.系统组成与工作原理 (5) (一)外部组成 (5) (二)输入模块ICP-7033和ICP-7024模块 (5) (三)其它模块和功能 (8) 四.调试过程 (9) (一)P调节 (9) (二)PI调节 (10) (三)PID调节 (11) 五.心得体会 (13)

前言 现代高等教育对高校大学生的实际动手能力、创新能力以及专业技能等方面提出了很高的要求,工程实训中心的建设应紧紧围绕这一思想进行。 首先工程实训首先应面向学生主体群,建设一个有较宽适应面的基础训练基地。通过对基础训练设施的 集中投入,面向全校相关专业,形成一定的规模优势,建立科学规范的训练和管理方法,使训练对象获得机械、 电子基本生产过程和生产工艺的认识,并具备一定的实践动手能力。 其次,工程实训的内容应一定程度地体现技术发展的时代特征。为了适应现代化工业技术综合性和多学科交叉的特点,工程实训的内容应充分体现机与电结合、技术与非技术因素结合,贯穿计算机技术应用,以适应科学技术高速发展的要求。应以一定的专项投入,建设多层次的综合训练基地,使不同的训练对象在获得对现代工业生产方式认识的同时,熟悉综合技术内容,初步建立起“大工程”的意识,受到工业工程和环境保护方面的训练,并具备一定的实用技能。 第三,以创新训练计划为主线,依靠必要的软硬件环境,建设创新教育基地。以产品的设计、制造、控制乃至管理为载体,把对学生的创新意识和创新能力的培养,贯穿于问题的观测和判断、创造和评价、建模和设计、仿真和建造的整个过程中。

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

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

江苏科技大学 电子商务系统分析与设计课程设计 网上书城系统的开发 学生姓名张颖 学号 班级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明确用户需求 随着当今社会新系统大度的提高,网络的高速发展,计算机已被广泛应用于各个领域,因而网络成为人们生活中不可或缺的一部分。互联网用户应经接受了电子商务,网购成为一种时尚潮流。

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

【实验报告】大学物理实验课程设计实验报告

大学物理实验课程设计实验报告北方民族大学 大学物理实验(设计性实验) 实验报告 指导老师:王建明 姓名:张国生 学号:XX0233 学院:信息与计算科学学院 班级:05信计2班 重力加速度的测定 一、实验任务 精确测定银川地区的重力加速度 二、实验要求 测量结果的相对不确定度不超过5% 三、物理模型的建立及比较 初步确定有以下六种模型方案: 方法一、用打点计时器测量

所用仪器为:打点计时器、直尺、带钱夹的铁架台、纸带、夹子、重物、学生电源等. 利用自由落体原理使重物做自由落体运动.选择理想纸带,找出起始点0,数出时间为t的p点,用米尺测出op的距离为h,其中t=0.02秒×两点间隔数.由公式h=gt2/2得g=2h/t2,将所测代入即可求得g. 方法二、用滴水法测重力加速度 调节水龙头阀门,使水滴按相等时间滴下,用秒表测出n个(n取 50―100)水滴所用时间t,则每两水滴相隔时间为t′=t/n,用米尺测出水滴下落距离h,由公式h=gt′2/2可得g=2hn2/t2. 方法三、取半径为r的玻璃杯,内装适当的液体,固定在旋转台上.旋转台绕其对称轴以角速度ω匀速旋转,这时液体相对于玻璃杯的形状为旋转抛物面重力加速度的计算公式推导如下: 取液面上任一液元a,它距转轴为x,质量为m,受重力mg、弹力n.由动力学知: ncosα-mg=0(1) nsinα=mω2x(2) 两式相比得tgα=ω2x/g,又tgα=dy/dx,∴dy=ω2xdx/g, ∴y/x=ω2x/2g.∴g=ω2x2/2y. .将某点对于对称轴和垂直于对称轴最低点的直角坐标系的坐标x、y测出,将转台转速ω代入即可求得g.

软件项目管理课程设计实验报告精

软件项目管理课程设计报告 学院: 专业: 班级: 学号: 姓名: 指导教师: 时间:2013年 1月 目录 1、项目概述 (1) 2、工作任务 (Statement Of Work,SOW书 (1) (一整体要求 (1) (二系统逻辑模型 (2) (三系统功能描述 (3) (四应达到的技术指标和参数 .................................... 3 3、项目进度计划 .. (4) (一分解项目工作 (4) (二项目工作关系表 (5) (三项目甘特图 (6) (四网络进度计划图 (7) (五里程碑计划 ................................................ 9 4、项目规模成本估算 . (9)

(一分解项目工作 (9) (二项目规模估算表 (11) (三计算开发成本 (12) (四计算管理、质量成本 (12) (五直接成本 (12) (六计算间接成本 (12) (七计算总估算成本 (12) (八项目报价 ................................................. 13 5. 项目质量计划 .. (13) (一项目质量保证组织 (13) (二质量目标 (14) (三质量策略 (15) (四质量保证活动 (15) (五质量控制活动 (17) (六质量保证的报告途径 (17) (七记录的收集、维护和保存 ................................... 17 6、软件项目团队 . (17) (一团队组织及职责 (18) (二项目的沟通计划 ........................................... 19 7、软件项目配置管理计划 .. (19) 学校内部职工工资系统项目管理书 1、项目概述 假设学校共有教职工约 1000人, 10个行政部门和 8个系部。每个月 20日前各部门(包括系、部要将出勤情况上报人事处, 23日前人事处将出勤工资、奖金及扣款清单送财务处。财务处于每月月底将教职工的工资表做好并将数据送银行。每月初(3日前将工

个人信息管理系统毕业课程设计实验报告

(此文档为word格式,下载后您可任意编辑修改!) 山东交通学院 目录 1.系统分析 (2) 1.1系统需求分析 (2) 1.2项目规划 (2) 1.3系统功能结构分析 (3) 1.4设计目的分析 (3) 2.数据库系统设计 (4) 2.1数据表概要设计 (4) 2.2数据库逻辑结构设计 (4) 3.应用程序设计 (5) 3.1界面设置 (5) 3.2关键技术 (15) 4.系统安装 (20) 建立数据源 (20) 5.设计体会 (21) 参考文献 (22)

摘要 随着经济社会的发展,计算机已被应用到社会生活的各个领域。与此同时,互联网作为信息技术的通信桥梁连接着全球的计算机,而网站作为网络信息主要的表现形式而且还是互联网信息的主要承载者,在网络上表现出其及其重要的地位,并发挥着极其重要的作用。无论是在国内还是国外都得以迅速的发展和壮大,并被人们重视和关注。互联网已经彻底的改变了世界,互联网的世界里蕴藏着无限的可能,在这种情况下,各行各业及其个人、单位、工厂、企事业等等在网上构筑属于自己的网络信息平台,保护自己的网络资源并在互联网上开辟自己的市场和消费群体,以及构造自己的数字化世界和加强全球范围内不同地域的人们联系交流等等活动也就显的日益重要。于是各种各样的网站便如雨后春笋般地出现鱼龙混杂且良莠不齐。因此,个人信息的管理就显得尤为重要了。不仅可以更好的保护个人信息,对日常的使用也会提供很大的方便。关键词:个人信息管理系统;数据集;数据库;Visual C++6.0。 1.系统分析 1.1系统需求分析 在做本系统前,我对系统的需求做了如下分析: 1)登录权限:在登录权限的分析上我们规定必须凭借用户名和密码才可登陆,进行管理。 2)使用者功能:首先说明一下,我们的系统用户对象是个人。关于其本系统的功能,大致可分为日记管理,通讯录管理,备忘录管理,以及个人财务管理;日记管理,其中包括用户对日记编号,时间,地点,事件、人物的查询、

南邮课程设计实验报告

课程设计I报告 题目:课程设计 班级:44 姓名:范海霞 指导教师:黄双颖 职称: 成绩: 通达学院 2015 年 1 月 4 日

一:SPSS的安装和使用 在PC机上安装SPSS软件,打开软件: 基本统计分析功能包括描述统计和行列计算,还包括在基本分析中最受欢迎的常见统计功能,如汇总、计数、交叉分析、分类比较、描述性统计、因子分析、回归分析及聚类分析等等。具体如下: 1.数据访问、数据准备、数据管理与输出管理; 2.描述统计和探索分析:频数、描述、集中趋势和离散趋势分析、分布分析与查看、正态性检验与正态转换、均值的置信区间估计; 3.交叉表:计数;行、列和总计百分比;独立性检验;定类变量和定序变量的相关性测度; 4.二元统计:均值比较、T检验、单因素方差分析; 5.相关分析:双变量相关分析、偏相关分析、距离分析; 6.线性回归分析:自动线性建模、线性回归、Ordinal回归—PLUM、曲线估计; 7.非参数检验:单一样本检验、双重相关样本检验、K重相关样本检验、双重独立样本检验、K重独立样本检验; 8.多重响应分析:交叉表、频数表; 9.预测数值结果和区分群体:K-means聚类分析、分级聚类分析、两步聚类分析、快速聚类分析、因子分析、主成分分析、最近邻元素分析; 10. 判别分析; 11.尺度分析; 12. 报告:各种报告、记录摘要、图表功能(分类图表、条型图、线型图、面积图、高低图、箱线图、散点图、质量控制图、诊断和探测图等); 13.数据管理、数据转换与文件管理; 二.数据文件的处理 SPSS数据文件是一种结构性数据文件,由数据的结构和数据的内容两部分构成,也可以说由变量和观测两部分构成。定义一个变量至少要定义它的两个属性,即变量名和变量类型其他属性可以暂时采用系统默认值,待以后分析过程中如果有需要再对其进行设置。在spss数据编辑窗口中单击“变量视窗”标签,进入变量视窗界面,即可对变量的各个属性进行设置。 1.创建一个数据文件数据 (1)选择菜单【文件】→【新建】→【数据】新建一个数据文件,进入数据编辑窗口。窗口顶部标题为“PASW Statistics数据编辑器”。 (2)单击左下角【变量视窗】标签进入变量视图界面,根据试验的设计定义每个变量类型。

软件工程课程设计实验报告

重庆邮电大学 软 件 工 程 课程设计实验报告 ——网上选课系统 姓名:雷雷 学号:08500329 专业:计算机科学与技术 班级:0410801 指导老师:邹洋 教室:S3314 时间:2011-5-30?2011-6-3

一、实验题目:网上选课系统 主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。 二、实验目的 软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。通过这次课程设计,要掌握UML (统一建模语言),并能运用UML 在Rational Rose 中建模。 三、实验要求 1. 一人一组。 2. 熟悉Rose 开发环境。 3. 掌握UML 的基本模型元素(如角色、用例、类等)。 4. 熟悉UML ,主要了解UML 中的9 大图:Use case diagram(用例图)、Class diagram (类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram (数据模型图)。 5. 进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图, 建立完整的系统数据库的逻辑模型 6. 完成对系统的建模实现

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

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

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

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

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3

第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕

(3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:https://www.360docs.net/doc/2f577991.html,work.Arp; UPD 实体类:https://www.360docs.net/doc/2f577991.html,work.Icmp;

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

《软件工程学(UML)》课程设计实验报告

课程设计报告 课程设计名称:软件工程学(UML)课程设计课程设计时间:

课程设计报告(附页) 1.课程设计目的 利用UML 实现一个小型的信息系统的分析和设计。 2.课程设计题目描述和要求 2.1 系统名称:通用无纸化考试系统 2.2 需求分析 2.2.1功能需求分析 本系统主要用于学校内部考生考试使用,目标是实现考试效率的提高、工作量的 减少以及成本的降低,根据实际需要,系统所要实现的系统功能模块如下所示: 各模块要实现的功能说明如下: 1.管理员子系统 用户信息维护是指以系统管理员的身份通过验证后登入系统,并对管理员个人信息 以及教师用户的信息和学生信息进行管理及一些班级信息和科目的设置 (1)用户信息维护 管理员子系统 教师子系统 考生子系统 用户信息维护 用户权限维护 学生信息管理 教师信息管理 个人信息维护 班级管理 系部管理 科目管理 个人信息维护 题库管理 试卷管理 阅卷管理 成绩查询 成绩统计分析 个人信息维护 在线考试 用户注册 自我测试 成绩查询 通用无纸化考试系统

系统管理员可以对自己个人信息进行编辑修改,也可以对教师用户和学生用户进行添加和删除,系统将为添加后的教师用户和学生用户自动分配用户编号 (2)用户权限维护 系统管理员在对教师用户信息进行管理时,可以为其设置相应的权限。 2.教师子系统 教师子系统是指以教师用户的身份通过验证后登入系统,并对个人信息、题库、 试卷信息、考生成绩等信息进行管理。 (1)个人信息维护 教师成功登入系统后可以对自己的用户名,密码等信息进行查看和修改,但不 可以对账号名称进行更改。 (2)题库管理 教师可以在题库中添加、编辑和修改试题,可以为每道试题设置其分值、类型 等信息,系统会自动为添加的试题分配相应的试题编号。 (3)试卷管理 教师用户可以对每次考试的试卷信息进行设置,比如可以设置考试的课程、时 间、总分、各类型题目(单项选择题,多选题,判断题,主观题)的数量等信息。 (4)成绩查询 教师用户可以对考生的成绩进行查看。 (5)考试结果统计 教师用户可以对考生的成绩进行统计和分析,比如最高分,平均分以及每道题的正确率让教师更好的掌握考生的知识点掌握情况。 (6)阅卷管理 教师可以针对考生的主观题信息进行阅卷给出分数 3.考生子系统 考生考试是指以考生用户的身份通过验证后登入系统,可以进行个人注册信息 编辑、自我测试、成绩查看等工作。 (1)考生注册 考生可以进行个人信息的注册,包括姓名,班级,口令等信息,考生用户注册 成功后自动加入考生信息表中,系统会自动为其分配相应的id。 (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脚为阈值端,只对高电平起作用,低电

数字电子钟课程设计方案实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日

课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 指导教师:姚爱琴 2017 年 1 月 6 日

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.1秒信号电路 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.4校时电路 (9) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12)

软件课程设计第四阶段实验报告

编号:()字号 《软件课程设计》报告 班级:信科10--2 姓名:潘寿岭 学号: 08103502 指导老师:王志晓 2012年01 月

第四阶段 六、数据结构设计题4 6.1需求分析 1、设计一个统计选票的算法,输出每个候选人的得票结果 2、假设采用单链表存放选票,候选人编号依次为1,2,3,……,N,且每张选票选且只选一人 3、以单链表存放选票,每个结点的data域存放该选票所选的候选人。用一个数组a统计得票结果。 6.2概要设计 用函数CreateList ( )动态建立一个单链表,链表中每个节点的data域为空,返回头节点。Statistics( )函数统计各个后选人所得票数。 在主函数中先输入候选人数n,然后动态建立一维数组a[n]来存放每个候选人所得票数(如a[i]表示第i+1号候选人所得票数),统计选票时调用Statistics( )函数,将整个单链表全部遍历一遍,将各个候选人的得票个数计入到数组a[n]中,最后输出各个候选人的得票情况。 6.3详细设计与编码 流程图

程序代码

#include using namespace std; typedef struct node { int data; struct node *next; }LNode; int n; LNode *CreateList() //构建单链表,每投一票插入一个节点,节点data域存放所选的候选人号码 { LNode *L,*p,*t; int m,i; L=new LNode; L->next=NULL; L->data=NULL; //头结点data域中为空 t=L; cout<<"输入投选票的张数:"; cin>>m; cout<<"请投选票:"<>p->data; p->next=NULL; t->next=p; t=p; } return L; //返回头结点 } void Statistics(LNode *L,int *a) //统计投票情况 { LNode *p; p=L->next; while(p!=NULL) { a[p->data-1]++; //a[i]中存放第i+1号候选人的得票个数 p=p->next; } }

相关文档
最新文档