文档库 最新最全的文档下载
当前位置:文档库 › 数据结构图书管理系统课程设计报告

数据结构图书管理系统课程设计报告

数据结构图书管理系统课程设计报告
数据结构图书管理系统课程设计报告

一、设计题目与要求

【问题描述】

设计一个计算机管理系统完成图书管理基本业务。

【基本要求】

(1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;

(2) 对书号建立索引表(线性表)以提高查找效率;

(3) 系统主要功能如下:

①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;

③归还:注销对借阅者的登记,改变该书的现存量。

二、小组分工

小组成员:

小组分工:图书初始化、新书入库、登记读者信息、文件保存

借书系统、还书系统

图书信息查询、读者信息查询

三、需求分析

图书管理系统共需要八个模块,分别是1图书初始化、2新书入库、3添加读者信息、4借书模块、5还书模块、6查询图书信息、7查询读者信息、8退出。

我负责其中的四个模块,如下所示:

1)图书初始化

输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。

2)新书入库

新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。

3)添加读者信息

读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书

4)退出和文件保存

退出读书管理系统并保存读者和图书信息。

四、概要设计

图书信息和读者信息都采用结构体类型保存。

图书信息里面包括:图书编号、图书名称、作者、现有量、库存量、指向下一节点的指针。

读者信息里面包括:读者编号、读者姓名、借书数量、可借图书数量、指向下一节点的指针。

所有图书和读者都分别以链表的形式存储,并以编号为唯一主键。采用链表形式便于数据的添加与删改。

主要的操作为:系统初始化,图书入库,读者信息登记,图书信息和读者信息文件的保存。

五、详细设计

数据结构的定义:

图书信息:

typedef struct book

{

char book_num[10];

char book_name[20];

char book_writer[10];

int book_xy;

int book_kc;

struct book *next;

}BK;

读者信息:

typedef struct reader

{

char reader_num[10];

char reader_name[10];

int right;

BO borrow[Max];

struct reader *next;

}RD;

算法描述:

进入系统后首先进行图书初始化,输入图书的信息。

1)初始化

先要输入读者信息。

2)采编入库

3)输入读者信息

5) 退出和文件保存

六、程序源代码

#include

#include

#include

#include

#define Max 4

typedef struct book

{

char book_num[10];

char book_name[20];

char book_writer[10];

int book_xy; //现有

int book_kc; //库存

struct book *next;

}BK;

typedef struct borrow

{

char borrow_book_num[10]; char limit_date[10];

}BO;

typedef struct reader

{

char reader_num[10];

char reader_name[10];

int right;

BO borrow[Max];

struct reader *next;

}RD;

BK *h_book;

RD *h_reader;

void Login();

int Menu();

void Init();

void Init_book();

void Menu_select();

void Insert_New_Book(); void Find_Book();

void add_reader();

void Save();

void Save_Book();

void Save_Reader();

void Load();

void Load_Reader();

void Load_Book();

void Login()

{

system("cls");

printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t\t欢迎使用图书管理系统\n");

printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t 按任意键进入系统");

getch(); system("cls");

}

int Menu() /*主菜单*/

{ int dm;

printf("\n\t\t图书管理系统主菜单\n");

printf("=================================================\n"); printf("*\t0----退出系统\n");

printf("*\t1----采编入库\n");

printf("*\t2----登记读者\n");

printf("=================================================\n"); printf("请选择相应的代码:");

for(;;)

{ scanf("%d",&dm); //dm输入的数字

if(dm<0||dm>6)

printf("\n错误!请重新输入:");

else break;

}

return dm;

}

void Menu_select()/*主菜单选择函数*/

{

for(;;)

{

switch(Menu()) /*功能选择*/

{ case 0:

system("cls");

Save();

printf("\n\n\t文件保存成功!\n");

printf("\n\n\t欢迎下次使用本系统!\n");

getch();

exit(0);

case 1:Insert_New_Book();break;

case 2:add_reader();break;

default:printf("\n错误!");

exit(0);}

}

}

void Init() /*初始化*/

