当前位置:文档之家› 数据结构程序设计说明文档

数据结构程序设计说明文档

数据结构程序设计说明文档
数据结构程序设计说明文档

数据结构课题报告说明书

数据结构课题报告

指导教师:揭安全

组长:肖清泉

组员:朱智红、苏彦洲

班级:计算机科学与技术(正大)

专业:计算机科学与技术(师范)

时间: 2015-01-20——2015-03-01 课程设计题目:图书管理系统

图书馆管理系统或许众所周知,任何一个学校,有关单位似乎都需要这个类似的系统以此管理图书与读者借阅情况。借此,我们合作也做出一个系统,尽管可能有些逊色,但感觉还是可以。本系统总结了前人牛人的经验,剔除了其中的不足创造了自己独有的特色。传承了牛人的优点,经过我们仔细的观摩,思考后创造此系统。“书上得来终觉浅,要知此事需躬行。”是呀!在没

亲身动手去编写程序时,我总觉得我会了。书本上的我都懂了。可我真的懂了吗?答案是否定的。在编写过程中,会出现很多的问题,而这些问题你是在书本上是接触不到的。只有发现问题,解决问题,你才会有提高。在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说缺乏系统、规范的管理手段人们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有

效手段。系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。

第一章需求分析与目的概述 ---------- 04

1.1 需求分析概述----------------------- 04

1.2 系统功能分析----------------------- 04 第二章系统设计----------------------04

3.1 系统功能模块设计-------------------04

3.1.1 信息录入-------------------05

3.1.2 学生菜单-------------------05

3.1.3 老师菜单-------------------06

3.1.4 图书管理员菜单-------------07

3.1.5 系统管理员菜单-------------09

3.2 逻辑结构设计-----------------------09

3.2.1 系统结构体设计-------------10

3.2.2 系统业务流程设计------------13

3.2.3 数据结构逻辑设计-----------14 第三章系统的实施-----------------------29

4.1 运行相关界面-----------------------29

4.1.1 登入界面---------------------29 4.1.2 学生界面----------------------31

4.1.3 教师界面----------------------31

4.1.4 图书管理员界面----------------32

4.1.5 系统管理员界面----------------32

4.2 系统测试---------------------------33

4.2.1 学生测试----------------------33

4.2.2 教师测试----------------------33

4.3.4 图书管理员测试----------------34

4.4.4 系统管理员测试----------------34 第四章总结与体会-----------------------34

第五章参考文献--------------------------35

第一章需求分析与目的概述

1.1 需求分析概述

我们组设计的是“图书管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的学号、姓名、性别、专业、班级等等。在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。

●能够输入图书的综合情况和进行新书入库,对现有

图书信息修改以及删除;

●能够实现对读者档案进行查询和编辑管理;

●能够实现罚款记录,查询功能;

●能够实现借阅历史的查询功能。

1.2 系统功能分析

●图书维护:为了保存好图书,读者的全部数据,本

系统将对每一本图书和每位读者的信息进行管

理。系统维护包括对各种表记录的修改,删除,添

加等操作。

●系统查询:可以对图书,借书信息,读者等相关信

息进行查询。

●增添或删除学生等有关读者信息。

●其他操作:包括修改密码,添加读者等。

第二章系统设计3.1 系统功能模块设计

3.1.1 信息录入

(一)绘制函数表如下:

(二)示意图如下:

(1)

3.1.2 学生菜单

(一)绘制函数表如下:

(二)示意图如下:

(2)

3.1.3 老师菜单

(一)绘制函数表如下:

函数功能操作简述void teacher_menu(TEACHER

*s,TEACHER *head3,FILE *fp3,BOOK

*head1,READERBOOKS

*head6,TEACHER *tea);

教师清单显示教师菜单便于选择

void teacher_info(TEACHER *s,TEACHER

*head3,FILE *fp3,BOOK

*head1,READERBOOKS

*head6,TEACHER *tea);

教师个人信息显示教师个人基本信息

void teacher_changexinxi(TEACHER *s,TEACHER *head3,FILE *fp3,BOOK *head1,READERBOOKS

*head6,TEACHER *tea);

教师更改自己信

调用教师信息函数,实现

更改原有信息

void teacher_changepassword(TEACHER *s,TEACHER *head3,FILE *fp3,BOOK *head1,READERBOOKS

*head6,TEACHER *tea);更改密码调用教师信息函数,实现

更改原有密码

void teacher_borowagin(TEACHER

*s,TEACHER *head3,FILE *fp3,BOOK

*head1,READERBOOKS

*head6,TEACHER *teaa);

查询图书信息实现查询图书基本信息(二)示意图如下:

(3)

3.1.4 图书管理员菜单

(4)

3.1.5系统管理员菜单

3.2 逻辑结构设计

3.2.1 系统结构体设计

/*结构体如下,存储图书,学生教师,管理员等信息*/ typedef struct date1{

int year;

int mouth;

int day;

}DATE1;日期

