数据结构大作业报告

数据结构大作业报告
数据结构大作业报告

数据结构大作业报告

数据结构大作业实验报告课程名称:数据结构设计题目:客户去银行储蓄模拟程序一( 实验题目

(1)内容描述:编写一个程序反映客户到银行储蓄的过程。 (2)基本要求:要实现以下功能:1:排队 2:储蓄 3:查看排队4.:删除自己所排的队 5.不再排队,剩下的客户依次储蓄 6:下班

二( 实验的工程组成图和程序结构图

main

bank

本工程的组成结构如左图所示,程序结构图如右图所示。三( 工程所包含的函数的功能描述

Bank():模拟客户到银行去储蓄的过程。客户排队储蓄,所以要用到一个队列,

这里设计了一个不带头结点的单链表作为队列。

四( 实验工程的算法描述及流程图

//客户排队去银行储蓄,用到了队列的知识,这里设计了一个不带头结点的单链表作为队列来完成排队储蓄过程

#include

#include

typedef struct qnode

{

int data;

struct qnode *next;

} QNode; //定义链队结点类型

typedef struct

{

QNode *front,*rear; } QType; //定义链队类型

void bank() //模拟客户储蓄的过程

{

int cho,onwork=1,no,find;

QType *q; //定义链队类型的指针

QNode *p,*r; //定义链队结点的指针

q=(QType *)malloc(sizeof(QType)); //申请链队的空间

q->front=q->rear=NULL; //创建空队

while (onwork==1) //循环执行

{

printf("1:排队 2:储蓄 3:查看排队4:删除自己所排的队 5:不再排队,剩下的客户依次储蓄 6:下班请选择:");

scanf("%d",&cho);

switch(cho)

{

case 1://排队

printf(" ******输入排队序列号:");

do

{

scanf("%d",&no);

find=0;

p=q->front; //p指向第一个客户

while (p!=NULL && !find) //在p不为空&find==0即没找到时{ 执行此循环

if (p->data==no)

find=1;

else

p=p->next;

}

if (find) //若find==1即找到时

printf(" ******输入的排队序列号重复,重新输入:");

} while (find==1); //在find==0即没找到时结束循环

p=(QNode *)malloc(sizeof(QNode)); //申请空间,创建结点p->data=no;p->next=NULL;

if (q->rear==NULL) //第一个客户排队

{

q->front=q->rear=p;

}

else

{

q->rear->next=p;//原来最后一个元素指向新入队的元素

q->rear=p; //修改队尾指针,使其指向当前最后一个元素,即将*p结点入队}

break;

case 2://储蓄

if (q->front==NULL) //队空

printf(" ******没有排队的客户!\n");

else //队不空

{

p=q->front; //p指向第一个客户

printf(" ******客户%d储蓄\n",p->data);

if (q->rear==p) //只有一个客户排队的情况

{

q->front=q->rear=NULL;

}

else

q->front=p->next; //使p的下一个结点变成第一个客户

free(p); //释放p的空间

}

break;

case 3:// 查看排队

if (q->front==NULL) //队空

printf(" ******没有排列的客户!\n");

else //队不空

{

p=q->front; //p指向第一个客户

printf(" ******排队客户:");

while (p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

printf("\n");

}

break;

case 4:// 删除自己所排的队

if (q->front==NULL) //队空

printf(" ******没有排列的客户!\n");

else //队不空

{ printf(" ******输入要删除的排队序列号:"); scanf("%d",&no);

find=0;

p=q->front; //p指向第一个客户

while (p!=NULL && !find) //在p不为空&find==0即没找到时执行此循环

{

if (p->data==no)

{

find=1; //找到要删除的序列号

printf(" ******客户%d删除\n",p->data);

if (q->front==p) //删除的正好是第一个客户的情况

{

q->front=p->next; //使p的下一个结点变成第一个客户

free(p);

}

else if(p->next==NULL) //删除的正好是最后一个客户的情况{

r->next=NULL; //r是p前一个结点

free(p);

}

else

{

r->next=p->next;

free(p);

}

}

else

{

r=p;

p=p->next;

}

}

}

break;

case 5:// 不再排队,剩下的客户依次储蓄

if (q->front==NULL) //队空

printf(" ******没有排列的客户!\n");

else //队不空

{

p=q->front; //p指向第一个客户

printf(" ******客户按以下顺序储蓄:"); while (p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

printf("\n");

}

onwork=0; //退出

break;

case 6://下班

if (q->front!=NULL) //队不空

printf(" ******请排队的客户明天储蓄!\n"); onwork=0; //退出

break;

}

}

}

void main() //主程序

{

bank(); //函数调用

}

五( 实验结果(程序执行如下)

使用说明:

程序运行后,界面会跳出“1:排队 2:储蓄 3:查看排队4:删除自己所排的队 5:不再排队,剩下的客户依次储蓄 6:下班请选择:”的字样。我们可根据需要,选择相应的选项。1为排队,选1 后可将输入的序列号排入队中;2为储蓄,选2后排

在最前面的客户会进行储蓄,然后他的序列号从队列中删除;3为查看排队,选3

后会输出目前的所有客户的排队顺序;4为删除自己所排的队,选4后界面会跳出“输入要删除的排队序列号:”的字样,然后继续输入要删除的序列号,该序列号就会被删除;5为剩下的客户依次储蓄,选5 后系统会自动进行该任务;6为下班,选6后程序将会退出。

六、自己增加的部分(与源程序的不同)

这个程序中选项“4:删除自己所排的队”是我自己加上去的,程序也是我自己编写的。起先一直有问题,不是第一个客户不能删除,就是最后一个客户不能删除。不过我没有放弃,参看书本,查看资料,耐心研究,终于最后我把它做出来了。

七、总结与感想

这次数据结构的大作业,我做了一个模拟客户去银行储蓄的程序。期间我遇到很多困难,尤其是自己编写其中的那段程序时,有好多次运行一直有问题。但我没有灰心,一如既往地耐心探究,终于花了将近一周多的时间,我把它完成了。

这次大作业的完成使我更加深刻地认识到数据结构的奇妙。就这么几行代码,有机地组合起来就能完成一个看似不可能的任务。数据结构是一门神奇的科目,虽然它蕴藏了许多知识,但是我相信只要我们静下心来好好去学,我们都能把它学好。

专项审计调查模板

****(审计机关全称) 专项审计调查报告 *审**调报…20**?**号 被调查单位:**** 审计调查项目:****

根据《中华人民共和国审计法》第二十七条的规定,****(审计机关全称或者规范简称)派出审计组,自****年**月**日至****年**月**日,对****(被调查单位全称或者规范简称。写全称时还应注明“以下简称****”)****(审计通知书列明的审计调查范围)进行了专项审计调查,****(根据需要可简要列明审计调查重点),对重要事项进行了必要的延伸和追溯。****(被调查单位简称)及有关单位对其提供的财务会计资料以及其他相关资料的真实性和完整性负责。***(审计机关全称或者规范简称)的责任是依法独立实施专项审计调查并出具专项审计调查报告。 [说明: 1.审计依据和审计范围应当与审计通知书保持一致。 2.被审计单位作出书面承诺的,应注明。] 一、被调查事项的基本情况 ******************************************************* *********************************************************** ****。 [说明: 1.本部分简要表述被调查事项的背景信息,如被调查事项的管理体制、相关业务活动及其目标、相关业务数据和财务数据、适用的绩效评价标准等。 2.本部分反映的内容应当与专项审计调查目标密切相关。 3.如果引用的数据未经审计调查核实,应当注明来源。] 二、审计调查评价意见 审计调查结果表明,*****************************

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

数据结构实验总结报告

数据结构实验总结报告 李博杰PB10000603 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。 ①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。

数据结构实训报告

《数据结构与算法分析》 课程设计 题目:文字处理程序(字符串的应用) 学生姓名:林武祥 学号:16230243008 专业班级: B16软件工程1班 指导教师:颜慧 学院: 大数据与计算机学院 2017年12月

目录 一、课程设计题目 (1) 二、开发背景 (1) 三、项目总体设计 (1) 3.1需求分析 (1) 3.2系统功能模块设计 (1) 四、详细实现步骤和流程图 (2) 4.1功能实现展示 (2) 4.2流程图框架 (4) 五、部分具体代码分析及实现 (5) 六、项目总结 (9) 七、参考文献 (9)

一、课程设计题目 文字处理程序(字符串的应用)及简单文本编辑器 二、开发背景 由于对于现在的电脑族对电脑的使用频率逐年增大,对电脑的需要具有依赖性。其中不乏有对文本的编辑的需求,因此,本次实训周做了一款简单的文本编辑器的应用程序,对文本编辑器的相关功能做了一定的实现,既简单又实用。 本软件为一个简单而且很实用的文本编辑的工具,不但可以进行一些文字的输入和文本的读取,而且,该文本编辑器也可以对文本进行一些保存、另存、剪切、粘贴、删除等常规的操作,是一款比较适合广大普通用户和非计算机专业的用户和文本编辑的处理软件,本软件不但界面友好,功能齐全,而且操作简单。 三、项目总体设计 3.1需求分析 文字处理程序运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序基本操作:包括文本的复制、粘贴、剪切、删除、查找、替换等功能。统计功能:分别统计出文本文件中的各类字符的个数,包括英文字母个数、空格个数、汉字个数、标点符号个数、总字数等并显示统计信息;允许用户统计某一字符串在文章中出现的次数,并显示统计信息;加密和解密:用户可对指定文本文件进行加密和解密操作;用户可保存该文件。 3.2系统功能模块设计

分析报告模板

XXXXXX分析报告 姓名: 学号: 专业: 设计题目: 2011年 12月 20 日

1.本题目的研究意义,国内外研究现状、水平和发展趋势。 例文: 基于Web的现代管理系统是一种新型的管理方式,随着现代信息技术的发展,它将越来越受到人们的关注并逐步取代传统销售,21世纪它将成为销售管理的主要手段。因此,基于Web的销售管理系统的研究与实现已成为人们极为关注的研究领域。销售管理系统是目前Internet上广泛使用的在线系统之一。销售管理系统要实现的功能非常多,最重要的是对货物的管理,包括货物的买入(进货)如商品的标号、单价、库存量、产地,然后当商品进货时要修改数据库中商品的某些关键字。最后生成一张报表,内容有商品标号、单价、库存量、产地。简单的说,就是包括客户下定单和管理员对该定单的指定相应配送商的两个阶段。在整个过程中,最重要的内容就是对定单的管理,管理员可以修改它的各种属性状态,包括数量,客户的相关信息,目前的库存状态,以及配送商的相关信息。对于货物的买入(进货),完全由管理员来实现。同样包括两个阶段,一是向相应的货物供应商发送定单,另一个是货物进库时,对货物的查收。当收到的货物与原先的预期不同时,系统会自动产生重定订单便于管理员灵活处理。该系统还应提供货物查询功能,以便用户对商品的信息详细了解。对于管理员,系统允许其对商品配送商,商品供应商以及用户和定单的信息进行查询,修改,删除。为了保证数据库的安全及货物销售的顺利进行,系统还需要对用户进行管理。 本系统设计目标是面向中小型商业企业,涵盖了商场业务的主要方面,对商场的进、销、存实施全面管理。采取低平台、低价位的策略,功能高度集成,结构非常紧凑,使用简洁灵活,性能稳定可靠。 本系统主要适用于中小型百货商店、超市和专卖店、便利店等。各种业务数据量相对较小。 2.本题目的基本内容,预计可能遇到的困难,提出解决问题的方法和措施。 例文: 本题目分为系统设计和数据库设计与实现 系统设计:

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

数据结构实验报告.

实验目的 (1)学会用先序创建一棵二叉树。 (2)学会采用递归算法对二叉树进行先序、中序、后序遍历。 (3)学会打印输出二叉树的遍历结果。 实验内容 【问题描述】建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。 【基本要求】 从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进行遍历(先序、中序、后序),将遍历结果打印输出。 【测试数据】 ABCффDEфGффFффф(其中ф表示空格字符) 则输出结果为先序:ABCDEGF 中序:CBEGDFA 后序:CGBFDBA 【选作内容】 采用非递归算法实现二叉树遍历。 实验步骤 (一)需求分析 1、在这个过程中,接受遍历的二叉树是从键盘接受输入(先序),以二叉链表作为存储结构,建立的二叉树。因此,首先要创建一棵二叉树,而这棵二叉树是先序二叉树。本演示程序中,集合的元素设定为大写字母ABCDEFG,输出的先序,中序,后序遍历分别为ABCDEGF,CBEGDFA,CGBFDBA。二叉树可以表示为:

接受的输入数据在进行递归的先序,中序,后序遍历后,分别将结果打印出来。 2、在程序运行的过程中可以看到,以计算机提示用户执行的方式进行下去,即在计算机终端上提示“输入二叉树的先序序列”后,由用户在键盘上输入ABC##DE#G##F###,之后相应的选择遍历及遍历结果显示出来。 3、程序执行的命令包括:首先是二叉树的先序序列被创建输入,其次是对输入进去的先序序列有次序的进行先序,中序,后序遍历。最后是打印出二叉树的遍历结果。 4、测试数据 (1)在键盘上输入的先序序列ABC##DE#G##F### (2)先序遍历结果ABCDEGF

数据结构课程设计需求分析报告

数据结构课程设计需求分析报告 学生姓名(组长):学号: 学院: 专业: 课题名称: 指导教师: 2016年 12 月

目录 1、引言 (3) 1.1编写目的 (3) 1.2项目背景 (3) 1.3定义 (3) 1.4参考资料 (3) 2、任务概述 (3) 2.1目标 (3) 2.2运行环境 (3) 2.3用户特点 (3) 2.4条件与限制 (4) 3、功能需求 (4) 3.1功能划分 (4) 3.2功能描述 (4) 4、数据描述 (4) 4.1数据流图 (4) 4.2数据结构描述 (4) 5、难点及关键技术分析 (5) 6、外部界面需求 (6) 7、性能需求 (6) 7.1时间特性 (6) 7.2兼容性和扩展性 (6) 8、运行需求 (6) 8.1用户界面 (6) 8.2硬件环境 (6) 8.3软件环境 (6) 9、小组分工 (6)

1 引言 1.1编写目的 一直以来人们使用传统的人工方式管理图书馆的日常工作,借书和还书过程主要依靠手工。这样无论是读者还是管理人员都很不方便。在处理借书、还书业务流程的时候效率很低,并且处理能力比较低,一段时间内,所能服务的读者人数有限。利用计算机来处理这些流程会极大程度地提高效率和处理能力。 为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。 本文档为图书馆管理系统软件需求规格说明书,主要是为了使借书者更方便地了解图书馆的图书信息以及帮助管理员处理图书馆日常的工作(借阅图书,登记图书信息,赔偿图书等),本文档可作为图书馆管理系统技术负责人、软件设计人员和软件开发人员的参考资料。 1.2项目背景 说明: a.图书馆管理系统; b.本项目的任务开发者: 面向用户:图书馆的管理人员、借书人员 实现该软件的计算中心或计算机网络:单机运行。 1.3定义 1、ISBN:国际标准书号的简称。 2、系统:图书馆管理软件 3、图书信息:一些图书的基本信息,包括书名、书号、作者、出版社、库存数量及库存位置等信息,便于读者查询借阅 4、借书记录:包括借阅者的姓名、借书证号以及所借书的书名和借书日期等信息 5、借阅规则:对不同的借阅者有不同的借阅册数和借阅时间,对不同的违章情况有不同的罚款措施 2 任务概述 2.1目标 本图书馆管理系统主要应用与小型的图书馆中,方便管理员对大量的图书信息,包括书名、作者、出版社、出版日期、ISBN等进行增加、查询、保存等操作。对于借书者来说只能对图书进行浏览和查询操作。 2.2运行环境 本系统包括两部分:管理员使用的服务器以及用户使用的电脑。对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。 2.3用户特点

专项技术分析报告

专项技术分析报告 单位:xx邦迪工程顾问有限公司 姓名:xx文革 日期:2009年10月20日 关于xx广场地下室侧墙裂缝处理的报告 一、概况: 2010年07月20日,监理人员现场巡视发现海雅广场工程地下三层5区、6区(按后浇带划分施工区域)地下室侧墙拆模后出现大量纵向裂缝,裂缝方向基本为纵向平行分布,缝间间距为2.5米左右,总数16条,裂缝数量多、集中,超出常规地下室施工情况。为避免后续施工中继续出现类似情况,项目监理部特召开内部会议,分析原因,落实处理方法。 二、分析原因,界定性质: 1、浇筑情况分析: 该区域砼浇筑时间为2010年06月16日,目前龄期为34天。采用商品砼,强度等级为C50柱、C30P10侧墙及C30楼板,其中侧墙C30P10设计要求为参配ZY-Ⅱ高性能砼膨胀剂。砼浇筑前检查塌落度符合设计要求,筑过程中,砼强度等级切换有序,振捣密实,操作过程符合规范要求。拆模后砼表面平整、无蜂窝麻面、无浮浆。 从上述情况分析,浇筑过程正常,裂缝形成非浇筑因素导致。 2、原材料分析: ⑴商品砼性能: 侧墙砼强度等级设计为C30P10参配ZY-Ⅱ高性能砼膨胀剂,C30P10砼是常规材料,属于能掌控型的材料,同类项目中使用广泛。

但参配ZY-Ⅱ高性能砼膨胀剂使用条件较为苛刻,对养护要求很高,现场施工条件无法达到该材料要求的控温条件。⑵配合比: 砼配合比设计未考虑高温、雨季潮湿和正常情况下试配三种配比来适应不同浇筑条件下施工需要,仅试配了正常施工情况下配合比。 ⑶外加剂、参配料 参配料ZY-Ⅱ高性能砼膨胀剂,根据膨胀剂性能资料体现,该参配料是增加水化热。膨胀剂终凝时间大于砼终凝时间,砼终凝后参配料仍在释放水化热。 砼配制过程中未采取加冰水降温措施,导致砼入模温度过高,超出ZY-Ⅱ高性能砼膨胀剂的使用条件范围。 3、运输、施工条件: 运输距离约10公里,较远且交通拥堵,导致砼抵达施工现场塌落度损失较大。 由于工期紧张,浇筑时间未选择气温较低的晚上进行。带模养护过程中,受现场施工条件限制,养护次数未达到预计次数,水化热不能及时释放。 4、性质界定: 虽然本次质量事故涉及的地下室侧墙裂缝较多,但收缩裂缝不影响结构安全。但对地下室防水影响较大,需妥善处理。 四、处理方法: ⑴针对目前已出现的裂缝: 该裂缝为收缩裂缝,不影响结构安全,但由于裂缝通透,对地下室防水影响大,必须处理好。因上部上有7层结构未施工完成,在荷载作用下裂缝会继续开展,因此裂缝修复必须在裂缝扩展稳定后实施。具体方法,在上部结构施工完成后,在裂缝上涂抹石膏检查裂缝是否已经扩展稳定。裂缝稳定后采用大于0.5MP压力注浆方式堵缝。 ⑵针对后期尚未施工的地下室侧墙:

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

财政专项项目验收报告(模板)

项目验收报告(模版) 项目执行单位_________________________________________ 项目名称_____________________________________________ 项目负责人___________________________________________ 填报日期____________________________________________

XX单位XX项目验收报告 一、项目概况 (一)项目基本情况:立项情况、实施主体、项目资金及主要内容。 (二)项目年度预算绩效目标和绩效指标设定情况 (包括预期总目标及阶段性目标,衡量绩效目标实现程度的评价指标、标准等) 二、项目决策及资金使用管理情况 (一)项目决策情况(包括决策过程和结果) (二)项目资金(包括财政资金、自筹资金等)安排落实、总投入等情况 (三)项目资金(主要是指财政资金)实际使用情况(包括具体支出使用内容及金额) (四)项目资金管理情况(包括管理制度、办法的制订及执行情况) 三、项目组织管理情况 (一)项目组织情况(包括项目招投标情况、调整情况、完成验收等情况) (二)项目管理情况(包括项目管理制度建设、日常检查监督等情况) 四、项目绩效情况

(一)项目绩效目标完成情况。从项目的经济性、效率性、有效性和可持续性等方面对项目绩效进行量化、具体分析。 【其中:项目的经济性分析主要是对项目成本(预算) 控制、节约等情况进行分析;项目的效率性分析主要是对项目实施(完成)的进度及质量等情况进行分析(中期跟踪是对项目实施的阶段性的进度及质量等情况进行分析);项目的有效性分析主要是对反映项目资金使用效果的个性指标进行分析;项目的可持续性分析主要是对项目完成后,后续政策、资金、人员机构安排和管理措施等影响项目持续发展的因素进行分析。】 (二)项目绩效目标未完成或未按调整后进度完成情况及原因分析。(预算执行绩效与绩效目标偏离的原因分析等) 1. 项目绩效目标未完成情况及原因分析 2. 项目绩效目标未按调整后进度完成情况及原因分析 (三)绩效目标成果应用情况(项目完成后的成果已实施应用情况或预计实施应用情况,特别是延续性项目应有历年完成成果的应用) 五、其他需要说明的问题 (一)后续工作计划。 (二)主要经验及做法、存在问题和建议。 项目负责人: (签字) 【与项目申报文本中的项目负责人一致】

数据结构课实训报告报告

数据结构实训报告 题目: 用C 实现外部流文件的引用 一、课程设计题目: 二、问题描述: 1、外部流文件的引用。 2、输入,输出控件化。 三、问题分析 以明确的无歧义的陈述说明课程设计的任务,强调的是程序要做什么? 我们小组认为,本题的要求是在于用JAVA 实现对外部数据库的调用,更新,排序以及删除。在一开始,我们打算用本学期所学习的数据结构方面的知识再结合上学期所学的JAVA 控件知识来实现这道题目(见图) ,但是在调试过程中遇到了很大的问题,不得不中

途换别的方式进行算法实现。

并明确规定: 1、输入的形式和输入值的范围;数据库表格的形式输入,并依照数据库表格字段值的规定来规定输入值。 2、输出的形式;用JAVA语言来进行窗口式的调用。 3、程序所能达到的功能;在JAVA界面进行对外部数据库的简单应用。比如进行查询,更新,排序以及删除。 4、算法涉及的基本理论分析:窗口界面是基于事件的程序,用户对具体图形组件的选择和激活,产生事件。在程序中创建监听器类并注册事件,并实例化。 5、题目研究和实现的价值。我们小组认为,本题的研究价值在于,此题目设计多个程序的跨平台应用,通过JAVA程序对数据库的加载和调用,实现后台调用和操作数据库。实现的价值是,通过这个简单的程序初步认识到编程这项工作在将来的程序开发中的作用和价值。

四、算法设计 1、概要设计 阐述说明本算法中用到的所有数据结构的定义及其含义、主程序的流程以及各程序模块之间的层次(调用)关系。 因为涉及到外部文件流的引用,所以我们小组进行的方式是用JAVA命令式的程序对数据库进行创建,删除,插入以及查找。 我们用了四个小程序来进行对数据库的调用,分别是见图。 2、详细设计 (1)实现概要设计中定义的所有数据类型;货号(char),品名(char),进口(boolean),单价(integer),数量(integer),开单日期(date),生产单位(char)。 (2)所有函数的接口描述;ListSelectionListener,WindowListener,处理窗口时间的监听器类。 (3)所有函数的算法描述(只需要写出伪码算法);函数为调用数据库和对数据库操作以及构造用户图形界面。 (3)对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序),可采用流程图、N –S 图或PAD图进行描述;操作数据库的主程序为两个类,其中try类是对数据库进行加载桥接以及创建,catch类是依照算法的健壮性,对错误情况的处理。 (4)画出函数的调用关系图。无。 五、算法实现 创建数据表程序J_AccessCreateTable import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class J_AccessCreateTable{

【最新】工作单位加具核实意见,专项技术分析报告word版本 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 工作单位加具核实意见,专项技术分析报告 篇一:我们的人事档案 人事档案挂靠或保管人员专业技术资格职称评审 一、职称评审首要条件 人事档案在天河区人才办已办理挂靠或保管手续的人员 二、专业技术资格的评审对象及范围 所谓职称评审是指已经经过初次职称认定的专业技术人员,在经过一定工作年限后,在任职期内完成相应的继续教育学时,申报中级职称以上的人员须在省级专业期刊发表论文并且经过一些基本技能考试(如:职称外语及计算机应用能力考试等),向相应专业的评审委员会评委提交评审材料,经过各相应专业评委来确定其是否具备高一级职称资格。 在我市各种所有制经济成分的企事业单位从事专业技术工作的专业技术人员;从市外到我市工作,行政人事关系虽未正式调入我市,但与我市某一企事业单位已签订两年以上协约(或聘约),实行了聘任管理,在应聘单位从事专业技术工作一年以上,并取得了专业技术工作业绩的专业技术人员。 三、职称评审条件 不同系列(专业)、档次的专业技术资格对学历、资历的要求有所不同(详见各系列专业技术资格条件)。大体而言,各系列(专业)、档次对学历、资历的要求如下表: 1 2 四、办理程序 3

注意:送评材料要装在不易破损的牛皮纸档案袋内,档案袋正面左上角注明主 管单位名称。 4 五、评审费用 办公地址:广州市天河区天府路1号大院5号楼3014室 联系电话:38622436传真电话:38622395联系人:郭小姐对外办公时间:星 期一至星期四上午8:30-12:00 下午2:00-5:30; 星期五上午8:30-12:00 5 篇二:广东省专业技术资格评审表 申报评审表(二) 主管单位名称: 广东省专业技术资格评审表 姓名身份证号码现专业技术资格申报何专业技术资格专业资格工作 单位填表时间 广东省人事厅制 填表说明 1、本表主要适用于工程、农业、卫生、自然科学研究、社会科学研究等各类人员申报评审各档次专业技术资格之用。高等、中等专业学校教师和中小学 教师以另表申报。 2、本表应用钢笔或毛笔以正楷填写;除另有要求外,打印亦可。内容务须真实、准确,字迹应端正、清晰。如内容较多,可酌加附页。如无某项内容的应明确 在该栏注明“无”字样。 3、本表由单位出具意见部分,待评前公示结束之后方得填写。各项评价结论不与本人见面。 4、申报时提交本表一式一份。专业技术资格经评审通过并经人事部门批准后,本表退回用人单位存入个人档案。 5、本表共14页,纸张规格为A4,双面印制;其结构、字体、字号不予改变。

数据结构实验报告(图)

附录A 实验报告 课程:数据结构(c语言)实验名称:图的建立、基本操作以及遍历系别:数字媒体技术实验日期: 12月13号 12月20号 专业班级:媒体161 组别:无 姓名:学号: 实验报告内容 验证性实验 一、预习准备: 实验目的: 1、熟练掌握图的结构特性,熟悉图的各种存储结构的特点及适用范围; 2、熟练掌握几种常见图的遍历方法及遍历算法; 实验环境:Widows操作系统、VC6.0 实验原理: 1.定义: 基本定义和术语 图(Graph)——图G是由两个集合V(G)和E(G)组成的,记为G=(V,E),其中:V(G)是顶点(V ertex)的非空有限集E(G)是边(Edge)的有限集合,边是顶点的无序对(即:无方向的,(v0,v2))或有序对(即:有方向的,)。 邻接矩阵——表示顶点间相联关系的矩阵 设G=(V,E) 是有n 1 个顶点的图,G 的邻接矩阵A 是具有以下性质的n 阶方阵特点: 无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2 有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n2 9

无向图中顶点V i的度TD(V i)是邻接矩阵A中第i行元素之和有向图中, 顶点V i的出度是A中第i行元素之和 顶点V i的入度是A中第i列元素之和 邻接表 实现:为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧) 特点: 无向图中顶点Vi的度为第i个单链表中的结点数有向图中 顶点Vi的出度为第i个单链表中的结点个数 顶点Vi的入度为整个单链表中邻接点域值是i的结点个数 逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表。 图的遍历 从图中某个顶点出发访遍图中其余顶点,并且使图中的每个顶点仅被访问一次过程.。遍历图的过程实质上是通过边或弧对每个顶点查找其邻接点的过程,其耗费的时间取决于所采用的存储结构。图的遍历有两条路径:深度优先搜索和广度优先搜索。当用邻接矩阵作图的存储结构时,查找每个顶点的邻接点所需要时间为O(n2),n为图中顶点数;而当以邻接表作图的存储结构时,找邻接点所需时间为O(e),e 为无向图中边的数或有向图中弧的数。 实验内容和要求: 选用任一种图的存储结构,建立如下图所示的带权有向图: 要求:1、建立边的条数为零的图;

数据结构分析报告

银行自动取款系统 一、目的 根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 二需求分析 根据任务书里的“课程设计的基本要求”及给定的“课程设计的主要内容”。编写的银行自动提款模拟系统由使用者担当银行卡使用者自行输入卡号模拟银行卡使用系统进行各项操作,该系统有简便、稳定等特点。 该系统开始时有使用者自行初始化各项数据,包括卡的数量,一天内可操作次数上相及“银行卡”的卡号和余额,使用者可根据不同情况对系统的各项内容进行初始化,方便、快捷。 当使用者输入错误数据及操作次数达到上限时系统会自动退出或者给出相应的恢复提示使用者重新操作,直到输入正确,系统不会出现异常、突然崩溃,稳定。 1、所实现的功能: ①.系统能够让使用者自行输入卡的数量及每天操作次数上限,然后初始化卡的卡号和卡上所拥有的余额; ②.初始化信息后,可以开始使用系统进行存取款,输入卡号,如果卡号为负责退出程序、卡号不存在则提示重新输入直到输入正确为止,如果此卡的操作次数已达上限则同样退出程序; ③.输入正确后可以输入想要存取款数目,当数目为正是存款,负数为取款; ④.正确存取款后,系统会自行输出操作、卡上余额和剩下操作次数到屏幕,然后返回选择菜单,使用者可以再进行选择进行操作。 2、测试预测 ①.进行测试,每个编写的函数逐个进行调试直到都能够正常运行; ②.在进行存取款操作都,所对应卡的操作次数应加一,余额能够进行相应的改变; ③.程序的各项运作结果与预想的与一样。 三概要设计 程序的主要功能函数包括如下几个部分:

相关文档
最新文档