{

BK *p0;

printf("\n图书初始化开始,请输入图书信息\n包括编号.书名.数量\n");

p0=(BK*)malloc(sizeof(BK));

h_book=p0;

printf("\n请输入图书信息:\n");

printf("图书编号:"); /*输入图书编号(唯一)*/

scanf("%s",p0->book_num);

printf("图书名称:"); /*输入图书名称*/

scanf("%s",p0->book_name);

printf("图书作者:"); /*输入图书作者*/

scanf("%s",p0->book_writer);

printf("图书数量:"); /*输入图书数量*/

scanf("%d",&p0->book_kc);

p0->book_xy=p0->book_kc; /*开始时图书现有量和库存量相等*/

p0->next=NULL;

printf("\n图书信息初始化完毕!按任意键继续下一步操作\n");

getch();

system("cls");

}

void Insert_New_Book()/*新书入库*/

{

BK *p,*p0,*p1;

p=p1=h_book;

printf("\n新书入库模块\n");

printf("\n请输入新书信息\n包括书号.书名.数量\n");

p0=(BK *)malloc(sizeof(BK));

printf("图书编号:");

scanf("%s",p0->book_num);

while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL)

p1=p1->next;

if(strcmp(p0->book_num,p1->book_num)==0) /*此处分两种情况,若图书编号存在,则直接进库,只须

输入书的数量*/

{

printf("\n此编号图书已存在!!直接入库!\n");

printf("图书数量:");

scanf("%d",&p0->book_kc);

p1->book_kc+=p0->book_kc;

p1->book_xy+=p0->book_kc;

}

else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/

{

printf("图书名称:");

scanf("%s",p0->book_name);

printf("图书作者:");

scanf("%s",p0->book_writer);

printf("图书数量:");

scanf("%d",&p0->book_kc);//库存数量

while(p->next)

{ p=p->next; }

if(h_book==NULL) h_book=p0; /*此处分两种情况,链表中没有数据,head直接指向p0处*/

else p->next=p0; /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0

处*/

p0->next=NULL;

p0->book_xy=p0->book_kc;

}

printf("\n新书入库完毕!按任意键继续下一步操作\n");

getch();

system("cls");

}

void add_reader()/*添加读者*/

{ RD *p0,*p,*p1;

int i;

p=h_reader;

printf("\n读者初始化开始,请输入读者信息.\n包括书证号.姓名..\n");

if (p==NULL)

{

p0=(RD*)malloc(sizeof(RD)); /*申请新结点存储空间*/

h_reader=p0;

p=h_reader;

printf("读者书证号:");

scanf("%s",p0->reader_num);

printf("读者姓名:");

scanf("%s",p0->reader_name);

p0->right=0;

for(i=0;i

{

strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借图书直接置为(即没有借书)*/ strcpy(p0->borrow[i].limit_date,"0");

}

p0->next=NULL;

}

else

{

p0=(RD*)malloc(sizeof(RD));

p1=h_reader;

printf("\n请输入读者的信息:\n");

printf("读者书证号:");

scanf("%s",p0->reader_num);

for(;;)

{

while(strcmp(p0->reader_num,p1->reader_num)!=0&&p1->next!=NULL)

p1=p1->next;

if(strcmp(p0->reader_num,p1->reader_num)==0)

{

printf("\n此读者编号已存在,请重新输入!\n");

printf("读者书证号:");

scanf("%s",p0->reader_num);

p1=h_reader;

}

else

{

printf("读者姓名:");

scanf("%s",p0->reader_name);

break;}

}

p0->right=0;

for(i=0;i

{

strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借图书直接置为(即没有借书)*/ strcpy(p0->borrow[i].limit_date,"0");

}

p1->next=p0;

p1=p1->next;

p1->next=NULL;

}

printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");

getch();

system("cls");

}

void Save() /*保存信息*/

{

Save_Reader();

Save_Book();

}

void Save_Reader() /*保存读者信息*/

{

FILE *fp_reader;

RD *p,*p0;

p=h_reader;

if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*创建文件,进行保存*/

{

printf("\n文件保存失败!\n请重新启动本系统\n");

exit(0);

}

while(p!=NULL)

{

if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /*将链表中的信息写入文件中*/

printf("\n写入文件失败!\n请重新启动本系统!\n");

p0=p;

p=p->next;

free(p0); /*释放所有结点*/

}

h_reader=NULL;

fclose(fp_reader); /*关闭文件*/

}

void Save_Book() /*保存图书信息*/

{

FILE *fp_book; /*创建文件型指针*/

BK *p,*p0;

p=h_book;

if((fp_book=fopen("Book.txt","wb"))==NULL) /*创建文件,进行保存*/

{

printf("\n文件保存失败!\n请重新启动本系统\n");

exit(0);

}

while(p!=NULL)

{

if(fwrite(p,sizeof(BK),1,fp_book)!=1) /*将链表中的信息写入文件中*/ printf("\n写入文件失败!\n请重新启动本系统!\n");

p0=p;

p=p->next;

free(p0);

}

h_book=NULL;

fclose(fp_book); /*关闭文件*/

}

void Load() /*加载信息*/

{

Load_Reader();

Load_Book();

}

void Load_Reader() /*加载读者信息*/

{

RD *p1,*p2,*p3;

FILE *fp; /*创建文件型指针*/

fp=fopen("Reader.txt","rb"); /*打开文件*/ p1=(RD *)malloc(sizeof(RD));

fread(p1,sizeof(RD),1,fp);

h_reader=p3=p2=p1;

while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(RD *)malloc(sizeof(RD));

fread(p1,sizeof(RD),1,fp);

p2->next=p1;

p3=p2;

p2=p1;

}

p3->next=NULL;

free(p1);

fclose(fp); /*关闭文件*/

}

void Load_Book() /*加载图书信息*/

{

BK *p1,*p2,*p3;

FILE *fp; /*创建文件型指针*/

fp=fopen("Book.txt","rb"); /*打开文件*/

p1=(BK *)malloc(sizeof(BK));

fread(p1,sizeof(BK),1,fp);

h_book=p3=p2=p1;

while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(BK *)malloc(sizeof(BK));

fread(p1,sizeof(BK),1,fp);

p2->next=p1;

p3=p2;

p2=p1;

}

p3->next=NULL;

free(p1);

fclose(fp); /*关闭文件*/

}