/*图书结构体*/

typedef struct book{

char category[N];//书的类别

int every_leibie_shu_totalcount;//每一类别不同书的样式总数

DATE1 books_in_library[N];//书入库时间

char tushubianhao[N][N];//书的编号

char shuming[N][N];//书的名字

int totalCount[N];//该书共有多少本

int leftCount[N];//剩余本数

double price[N];//书的价格

char author[N][N];//书的作者

char publishing_company[N][N];//书的出版社

struct book *next1;

}BOOK;

/*学生结构体*/

typedef struct student{

char studentID[N];

char studentName[N];

char password[N];

char studentSex[N];

char Tell[N];

char xueyuan[N];

char major[N];

char Class[N];

char student_email[N];

struct student *next2;

}STUDENT;

/*教师结构体*/

typedef struct teacher{

char teacherID[N];

char teacherName[N];

char teacherPassword[N];

char teacherSex[N];

char teacherTell[N];

char teacherPosition[N];

char teacher_email[N];

struct teachar *next3;

}TEACHER;

/*图书管理员结构体*/

typedef struct tushu_administration{

char tushu_administrationID[N];

char tushu_administrationName[N];

char tushu_administrationPassword[N]; char tushu_administrationSex[N];

char tushu_administrationTell[N];

char tushu_administration_email[N]; struct tushu_administration *next4; }TUSHU_ADMINISTRATION;

/*系统管理员结构体*/

typedef struct xitong_administration{

char xitong_administrationID[N];

char xitong_administrationName[N];

char xitong_administrationPassword[N];

char xitong_administrationSex[N];

char xitong_administrationTell[N];

struct xitong_administration *next5;

}XITONG_ADMINISTRATION;

typedef struct date2{

int year;

int mouth;

int day;

}DATE2;

/*读者结构体*/

typedef struct readerBooks{

char readerID[N];//读者ID

int total_bookCount;//共借多少本

DATE2 borrowed_BooksTime[N];//借书的日期,二次借记第二次的

DATE2 Return_BooksTime[N];//还书的日期 char readerBooks[N][N];//借的图书名字

int reader_BooksTimes[N];//该书被本人连续借的次数

struct readerBooks *next6;

}READERBOOKS;

3.2.2 系统业务流程设计

(一)首先,设计登入界面,供用户登入;(二)设计用户菜单便于用户登入后可选择;(三)实现各菜单功能供用户实现各功能;(四)退出系统。

(五)具体流程图如下图所示;

图书管理员业务流程

3.2.3 数据结构逻辑设计

本系统中主要采用的数据结构是链表的基本操作,增,删,改,查等基本相关操作的实现,目的在于熟

练掌握链表的基本操作,其实也只用到了链表操作,

其他数据结构知识暂时还用不上。

如:(1)下为学生查找个人信息,所用的是链表的查操作。

//查询生个人信息

void student_info(STUDENT *r)

