搜档网
当前位置:搜档网 › 河北工业大学数据结构(定稿)

河北工业大学数据结构(定稿)

河北工业大学数据结构(定稿)
河北工业大学数据结构(定稿)

河北工业大学

《数据结构》课程实验

实验报告

题目:Joseph问题求解算法的设计与实现专业:计算机

班级:计8888

姓名:wangdachui

完成日期:2015/1/10

一、试验内容

编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。

二、试验目的

掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。

三、流程图

输入总人数

创建并初始化

n个节点

输入第一个报

的数key

Y

n==0

N

报数过程

输出出列者的

编号及密码

结束

n--

四、源程序代码

#include

#include

struct list

{

int num,code;

struct list *next;

};

void main()

{

printf("Joseph问题求解算法的设计与实现\n \n");

int i,j,m=1;

int key; // 密码.

int n; //人数 .

list *p,*s,*head;

head=(list *)malloc(sizeof(list)); //为头结点分配空间.

p=head;

printf("输入人的总个数:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

printf("第%d个人的密码:",i);

scanf("%d",&key);//输入密码

s=p;

p=(list *)malloc(sizeof(list)); //创建新的结点.

s->next=p;

p->num=i;

p->code=key;

}

p->next=head->next;

p=head;

head=head->next;

free(p);

p=head;

printf("\n\n输入第一个报的数:\n");

scanf("%d",&key);

printf("\n出列顺序为:\n");

for(;n>0;n--)

{

p=head;

for(j=1;j

{

s=p;

p=p->next;

} //报数过程

i=p->num;

key=p->code;

printf("第%d号成员出列\n",i);

s->next=p->next;

head=p->next; //重新定义head,下次循环的开始结点.

free(p);// 释放已出列的结点.

}

}

五、调试过程

m的初值为20;n=7,7个人的密码依次为:3,1,7,2,4,8,4,首先m 值为6(正确的出列顺序应为6,1,4,7,2,3,5)。

六、结果分析

河北工业大学

《数据结构》课程实验

实验报告

题目:实验二停车场管理

专业:计算机

班级:计7777

姓名:doubi

完成日期:2015/1/10

一、试验内容

设停车场是一个可以停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已经停满n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出场为它让路,待该辆车开出大门外,其他车辆再按次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用

二、试验目的

(1)深入了解栈和队列的特性,掌握栈和队列的存储方法。

(2)掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。

三、流程图

车离开 m==’e ’||m=’E ’

车到

Y

N

便道 车场

Y

输入数据

判断 Q>n?

存在停车场

存在便道

车的位置 最后一位

付费离开

便道内车进场

结束

离开

后面车后退

四、源程序代码

#include

void main()

{

struct chechang

{

int hm1,sk1;

}a[5]; //停车场

struct biandao

{

int hm2,sk2;

}b[5]; //便道

struct tuichu

{

int hm3,sk3;

}c[4]; //存放从停车场内退出的车

int p=0,q=0,x=0,n,y,t,r,i,j,g,h,z;

char m;

printf("输入停车场容量和每分钟收费\n");

scanf("%d%d",&n,&y);

printf("输入数据:\n");

for(;;)

{

scanf("%c",&m);

//判断输入数据

if(m=='e'||m=='E')

break;

scanf("%d%d",&t,&r); //t表示车牌号,r表示时间

//车到达

if(m=='a'||m=='A')

{

if(p

{ //n表示停车场容量,p表示场内车的数量a[p].hm1=t;

a[p].sk1=r;

printf("车停在停车厂内%d号位置.\n",p+1);

p++;

}

//车停在便道内

else

{

b[q].hm2=t;

b[q].sk2=r;

printf("车停在便道上%d号位置.\n",q+1);

q++;

}

}

//车离开

if(m=='d'||m=='D')

{

h=p;

for(i=0;i

if(a[i].hm1==t) //判断车是否停在场内

{

p--;

if(i==p)//如果车停在场内最后一位

printf("%d号车在停车厂内停留了%d分钟,应交纳%d元钱.\n",t,r-a[i].sk1,y*(r-a[i].sk1));

else //在它之后进入的车辆先退出场为它让路

{

for(j=p;j>i;j--)

{

c[x].hm3=a[j].hm1;

c[x].sk3=a[j].sk1;

x++;

}

printf("%d号车在停车厂内停留了%d分钟,应交纳%d元钱.\n",t,r-a[i].sk1,y*(r-a[i].sk1));

for(j=i;x-1>=0;x--,j++) //退出的车再进入停车场内

{

a[j].hm1=c[x-1].hm3;

a[j].sk1=c[x-1].sk3;

}

}

if(q!=0) //便道内的车进入停车场

{

a[p].hm1=b[0].hm2;

a[p].sk1=r;

p++;

for(j=0;j

{

b[j].hm2=b[j+1].hm2;

b[j].sk2=b[j+1].sk2;

}

q--;

}

break;

}

//判断车是否停在便道上

for(i=0;i

if(b[i].hm2==t)

{

printf("该车停留在便道内,不收费.\n");

for(j=i;j

{

b[j].hm2=b[j+1].hm2;

b[j].sk2=b[j+1].sk2;

}

q--;

break;

}

if(g==h&&i==z) printf("无该车.\n");

}

}

}

五、调试过程

设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,5),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中:‘A’表示到达(Arrival),‘D’表示离去(Departure),‘E’表示输入结束(End)。

六、结果分析

河北工业大学

《数据结构》课程实验

实验报告

题目:基于哈夫曼编码的通信系统的设计与实现专业:计算机

班级: 888

姓名:帅哥

完成日期:2015/1/10

实验三基于哈夫曼(Huffmen)编码的通信系统的设计与实现一、试验内容

利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。

二、试验目的

(1)掌握二叉树的存储结构及其相关操作。

(2)掌握构造哈夫曼树的基本思想,及其编码/译码过程。

三、流程图

三、流程图

开始

判断

输入编码字

符及编码长

进行哈弗曼

编码

输入要传送

的信息

对接收到的

信息进行编

结束

构造哈弗曼树:

是 四、源程序代码

#include #include #include char *codechar;

int ncodechar,lcodechar; int *arraychar[100]; char *temp; float *proba; char pass[50]; int passl; struct node {

开始

第i 个结点值

I=num ?

第i 个根结点 I=2*num-1?

创建哈弗曼树

输出字符统计情况 I=num ? 结束

float pro;

int num;

struct node* p;

struct node* lc;

struct node* rc;

char *res;

int length;

}*hc;

char message[100][10]={

{"一二三四"},{"五六七八"},{"王岐山地"},{"古古怪怪"},{"弹道导弹"},{"自作主张"},{"发古古怪"},{"曾经沧桑"},{"雷天舞也"},{"杯水车薪"}, {"铩羽而归"},{"不卑不亢"},{"一石二鸟"},{"定还深圳"},{"定海神针"},{"各门庭若市"},{"黑暗之女"},{"我甲方发"},{"意气风发"},{"老当益壮"}, {"宁一摆手"},{"情切意见"},{"不坠青云"},{"找而亡木"},{"安土重迁"},{"不可一世"},{"大海捞针"},{"秋后蚂蚱"},{"饮酒作诗"},{"玩玩小河"},

{"众望所归"},{"无可挑剔"},{"不以为意"},{"冉冉升起"},{"大大咧咧"},{"交定金的"},{"等级低价"},{"打击哦啊"},{"宿建德江"},{"本身就是"},

{"鼠年大吉"},{"都没看完"},{"的大客车"},{"大男大女"},{"石大酒店"},{"多么多么"},{"多么多的"},{"电脑的事"},{"啊加拿大"},{"名的的的"},

{"期咯看过"},{"洋是你的"},{"发怒分意"},{"时间就贷"},{"名发个备"},{"时候的的"},{"马上开始"},{"的那女的"},{"积分是是"},{"神将世界"}, {"顺利交付"},{"是不是是"},{"设计师是"},{"是什么是"},{"咯就的唳"},{"是假的发"},{"秘书部是"},{"膜科技是"},{"是你是是"},{"名啊啊是"}, {"农场盗匪"},{"不可意识"},{"心你吗马"},{"岁月江海"},{"尸好啊发"},{"哈弗发人"},{"鬼时间发"},{"不耻上问"},{"应接与暇"},{"你好发班"},

{"吃吃的额"},{"几何体发"},{"人员人我"},{"偶就个发"},{"三日不绝"},{"金口雨燕"},{"哈弗是额"},{"千万尔好"},{"看逻辑框"},{"耳濡目染"}, {"付人额额"},{"觉得萨就"},{"安静了放"},{"德克士哦"},{"阿婆日怒"},{"阿呆和费"},{"安徽人人"},{"瑞尔富发"},{"垃圾坑啊"},{"恶如日俄"},};

int zifushengcheng()

{

int i,j=0,k=0,yushu,x;

int *b[100];

for(i=0;i<100;i++)

{

b[i]=(int *)malloc(sizeof(int)*lcodechar);

for(j=0;j

{

b[i][j]=0;

}

}

for(i=0;i<100;i++)

{

x=i;

do{

yushu=x%ncodechar;

x=(int)(x/ncodechar);

b[i][j]=yushu;

j++;

}while(x!=0);

for(j=ncodechar-1;j>=0;j--,k++)

{

arraychar[i][k]=b[i][j];

}

j=0;

k=0;

}

for(i=0;i<100;i++)

{

for(j=ncodechar;j

{

arraychar[i][j]=rand()%ncodechar;

}

}

/*for(i=0;i<100;i++)

{

for(j=0;j

{

printf("%d ",arraychar[i][j]);

}

printf(" ");

for(j=0;j

{

printf("%c",codechar[arraychar[i][j]]);

}

printf("\n");

}*/

return 1;

}

int probability()

{

int i,j,k;

for(i=0;i<100;i++)

{

for(j=0;j

{

for(k=0;k

{

if(arraychar[i][j]==k)

{

proba[k]++;

}

}

}

}

printf("随机生成的字符编码概率:\n");

for(i=0;i

{

proba[i]=proba[i]/(100*lcodechar);

printf("%c:%f ",codechar[i],proba[i]);

}

return 1;

}

int Exchangepoint(struct node **a,struct node ** b) {

struct node *t;

t=*a;

*a=*b;

*b=t;

return 1;

}

int Exchangenum(int *a,int *b)

{

int t;

t=*a;

*a=*b;

*b=t;

return 1;

}

int Exchange(struct node*a,struct node*b)

{

float t;

t=a->pro;

a->pro=b->pro;

b->pro=t;

Exchangenum(&a->num,&b->num);

Exchangepoint(&a->p,&b->p);

Exchangepoint(&a->lc,&b->lc);

Exchangepoint(&a->rc,&b->rc);

return 1;

}

int produce(struct node*a,int *b)

{

int i;

a->length=(*b);

a->res=(char *)malloc(sizeof(char)*(*b));

for(i=0;i<(*b);i++)

{

a->res[i]=temp[i];

}

if(a->lc!=NULL&&a->rc!=NULL)

{

temp[(*b)]='0';

(*b)++;

produce((a->lc),b);

temp[(*b)]='1';

(*b)++;

produce((a->rc),b);

}

(*b)--;

return 1;

}

int huffman() //哈夫曼主程序{

int i,j,k,l=0;

for(i=0;i<(ncodechar*2-1);i++)

{

hc[i].lc=NULL;

hc[i].rc=NULL;

hc[i].p=NULL;

hc[i].num=i;

if(i

{

hc[i].pro=proba[i];

continue;

}

hc[i].pro=0;

}

for(i=0;i

{

for(j=i*2;j<(ncodechar+i);j++)

{

for(k=j+1;k<(ncodechar+i);k++)

{

if(hc[k].pro

{

Exchange(&hc[k],&hc[j]);

}

}

}

hc[i+ncodechar].pro=hc[i*2].pro+hc[i*2+1].pro;

hc[i+ncodechar].lc=&hc[i*2];

hc[i+ncodechar].rc=&hc[i*2+1];

hc[i*2].p=&hc[i+ncodechar];

hc[i*2+1].p=&hc[i+ncodechar];

}

printf("\n构造的哈夫曼树:");

for(i=0;i

{

printf("\nchar:%cnum:%dpro:%f",codechar[hc[i].num],hc[i].num,hc[i].pro);

printf(" lc:");

if(hc[i].lc==NULL)

{

printf(" ");

}

else

{

printf("%d,",hc[i].lc->num);

}

printf(" rc:");

if(hc[i].rc==NULL)

{

printf(" ");

}

else

{

printf("%d,",hc[i].rc->num);

}

printf(" p:");

if(hc[i].p==NULL)

{

printf(" ");

}

else

{

printf("%d,",hc[i].p->num);

}

}

produce(&hc[ncodechar*2-2],&l);

printf("\n生成的哈夫曼编码是:\n");

for(i=0;i

{

printf("\nchar:%cnum:%dlength:%dcode:",codechar[hc[i].num],hc[i].num,hc[i]. length);

for(j=0;j

{

printf("%c",hc[i].res[j]);

}

}

return 1;

}

int sent()

{

int i,j,k,x;

printf("\n***********发送方***********\n");

for(i=0;i<100;i++)

{

printf("%d:",i+1);

for(j=0;j<20;j++)

{

printf("%c",message[i][j]);

}

printf(" 相应的字符编码:");

for(k=0;k

{

printf("%c",codechar[arraychar[i][k]]);

}

printf("\n");

}

printf("输入你的信息号:");

scanf("%d",&x);

printf("你选择发送的信息是:");

for(j=0;j<20;j++)

{

printf("%c",message[x-1][j]);

}

printf("\n相应的字符编码是:");

for(i=0;i

{

printf("%c",codechar[arraychar[x-1][i]]);

}

printf("\n根据哈夫曼树得到的哈夫曼编码是:");

for(i=0;i

{

for(j=0;j

{

if(arraychar[x-1][i]==hc[j].num)

{

for(k=0;k

{

printf("%c",hc[j].res[k]);

pass[passl]=hc[j].res[k];

passl++;

}

}

}

}

return 1;

}

int receive()

{

int i,j,k=0,m;

int *get=(int *)malloc(sizeof( int )*lcodechar);

printf("\n*******接收方************\n接收到的哈夫曼编码是:");

for(i=0;i

{

printf("%c",pass[i]);

}

i=0;

while(i!=lcodechar)

{

for(j=0;(j

{

for(m=0;m

{

if(hc[j].res[m]!=pass[k])

{

break;

}

}

if(m==hc[j].length)

{

get[i]=hc[j].num;

i++;

break;

}

k=k-m;

}

}

printf("\n根据哈夫曼树转换出的字符编码为:\n");

for(i=0;i

{

printf("%c",codechar[get[i]]);

}

for(i=0;i<100;i++)

{

for(j=0;j

{

if(get[j]!=arraychar[i][j])

break;

}

if(j==lcodechar)

{

printf("\n字符编码转换后得到的信息是:\n");

for(k=0;k<20;k++)

{

printf("%c",message[i][k]);

}

break;

}

}

printf("\n接收结束,谢谢使用!");

return 1;

}

int main()

{

int i;

char t;

printf("初始化通讯系统:\n输入编码字符集大小n,字符编码长度m(以n m格式来输入):");

scanf("%d %d",&ncodechar,&lcodechar);

codechar=(char *)malloc(sizeof(char)*ncodechar);

proba=(float *)malloc(sizeof(float)*ncodechar);

for(i=0;i

{

proba[i]=0;

}

for(i=0;i<100;i++)

{

学生成绩查询系统

第一章绪论 1.1课题的项目背景 在学校,尤其是在各大职业中专院校,所面对的数据是众多的,而且复杂繁琐。其中学生信息是学校的一项重要的数据资源,学生信息管理也是学校的一项常规性的重要工作。但是在实际情况中,由于学生信息涉及到学校的各个科系,是比较复杂的。长期以来,学生信息管理都是依赖人工进行,面对如此众多的学生信息,其工作量可想而知。对学生信息使用人工管理,不仅仅浪费了大量的人力物力,而且由于人工管理存在大力量的不可控因素,造成了学生信息管理的某些不规范,使得学生信息管理陷入“事半功倍”的地步。 1.2课题的现实意义 学生成绩管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介与它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。 运用学生成绩管理系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。从大的方向说,就是为了加速我国四化建设的发展,实现全部的自动化,使我国发展成为通讯网络化,决策科学化,办公自动化的国家。 在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对国家负责。

河北工业大学图书馆认识实习

图书馆地基工程 一、实习时间 2014年5月21日 二、实习地点 河北工业大学北辰校区在建图书馆 三、实习目的 对专业知识初步、直观的了解。对理论知识进行扩充。通过对实际在建建筑物的地基处理的认识,为以后专业学习起到铺垫的作用! 四、实习内容 早上我们在校在建图书馆工地入口集合,首先我们了解了一下校图书馆的基本信息。图书馆的建筑面积:44974m2;其采用的结构形式是框架结构;图书馆是由同济大学建筑设计研究院设计的;施工是天津建工集团二公司进行的;图书馆主楼地下一层,地上八层,最高40.5m,最大跨度25.2m,裙楼地上一层,高度5.1m,一层地板面距地面0.15m。接下来老师带领我们进入施工工地,对图书馆相关信息又进行了补充。图书馆地下工程有人防和设备间,其中有面积3367m2为人防,平时用于机动车停车场,战时将用于人员的掩护部,抗力级别为核六级,常规六级,其防化级别为两级。 工地正在进行的是图书馆 地基的处理,对此老师进行了详 细的讲解。由于天津属于沿海地 区,地下水位相当浅,所以在基 坑开挖之前首先要做的就是降 低地下水位,根据国标的规定, 地下水位只有降低至最低部下 0.5m时,才能开挖基坑。对于基 坑降水的方法主要有水沟加集 水坑和井点降水两种,但井点降 水适合砂土、地下水位较高的情 况。所以,图书馆工程采用了井 点降水法。井点降水法:在土方 开挖前,在基坑四周埋设一定数 量的滤水管(井),利用抽水设备抽水使所挖的土始终保持干燥状态的方法。

降 水达标 后进行 基础施 工,基础 施工前 必须进 行地质 勘探和 了解地 下管线 情况,根据土质情况和基础深度编制专项施工方案。施工方案应与施工现场实际相符,能指导实际施工。由于校图书馆所在地方周围空旷,考虑经济、环境等各方面因素之后,采用了放坡开挖,而且采用的是二级放坡。(放坡开挖:适用于周围场地开阔,周围无重要建筑物,只要求稳定,位移控制无严格要求,价钱最便宜,回填土方较大。)采用放坡开挖后,要对边坡进行防护,采用的是主动防护系统是以钢丝绳网为主的各类柔性网覆盖包裹在所需防护斜坡或岩石上,以限制坡面岩石土体的风化剥落或破坏以及危岩崩塌(加固作用),或将落石控制于一定范围内运动(围护作用)。坡面防护常用的措施有灰浆或三合土等抹面、喷浆、喷混凝土、浆砌片石护墙、锚喷护坡、锚喷网护坡等。图书馆工程中采用的是锚喷网护的方式! 图书馆主楼采用桩筏基础(桩筏基础:桩基和筏板基础的合称,桩基不是结构,是人工地基,而筏板是结构的组成部分,是基础,对于有地下室的建筑经常用筏板基础,如果荷载较大,地基土的承载力不能满足承载力要求或者沉降要求,所采用的地基处理方式)。其中桩采用的是钻孔灌注桩(灌注桩系是指在工程现场通过机械钻孔、钢管挤土或人力挖掘等手段在地基土中形成桩孔,并在其内放置钢筋笼、灌注混凝土而做成的桩,依照成孔方法不同,灌注桩又可分为沉管灌注桩、钻孔灌注桩和挖孔灌注桩等几类。钻孔灌注桩是按成桩方法分类而定义的 一种桩型。) 桩长38m,直 径700mm。桩 起高距离底 层高度 0.8m-1m。其 高度同时作 为承台钢筋 保护层的厚 度。由桩和 连接桩顶的 桩承台(简 称承台)组 成的深基 础,简称桩 基。桩基具

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1、1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法与工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1、2 什么就是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定就是全新开发,可以由现有软件或可复用软件成分配置形成。 1、3 什么就是软件工程? 软件工程就是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行与维护的过程,即将工程化应用于软件;(2)研究(1)中的方法、 ——IEEE[IEE93] 1、4 什么就是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1、5 软件过程与软件生命周期的相关概念 软件过程就是指开发或制作软件产品的一系列活动及其成果、 所有的软件过程中都包括四个基本活动:(填空) 1、描述( Specification)- 系统应该提供的功能及其开发约束; 2、开发( Development)- 软件产品的生产过程; 3、有效性验证(Validation )- 检验软件产品就是否满足了客户的需要; 4、进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期就是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1、6什么就是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性与可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

信息工程专业介绍

信息工程专业介绍: 1.专业简介:信息技术是衡量一个国家现代化水平的重要标志,我国把信息技术列为21世纪发展战略计划的首位。信息工程是一门研究信息的产生、获取、传输、存储和显示技术的学科。信息工程专业培养在信息工程,重点是光电信息工程领域具有宽厚的理论基础、扎实的专业知识和熟练的实验技能的高级信息工程科技人才。毕业生将在光电信号的采集、传输、处理、存储和显示的科学研究、工程设计、技术开发和企业管理中展示才华。 2.主修课程:光电信息物理基础、光电子学、信号与系统、通信原理、图像处理、传感器原理技术、光电检测技术、自动控制理论、光纤通信、计算机通讯网络、工程光学、微机原理、计算机软件技术基础、计算机网络技术、计算机辅助设计、数字与模拟电子技术基础、电路基础以及有关数理基础和工程基础方面的课程。 3.毕业去向:本专业历年输送了大量优秀毕业生攻读硕士、博士学位。除此之外,主要为科研单位、高等院校、电信部门、信息产业部门、企事业单位及有关公司录用,从事光电信息工程与技术、通信工程与技术、光电信号检测、处理及控制技术等领域的研究、设计、开发应用和管理等工作。 电子信息工程专业 业务培养目标: 业务培养目标:本专业培养具备电子技术和信息系统的基础知识,能从事各类电子设备和信息系统的研究、设计、制造、应用和开发的高等工程技术人才。 业务培养要求:本专业是一个电子和信息工程方面的较宽口径专业。本专业学生主要学习信号的获取与处理、电厂设备信息系统等方面的专业知识,受到电子与信息工程实践的基本训练,具备设计、开发、应用和集成电子设备和信息系统的基本能力。 电子信息工程已经涵盖很广的范围。电话交换局里怎样处理各种电话信号,手机是怎样传递我们的声音甚至图象,我们周围的网络怎么样传递数据,甚至信息化时代军队的信息传递中如何保密等知识。我们通过一些基础知识的学习认识这些东西,并能够进行维护和更先进的技术和新产品的开发。 你首先要有扎实的数学知识,要学习许多电路知识,电子技术,信号与系统,计算机控制原理,信号与系统,通信原理等基本课程。自己还要动手设计、连接一些电路以及结合计算机的实验。譬如自己连接传感器的电路,用计算机自己设置小的通信系统,还会参观一些大的公司的电子和信息处理设备,对整体进行了解,理解手机信号、有线电视是如何传输的等,并能有机会在老师指导下参与大的工程的设计。 随着计算机和互联网日益深入到社会生活的多个层面,社会需求量相当大。现在是一个热门专业。 毕业后干什么——从事电子设备和信息系统的设计、应用开发以及技术管理等 随着社会信息化的深入,各行业大都需要本专业人才,而且薪金很高。可成为: 电子工程师——设计开发一些电子,通信器件,起薪一般2000元——6000元/月; 项目主管—策划一些大的系统,经验、知识要求很高,起薪一般4000元/月以上; 还可以继续进修成为教师,进行科研项目等 专业是个好专业:适用面比较宽,和计算机、通信、电子都有交叉;但是这行偏电,因此动手能力很重要;另外,最好能是本科,现在专科找工作太难了!当然大虾除外 本专业对数学和英语要求不低,学起来比较郁闷要拿高薪,英语是必需的; 吃技术这碗饭,动手能力和数学是基本功当然,也不要求你成为数学家,只要能看懂公式就可以了,比如微积分和概率统计公式,至少知道是在说些什么而线性代数要求就高一些,因为任何书在讲一个算法时,最后都会把算法化为矩阵计算(这样就能编程实现了,而现代的电子工程相当一部分工作都是编程) 对于动手能力,低年级最好能焊接装配一些小电路,加强对模拟、数字、高频电路(这三门可是电子线路的核心)的感性认识;工具吗就找最便宜的吧!电烙铁、万用表是必需的,如果有钱可以买个二手示波器电路图吗,无线电杂志上经常刊登,无线电爱好者的入门书对实际操作很有好处

河北工业大学数据库实验报告

《数据库原理及应用》 实验报告 题目:SQL语言(视图、数据控制、空值和空集的处理)

1.4视图 一实验目的 熟悉SQL语言支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和取消视图。 二实验内容 (1)定义常见的视图形式,包括: ·行列子集视图。 · WITH CHECK OPTION的视图。 ·基于多个基表的视图。 ·带表达式的视图。 ·分组视图。 (2)通过实验考察WITH CHECK OPTION 这一语句在视图定义后 产生的影响,包括对修改操作、删除操作、插入操作的影响。 (3)讨论视图的数据更新情况,对子行列视图进行数据更新。 (4)使用DROP语句删除一个视图,由该视图导出的其它视图定义仍 在数据词典中,但已经不能使用,必须显式删除。同样原因,删除基表时,由该基表导出的所有视图定义都必须显式删除。

三实验题目 (1)定义选课信息和课程名称的视图VIEWC create view VIEWc as select CHOICES.cid,https://www.sodocs.net/doc/4e1059355.html,ame,sid,tid,score from CHOICES,COURSES where CHOICES.cid=COURSES.cid (2)定义学生姓名与选课信息的视图VIEWS create view VIEWS as select STUDENTS.sname,CHOICES.cid,CHOICES.sid,CHOICES.tid,choices. score from CHOICES,STUDENTS where CHOICES.sid=STUDENTS.sid (3)定义年级低于1998的学生视图S1(SID,SNAME,GRADE) drop view s1 create view S1 as select STUDENTS.sid ,sname,grade from STUDENTS where grade>1998 (4)查询学生为”uxjof”的学生的选课信息 select*from VIEWS where sname='uxjof' (5)查询选修课程”UML”的学生的编号和成绩 select sid,score from VIEWC where cname='UML' (6)向视图S1插入记录(”60000001,Lily,2001”) insert into s1values('60000001','Lily',2001) (7)定义包括更新和插入约束的视图S1,尝试向视图插入记录 (“60000001,Lily,1997”),删除所有年级为1999的学生记录,讨论更新和插入带来的影响。 drop view s1 create view S1as select STUDENTS.sid,sname,grade from STUDENTS where grade>1998 with check option

河北工业大学-数据结构实验报告-基于哈夫曼编码的通信系统的设计与实现

基于哈夫曼编码的通信系统的设计与实现 一、实验目的 (1)掌握二叉树的存储结构及其相关操作。 (2)掌握构造哈夫曼树的基本思想,及其编码/译码过程。 二、实验内容 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码。对于双工信道,每端都需要一个完整的编/译码系统。试为这样的信息收发站设计一个基于哈夫曼编码的通信系统。 一个完整的系统应具有以下功能 1)初始化处理:建立通信系统 (1)建立有100句中文的信息集合,每个句子称为一条信息。(2)输入编码参数: ①从终端输入编码字符集大小n,字符编码长度m(设n为4,m为8); ②从终端输入编码字符(设为A,B,C,D); (3)生成每条信息的字符编码,构造字符编码集合; (4)计算每个字符编码集合中出现的概率; (5)根据字符概率构造哈夫曼树,求出每个字符的二进制编码。 2)发送端信息编码 (1)用户从信息集合中选择一条信息,找到该信息对应的字符

编码; (2)根据该信息的字符编码,哈夫曼树求出的每个字符的二进制编码,构造出该信息的二进制编码,记录二进制比编码。 3)接受端信息译码 (1)根据得到的信息的二进制编码,利用哈夫曼树求出每个字符的二进制编码还原出信息的字符编码; (2)根据信息的字符编码,找到对应的信息。 三、源程序代码 #include #include #include char *codechar; int ncodechar,lcodechar; int *arraychar[100]; char *temp; float *proba; char pass[50]; int passl; struct node { float pro; int num; struct node* p; struct node* lc; struct node* rc; char *res; int length; }*hc; char message[100][20]={ {"人之初"}, {"性本善"}, {"性相近"}, {"习相远"}, {"苟不教"}, {"性乃迁"}, {"教之道"}, {"贵以专"}, {"昔孟母"}, {"择邻处"}, {"子不学"}, {"断机杼"}, {"窦燕山"}, {"有义方"}, {"教五子"}, {"名俱扬"}, {"养不教"}, {"父之过"}, {"教不严"}, {"师之惰"}, {"子不学"}, {"非所宜"}, {"幼不学"}, {"老何为"}, {"玉不琢"}, {"不成器"}, {"人不学"}, {"不知义"}, {"为人子"}, {"方少时"}, {"亲师友"}, {"习礼仪"}, {"香九龄"}, {"能温席"}, {"孝于亲"}, {"所当执"}, {"融四岁"}, {"能让梨"}, {"弟于长"}, {"宜先知"}, {"首孝弟"}, {"次见闻"},

数据库实验报告(河北工业大学)

数据库实验报告第一章 李云霄 实验1.1 (1) CREATETABLE CUSTOMER (CID CHAR(8)UNIQUE,CNAME CHAR(20),CITY CHAR(8), DISCNT INT, PRIMARYKEY(CID)) CREATETABLE AGENTS (AID CHAR(8)UNIQUE,ANAME CHAR(20),CITY CHAR(8), PERCENTS FLOAT,PRIMARYKEY(AID)) CREATETABLE PRODUCTS (PID CHAR(8)UNIQUE,PNAME CHAR(20),PRIMARYKEY (PID)) (2) CREATETABLE ORDERS (ORDNA CHAR(8)UNIQUE,MONTH INT,CID CHAR(8),AID CHAR (8), PID CHAR(8),QTY INT,DOLLARS FLOAT,PRIMARYKEY (ORDNA), FOREIGNKEY(CID)REFERENCES CUSTOMER,FOREIGNKEY(AID) REFERENCES AGENTS,FOREIGNKEY(PID)REFERENCES PRODUCTS) (3) ALTERTABLE PRODUCTS ADD CITY CHAR(8) ALTERTABLE PRODUCTS ADD QUANTITY INT ALTERTABLE PRODUCTS ADD PRICE FLOAT (4) CREATEINDEX XSNO ON CUSTOMER(CID) CREATEINDEX XSNO ON AGENTS(AID) CREATEINDEX XSNO ON PRODUCTS(PID) CREATEINDEX XSNO ON ORDERS(ORDNA) (5) DROPINDEX CUSTOMER.XSNO DROPINDEX AGENTS.XSNO DROPINDEX PRODUCTS.XSNO DROPINDEX ORDERS.XSNO 实验1.2 (1)SELECT*FROM COURSES (2)SELECTSIDFROM CHOICES (3)SELECT CID FROM COURSES WHEREhour<88 (4)SELECTSIDFROM CHOICES GROUPBYSIDHAVING SUM(SCORE)>400 (5)SELECT COUNT(CID)FROM COURSES (6)SELECT CID,COUNT(CID)FROM CHOICES GROUPBY cid (7)SELECTSIDFROM CHOICES WHERE score>60 GROUPBYsidHAVING COUNT(cid)>2(8)SELECTSID,COUNT(CID),AVG(SCORE)FROM CHOICES GROUPBYsid (9)SELECT STUDENT.sid,sname from student,choice,COURSES where student.sid=choice.sid and choice.cid=COURSES.cid

河北工业大学数据挖掘实验报告

实验一数据预处理 一、实验目得 1、熟悉 VC++编程工具与完全数据立方体构建、联机分析处理算法。 2、浏览拟被处理得得数据,发现各维属性可能得噪声、缺失值、不一致性等, 针对存在得问题拟出采用得数据清理、数据变换、数据集成得具体算法。 3、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能。 4、调试整个程序获得清洁得、一致得、集成得数据,选择适于全局优化得 参数。 5、写出实验报告。 二、实验原理 1、数据预处理现实世界中得数据库极易受噪音数据、遗漏数据与不一致性数据得侵扰,为提高数据质量进而提高挖掘结果得质量,产生了大量数据预处理技术。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式得质量,降低实际挖掘所需要得时间。 2、数据清理数据清理例程通过填写遗漏得值,平滑噪音数据,识别、删除离群点,并解决不一致来“清理”数据。 3、数据集成数据集成将数据由多个源合并成一致得数据存储,如数据仓库或数据立方体。 4、数据变换通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘得形式。 5、数据归约使用数据归约可以得到数据集得压缩表示,它小得多,但能产生同样(或几乎同样得)分析结果。常用得数据归约策略有数据聚集、维归约、数据压缩与数字归约等。 三、实验内容与步骤 1、实验内容 1、用VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能,并在实验报告中写出主要得预处理过程与采用得方法。 2、产生清洁得、一致得、集成得数据。 3、在试验报告中写明各主要程序片段得功能与作用。 2、实验步骤 1)仔细研究与审查数据,找出应当包含在您分析中得属性或维,发现数据中得一些错误、不寻常得值、与某些事务记录中得不一致性。 2)进行数据清理,对遗漏值、噪音数据、不一致得数据进行处理。例如: 1、日期中得缺失值可以根据统一得流水号来确定。2、购买得数量不能为负值。 3)进行数据集成与数据变换与数据归约,将多个数据源中得数据集成起来, 减少或避免结果数据中得数据冗余或不一致性。并将数据转换成适合挖掘得形式。 例如: 1、进行完数据清理后发现购买数量、销售价格、总额就是相互关联得项可

2021河北工业大学计算机科学与技术考研真题经验参考书

看到贴子的考研党们,恭喜大家和我一样走上考研这条追梦之路,考研这条路是真的不容易走完它需要我们倾尽心力,因此我也想和同学们分享一下我的考研之路是怎么走过的,希望可以为想考取计算机科学与技术的同学提供有用的帮助。 我觉得考研一定要选择自己喜欢的专业,因为考研准备期间的坚持是很重要的,在考研准备期间不像高考那样,考研是没有人监督,也没有人强迫,全靠个人的毅力去坚持,所以对于考研的动力需要我们自己把控,选择自己喜欢的专业就是很好的动力。 河北工业大学的计算机专业基础综合考试涵盖数据结构、计算机组成原理、计算机网络等专业基础课程。数据结构这一部分在考试内容中是分数占比最高的一部分,所以复习专业课的重点就要从这一部分下手,而且一定要熟练的掌握各种数据结构和排序查找算法,并且经常抽时间过一遍,不能再学会之后就不在看,如果不经常抽时间看肯定会忘记,而且这些数据上的东西每一次看都会有不一样的理解,这科概念性的东西相对来说比较少,可以有自己的理解和思路。 关于数据结构这一部分的复习我推荐《数据结构(C 语言版)》这一本书,清华大学出版社出版的。这本书从抽象数据类型的角度讨论了各种基本类型的数据结构及其应用,还主要讨论了查找和排序的各种实现方法及综合分析比较。对于数据结构的描述比较详细,适合数据部分的学习,如果可以把这一本书掌握透彻,相信对于语言结构你会有更新更深的理解。 计算机组成原理相比数据结构来说稍微简单一些,但是也是不能忽视的部分,我认为想要学好计算机的组成原理重要的是理解,一定要理解计算机的组成原理,理解之后在很多问题上都可以从原理上找到答案,计算机相关的专业还是不需要太多的死记硬背的,计算机的组成原理的知识点比较多,要是光靠背到考试时一紧张可能就忘记了。 计算机组成原理的复习资料我这里有2本推荐书,第一本《计算机组成原理》,高等教育出版社出版,这本书是通过对一台计算机的剖析,可以让我们更深入具体的理解总线是怎么把计算机各大部件互连成整机。书里的概念简单清楚,书里的所举案例力求与当代计算机技术相结合更好地帮助理解计算机组成的原理。第二本我推荐《计算机组成与结构》(第三版),清华大学出版社出版,这本书主要

河北工业大学863综合力学(Ⅱ)考研参考书

天津考研网(https://www.sodocs.net/doc/4e1059355.html,) 河北工业大学863综合力学(Ⅱ)考研参考书河北工业大学863综合力学(Ⅱ)考研复习都是有依据可循的,考研学子关注事项流程为:考研报录比-大纲-参考书-资料-真题-复习经验-辅导-复试-导师,缺一不可。 笔者考的专业课是河北工业大学863综合力学(Ⅱ),要考这一科目的同学可以看看下面的内容。教材的话,我用的是: 1.《材料力学简明教程》,清华大学出版社,景荣春; 2.《土力学》,中国建材工业出版社,2006,徐东强; 3.《结构力学》,高等教育出版社,龙驭球; 然后就是专业课资料了,我用的是《河北工业大学864综合力学(结构力学、材料力学、土力学)考研红宝书》。(备注:由于笔者在写文时今年的招生简章还没有出,所以是按照去年的考试大纲写的,资料书名没有改过来,小编担心改了书名上的编码大家会找不到资料,因而仍保留了864的编码。本文其他地方的编码,小编均已改过。今年的编码换成863了哦!!!)其实在买这本资料之前,我还打印了一堆真题,前辈们的自己,总结什么的,结果最后都用来打草稿了。因为真题真的只有题,做了一套就做不下去了。后来在天津考研网主编的这本《河北工业大学864综合力学(结构力学、材料力学、土力学)考研红宝书》资料上,我发现了真题的相关内容,具体包含了:863综合力学(结构力学部分)2000-2012年考研试题(其中2011-2012年包括学术和专硕两张试卷);863综合力学(结构力学部分)2005-2010年考研试题参考答案;863综合力学(材料力学部分)2008-2012年考研试题;863综合力学(土力学部分)2005-2012年考研试题(其中2012年包括学术和专硕两张试卷)。 我在看教材的时候就把自己不是很理解的地方做好标记,然后二轮复习以资料为主,把这些知识点消化成自己的,把不理解的地方搞明白,做好笔记。到了最后的两个月,我就主要看自己的笔记和研究真题了,做真题的时候算是一个查漏补缺的过程,往笔记中补充了些重要的内容,但是总体来说,最后用来整体复习的时间还是少了些,希望大家在备考的时候多加注意。 最后,笔者祝愿各位在河北工业大学863综合力学(Ⅱ)的考试中旗开得胜。

图论应用案例

题目:最小生成树在城市交通建设中的应用 姓名: 学号: 指导老师: 专业:机械工程 2014年3月16

目录 摘要..................................................................................... 错误!未定义书签。 1 绪论 (1) 2 有关最小生成树的概念 (2) 3 prim算法介绍 (3) 4 系统设计及其应用 (5) 一、系统设计 (5) 二、最小生成树应用 (8) 5 总结 (11) 参考文献 (12) 附件: (13)

最小生成树在城市交通建设中的应用 摘要:连通图广泛应用于交通建设,求连通图的最小生成树是最主要的应用。比如要在n个城市间建立通信联络网,要考虑的是如何保证n点连通的前提下最节省经费,就应用到了最小生成树。 求图的最小生成树有两种算法,一种是Prim(普里姆)算法,另一种是Kruskal(克鲁斯卡尔)算法。 本文通过将城市各地点转换成连通图,再将连通图转换成邻接矩阵。在Microsoft Visual C++上,通过输入结点和权值,用普里姆算法获得权值最小边来得到最小生成树,从而在保证各个地点之间能连通的情况下节省所需费用。 本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。 关键字:PRIM算法、最小生成树、邻接矩阵、交通建设

Abstract Connected graph is widely applied in traffic construction, connected graph of minimum spanning tree is the main application.Such as to establish a communication network between the n city, want to consider is how to ensure n points connected under the premise of the most save money, apply to the minimum spanning tree. O figure there are two kinds of minimum spanning tree algorithm, one kind is Prim (she) algorithm, the other is a Kruskal algorithm (Kruskal). In this article, through the city around point into a connected graph, then connected graph is transformed into adjacency matrix.On Microsoft Visual c + +, through the input nodes and the weights, gain weight minimum edge using she algorithm to get minimum spanning tree, which in the case of guarantee every location between connected to save costs. Based on the analysis topic subject background, significance, subject requirements, etc, from requirements analysis, general design, detailed design, testing, and other aspects detailed introduces the system design and implementation process, finally the completion of the system are summarized. Key words: PRIM algorithm, minimum spanning tree, adjacency matrix, traffic construction

河北工业大学-数据结构实验报告-内部排序算法效率比较平台的设计与实现

实验五内部排序算法效率比较平台的设计与实现 1.试验内容 1、问题描述 各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。设计和实现内部排序算法效率比较平台,通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观的感受。 2、基本要求 (1)对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 (2)待排序的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。 (3)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 3、测试数据 由随机数产生器生成。 4、实现提示 主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如,正序、逆序和不同程度的乱序。注意采用分块调试的方法。 2.试验目的 掌握多种排序方法的基本思想,如直接插入、冒泡、简单选择、快速、堆、希尔排序等排序方法,并能够用高级语言实现。

3.流程图

4.源程序代码 #include #include #include #define le 100 struct point { char key[11]; }; //冒泡法 void maopao(point c[]) { point a,b[le]; int i,j,jh=0,bj=0,q; for(i=0;ii;j--){ bj=bj+1;q=strcmp(b[i].key,b[j].key); if(q==1){ a=b[i]; b[i]=b[j]; b[j]=a; jh=jh+3; }; }; }; cout<<"冒泡法:"<

河北工业大学数据挖掘实验报告

实验一数据预处理 一、实验目的 1、熟悉 VC++编程工具和完全数据立方体构建、联机分析处理算法。 2、浏览拟被处理的的数据,发现各维属性可能的噪声、缺失值、不一致性 等,针对存在的问题拟出采用的数据清理、数据变换、数据集成的具体算法。 3、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能。 4、调试整个程序获得清洁的、一致的、集成的数据,选择适于全局优化的 参数。 5、写出实验报告。 二、实验原理 1、数据预处理现实世界中的数据库极易受噪音数据、遗漏数据和不一致性数据的侵扰,为提高数据质量进而提高挖掘结果的质量,产生了大量数据预处理技术。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间。 2、数据清理数据清理例程通过填写遗漏的值,平滑噪音数据,识别、删除离群点,并解决不一致来“清理”数据。 3、数据集成数据集成将数据由多个源合并成一致的数据存储,如数据仓库或数据立方体。 4、数据变换通过平滑聚集,数据概化,规化等方式将数据转换成适用于数据挖掘的形式。 5、数据归约使用数据归约可以得到数据集的压缩表示,它小得多,但能产生同样(或几乎同样的)分析结果。常用的数据归约策略有数据聚集、维归约、数据压缩和数字归约等。 三、实验容和步骤 1、实验容 1、用 VC++编程工具编写程序,实现数据清理、数据变换、数据集成等功能,并在实验报告中写出主要的预处理过程和采用的方法。 2、产生清洁的、一致的、集成的数据。 3、在试验报告中写明各主要程序片段的功能和作用。 2、实验步骤 1)仔细研究和审查数据,找出应当包含在你分析中的属性或维,发现数据中的一些错误、不寻常的值、和某些事务记录中的不一致性。 2)进行数据清理,对遗漏值、噪音数据、不一致的数据进行处理。例如:1、日期中的缺失值可以根据统一的流水号来确定。 2、购买的数量不能为负值。 3)进行数据集成和数据变换和数据归约,将多个数据源中的数据集成起来,

河北工业大学数据结构(定稿)

河北工业大学 《数据结构》课程实验 实验报告 题目:Joseph问题求解算法的设计与实现专业:计算机 班级:计8888 姓名:wangdachui 完成日期:2015/1/10

一、试验内容 编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 二、试验目的 掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。 三、流程图 输入总人数 创建并初始化 n个节点 输入第一个报 的数key Y n==0 N 报数过程 输出出列者的 编号及密码 结束 n-- 四、源程序代码

#include #include struct list { int num,code; struct list *next; }; void main() { printf("Joseph问题求解算法的设计与实现\n \n"); int i,j,m=1; int key; // 密码. int n; //人数 . list *p,*s,*head; head=(list *)malloc(sizeof(list)); //为头结点分配空间. p=head; printf("输入人的总个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("第%d个人的密码:",i); scanf("%d",&key);//输入密码 s=p; p=(list *)malloc(sizeof(list)); //创建新的结点. s->next=p; p->num=i; p->code=key; } p->next=head->next; p=head; head=head->next; free(p); p=head; printf("\n\n输入第一个报的数:\n"); scanf("%d",&key); printf("\n出列顺序为:\n"); for(;n>0;n--) { p=head; for(j=1;jnext; } //报数过程

河北工业大学编译原理实验报告

编译原理实验报告 组员:韦廷廷(112455)、熊敏(112456)、马昊(113042) 任课老师:吴清

一、任务概述 本次实验我们要完成的任务主要是实现一个简单语言集的词法、语法和语义分析程序,验证实际编译系统的实现方法。我们组的分工并不是词法分析、语法分析、语义分析每人负责一个,而是先确定每种分析按照哪一种方法实现,然后每个人写出自己的想法,按照自己的想法实验,最后总结到一起,有问题大家一起讨论,共同商量解决的办法。 二、系统设计 实验采用的实现方法和依据: 语言中的各类单词符号及其分类码表

实验采用的实现方法和依据: 文法:E → T | E+T | E-T T → F | T*F | T/F F → i | (E) 三、系统实现(包括必要的框图,各.h和.c文件说明,所有函数功能的说明,数据结构、各种表格、变量等的说明,以及函数调用关系图等) (1)各.h和.c文件说明 Cifa.cpp的功能:字符串扫描识别。 Table.cpp的功能:存放SLR分析法需要用到的ACTION和GOTO表。 Yufa.cpp的功能:引用Cifa.cpp、Table.cpp两个文件进行语法、语义的分析。 (2)函数功能说明 词法分析部分函数说明: int lookup (char *token) //比较是否是关键字 int GetChar(char ch) //每调用一次,就把扫描指示器当前所指示的源程序字符送入字符变量ch,然后把扫描指示器前推一个字符位置。 int HandleError (void)//报错函数 int EXCUTE (int state, int symbol)//状态转换 int lookup (char *token) //比较是否是关键字

学生成绩管理系统的数据库设计

河北工业大学 数据库课程设计 项目名称学生成绩管理系统的设计 班级 学号 姓名 教师

一、题目要求 系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。 基本要求: 1、完成进学生、班级、课程表的维护 2、完成成绩表的浏览查找 3、完成成绩表的维护 4、按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率 5、统计某学生、某学期的所有课程的平均成绩。 6、完成用户管理功能 7、完成数据备份与恢复功能 二、业务流程图

三、数据流程图

四、E-R模型 1、 2、关系模式集 学生(学号,姓名,性别,年龄) 课程(课程号,课程名,教师名) 选课(学号,课程号,成绩) 五、数据字典 1、学生表 学号(Snumber)char(10)primary key 定义为主键 姓名(sname)char(10) 非空 性别(sex) char(10) 非空

年龄(age)char(10) 非空 2、课程表 课程号(cnumber) char(10)primary key 定义为主键课程名(cname)char(10)非空 学号(snumber)char(10)非空 3、选课表 学号(snumber) char(10)primary key 定义为主键课程号(cnumber)char(10)primary key 定义为主键成绩(成绩)char (10)非空

5、 1)查询学生信息 select snumber ,sname ,sex ,age from 学生 2)查询个人平均分 select snumber ,avg(成绩) as 平均分 from 选课 group by snumber

结构力学辅导书和各个学校

本人参加了12年研究生入学考试,并且成功考上了结构工程专业,由于本人比较喜好结构力学,现把我学习的过程中的一些心得和知道的信息写出来以方便以后的广大研友们。 下面先谈谈结构力学教材和辅导书,然后再讲各个学校真题的风格和复习建议。 一、结构力学教材 现存市面上《结构力学》教材版本还是挺多的,每个学校都有自己固定的教材,每本教材又有自己固有的特点。 1、龙驭球版《结构力学》 这应该是用的最多的教材,也是最常见的版本,龙驭球是清华老院士,这本教材的另一个作者袁驷也是龙驭球的学生,教材后边还附有一个结构力学求解器,非常好用!这个教材比较基础,什么知识都有来龙去脉,讲的很细,难度不是很大,作为本科生教学和考研前期准备还行,但是光做这上面的题目对付考研还是不够的。是华南理工大学考研指定的教材之一。其他一些没自编教材的院校一般都是这本教材。 2、李廉锟版《结构力学》 李廉锟老师也是清华的毕业生,是国内最早写结构力学教材的一批老先生之一,这本教材第5 版了,这本教材也是比较基础,但相对于龙驭球版的教材,要相对简练一些。课后习题也不是很难,是中南大学和北京交通大学和华工桥隧考研的指定教材。 3、王焕定版《结构力学》 王焕定老师是哈工大结构力学的教学带头人,教材内容不错,课后习题也不错,天大连续好几年的静定结构位移计算都是出自这本教材的课后习题原题,最近两年没遇到了,但其课后习题作为前期的一本习题集还是不错的。 4、杨茀康、李家宝版《结构力学》 湖南大学的指定教材,内容也很朴实,也算国内比较早的教材之一。李家宝老先生(曾是湖南大学副校长)1951 年考入的广西大学土木系,1956 年就参与了最早的结构力学教材的编辑,所以同龙驭球,李廉锟的版本内容(包括模式和讲解方式)都是差不多的,作为湖南大学指定的教材,考湖大的同学可以看看。洪范文老师写的教材,也是湖南大学结构力学教研室编的。湖南大学最近两年的出题老师变了,题型风格当然也就变了,11 年变化就挺大的了(但还是能找到原题,11 年的力法跟天大考的一个题,西南交大05 年考过,结构动力学是北京工业06 年的原题,题都不难,但对于没复习到一定境界的同学,或多或少会有些不适应),12 年更是全部大题,考湖大的同学注意复习的方向了,貌似跟华南理工类似。。。 5、朱慈勉版《结构力学》 同济大学结构力学指定教材,个人认为最有深度最值得一看的教材,内容言简意赅,讲得很精练,分析得很透彻,是一本好书。朱慈勉教授强调结构的概念分析,这本书的课后习题有些难度,甚至超过考研真题的难度,可以选择性的做做了。

相关主题