void main()

{

FILE *fp_book,*fp_reader; /*创建文件型指针*/

Login();

if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt","rb"))==NULL) { Init(); }

else Load();

Menu_select(); /*调用主菜单*/

}

七、运行结果和调试分析

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

结构力学课程设计报告

一. 课程设计的目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要 功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2. 通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规 律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打 下坚实的基础 二. 课程设计的内容 (1).对图示两类桁架进行分析 在相同荷载作用下,比较各类桁架的受力特点; 讨论各种杆件(上弦杆,下弦杆,竖杆,斜杆)内力随 随高跨比变化的规律; 若增加杆件使其成为超静定桁架,内力有何变化。 (2).两种结构在静力等效荷载作用下,内力有哪些不同? 平行弦桁架 1/2 1 1 1 1 1 1/2 三角桁1/2 1 1 1 1 1 1/2

(3)、用求解器自动求解功能求a=2和a=1.0时的各杆内力。比较两种情况内力分布,试用试算法调整a 的大小,确定使弯矩变号的临界点a 0,当a=a 0时结构是否处于无弯矩状态? (4) 、图示为一个两跨连续梁,两跨有关参数相同(l =6m ,E =1.5*106kPa ,截面0.5*0.6m 2,线膨胀系数1.0*10-5)。第一跨底部温度升高60oC ,分析变形和内力图的特点。 (4) 、计算下支撑式五角形组合屋架的内力,并分析随跨高 比变化内力变化规律。当高度确定后内力随f 1,f 2的比例不同的变化规律(四个以上算例)。 1/4 11×(1/2) 1/4 1/2 1 1 1 1 1 1/2 a a a a 3 6m 6m

一. 课程设计的数据 1. 第(1)题数据 1) 平行弦桁架 a) 高跨比1:4(每小格比例2:3) 输出图形: 输出内力值: 内力计算 杆端内力值 ( 乘子 = 1) ----------------------------------------------------------------------------------------------- 3m 3m 3m 3m f 2 f 1 f =1.2m q =1kN/m

结构力学实验报告模板1

结构力学实验报告 班级12土木2班 姓名 学号