{

system("cls");

printf("\n\n");

printf("\t\t* * * * * * * 学生个人信息 * * * * * * * *\n");

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

printf("\t\t学号:%s",r->studentID);

printf("\t\t邮

箱:%s\n\n",r->student_email);

printf("\t\t姓名:%s",r->studentName);

printf("\t\t联系方

式:%s\n\n",r->Tell);

printf("\t\t性别:%s",r->studentSex);

printf("\t\t学院:%s\n\n",r->xueyuan);

printf("\t\t班级:%s",r->Class);

printf("\t专业:%s\n\n",r->major);

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

printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * *");

printf("\n\t\t按任意键返回学生

菜单!");

}

(2)有如下为链表的更改操作,实现老师的更改密码:

void teacher_changepassword(TEACHER

*s,TEACHER *head3,FILE *fp3,BOOK

*head1,READERBOOKS *head6,TEACHER *tea) {

TEACHER *p;

p = head3;char ch1;int j=0,j1=0;

fclose(fp3);

system("cls");

char a,d,b[N],c[N],e[N];

printf("\n是否修改密码N or Y?");

scanf(" %c",&a);

if(a=='y'||a=='Y')

{

do

{

system("cls");

printf("输入旧的密码:");

scanf("%s",b);

}while(strcmp(s->teacherPasswor d,b)!=0);

m2: printf("\n输入新的密码:");j=0;

while((ch1 = getch()) != '\r')

{

if (ch1 == BACKSPACE)

{

if (j > 0)

{

e[--j] = NULL;

printf("\b ");

printf("%c%c%c", BACKSPACE, ' ', BACKSPACE);

}

else

putchar(7); //bell

}

else

{

e[j++] = ch1;

printf("*");

}

}

e[j] = '\0';

printf("\n\n再次确认密码:"); j1=0;

while((ch1 = getch()) != '\r')

{

if (ch1 == BACKSPACE)

{

if (j1 > 0)

{

c[--j1] = NULL;

printf("\b ");

printf("%c%c%c", BACKSPACE, ' ', BACKSPACE);

}

else

putchar(7); //bell

}

else

{

c[j1++] = ch1;

printf("*");

}

}

c[j1] = '\0';

if(strcmp(e,c)) goto m2;

strcpy(s->teacherPassword,c);

if(remove("教师信息")==0) if((fp3=fopen("教师信息","wb"))==NULL)

{

printf("cannot open file,press any key to exit!");

getch();

结构设计方案说明

结构设计方案说明 一、工程概况: 本工程位于XX省XX市XX区,位于XX街路南,XX路东,地块总用地面积1A327平方米,总建筑面积1713A0平方米,地上建筑面积1A1A00平方米(其中金融科技服务平台A300平方米,科技资源服务平台A50平方米,创新孵化服务平台A50平方米,配套服务A00平方米),地下建筑面积A0平方米(其中地下停车场A00平方米,半地下绿地覆盖商业A0平方米)。地下1层,地上B层,裙房商业2层。 二、设计依据: 1、本项目的结构设计合理使用年限为50年,建筑安全等级为二级。 2. 本项目依据国家及XX省现行建筑结构规范、规程和标准进行设计,依据的规程规范主要有: (1) 《建筑结构荷载规范》GB50009-2012 (2) 《混凝土结构设计规范》GB50010-2010 (3) 《地基基础设计规范》GB50007-2011 (4) 《建筑桩基技术规范》JGJ94-2008 (5) 《建筑工程抗震设防分类标准》GB50223-2008 (6) 《建筑抗震设计规范》GB50011-2010 (7) 《高层建筑混凝土结构技术规程》JGJ3-2010 J186-2010 (8) 《人民防空地下室设计规范》GB50038-2005 (9) 《地下工程防水技术规范》GB50108-2008 (10) 《砌体结构设计规范》GB 50003-2011 (11) 《灌注桩后注浆技术规程》 (12) 《湿陷性黄土场地勘察及地基处理技术规范》3.竖向荷载 根据不同的建筑功能,楼面活荷载取值如下: 4.地震作用 本项目的抗震设防烈度为8度,设计基本地震加速度值为0.20g,设计地震分组为第一组。建筑抗震设防类别为乙类。 5.风荷载 本项目风荷载作用下的结构刚度和强度设计均采用100年一遇的基本风压0.45KN/m2,地面粗糙度取为B类。由于建筑单体距离较为接近,确定风荷载取值时,需考虑相邻建筑干扰效应的影响。 6.其他荷载及作用 基本雪压为0.40KN/m2(100年一遇),与或荷载不同时考虑。温度作用考虑计算温差+30度/-30度。地下室人防区域按照平战结合的人防设计考虑设计荷载取值。本工程人防为核5常5,甲类二等人员掩蔽所或甲类人防物资库。 7.场地条件

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

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

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

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

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

《数据结构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

天津大学数据结构和程序设计考研真题

天津大学数据结构和程序设计考研真题-考研资料- 笔记讲义 许多学生在考研复习的时候,都会遇到重点不明确,不知道从何复习的情况。为此,天津考研网建议,考研复习中,专业的考研复习资料,是帮助考生能够快速掌握复习重点及方法必不可少的因素,然后就是真题和讲义,可以让同学了解历年考研的出题方向和大致范围。天津考研网推出了天津大学数据结构和程序设计的考研复习资料及真题解析班,以下为详细介绍: 天津大学数据结构和程序设计考研真题等资料由天津考研网签约的天津大学计算机科学与技术学院高分考研学生历时近一月所作,该考生在考研中取得了专业课129分的好成绩并在复试中更胜一筹,该资料包含该优秀本校考生的考研经验、考研试题解题思路分析、复试流程经验介绍以及针对官方指定参考书的重难要点并根据天津大学本科授课重点整理等,从漫漫初试长路到紧张复试亮剑为各位研友提供全程考研指导攻关。 特别说明:此科目06年以前科目名称为数据结构;自06年到08年科目名称改为计算机基础(包含数据结构、程序设计、计算机原理);自09年开始全国统考,科目名称为计算机学科专业基础综合;自2013年开始由学校自主命题,科目名称改为901数据结构与程序设计。 第一部分由天津考研网提供的核心复习资料: 天津大学数据结构和程序设计资料编者序言:本文的重点在于C++,数据结构的复习和复试基本情况介绍。C++、数据结构又分别从复习规划,复习用书,重点知识点结合历年考题这四个方面来展开的。复习规划大家务必看一下,然后根据自己的实际情况在制定自己的复习时间,因为内容很多,大多数同学都在考试之前复习不完,在心理因素上就落了一节。重点知识点一定要看了,这些知识点几乎每年都会有题了。另外我还给了历年试题的答案供大家参考。有的答案是自己做的答案,可能会有疏忽的地方。望大家提出宝贵的意见和建议。复试的东西现在了解一下即可,等到进复试了,还是有足够的时间看的。另外我还给了些自己复习心得。考完后感慨很多,回顾了这多半年来自己的成败得失。希望大家从一开始就沿着比较高效的方向前进,减少不必要时间的浪费。本资料格式为A4纸打印版,总量达到了130页

结构设计总说明

结构设计总说明 一、概述 1.1本工程为暨南大学旅游学院教学楼,6层,结构采用现浇混凝土 框架结构,建筑物总高21.6米,相对标高±0.000等于于绝对设计 标高28.300m 1.2本工程主要依据除另行注明者外,均按初步设计审批文件、岩土工程勘察报告和以下建筑工程现行设计规范: 1、建筑工程抗震设防分类标准(GB50223-2008); 2、建筑结构荷载规范(GB50009-2012); 3、混凝土结构设计规范(GB50010-2010); 4、建筑抗震设计规范(GB50011-2010); 5、建筑地基基础设计规范(GB50007-2011); 6、建筑地基处理技术规程(JGJ79-2012); 1.3建筑设计使用年限:50年;结构安全等级:二级;抗震设防分类:丙类 1.4本工程抗震设计的类别和等级: 1.5本工程主要使用荷载(标准值,KN/m2):荷载根据《GB50009-2012》 规定按功能分区选用。基本风压:W=0.75KN/m2(50年一遇);地面 粗糙度类别:C类 1.6本工程设计未考虑冬季施工措施,施工单位应根据有关施工规范自定。施工单位在整个施工过程中应严格遵守国家现行的各项施工

质量验收规范,如按施工规范对跨度较大的梁、板起拱等 1.7未经技术鉴定或设计许可,不得改变结构的用途和使用环境。1.8本工程图纸中的标高单位均为m(米),尺寸单位均为mm(毫米)。 二、材料 2.1混凝土 2.1.1混凝土强度等级:(混凝土施工中应采取有效措施防止开裂)基础垫层为C15;基础梁为C25,楼梯间梯段板为C30,基础及 ±0.000以下外墙混凝土抗渗等级P6,基础梁保护层:有垫层40mm 2.1.2结构混凝土环境类别及耐久性要求: 基础及与土壤接触部位、露天构件为二b类,卫生间等室内潮湿环境为二a类,其余为一类。 耐久性要求如下: 2.2钢筋:为H PB300钢筋;为HRB335钢筋;为HRB400钢筋;1、钢筋强度标准值应具有不小于95%的保证率。 2、抗震等级为一、二、三级的框架结构,其纵向受力钢筋采用普通钢筋时,钢筋的抗拉强度 实测值与屈服值的比值不应小于1.25;且钢筋的屈服强度实测值与 强度标准值的比值不应 大于1.3;且钢筋在最大拉应力下的总伸长率实测值不应小于9%。2.3焊条: 2.4吊钩、吊环应采用 HPB235级钢筋;受力预埋件的锚筋应采用

数据结构课程设计说明书讲解

安徽理工大学 数据结构 课程设计说明书题目: 一元多项式计算 院系:计算机科学与工程学院 专业班级:数字媒体13-1班 学号: 2013303102 学生姓名:钱福琛 指导教师:梁兴柱 2015年 1月 9 日

安徽理工大学课程设计(论文)任务书计算机科学与工程学院

2014年 11 月 10 日安徽理工大学课程设计(论文)成绩评定表

目录 1 问题描述 2 功能描述 2.1 课题要求........................................... 2.2 软件格式规定....................................... 3 设计 2 3.1 相关函数介绍说明................................... 3.2 主程序的流程基函数调用说明......................... 4 程序设计 4 4.1 多项式存储的实现................................... 4.2 加减乘除算法....................................... 4.2.1加法运算的实现............................... 4.2.2减法运算的实现............................... 4.2.3乘法运算的实现............................... 4.2.4除法运算的实现............................... 4.3 函数调用关系图..................................... 5 运行测试

数据结构课程设计(附代码)-数据结构设计说明

应用技术学院课程设计报告 课程名称《数据结构课程设计》 设计题目猴子选大王;建立二叉树;各种排序;有序表的合并;成绩管理系统;院系计算机科学与信息工程专业计算机科学与技术班级 学号指导教师日期 一.目的与要求 1. 巩固和加深对常见数据结构的理解和掌握 2. 掌握基于数据结构进行算法设计的基本方法 3. 掌握用高级语言实现算法的基本技能 4. 掌握书写程序设计说明文档的能力 5. 提高运用数据结构知识及高级语言解决非数值实际问题的能力 二.课程设计容说明 1. 项目一 (1) 对设计任务容的概述 学生成绩管理** 任务:要现对学生资料的录入、浏览、插入和删除等功能。 输入:设学生成绩以记录形式存储,每个学生记录包含的信息有:学号和各门课程的成绩,设学生成绩至少3门以上。存储结构:采用线性链式结构。 (2) 详细设计 LinkList *create():输入学生成绩记录函数; void print(LinkList *head):显示全部记录函数 LinkList *Delete(LinkList *head):删除记录函数 LinkList *Insert(LinkList *head):插入记录函数 void menu_select():菜单选择 void ScoreManage():函数界面 (3) 程序流程图

(4) 程序模块及其接口描述 该程序可以分为以下几个模块: 1、菜单选择:void menu_select(); 提供五种可以选择的操作,在main函数过switch语句调用菜单menu_select()函数,进入不同的功能函数中完成相关操作。 2、输入功能:LinkList *create(); 通过一个for循环语句的控制,可以一次完成无数条记录的输入。并将其存入链

数据结构与程序设计C++描述(Kruse著)高等教育出版社_课后答案.

Programming Principles 1 1.2 THE GAME OF LIFE Exercises 1.2 Determine by hand calculation what will happen to each of the configurations shown in Figure 1.1 over the course of five generations. [Suggestion: Set up the Life configuration on a checkerboard. Use one color of checkers for living cells in the current generation and a second color to mark those that will be born or die in the next generation.] Answer (a) Figure remains stable. (b) (c) (d) Figure is stable. 1 2 Chapter 1 _ Programming Principles (e) (f) Figure repeats itself. (g) (h) (i) Figure repeats itself. (j) (k) (l) Figure repeats itself. Section 1.3 _ Programming Style 3 1.3 PROGRAMMING STYLE Exercises 1.3

E1. What classes would you define in implementing the following projects? What methods would your classes possess? (a) A program to store telephone numbers. Answer The program could use classes called Phone_book and Person. The methods for a Phone_book object would include look_up_name, add_person, remove_person. The methods for a Person object would include Look_up_number. Additional methods to initialize and print objects of both classes would also be useful. (b) A program to play Monopoly. Answer The program could use classes called Game_board, Property, Bank, Player, and Dice. In addition to initialization and printing methods for all classes, the following methods would be useful. The class Game_board needs methods next_card and operate_jail. The class Property needs methods change_owner, look_up_owner, rent, build, mortgage, and unmortgage. The class Bank needs methods pay and collect. The class Player needs methods roll_dice, move_location, buy_property and pay_rent. The class Dice needs a method roll. (c) A program to play tic-tac-toe. Answer The program could use classes called Game_board and Square. The classes need initialization and printing methods. The class Game_board would also need methods make_move and is_game_over. The class Square would need methods is_occupied, occupied_by, and occupy. (d) A program to model the build up of queues of cars waiting at a busy intersection with a traffic light. Answer The program could use classes Car, Traffic_light, and Queue. The classes would all need initialization and printing methods. The class Traffic_light would need additional methods change_status and status. The class Queue would need additional methods add_car and remove_car. E2. Rewrite the following class definition, which is supposed to model a deck of playing cards, so that it conforms to our principles of style. class a { // a deck of cards int X; thing Y1[52]; /* X is the location of the top card in the deck. Y1 lists the cards. */ public: a( ); void Shuffle( ); // Shuffle randomly arranges the cards. thing d( ); // deals the top card off the deck } ; Answer class Card_deck { Card deck[52]; int top_card; public: Card_deck( ); void Shuffle( ); Card deal( );

网站软件(结构)设计说明书()

网站软件(结构)设计说明书 一.引言 1.引言 1)将系统划分成物理部分,即程序、文件、数据库、文档、图片等。 2)设计软件结构,即将需求规格转换为体系结构,划分出程序的基本模块组成,确定模块间的相互关系,并确定系统的数据结构。 3)预期的读者:本说明书是软件体系结构设计的说明书,主要读者群为项目组成员,其次供公司上层(老师)评审,并指导开发人员的开发。 4)本说明书为系统的概要设计说明书,为系统详细的设计的主要依据。主要读者群为项目组成员,使得项目组内成员对整个系统的主要功能以及其概要的实现手段,有一个宏观的把握,是整个系统最初形,同时也是最基本的引导性文档(软件体系结构设计说明书),将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本说明书中,将对该说明书的结构进行简要的说明,明确该说明书针对的读者群,指导他们正确的使用该说明书。 2.背景 1)项目名称:山桐子绿色能源科技有限责任公司 2)项目任务提出者:黄先生 3)项目负责人:杨卫 4)开发者:何文静,先雪莉,王娟,白瑜,杨卫 5)开发工具:Flash CS4;Dreamweaver8 6)运行平台:本项目采用WINDOW 2000为操作系统 7)适用用户:所有能上网浏览网页的用户,主要用户是需要山桐子的人群. 3.定义 1)该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。 2)比如: DL:登录ZC:注册GSJJ:公司简介CPZS:产品展示SCYF:生产研发WDDD:我的订单XWZX:新闻中心LXWM:联系我们RCZP:人才招聘 4.参考资料 列出有关的参考资料,如: (1) 本项目的经核准的计划任务书和需求说明书; (2) 属于本项目的其他已发表的文件;如开发标准书; (3)本文件中各处引用到的文件资料: [1] 陈元国.需求分析说明书.参考资料书,2013.4 [2] 顾正刚.网站规划和建设.机械工业出版社,2010.2 [3] 张强.数据库设计说明书.参考资料书,2013.5

