当前位置:文档之家› 数据结构课程设计-员工信息管理系统

数据结构课程设计-员工信息管理系统

数据结构课程设计-员工信息管理系统
数据结构课程设计-员工信息管理系统

12信计2013-2014(一)

数据结构课程设计

设计题目员工信息管理系统

设计时间2014.1.6~2014.1.10

学生姓名葛考

学生学号20120402127

所在班级12精算

指导教师刘风华

徐州工程学院数学与物理科学学院

题目员工信息管理系统

一、需求分析

员工信息管理系统设计,具体功能如下:

1、系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并

且在此过程中能够尽可能的兼容用户使用过程中的输入异常情况。

2、员工信息录入系统(员工信息用文件保存),注意员工按员工编号进行区分,即每个员工的

员工编号都是唯一的,不允许出现两个员工或员工编号相同的情况。

3、可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按生日查询;

4、可对员工信息进行删除;

5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录的更改

不应影响其他的员工记录;

6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范;

员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。

二、概要设计

2.1、抽象数据类型

ADT List{

数据对象:D={ai|ai∈ElemSet,i=1,2,······,n,n>=0}

数据关系:R1={|ai-1,ai∈D,i=1,2,······,n}

基本操作:

Init List(&L);

操作结果:构造一个空的线性表L。

DestroyList(&L);

初始条件:线性表L存在。

操作结果:销毁线性表L。

LocateElem(L,I,&e);

初始条件:线性表L存在,1

操作结果:用e返回线性表L中第i个数据元素的值。

ClearList(&L);

初始条件:线性表L存在。

操作结果:将线性表L重置为空表。

}ADT Graph

2.2、程序流程

系统的执行从菜单的选择开始,依据用户的选择进行相应的处理,直到用户选择退出系统为止。其间应对用户的选择做出判断及异常处理。系统的流程如图1所示:

图1 员工信息管理系统流程图

三、详细设计

3.1函数构成

(1)主函数:void main();

(2)文件读入函数:void read data();

(3)文件写入函数:void write data();

(4)菜单函数

函数原型:void Menu()

功能:此函数的功能为依据用户选择的功能来进行相应的处理,直到用户选择退出系统为止,包括员工信息的查询、更新、列表及退出管理;

(5)信息查询函数

函数原型:void chaxun()

功能:该函数的功能是按照用户的选择进行不同方式的查找,本程序实现了按三种方式进行查找,包括按编号、姓名、生日查找;

(6)信息更新函数

函数原型:void gengxin()

功能:此函数的功能为使用户修改记录。首先判断用户要修改的记录是否存在,因为只有员工编号是唯一的,所以根据员工编号进行查找。若存在则用用户输入的新的信息替换原信息;若不存在则函数结束。在此函数中要注意的是文件的打开方式应为”rb+”,因为在这个函数中不仅要读文件,还要向文件中写入数据,所以要用读写的方式打开二进制文件;

(7)信息一览函数

函数原型:void liebiao()

功能:此函数的功能为从文件中依次取出每条记录并将其显示出来。因为只需读文件不需要向文件中写入数据,所以文件的打开方式是只读。

3.2模块程序清单(详细程序见附录)

1、员工信息的结构体:

Typedef struct emp

{

long int num; //编号

char name[20]; //姓名

int age; //年龄

char sex[4]; //性别

char birthday[10]; //生日

char tel[15]; //电话

char edu[8]; //学历

char pos[20]; //职务

char add[30]; //住址

struct emp *next;

};

2、菜单函数:

void menu(void)