实验报告一 实验名称 在求解器中输入平面结构体系 一实验目的 1、了解如何在求解器中输入结构体系 2、学习并掌握计算模型的交互式输入方法; 3、建立任意体系的计算模型并做几何组成分析; 4、计算平面静定结构的内力。 二实验仪器 计算机,软件:结构力学求解器 三实验步骤 图2-4-3 是刚结点的连接示例,其中图2-4-3a 中定义了一个虚拟刚结点和杆端的连接码;各个杆端与虚拟刚结点连接后成为图2-4-3b 的形式,去除虚拟刚结点后的效果为图2-4-3c 所示的刚结点;求解器中显示的是最后的图2-4-3c。图2-4-4 是组合结点的连接示例,同理,无需重复。铰结点是最常见的结点之一,其连接示例在图2-4-5 中给出。这里,共有四种连接方式,都等效于图2-4-5e 中的铰结点,通常采用图2-4-5a 所示方式即可。值得一提的是,如果将三个杆件固定住,图2-4-5b~d 中的虚拟刚结点也随之被固定不动,而图2-4-5a 中的虚拟刚结点仍然存在一个转动自由度,可以绕结点自由转动。这是一种结点转动机构,在求解器中会自动将其排除不计①。结点机构实际上也潜存于经典的结构力学之中,如将一个集中力矩加在铰结点上,便可以理解为加在了结点机构上(犹如加在可自由转动的销钉上),是无意义的。 综上所述,求解器中单元对话框中的“连接方式”是指各杆端与虚拟刚结点的连接方式,而不是杆件之间的连接方式。这样,各杆件通过虚拟刚结点这一中介再和其他杆件间接地连接。这种处理的好处是可以避免结点的重复编码(如本书中矩阵位移法中所介绍的),同时可以方便地构造各种

数据结构课程设计题目2010

一、数据结构课程设计要求 1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。 2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。 3.课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上2小时的上机来调试C 或C++语言设计的程序,总共至少要上机调试程序20小时。属教师安排上机时间学生不得缺席。 二、数据结构课程设计题目 1. 运动会分数统计(限1 人完成) 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分, 3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5) 数据存入文件并能随时查询 6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2. 飞机订票系统(限1 人完成) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

结构力学求解器求解示例

结构力学(二)上机试验结构力学求解器的使用 上机报告 班级: 姓名: 学号: 日期:

实验三、计算结构的影响线 1.实验任务 (1)作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器:D M 的影响线 观览器:QD F 的影响线 D |F=1 3 365

编辑器: 结点,1,0,0 结点,2,3,0 结点,3,6,0 结点,4,12,0 结点,6,6,1 结点,5,17,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,0 单元,3,6,1,1,0,1,1,0 单元,6,5,1,1,0,1,1,0 结点支承,1,3,0,0,0 结点支承,4,1,0,0 结点支承,5,3,0,0,0 影响线参数,-2,1,1,3 影响线参数,-2,1,1,2 End

作以下图示梁中截面D 的内力D M 、QD F 的影响线。 观览器: D M 的影响线 QD F 的影响线

编辑器: 结点,1,0,0 结点,2,2,0 结点,3,4,0 结点,4,6,0 结点,5,8,0 结点,6,0,1 结点,7,8,1 结点,8,2,1 结点,9,4,1 结点,10,6,1 单元,1,2,1,1,0,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,4,5,1,1,1,1,1,0 单元,1,6,1,1,1,1,1,0 单元,6,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,7,1,1,0,1,1,0 单元,7,5,1,1,0,1,1,0

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

结构力学 上机实验报告