数据结构说明书

目录 引言....................................................... 错误!未定义书签。 一、设计要求............................................... 错误!未定义书签。 二、算法原理及思想 (1) 1、遍历概念 (1) 2、遍历方案 (2) 2.1 遍历方案 (2) 2.2三种遍历的命名 (2) 3、二叉树的链式存储结构 (2) 3.1、结点的结构 (2) 3.2、结点的类型说明 (3) 3.3、二叉链表 (3) 4、二叉树的非递归遍历(用栈实现) (4) 4.1先序非递归算法 (4) 4.2中序非递归算法 (5) 4.3后序非递归算法 (6) 三、遍历过程 (6) 四、程序测试 (8) 五、实验总结 (8) 六、参考文献 (9) 附录:源代码 (10)

数据结构课程设计 1 选题背景 《数据结构》在计算机科学中是一门综合性的专业基础课.数据结构的研究不仅涉及到计算机的硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题.在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方面.因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程.在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。 树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。满二叉树,完全二叉树,排序二叉树。 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。此程序主要实现二叉树的遍历并且是基于栈的非递归遍历方法。 2 方案论证 2.1遍历概念

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

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

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

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

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

数据结构课程设计报告

山东建筑大学 课程设计成果报告 题目: 1.数组实现两个矩阵的相乘运算 2.成绩分析问题 课程:数据结构A课程设计 院(部):管理工程学院 专业:信息管理与信息系统 班级:信管*** 学生姓名:*** 学号:******** 指导教师:******* 完成日期:2016年12月29日