{ char i,lj[100]; i nt flog;time_t T;

struct tm * timenow;

time ( &T );timenow = localtime ( &T );

flog=0;

while(1)

{

system("cls"); printf("\n\n\n\n\n");

printf(" ┏━━━━━━━━━员工信息管理系统━━━━━━━━━┓\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 1.员工信息查询┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 2.员工信息更新┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 3.员工信息列表┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃0.退出管理系统┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf(" %s", asctime (timenow) );

printf("请输入您的选择(数字0-3):\n");

scanf("%c",&i);gets(lj); if(lj[0])i='a';

switch(i)

{ case '1':chaxun();break;

case '2':gengxin();break;

case '3':liebiao();break;

case '0':flog=1;break;

default:printf("输入有误,请按回车键重新输入\n");gets(lj);break;

}if(flog)break;}}

3、信息查询函数:

void chaxun()

{

char i,lj[100]; int flog; time_t T; struct tm * timenow;

time ( &T );timenow = localtime ( &T ); flog=0;

while(1)

{

system("cls"); printf("\n\n\n\n\n");

printf("┏━━━━━━━━━员工信息查询系统━━━━━━━━━┓\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 1.按照编号查询┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 2.按照姓名查询┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 3.按照生日查询┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃0.退出管理系统┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("%s", asctime (timenow) );

printf("请输入您的选择(数字0-3):\n");

scanf("%c",&i);gets(lj); if(lj[0])i='a';

switch(i)

{

case '1':bianhao();break; case '2':xingming();break;

case '3':shengri();break; case '0':flog=1;break;

default:printf("输入有误,请重新输入\n");gets(lj);break;

}if(flog)break;}}

4、信息更新函数:

void gengxin()

{

char i,lj[100];

time_t T;

int flog;

struct tm * timenow;

time ( &T );timenow = localtime ( &T );

flog=0;

while(1)

{

system("cls");

printf("\n\n\n\n\n");

printf("┏━━━━━━━━员工信息更新系统━━━━━━━━━┓\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 1.员工信息添加┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 2.员工信息删除┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃ 3.员工信息修改┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃0.退出管理系统┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┃┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf(" %s",asctime (timenow) );

printf("请输入您的选择(数字0-3):\n");

scanf("%c",&i);

gets(lj);

if(lj[0])i='a';

switch(i)

{ case '1':tianjia();break;

case '2':shanchu();break;

case '3':xiugai();break;

case '0':flog=1;break;

default:printf("输入有误,请重新输入\n");gets(lj);break;

}

if(flog)break;

}

}

5、信息一览函数:

void liebiao()

{

char lj[100]; struct emp *p; p=head; system("cls");

if(head==NULL){printf("查找不到信息\n");menu();}

printf("━━━━━━━━━━━员工信息列表━━━━━━━━━━━\n");

printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:\n");

if(head!=NULL)

{while(p!=NULL)

{display(p);p=p->next;} }

printf("\n按回车键返回主菜单\n");gets(lj);}

四、调试分析

4.1、时间复杂度分析

在源程序的各个模块,时间复杂读为,并且随着输入信息量的增加,从而时间复杂度也逐渐增加。

4.2、问题解决

在程序设计过程中,本程序采用两种方式进行数据输入,一种是由用户手动输入数据,另一种是由文本文件数据导入[1]的方式。但在文本导入过程中,导入的是二进制文件,但由于复杂程度较高,从而根据所查资料进行修改,采用导入文本文件。

在结果输出上,由于输出的是黑屏,所以经过查阅资料,运用函数对输出结果的页面进行修饰。

4.3、设计收获

在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在做设计程序实验时,这将使你做的难度加大,浪费宝贵的时间,使你事倍功半。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白。实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做。通过这次程序设计的实验,使我们学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们们受益匪浅。

五、测试结果

1、菜单函数的测试结果如图2

图2

2、信息查询函数的测试结果如图3

图3

3、信息更新函数测试结果如图4

图4

六、用户使用说明

本程序实在VB.6.0环境下通过编译并执行。

用户根据提示信息进行选择并操作。

七、附录源程序:

#include

#include

#include

#include //清屏函数头文件

#include

#include

#include

#define LEN sizeof(struct emp)

#define DATA "employee.txt"

struct emp

{

long int num; //编号

char name[20]; //姓名

int age; //年龄

char sex[4]; //性别

char birthday[10]; //生日

char tel[15]; //电话

char edu[8]; //学历

char pos[20]; //职务

char add[30]; //住址

struct emp *next;

};

struct emp *head=NULL;

int t=0;

void menu();

void gengxin();

void tianjia();

void insert(struct emp *em);

void display(struct emp *p);

void liebiao();

void chaxun();

void bianhao();

void shengri();

void xingming();

void readDate();

void writeDate();

void freeAll();

void shanchu();

void change();

void devise(struct emp *p);

void main()

{

struct emp *head=NULL;

head=(struct emp *)malloc(LEN);

head->next=NULL;system("color F1");

system("mode con: cols=500 lines=1000");

readDate();menu(); system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

printf(" 谢谢使用,再见\n");

}

void menu(void)

{

char i,lj[100]; int flog;time_t T;

struct tm * timenow;

time ( &T );timenow = localtime ( &T );

flog=0;

while(1)

{

system("cls"); printf("\n\n\n\n\n");

printf(" ┏━━━━━━━━━员工信息管理系统━━━━━━━━━┓\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 1.员工信息查询┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 2.员工信息更新┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃ 3.员工信息列表┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃0.退出管理系统┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┃┃\n");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf(" %s", asctime (timenow) );

printf("请输入您的选择(数字0-3):\n");

scanf("%c",&i);gets(lj); if(lj[0])i='a';

switch(i)

{

case '1':chaxun();break;

case '2':gengxin();break;

case '3':liebiao();break;

case '0':flog=1;break;

default:printf("输入有误,请按回车键重新输入\n");gets(lj);break;

}if(flog)break; }}

void tianjia()

{

struct emp *p,*p1; char lj[100];

p=NULL;p1=head;

printf("请输入第%d个员工的信息.\n",t+1);

p=(struct emp *)malloc(LEN);

if(p==NULL)

{printf("分配空间失败"); e xit(0);}

printf("请输入员工的编号:\n");

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

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

if(p1!=NULL)

{if(p->num==p1->num)

{

printf("编号已经存在,请重新输入,按回车键继续:\n");

free(p);gets(lj);getchar(); }}

printf("请输入员工的姓名:\n"); scanf("%s",p->name);

printf("请输入员工的年龄:\n"); scanf("%d",&p->age);

printf("请输入员工的性别:\n"); scanf("%s",p->sex);

printf("请输入员工的出生年月:\n"); scanf("%s",p->birthday);

printf("请输入员工的电话:\n"); scanf("%s",p->tel);

printf("请输入员工的学历:\n"); scanf("%s",p->edu);

printf("请输入员工的职务:\n"); scanf("%s",p->pos);

printf("请输入员工的住址:\n"); scanf("%s",p->add);

insert(p); printf("输入的员工信息为:\n");

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

printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:\n");

display(p);printf("按回车键继续\n");writeDate(); gets(lj);getchar();}

void insert(struct emp *em)

{

struct emp *p0,*p1,*p2; p1=head; p0=em;

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{

while((p0->num > p1->num)&&(p1->next!=NULL))

{p2=p1; p1=p1->next;} if(p0->num<=p1->num)

{

if(head==p1)head=p0;

else

p2->next=p0;p0->next=p1; }

else

{p1->next=p0; p0->next=NULL; }}t++;}

void display(struct emp *p)

{printf("%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n",p->num,p->name,p->age,p->sex,p->birthday,p->tel,p->edu,p->pos,p->add);}

void liebiao()

{

char lj[100]; struct emp *p; p=head; system("cls");

if(head==NULL){printf("查找不到信息\n");menu();}

printf("━━━━━━━━━━━员工信息列表━━━━━━━━━━━\n");

printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:\n");

if(head!=NULL)

{while(p!=NULL) {display(p);p=p->next;} }

printf("\n按回车键返回主菜单\n");gets(lj);}

void chaxun()

{

char i,lj[100];

int flog;

time_t T;

数据结构课程设计参考题目

数据结构课程设计题目 数据结构课程设计题目(大题目).doc 一、公司销售管理系统 项目开发基本要求 1.客户信息管理:对客户的基本信息进行添加、修改和删除。 2.产品信息管理:对产品的基本信息进行添加、修改和删除。 3.供应商信息管理:对供应商的基本信息进行添加、修改和删除。 4.订单信息管理:对订单的基本信息进行添加、修改和删除。 二、高校科研管理系统 系统主要用于帮助高校或科研单位管理和维护各项科研相关资料 项目开发基本要求 1.系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心和一般四种情况。 3.项目参加人员管理模块包括:显示添加修改删除查询。 4.项目基本情况模块包括:显示添加修改删除查询。 5.项目获奖情况模块包括:显示添加修改删除查询。 6.期刊论文管理模块包括:显示添加修改删除查询。 7.著作管理模块包括:显示添加修改删除查询。 8.科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量的计算和统计。 9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分的计算和统计。 三、网络五子棋对战 四、不同排序算法模拟 五、科学计算器 数据结构课程设计题目 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)能统计各学校总分,

管理信息系统综合习题

北京邮电大学高等函授教育 《管理信息系统》综合习题 一、填空题 1.()、()和()是人类社会发展的三大资源。 2.组织中各项活动表现为()、()、()和()的流动。 3.按照处理的对象,可把组织的信息系统分为()和()两大类。 4.一个组织的管理职能主要包括()、()、()和()四大方面,其中任何一方面都离不开信息系统的支持。 5.西蒙(H.A.)教授在著名的决策过程模型论著中指出:以决策者为主体的管理决策过程经历()、()和()三个阶段。后来西蒙在他的决策过程模型中又增加了决策实施后的()阶段。 6.西蒙教授提出按问题的结构化程度不同可将决策划分为三种类型:(),(),()。 7.管理信息系统是一个由()、()等组成的能进行管理信息()、()、()、加工、维护和使用的系统。管理信息系统能实测企业的各种运行情况,利用过去的数据预测未来,从全局出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。 8.不仅仅把信息系统看做是一个能对管理者提供帮助的基于计算机的人机系统,而且把它看做一个(),将信息系统放在组织与社会这个大背景去考察,并把考察的重点,从科学理论转向(),从技术方法转向使用这些技术的组织与人,从系统本身转向系统与组织、环境的交互作用。 9.基于任务的系统层次结构包括:()、()、()、()。 10.方法将()和()两者作为定义企业信息系统总体结构的基础,具体做法是利用()矩阵(也称U/C矩阵)来表达两者之间的关系。11.即对其“功能”这一列,把功能按功能组排列,每一功能组内按功能发生的先后次序排列。然后调换“数据类”的横向位置,使得矩阵中C最靠近()。 12. 战略规划是一个组织的战略规划的重要组成部分,是关于长远发展的规划。战略规划的内容包括:信息系统的()、()及();单位的现状;对影响规划的信息技术发展的预测。

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

《数据结构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)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: 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。

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 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> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构课程设计题目选择

数据结构课程设计题目 说明: (1)选用语言:C或Java语言; (2)需要注明3人(可少于3人)小组各自承担和完成的任务(据此给予成绩); (3)如下带“*”的题目,“*”越多,难度越大一些,分值权重更高---要得到更高分数,推荐选择。 要求: (1) 用中文给出设计说明书(含重要子函数的流程图); (2) 给出测试通过、能实现相应功能的源代码; (3) 测试报告。 0、小学数学四则混合运算试题出题、评价、题库自动生成与组卷系统(****)---已经有2组选择 任务: (1)将随机给出的四则混合运算表达式显示在计算机显示器上,要求应试者给出答案;并且使用堆栈对该表达式求值,同给出的答案进行比较,判断 正确和错误。给出鼓励信息和嘉奖信息; (2)保存多人在不同时间应试的题目与他(或她)给出的答案,评价所出题目的难易程度(通过多人回答正确与否的情况给出),形成题库; (3)按照用户给出的题目难易程度指标(例如让50人的得分满足怎样的正态分布,如90分以上10%,80分以上30%,70分以上30%,60分以上20%,60分 以下10%),从题库中抽取不同的题目,组成试卷。 要求:随机产生的题目中,参加运算的数据随机、运算符随机。题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 1、集合的并、交和差运算---已经有1组选择 任务:编制一个能演示执行集合的并、交和差运算的程序。 要求: (1) 集合的元素限定为小写字母字符[…a?..?z?] 。 (2) 演示程序以用户和计算机的对话方式执行。 实现提示:以链表表示集合。 选作内容: (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。 2、停车场管理------已经有2组选择 任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。 3、哈夫曼码的编/译码系统(**)---已经有1组选择

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

车站综合管理信息系统

目录 第六章车站综合管理信息系统 (2) 第一节车站综合管理信息系统概述 (2) 第二节车站综合管理信息系统的组成及功能 (5) 第三节货调子系统 (10) 复习思考题 (34)

第六章车站综合管理信息系统 [主要内容]车站综合管理信息系统概述、组成及功能,重点介绍货调子系统的操作流 程和主要功能。 [重点掌握]车站综合管理信息系统的组成及功能;货调子系统的主要功能。 第一节车站综合管理信息系统概述 随着铁路运输体制的改革,信息技术的飞速发展,车站作业和管理以及运输调度指挥 对信息化的需求都在日益加大,铁路运输信息化对数据共享的需求也日趋强烈。作为TMIS 重要组成部分之一的车站管理信息系统在整个TMIS中占有举足轻重的地位,但是由于原车站管理信息系统在设计和功能上存在着很多的不足之处,不仅不能很好地满足现场实际工 作的需要,而且也制约了整个TMIS功能的发挥。车站综合管理信息系统在铁道部信息技术中心、广铁集团以及多个铁路局的共同努力下,从2004年1月铁道部内部立项,后经调研、需求分析、系统设计和系统开发等多个阶段,于2005年6月建成。 车站综合管理信息系统在设计之初,就制定了三个主要目标: (一)满足运输生产组织的要求 车站综合管理信息系统要加强信息共享,实现车站全过程管理,并且使车站的生产实 际情况能及时、正确地上报到上级部门,实现车站与路局各系统之间的业务作业闭环。 (二)满足经营管理的需要 车站综合管理信息系统要顺应运输体制的改革,尽可能压缩货车停留时间,并且强化 货运安全管理。 (三)满足货运营销的需要 车站综合管理信息系统为更好地满足市场的需求,在多元运输的激烈竞争中充分发挥 铁路货运的优势,在信息输出形式上增加手机短信催领查询、大屏显示、电话查询以及在 车站级营销用户网站提供数据接口等等。 车站综合管理信息系统在整个设计过程中从运输组织、车流组织的整体流程着眼,考 虑到跨越式发展后未来铁路运输的要求,充分利用了当前的网络技术、通信技术和软件技术,把调度、车站、营销、追踪进行全盘整合,规范了现行TMIS各子系统之间的责任、范围和协作,规划出明确的接口。 一、系统运行环境 该系统适合服务器集中模式(一台服务器带多个车站模式),系统采用C/S和B/S相结 合的方式开发和运行,车号、区长、站调、货调、内交付、零担计划配装等现场岗位采用 C/S模式,预警系统及统一信息共享平台、统一维护平台等岗位采用B/S模式。 数据库服务器:操作系统为Unix,数据库为ORACLE8以上。 Web服务器:安装weblogic的服务器。

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

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

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

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

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

数据结构课程设计题目

《数据结构》课程设计题目 1. 排序算法的性能分析 问题描述 设计一个测试程序,比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 基本要求 (1)对冒泡排序、直接排序、选择排序、箱子排序、堆排序、快速排序及归并排序算法进行比较。 (2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动)。 (3)输出比较结果。 选做内容 (1)对不同表长进行比较。 (2)验证各算法的稳定性。 (3)输出界面的优化。 2. 排序算法思想的可视化演示—1 基本要求 排序数据随机产生,针对随机案例,对冒泡排序、箱子排序、堆排序、归并算法,提供排序执行过程的动态图形演示。 3. 排序算法思想的可视化演示—2 基本要求 排序数据随机产生,针对随机案例,,对插入排序、选择排序、基数排序、快速排序算法,提供排序执行过程的动态图形演示。 4. 线性表的实现与分析 基本要求 ①设计并实现线性表。 ②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储方 式 ③针对随机产生的线性表实例,实现线性表的插入、删除、搜索操作动态演示(图 形演示)。 5. 等价类实现及其应用 问题描述:某工厂有一台机器能够执行n个任务,任务i的释放时间为r i(是一个整数),最后期限为d i(也是整数)。在该机上完成每个任务都需要一个单元的时间。一种可行的调

度方案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。一个时间段不允许分配给多个任务。 基本要求: 使用等价类实现以上机器调度问题。 等价类分别采取两种数据结构实现。 6. 一元稀疏多项式计算器 问题描述 设计一个一元稀疏多项式简单计算器。 基本要求 一元稀疏多项式简单计算器的基本功能是: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序; (3)多项式a和b相加,建立多项式a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做) 7. 长整数的代数计算 问题描述 应用线性数据结构解决长整数的计算问题。设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘、除等基本代数运算。 基本要求 ①长整数长度在一百位以上。 ②实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, a?b mod n, a÷b mod n。 ③输入输出均在文件中。 ④分析算法的时空复杂性。 8. 敢死队问题。 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。 9. 简单计算器

民航综合信息管理系统介绍

民航综合信息管理系统介绍 为贯彻民航总局《中国民航信息化“十五”规划纲要》的精神,华东管理局对“管理信息系统”、“机场信息系统”的建设各抓了一个示范工程作为试点。民航山东省局承担的《民航综合信息管理系统》已2000年圆满完成,达到了华东管理局示范工程试点的全部要求,并于2001年12月5日在济南召开了民航华东管理局办公自动化现场推介会。 该系统由民航华东管理局、民航山东省局和山东浪潮齐鲁软件产业股份有限公司合作开发,采用多层架构体系,支持B/S、C/S两种应用结构模式,满足了民航山东省局内部日常办公业务的需要,显著提高了机关公文信息的运转效率和办公自动化整体应用水平。 一、功能模块: 管理信息系统功能模块一般应覆盖机场、管理局所有的日常办公业务,主要包括文档管理、工作流管理、内部网站、综合查询、辅助决策等内容,其中文档管理、工作流管理是管理信息系统的核心应用。 主要模块简单描述如下: 1、收文管理:实现收文的登记、拟办、阅示、查询、打印、归档、统计的功能。 2、发文管理:实现发文从起草开始直至办理完毕后自动归档全过程的自动流转管理功能。 3、信息管理:实现了信息从起草开始直至办理完毕后自动归档全过程的自动流转功能。 4、督查管理:实现从起草督察事项通知单到返回结果直至办理完毕后自动归档全过程的自动流转功能。 5、部门请示:实现内部请示的起草、汇总、会签等工作过程的流程自动化。 6、会议管理:实现从会议申请、会议通知、会议纪要的整套会议管理功能,便于整理归档。 7、传真发报:实现明传发报的登记、部门审核、领导阅批、发报、查询、打印、归档、统计的功能。 8、合同管理:实现合同从起草开始直至办理完毕后自动归档全过程的自动流转管理功能。

数据结构课程设计报告

编号 课程设计 题目 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:

最新数据结构实训总结

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

数据结构课程设计题目表

《数据结构》课程设计课题表 课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。 要求: (1)所设计的数据结构应尽可能节省存储空间。 (2)程序的运行时间应尽可能少。 课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。 要求:要检查有关运算的条件,并对错误的条件产生报警。 课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求: (1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题7:选择合适的存储结构表示广义表,并能实现下列运算要求: (1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。

综合信息管理系统项目实施方案

综合信息管理系统项目实施方案

目录一、主干网络系统建设 (一)概述 (二)主干网络建设 (三)访问服务中心 (四)Internet连接 (五)服务器系统 (六)系统软件的选择 (七)主干网实施和综合布线子系统(八)数据备份 (九)网络管理 (十)IP地址分配和域名管理 (十一)网络安全 二、管理软件系统建设 (一)概述 (二)财务系统建设 (三)物资管理系统建设 (四)产品技术文档管理系统建设 (五)办公自动化系统建设 三、项目实施及培训 (一)概述 (二)子系统实施及培训进度 四、项目验收

一、某公司综合信息管理系统实施方案——主干网络系统建设 (一)概述 结合某公司企业网的建设,统筹规划,全面安排,确保网络的合理性、先进性、经济性和安全性,并且为网络未来的发展留有足够的扩充余地。 1、网络设计原则 坚持实用性和公司投资的充分利用 坚持开放性、兼容性和可互连性,向事实上的工业标准TCP/IP协议靠拢,同时考虑支持IPX/SPX 坚持技术的先进性 坚持高可管理性 坚持高可靠性 提供冗余备份功能 能有效进行网络管理 利于网络扩展和技术升级 充分利用现有的网络设备 提供严格受控的拨号访问系统 提供完全的网络安全控制 2、网络建设目标和总体规划 某公司信息系统网络建设的目标,主要是在公司办公楼和各生产车间部门构建局域网建设、及其广域网联接的基础上,将互联网技术引入企业内部网,从而建立起统一、快捷、高效的Intranet系统。整个系统在安全、可靠、稳定的前提下,符合经济的原则,即实现合理的投入,最大的产出。具体规划如下: 以电讯公司为中心,与公司机关大楼、厂区内各生产部门(考斯特、总装车间、零件车间及各库房)等单位通过光纤相连,构成一大型局域网。 以千兆以太作为主干网,利用第三层交换技术实现中型局域网规划,在原有网络主干的基础上增加各分交换网与中心主交换机(主节点)构成网络主干,各二级单位(三级节点)采用100M光纤收发器通接入主干网。 考虑到网络环路连接可达到冗余效果,增加系统的可靠性,因此,二级节点之间尽可能互联,形成环路。 网络中心建设拨号访问服务中心,接受远程拨号访问,并由认证和计费系统进行权限认证和计费。 网络通过申请专线或光纤接入公网,在公网上建立虚拟专用网(VPN);通过采用Web技术和Internet-VPN技术以及信息加密技术实现电子商务。这样,可以提供远程拨号访问和通过Internet访问两种方式,来实现全国各地服务人员对公司信息的限制性访问。 网络的安全机制: (1)通过对网络设备的配置,控制访问列表等方式来加强网络的安全性措施; (2)更重要的是,在内部网与公众网的结合处,采用先进的防火墙技术、代理服务器技术、以及Web服务器的口令验证、数据加密等技术实现网络的安全性。 网络中心设立WEB应用服务器、代理服务器、E-MAIL服务器、DNS服务器、计费认证服务器和数据库服务器,实现WEB访问、Internet接入、E-MAIL系统、域名解析、计费认证和应用系统等各种功能。

数据结构课程设计报告

数据结构课程设计 设计说明书 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) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

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