实验报告一 平面刚架内力计算程序APF 实验目的:(1)分析构件刚度与外界温度对结构位移的影响,如各杆刚度改变对内力分布的影响、温度因数对内力分布的影响。 (2)观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解 (3)掌握杆系结构计算的《结构力学求解器》的使用方法。通过实验加深对静定、超静定结构特性的认识。 实验设计1: 计算图示刚架当梁柱刚度12I I 分别为15、11、15、1 10时结构的内力和位移,由此分析当刚架在水平荷 载作用下横梁的水平位移与刚架梁柱 比(1 2I I )之间的关系。(计算时忽略轴向变形)。 数据文件: (1)变量定义,EI1=1,EI2=0.2(1,5,10) 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 (2)变量定义,EI1=5(1,0.2,0.1),EI2=1 结点,1,0,0 结点,2,0,4 结点,3,6,4 结点,4,6,0 单元,1,2,1,1,1,1,1,1 单元,2,3,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,4,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,1,-1,EI1,0,0,-1 单元材料性质,2,2,-1,EI2,0,0,-1 单元材料性质,3,3,-1,EI1,0,0,-1 主要计算结果: 位移:

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (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。

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

结构力学课程设计(word)

结构力学课程设计 专业: 班级: 姓名: 学号: 指导老师: 日期:2015年7月5日

目录 前言 (1) 问题一: (3) 问题描述: (3) 程序说明: (3) 全选主元高斯约当消去法: (3) 全选主元高斯约当消去法的程序及注解如下: (4) 运行结果: (6) 问题二: (6) 问题描述: (6) 方法一:追赶法 (7) 程序说明: (7) 追赶法带型的计算程序及注解: (7) 运行结果: (9) 总结与思考: (9) 方法二:列选主元高斯消去法算带型问题 (10) 程序说明: (10) 列选主元高斯消去法算带型计算程序及注解: (10) 运行结果: (12) 反思与对比(收获): (12) 问题三: (13) 问题描述: (13) 程序框图: (14) 程序特点: (14) 1.主要变量: (15) 2.子例行子程序哑元信息: (15) 3.文件管理: (16) 4.数据文件格式: (16) 源程序: (17) 输入数据如下(input.txt): (23) 输出数据如下(output.txt): (23) 程序运行后输出数据结果如下(需要手动打开output.txt文件): (24) 总结与收获: (25) 参考文献: (26)

前言: 经过这学期的学习与积累,对结构力学这门课程有所收获,结构力学这门课程对我们学习飞行器设计与专业的学生来说,那就是手足的关系,因为我感觉任何航空、航天器都离不开结构的设计,只要有结构就牵涉到结构力学的分析与计算,因为航空器在空中飞行要遇到很多“挫折”,结构力学就是来分析这些个“挫折”下,看航空器能不能经受得了。结构力学课程从内容上讲,主要涉及机构的几何组成分析,求解静定、超静定结构内力的虚功原理。具体分析问题的方法包括力法、位移法等。但对于复杂结构来讲,简单的手算的方法过于繁琐。因此,由于课程设计偏重于利用Fortran 语言编写有限元子程序来完成复杂结构的内力计算,我就恶补了好几天的与Fortran有关的知识,下面就现学现卖的计算了王老师给的三个问题,肯定有不妥之处,希望读者纠错。

结构力学实验

结构力学 桁架结构受力性能实验报告 学号:1153377 姓名:周璇 专业:土木工程 实验时间:2016年05月04日周三,中午12:30-13:30 实验指导教师:陈涛 理论课任课教师:陈涛

一、实验目的 (1)参加并完成规定的实验项目内容,理解和掌握结构的实验方法和实验结果,通过 实践掌握试件的设计、实验结果整理的方法。 (2)进行静定、超静定结构受力的测定和影响线的绘制。 二、结构实验 (一)空间桁架受力性能概述 桁架在受结点荷载时,两边支座处产生反力,桁架中各杆件产生轴力,如图1.1为在抛物线桁架结点分别加载时结构示意图。用Q235钢材,桁架跨度6?260=1560mm ,最大高度260mm 。杆件之间为铰接相连。杆件直径为8mm 。 图1.1 (二)实验装置 图1.2为框架结构侧向受力实验采用的加载装置,25kg 挂钩和25kg 砝码。采用单结点集中力加载,由砝码、挂钩施加拉力,应变片测算待测杆件应变。结构尺寸如图1.2所示。 图1.2 (三)加载方式 简单多次加载,将挂钩和砝码依次施加在各个结点,待应变片返回数据稳定后,进行采集。采集结束后卸下重物,等待应变片数值降回初始值后再向下一节点施加荷载,重复采集操作。 (四)量测内容 需要量测桁架待测杆件的应变值在前后四对桁架杆布置单向应变片,具体布置位置如图 1.2 所示,即加粗杆件上黏贴应变片。 三、实验原理 对桁架上的5个位置分别施加相同荷载,记录不同条件下各杆件的应变值。 由公式 2 4 F A E d A σσεπ? ?=? =???=?

可以得到 24 d E F πε = 其中: F ——杆件轴力 E ——Q235钢弹性模量 d ——杆件直径 ε ——杆件应变值 σ ——杆件应力 A ——杆件横截面积 因而可以求得各杆件轴力,进而得到不同杆件的轴力影响线。 四、实验步骤 (1)将载荷挂在加载位置1,待应变片返回数据稳定后,采集相应应变数据。 (2)待应变片数值降回初始值后,重复(1)中操作,将荷载分别挂在加载位置2,3,4,5,分别采集记录各自对应的各杆件应变数据。 五、实验结果与整理 将对应位置杆件应变值取平均值,得到所示一榀桁架四根杆件的应变值如表2.2所示。

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

数据结构课程设计 报告

数据结构课程设计报告 压缩软件 一·问题描述 利用哈夫曼编码设计一个压缩软件,能对任何类型的文件进行哈夫曼编码,产生编码后的文件——压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件——解压文件。 二·基本要求 要求编码和译码的效率尽可能地高。 三·工具/准备工作 已学内容:哈夫曼树,哈夫曼树构造算法,哈夫曼编码,Huffman压缩算法。 需要的硬件设施与开发软件:一台计算机,并安装了Visual C++. 四·分析与实现 Huffman树中,叶子结点包含字符以及对应的字符频度(权值) struct HTNode{ //压缩用Huffman树结点 unsigned long weight; //字符频度(权值) unsigned int parent,lchild,rchild; };

使用哈夫曼编码能够对文件进行压缩,由于字符的哈夫曼编码以比特为单位,而当将哈夫曼编码以压缩文件进行存储时,压缩文件最少以字节为单位进行存储,因此需要定义字节缓冲器,以便自动将比特转换为字节,定义如下: struct Buffer{ //字节缓冲压缩用Huffman树 char ch; //字节 unsigned int bits; //实际比特数 }; 定义哈夫曼树的抽象基类模板,实现建树,压缩,解压等功能 class HuffmanTree{ //Huffman树 public: void Code(); //编码 void UnCode(); //译码 private: HTNode HT[m+1]; //树结点表(HT[1]到HT[m]) char Leaf[n+1]; //叶结点对应字符(leaf[1]到leaf[n]) char *HuffmanCode[n+1]; //叶结点对应

结构力学个人总结

结构力学个人总结 本页是精品最新发布的《结构力学个人总结》的详细文章,。篇一:结构力学心得体会 结构力学心得体会 本学期结构力学的课程已经接近尾声。主要是三部分内容,即渐近法、矩阵位移法和平面刚架静力分析的程序设计。通过为期八周的理论课学习和六次的上机课程设计,我收获颇丰。 而对结构力学半年的学习,也让我对这门学科有了很大的认识。结构力学是力学的分支,它主要研究工程结构受力和传力的规律以及如何进行结构优化的学科。工程力学是机械类工种的一门重要的技术基础课,许多工程实践都离不开工程力学,工程力学又和其它一些后绪课程及实习课有紧密的联系。所以,工程力学是掌握专业知识和技能不可缺少的一门重要课程。 首先,渐近法的核心是力矩分配法。计算超静定刚架,不论采用力法或位移法,都要组成和验算典型方程,当未知量较多时,解算联立方程比较复杂,力矩分配法就是为了计算简洁而得到的捷径,它是位移法演变而来的一种结构计算方法。其物理概念生动形象,每轮计算又是按同一步骤重复进行,进而易于掌握,适合手算,并可不经过计算节点位移而直接求得杆端弯矩,在结构设计中被广泛应用,是我们应该掌握的基本技能。本章要

求我们能够熟练得运用力矩分配法对钢架结构进行力矩分配和传递,然后计算出杆端最后的弯矩,画出钢架弯矩图。 其次,与上一学期所学的力法和位移法那些传统的结构力学基本方法相比,本学期所学的矩阵位移法是通过与计算机相结合,解决力法和位移法不能解决的结构分析题。其核心是杆系结构的矩阵分析,主要包括两部分内容,即单元分析和整体分析。矩阵位移法的程序简单并且通用性强,所以应用最广,范文 TOP100也是我们本学期学习的重点和难点。本章要求我们掌握单位的刚度方程并且明白单位矩阵中每一个元素的物理意义,可以熟练的进行坐标转换,最为重要的是能够利用矩阵位移法进行计算。 最后,是平面钢架静力分析的程序设计。其核心是如何把矩阵分析的过程变成计算机的计算程序,实现计算机的自动计算。我们所学的是一种新的程序设计方法—PAD软件设计方法,它的程序设计包括四步:1、把计算过程模块化,给出总体程序结构的PAD设计;2、主程序的PAD设计;3、子程序的PAD设计;4、根据主程序和子程序的PAD设计,用程序语言编写计算程序。要求我们具备结构力学、算法语言,即VB、矩阵代数等方面的基础知识。在上机利用VB 进行程序设计解答实际问题的过程中,我们遇到了各种各样的难题,每一道题得出最后的结果都不会那么容易轻松。第一,需要重视细节,在抄写程序代码时,需要同组人的分工合作,然后再把每一部分的代码合成一个整体然后运行,这

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

结构力学实验报告

实验报告一 平面刚架内力计算程序APF 日期: 2013.4.19 实验地点: 综合楼503 实验目的: 1、通过实验加深对静定、超静定结构特性的认识。如各杆刚度改变对内力分布的影响、温度和沉陷变形因数的影响等。 2、观察并分析刚架在静力荷载及温度作用下的内力和变形规律,包括刚度的变化,结构形式的改变,荷载的作用位置变化等因素对内力及变形的影响。对结构静力分析的矩阵位移法的计算机应用有直观的了解。 3、掌握杆系结构计算的《求解器》的使用方法。 实验设计1: 别为15 、11、15、110 时结构的内力和位移,由此 分析当刚架在水平荷载作用下横梁的水平位移与刚架梁柱比(1 2I I )之间的关系。(计算时忽略轴 向变形)。 一、 数据文件: (1)TITLE, 实验一 变量定义,EI1=1 变量定义,EI2=0.2(1, 5, 10) 结点,1,0,0 结点,2,0,4 结点,3,6,0 结点,4,6,4 单元,1,2,1,1,1,1,1,1 单元,3,4,1,1,1,1,1,1 单元,2,4,1,1,1,1,1,1 结点支承,1,6,0,0,0,0 结点支承,3,6,0,0,0,0 结点荷载,2,1,100,0 单元材料性质,1,2,-1,EI1,0,0,-1 单元材料性质,3,3,-1,EI2,0,0,-1 END

二、主要计算结果: 位移: (2)令I2=1时,I1=5,1,0.2,0.1 弯矩: (1) 令I1=1时,I2=0.2,1,5,10 ①梁柱刚度比I2:I1为1:5时的刚架弯矩图如下②梁柱刚度比I2:I1为1:1时的刚架弯矩图如下

③梁柱刚度比I2:I1为5:1时的刚架弯矩图如下④梁柱刚度比I2:I1为10:1时的刚架弯矩图如下

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

结构力学课程设计

结构力学课程设计报告 系别:() 专业:() 班级:() 姓名:() 指导教师:()

一、绪言 1、课程设计目的或意义: 1、通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2、通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础 2、结构的工程应用背景简介: 此次设计的结构是桥梁结构,在生活中桥梁在交通运输中起着重要的作用,比如架在江湖、峡谷之间的桥梁起着连接两地的纽带作用。桥梁之上可以过行人、汽车、火车。极大的缩短了两地之间的距离,方便又快捷。 3、课程设计的主要内容: 一:了解明确课程设计的目的,查找工程实际中的桥梁结构 二:参考实际结构设计自己的桥梁结构。 三:估计轴力,初步选择桥梁的钢材。 四:做出内力图。 五:校核,再择钢材。 六:总结优化。

二、结构设计与荷载简化 1、结构简介 此结构形状主要由三角形组成的的下承式组合结构 2、结构参数: 本次设计的桥梁结构跨度为四十米,高二十米。结构中杆件间主要以铰接连接。根据桥梁及承载要求,材料为Q235刚,极限压应力为300MPa,E=210GPa 选择20b号工字型刚,截面面积为46.5平方厘米 3、荷载简化与分析: 设计的结构为火车通道,主要承受火车的质量。将火车看作质量分布均匀的,所受均布荷载为50KN/m

三、结构内力和变形分析 1、结构计算简图 2、内力分析 结构轴力图 结构剪力图 1 11

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

数据结构课程设计格式参考

郑州师范学院软件工程专业 数据结构课程设计报告 设计题目: 班级: 组长:姓名(学号) 组员:姓名(学号)… 指导教师: 完成日期: 成绩:

目录 1需求分析 (1) 1.1功能分析 (1) 1.2设计平台 (1) 2概要设计 (2) 2.1类LinkList (4) 2.2类Joseph (4) 2.3类异常处理 (4) 3详细设计和实现 (4) 3.1创建结点Node (5) 3.2创建双向循环链表 (6) 3.3从链表中删除结点 (7) 4调试与操作说明 (11) 4.1调试情况 (11) 4.2操作说明 (11) 5设计总结 (12) 参考文献 (13) 附录 (13)

1需求分析 1.1功能分析 本次选做的课程设计是改进约瑟夫(Joseph)环问题。约瑟夫环问题是一个古老的数学问题,本次课题要求用程序语言的方式解决数学问题。此问题仅使用单循环链表就可以解决此问题。而改进的约瑟夫问题通过运用双向循环链表,同样也能方便地解决。 在建立双向循环链表时,因为约瑟夫环的大小由输入决定。为方便操作,我们将每个结点的数据域的值定为生成结点时的顺序号和每个人持有的密码。进行操作时,用一个指针current指向当前的结点,指针front始终指向头结点。然后建立双向循环链表,因为每个人的密码是通过rand()函数随机生成的,所以指定第一个人的顺序号,找到结点,不断地从链表中删除链结点,直到链表剩下最后一个结点,通过一系列的循环就可以解决改进约瑟夫环问题。 1、本演示程序中,利用单向循环链表存储结构模拟约瑟夫问题的进行。程序运行后,首先要求用户指定初始报数上限值,然后读取个人的密码。可设n ≤30。此题所用的循环链表中不需要“头结点”,因此在程序设计中应注意空表和非空表的界限。 2、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入数据和运算结果显示在其后。 3、程序执行的命令包括: 1)构造约瑟夫环;2)执行约瑟夫环,并输出出列人的序号以及相应的密码; 3)结束。 4、测试数据 1)m的初始值为20; 2)n=7,7个人的密码依次为:3、1、7、2、4、8、4。 3)首先m值为6,正确的出列顺序应为6、1、4、7、2、3、5。 1.2设计平台