目录 目录 (2) 一、课程设计概述 (3) 二、课程设计题目一 (3) 用数组实现两个矩阵的相乘运算 (3) 2.1[问题描述] (3) 2.2[要求及提示]: (3) 2.3[详细设计] (4) 2.4[调试分析] (5) 2.5[运行结果及分析] (5) 三、课程设计题目二 (6) 成绩分析问题 (6) 3.1[问题描述] (6) 3.2[概要设计] (6) 3.3[存储结构] (7) 3.4[流程图] (7) 3.5[详细设计] (8) 3.6[调试分析] (8) 3.7[运行结果及分析] (22) 四、参考文献: (25)

一、课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵相乘运算、成绩分析问题。使用语言:C 编译环境:vc6.0 二、课程设计题目一 用数组实现两个矩阵的相乘运算 2.1[问题描述] #include “stdio.h” int r[6][6]; void mult(int a[6][6] , int b[6][6]){ } main(){ int i,j; int num1[6][6],num2[6][6]; printf(“请输入第一个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num1[i][j]); printf(“请输入第二个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num2[i][j]); mult(num1,num2); printf(“\n两个矩阵相乘后的结果为:”); for(i=1;i<=6;i++) {for(j=1;j<=6;j++) printf(“%4d”,r[i][j]); printf(“\n”); } } 2.2[要求及提示]: 1、要求完善函数mult( ),

结构设计总说明(带图完整版)分解

混凝土结构设计总说明 1.工程概况 1.1 本工程位于xx市xxxxx,总建筑面积约13万平方米,由多栋商铺组成; 主要功能层数高度(m) 结构型式基础类型商铺 4 15.400 框架结构独基、管桩 2.设计依据 2.1 本工程主体结构设计使用年限为50年。 2.2 自然条件:基本风压:0.35kN/m 2(50年重现期);基本雪压:0.45kN/m 2; 抗震设防参数:本工程最大地震影响系数αmax=0.04(第一设防水准);场地特征周期Tg=0.35秒;场地为可进行建设的一般地段。本工程抗震基本烈度为6 度,场地土类别为Ⅱ类。 2.3 xxx工程有限公司2014.10xxx一期-4号中心岩土工程详细勘察报告书工 程编号:2014-K53 2.4 本工程施工图按初步设计审查批复文件和甲方的书面要求进行设计。 2.5 本工程设计采用的现行国家标准规范规程主要有: 建筑结构可靠度设计统一标准GB50068-2001 建筑地基基础设计规范GB50007-2011 建筑工程抗震设防分类标准GB50223-2008 建筑抗震设计规范GB50011-2010 建筑结构荷载规范GB50009-2012 混凝土结构设计规范GB50010-2010 砌体结构设计规范GB50003-2011 地下工程防水技术规范GB50108-2008 工业建筑防腐蚀设计规范GB50046-2008 建筑桩基技术规范JGJ 94-2008 人民防空地下室设计规范GB50038-2005 多孔砖砌体结构技术规范JGJ137-2001(200 3年局部修订) 混凝土外加剂应用技术规范GB50119-2013 补充收缩混凝土应用技术规程JGJ/T 178-2009 建筑边坡工程技术规范GB/T50330-2013 工程建设标准强制性条文(房屋建筑部分)2013年版(涉及规范版本更新及修订的应按现行规范执行) 2.6 桩基静载荷试验报告和地基载荷板试验报告(本工程需有前述报告后方可进 行基础施工) 3.图纸说明 3.1 计量单位(除注明外):长度:mm;角度:度;标高:m;强度:N/mm 2。 3.2 本工程±0.000相当于绝对标高41.700m。 3.3 本工程施工图与国标11G101-1《混凝土结构施工图平面整体表示方法制图 规则和构造详图》配套使用。 3.4 结构专业设计图应与其它专业设计图配合施工,并采用下列标准图: 国标 11G101-1、11G101-2、11G101-3、11G329-1;中南标 12ZG002、12ZG003、12ZG313 3.5 管桩专项说明另详。 3.6 本工程在设计使用年限内未经技术鉴定或设计许可,不得改变结构的用途和 使用环境。