结构力学设计

科学技术学院 课程设计报告 2012----2013学年第二学期 学生姓名: 学号: 专业班级: 时间: 17周(6.17-6.21) 理工学科部

一、课程设计目的 1. 通过实验及数据分析熟练掌握结构力学求解器的使用方法,了解求解器的主要功能,了解数据输入和输出的基本操作过程,主要参数的意义和编辑方法。 2.通过实践进一步了解结构在广义荷载作用下内力和位移的分布状态和变化规律,从而指导我们探索和发现更合理的结构形式,为将来的学习和科研工作打下坚实的基础。 二、课程设计内容 (一)对三类桁架进行受力分析 1、平行弦桁架分析 变量定义,h=1,l=6 变量定义,c=1/6,h=c*l 结点,1,0,0 结点,2,1/6l,0 结点,3,2/6l,0 结点,4,3/6l,0 结点,5,4/6l,0 结点,6,5/6l,0 结点,7,6/6l,0 结点,8,6/6l,h 结点,9,5/6l,h 结点,10,4/6l,h 结点,11,3/6l,h 结点,12,2/6l,h 结点,13,1/6l,h 结点,14,0/6l,h 单元,1,2,1,1,0,1,1,0 单元,2,3,1,1,0,1,1,0 单元,3,4,1,1,0,1,1,0 单元,4,5,1,1,0,1,1,0 单元,5,6,1,1,0,1,1,0 单元,6,7,1,1,0,1,1,0 单元,7,8,1,1,0,1,1,0 单元,8,9,1,1,0,1,1,0 单元,9,10,1,1,0,1,1,0 单元,10,11,1,1,0,1,1,0 单元,11,12,1,1,0,1,1,0 单元,12,13,1,1,0,1,1,0单元,13,14,1,1,0,1,1,0 单元,14,1,1,1,0,1,1,0 单元,14,2,1,1,0,1,1,0 单元,2,13,1,1,0,1,1,0 单元,13,3,1,1,0,1,1,0 单元,3,12,1,1,0,1,1,0单元,12,4,1,1,0,1,1,0 单元,4,11,1,1,0,1,1,0 单元,4,10,1,1,0,1,1,0 单元,10,5,1,1,0,1,1,0 单元,5,9,1,1,0,1,1,0 单元,9,6,1,1,0,1,1,0 单元,6,8,1,1,0,1,1,0结点支承,1,3,0,0,0结点支承,7,1,0,0结点荷载,14,1,0.5,-90结点荷载,13,1,1,-90结点荷载,12,1,1,-90结点荷载,11, 1,1,-90结点荷载,10,1,1,-90结点荷载,9,1,1,-90结点荷载,8,1,0.5,-90

相关文档
相关文档 最新文档