数据结构课程设计说明书

车厢调度问题 摘要:实现栈的基本操作,即实现类型。程序对栈的任何存取,即更改,读取和状态判别等操作,必须借助于基本操作。在操作过程中的任何状态下都有两种可能的操作:“入”“出”。每个状态下处理问题的方法都是相同的,具有递归特性。关键字:栈递归打印 0.引言 《数据结构》是计算机科学与技术、软件工程及相关学科的专业基础课,也是软件设计的技术基础。《数据结构》课程的教学要求之一是训练学生进行复杂的程序设计的技能和培养良好程序设计的风格,其重要程度决不亚于理论知识的传授,因此课程设计环节是一个至关重要的环节,是训练学生从事工程科技的基本能力,是培养创新意识和创新能力的极为重要的环节。基本要求如下: (1) 熟练掌握基本的数据结构; (2) 熟练掌握各种算法; (3) 运用高级语言编写质量高、风格好的应用程序。 1.需求分析 (1)这个实验要求我用栈实现车厢调度. (2)车厢的个数是由用户输入的. (3)程序会自动给车厢进行从1到 n的编号. (4)用户输入车厢个数后,程序打印出所有可能的车厢出站顺序. 2.数据结构设计 在这个程序中存储结构是栈,对于栈的声明和定义如下: typedef struct SqStack { int *top; /*栈顶指针*/ int *base;/*在栈构造之前和销毁之后.base的值为NULL*/ int stacksize; /*当前分配的存储空间*/ }SqStack; /*顺序栈的结构体声明和定义*/

3.算法设计 3.1 对算法的简单描述 这个实验中, 要求用到栈. 实现栈的基本操作,即实现类型。程序对栈的任何存取(即更改,读取和状态判别等操作)必须借助于基本操作。在操作过程中的任何状态下都有两种可能的操作:“入”“出”。每个状态下处理问题的方法都是相同的,具有递归特性。栈实现是方便的 无论如何调度,我们的操作都是入栈和出栈,设定入栈为1,出栈为-1,对n列车厢有2n次这样的操作,例如n=4,则有操作1111-1-1-1-1、1-11-11-11-1等.所以还要构造一个操作命令队列trainlist[]。 在算法中还要用到递归算法,其本质为: 一个数的进栈以后有两种处理方式:要么立刻出栈,或者下一个数的进栈。 一个数的出栈以后也有两种处理方式:要么继续出栈(栈不为空),或者下一个数的入栈。 3.2栈的基本操作 3.2.1构造一个栈 void InitStack2(SqStack *S,int base_size) { S->base=(int *)malloc(base_size * sizeof(int)); if(!S->base) { puts("ERROR!"); return ; } S->top=S->base; S->stacksize=base_size; }/*构造一个空栈*/ 3.2.2 插入新的栈顶元素

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目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

数据结构程序设计说明文档

数据结构课题报告说明书

数据结构课题报告 指导教师:喝安全 组长:肖清泉 组员:朱智红、苏彦洲 班级:计算机科学与技术(正大) 专业:计算机科学与技术(帅范) 时间:2015-01-20 ——2015-03-01 课程设计题目:图书管理系统 、八 前 图书馆管理系统或许众所周知,任何一个学校,有关单位似乎都需要这个类似的系统以此管理图书与读者借阅情况。借此,我们合作也做出一个系统,尽管可能有些逊色,但感觉还是可以本系统总结了前人牛人的经验,剔除了其中的不足创造了自己独有的特色。传承了牛人的优点,经过我们仔细的观摩,思考后创造此系统。“书上得来终觉浅,要知此事需躬行。”是呀!在没亲身动手去编写程序时,我总觉得我会了。书本上的我都懂了。可我真的懂

了吗?答案是否定的。在编写过程中,会出现很多的问题,而这些问题你是在书本上是接触不到的。只有发现问题,解决问题,你才会有提高。在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说缺乏系统、规范的管理手段人们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有效手段。系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。 第一章需求分析与目的概述 --------- 04 1.1 需求分析概述---------------- 一04 1.2 系统功冃匕分析------------- 一04 第二章系统设计---------- ---04 3.1 系统功能模块设计------------ ——04 3.1.1 信息录入--------------- 05 3.1.2 学生菜单-------------- 05 3.1.3 老师菜单-------------- 06 3.1.4 图书管理员菜单------------- 07

数据结构课程设计(附代码)

上海应用技术学院课程设计报告 课程名称《数据结构课程设计》 设计题目猴子选大王;建立二叉树;各种排序;有序表的合并;成绩管理系统;院系计算机科学与信息工程专业计算机科学与技术班级 姓名学号指导教师日期 一.目的与要求 1. 巩固和加深对常见数据结构的理解和掌握 2. 掌握基于数据结构进行算法设计的基本方法 3. 掌握用高级语言实现算法的基本技能 4. 掌握书写程序设计说明文档的能力 5. 提高运用数据结构知识及高级语言解决非数值实际问题的能力 二.课程设计内容说明 1. 项目一 (1) 对设计任务内容的概述 学生成绩管理** 任务:要求实现对学生资料的录入、浏览、插入和删除等功能。 输入:设学生成绩以记录形式存储,每个学生记录包含的信息有:学号和各门课程的成绩,设学生成绩至少3门以上。存储结构:采用线性链式结构。 (2) 详细设计 LinkList *create():输入学生成绩记录函数; void print(LinkList *head):显示全部记录函数 LinkList *Delete(LinkList *head):删除记录函数 LinkList *Insert(LinkList *head):插入记录函数 void menu_select():菜单选择 void ScoreManage():函数界面

(3) 程序流程图 (4) 程序模块及其接口描述 该程序可以分为以下几个模块: 1、菜单选择:void menu_select(); 提供五种可以选择的操作,在main函数中通过switch语句调用菜单menu_select()函数,进入不同的功能函数中完成相关操作。

数据结构与C语言程序设计

《数据结构与C语言程序设计》复习大纲 《数据结构与C语言程序设计》包括“数据结构”与“C语言程序设计”两门课程的内容,各占比例50%。 《数据结构》部分 指定参考书: 《数据结构教程(第二版)》唐发根编著,北京航空航天大学出版社,2005 一、概述 1.简要了解数据的逻辑结构与存储结构的基本概念; 2.了解算法的定义、算法的五个基本性质以及算法分析最基本的概念,包括算法分析的前提、目的。 二、线性表 1.了解线性关系、线性表的定义,线性表的基本操作; 2.线性表的顺序存储结构与链式存储结构(包括单链表、循环链表和双向链表)的构造原理; 3.掌握在以上两种存储结构的基础上对线性表实施的基本操作,重点包括顺序表的插入和删除、链表的建立、插入和删除、检索等操作对应的过程和算法的设计。 三、堆栈与队列 1.了解堆栈与队列(不含循环队列)的基本概念、基本操作; 2.掌握堆栈与队列的顺序存储结构与链式存储结构的构造原理; 3.掌握在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作过程。

四、树与二叉树 1.了解树型结构的基本概念,基本特征、名词术语; 2.了解完全二叉树、满二叉树的概念;二叉树的基本性质(至少要记住结论); 3.了解二叉树的顺序存储结构与二叉链表存储结构的构造原理及特点,重点是二叉链表存储结构; 4.掌握二叉树的前序遍历、中序遍历、后序遍历和按层次遍历算法(非递归算法)以及利用遍历解决有关二叉树的其它操作; 5.掌握二叉排序树的基本概念、建立(插入)和查找。 五、图 1.了解图结构的基本概念、基本名词术语; 2.掌握图的邻接矩阵存储方法和邻接表存储方法的基本构造原理与特点; 3.图的深度优先搜索和广度优先搜索的基本过程,遍历的基本作用; 4.最小生成树的求解过程,拓扑排序及其目的。 六、文件及查找 1.掌握顺序查找法、折半查找法的查找过程,了解折半查找方法的基本要求; 2.了解散列(Hash)文件的基本特点,散列函数和散列冲突的概念,处理散列冲突的方法。 七、内排序 了解插入排序法、选择排序法、泡排序法、快速排序法以及堆积排序(大顶堆积)法等排序方法的排序原理、规律和特点。 《C语言程序设计》部分 指定参考书: 《C程序设计》(第三版)谭浩强著,清华大学出版社, 2005.7

相关主题
文本预览
相关文档 最新文档