西安邮电大学-(数据结构)校园导游系统课程设计报告

西安邮电大学-(数据结构)校园导游系统课程设计报告
西安邮电大学-(数据结构)校园导游系统课程设计报告

西安郵電大學

数据结构课程设计报告书

系部名称计算机学院

学生姓名崔斌

专业名称计算机科学与技术专业班级计科1106

学号04111185

指导教师衡霞

2012年12月15日至

时间

2012年12月21日

实验题目:校园导游系统

一、实验目的

①:为了让非本校的同学们,家长们能够充分了解本校---西安邮电大学。

②:实践数据结构所学知识。

二、实验内容

①:学校简易的俯视图。

②:各个景点的简单介绍。

③:任意两景点之间的所有路径。

④:任意两景点之间的最少中转景点路径。

⑤:任意两景点之间的带权路径长度。

三、需求分析

Init();初始化两个顺序栈

Menu();进行选择的模块函数;

Intro();景点介绍函数;

Search();判断是否有此编号的景点;

Findallpath();找路径函数;

Findallway();找任意两个景点之间的所有路径;(存在栈里面)Shortestway();任意两个景点之间中转次数最少的路径;(从栈里面读取出来)Niceway();任意两个景点之间总权值最小的路径;(从栈里面读取出来)

Calculate();(从栈里面读取出来相关数据),进行分析运算;Byebye(); 你懂得!

四、概要设计

1、方案设计

对系统进行分析,给出景区图

重点:

①:

//思想;递归结合循环,然后,找到终点时还要回溯;

void findallway(adjlist *G,int m,int n)//两点之间的所有路径

{

int i,t,k;

arcnode *p;

pa_th rp;

push(s,m);

G->vertex[m-1].flag=1;

if(m==n)

{

rp.sumweight=k=calculate(G);

rp.sum=s->top;

rp.num=(y+1);

push1(&z,rp);

printf(" 路径%3d为(途径%2d个景点,长度为%3d):",y+1,s->top,k);

for(i=0;i<=s->top;i++)

printf("->%d",s->elem[i]);

printf("\n");

G->vertex[m-1].flag=1;

y++;//外部全局变量

}

else

for(p=G->vertex[m-1].firstarc;p!=NULL;p=p->nextarc)

{

t=p->num;

if(G->vertex[t-1].flag==0)

findallway(G,t,n);

}

G->vertex[s->elem[s->top]-1].flag=0;//两句顺序不可以调换

pops(s);

}

②:

//从文件里读取数据;

错误1;不知道此节点有几个邻接点,因为%s的原因,就会只把第一个节点的相关数据读出来,从第二个节点的相关信息处,开始读出错误(即烫烫烫烫烫烫烫烫烫烫烫);为此,我在文件里面加了此节点的邻接点个数m,readnet()里面又有count相加以监视不超过m;

错误2;读文件时,因为有链表的部分,就按照单链表的创建些写,结果总是此节点的最后一个邻接点没被读到内存里,究其原因,是最后一个p1没有连接到此条链表的尾部,(不仅我把p2->nextarc=NULL;还把free(p1);)

void read net(adjlist *G)

{

int i,cou nt,m;

arcnode *head,*p2,*p1;

FILE *fp;

fp=fopen(U,"rt");

if(fp==NULL)

{

printf("文件打开失败!!");exit(0);

}

for(i=0;i

{

fscanf(fp,"%d %s %s %d %d",&G->vertex[i].num,G->vertex[i].name,G->vertex[i].introduce,&G->vertex[i].sum,&G->ver tex[i].flag);//fprintf() 的"后面不加第一个空格也可以。

m=G->vertex[i].sum;

p2=H;head=p2;

p1=H;

fscanf(fp,"%d %d",&p1->nu m,&p1->weight);//fprintf() 的"后面不加第一个空格也可以。

count=1;

while(count

{

p2->nextarc=p1;

p2=p1;

p1=H;

fscanf(fp,"%d %d",&p1->nu m,&p1->weight);//fprintf() 的"后面不加第一个空格也可以。

count++;

}

p2->nextarc=p1;//千万不能忘掉此语句,令人蛋碎一地呀

p2=p1;//千万不能忘掉此语句,令人蛋碎一地呀,否则会丢掉每个节点的最后一个邻接点

p2->nextarc=NULL;

//free(p1);//千万不能有此语句,令人蛋碎一地呀

G->vertex[i].firstarc=head->nextarc;

}

fclose(fp);

}

2、数据结构说明

程序中定义的数据类型——结构体(各个成员的作用);

表定义:

typedef struct Arcnode

{

int num;//顶点编号

int weight;//顶点与此点之间路径的权值

struct Arcnode *nextarc;

}arcnode;

typedef struct V ertexnode

{

int num;//顶点编号

char name[20];//顶点景点名称

char introduce[40];//景点简介

int sum;//与其他连接的景点个数//令人蛋疼的读文件呀int flag;//默认为0,刚好可以标志。

arcnode *firstarc;

}vertexnode;

typedef struct AA

{

vertexnode vertex[MAX_vertex_num];//顶点数组

int other;//备用

}adjlist;

五、详细设计及运行结果

六、调试情况,设计技巧及体会(重点)

1、测试数据

包括合法与非法的测试数据、预期结构和实测结果(最好用表格列出)读文件后本应为:

1 超市同学们购物的天堂!

2 0

2 100

3 150

2 宿舍楼同学们就寝,玩游戏的宝地。2 0

1 100

5 30

3 体育馆锻炼身体,高校的体育交流之地。2 0

1 150

6 70

4 旭日苑就餐之地1. 3 0

5 90

6 300

7 120

5 网吧锻炼大脑,手指灵活性的地方。3 0

2 30

4 90

7 120

6 图书馆书的海洋。3 0

3 70

4 300

8 40

7 美广就餐之地2. 3 0

4 120

5 20

10 110

8 大活娱乐晚会举办地。3 0

6 40

9 30

12 200

9 喷泉哈哈,你懂得!3 0

8 30

10 70

13 40

10 实验楼下一个产生钱学森的圣地!3 0

7 110

9 70

11 30

11 教学楼园丁与花朵!2 0

10 30

13 100

12 行政楼学校领导办公之地。2 0

8 200

13 90

13 北门学校的正门。2 0

11 100

12 90

但确只有:(每个邻接点的邻接点都少一个)

1 超市同学们购物的天堂!

2 0

2 100

2 宿舍楼同学们就寝,玩游戏的宝地。2 0

1 100

3 体育馆锻炼身体,高校的体育交流之地。2 0

1 150

4 旭日苑就餐之地1. 3 0

5 90

6 300

5 网吧锻炼大脑,手指灵活性的地方。3 0

2 30

4 90

6 图书馆书的海洋。3 0

3 70

4 300

7 美广就餐之地2. 3 0

4 120

5 20

8 大活娱乐晚会举办地。3 0

6 40

9 30

9 喷泉哈哈,你懂得!3 0

8 30

10 70

10 实验楼下一个产生钱学森的圣地!3 0

7 110

9 70

11 教学楼园丁与花朵!2 0

10 30

12 行政楼学校领导办公之地。2 0

8 200

13 北门学校的正门。2 0

11 100

非法数据:

2、对调试中主要问题进行总结

错误1;(读文件时)不知道此节点有几个邻接点,因为%s的原因,就会只把第一个节点的相关数据读出来,从第二个节点的相关信息处,开始读出错误(即烫烫烫烫烫烫烫烫烫烫烫);为此,我在文件里面加了此节点的邻接点个数m,readnet()里面又有count相加以监视不超过m;

错误2;读文件时,因为有链表的部分,就按照单链表的创建些写,结果总是此节点的最后一个邻接点没被读到内存里,究其原因,是最后一个p1没有连接到此条链表的尾部,(不仅我把p2->nextarc=NULL;还把free(p1);)

还有,由于findallway()是循环与递归的结合,所以调试过程相当累。

3、对自己设计进行评价,指出合理和不足之处,提出改进的方案

自己编写的,就有一份自豪感,但是也有问题;比如,找最小中转路径时,如果有相同的几个,那么就只能打印出一条路径。带权路径也一样。由于时间问题,没有改进,以后会改进的。

4、在设计过程中的感受

感觉循环与递归的结合短小精悍,对于程序员分析问题来说,就,你懂得!

七、源程序清单(略,详见电子版实验报告)

?:

#include"common.h"

#include"seqstacki.h"

#include"schooltravel.h"

#define MAX_vertex_num 30

#define H (arcnode *)malloc(sizeof(arcnode))

#define U "daoyou1.txt"

#define O (linkstacknode *)malloc(sizeof(linkstacknode))

typedef struct Arcnode

{

int num;//编号

int weight;//顶点与此点之间路径的权值

struct Arcnode *nextarc;

}arcnode;

typedef struct V ertexnode

{

int num;//编号

char name[20];//顶点景点名称

char introduce[40];//景点简介

int sum;//与他连接的景点个数//令人蛋疼的读文件呀

int flag;//默认为0,刚好可以标志。

arcnode *firstarc;

}vertexnode;

typedef struct AA

{

vertexnode vertex[MAX_vertex_num];//顶点数组

int other;//备用

}adjlist;

void menu(adjlist *G);

void intro(adjlist *G);

int search(adjlist *G,int s);

void findallpath(adjlist *G);

void findallway(adjlist *G,int m,int n);

void byebye();

void readnet(adjlist *G);

void Map();

void shortestway(adjlist *G);

int calculate(adjlist *G);

void niceway(adjlist *G);

void findweight(adjlist *G,int m,int n);

seqstacki w,*s=&w;

seqstackpath z;

int vnum=13;

main()

{

adjlist q,*G=&q;

initstack(s);

initstack1(&z);

readnet(G);//读出文件

Map();

//printf("%d\n",G->vertex[4].firstarc->nextarc->nextarc->weight);

menu(G);

}

void menu(adjlist *G)

{

int choice;

Map();

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

printf("\n ┣┃●①◣查看景点信息┃┫");

printf("\n ┣┃●②◣查寻两景点之间的路径┃┫");

printf("\n ┣┃︻┳═一●③◣退出系统┃┫");

printf("\n ┻┻┻┻┻┻┻┻︷︷︷︷︷︷︷︷︷︷︷︷︷︷︷┻┻┻┻┻┻┻\n");

printf("\n\t\t你想选择?请选择(1-3):" );

scanf("%d",&choice);

while(choice<1||choice>3)

{

printf("\n\t\t输入错误,重新选择(1-3):" );

scanf("%d",&choice);

}

switch(choice)

{

case 1:intro(G);break;

case 2:findallpath(G);break;

case 3:byebye();exit(0);break;

}

}

void intro(adjlist *G)//景点信息

{

int choice;

int k;//接收返回的数组下标值

Map();

printf("\n\t你想查看哪个景点的详细介绍呢?请按照本校平面图输入--标号:" );

scanf("%d",&choice);

if((k=search(G,choice)+1))//判断是否存在此景点

{

printf("\n%d号景点:\n\t%s--%s",choice,G->vertex[k-1].name,G->vertex[k-1].introduce);//k要-1,否则向后偏移一个景点

printf("\n\t(任意键返回主菜单)\n");getch();menu(G);exit(0);;

}

else

{

printf("\n\t不存在此景点!!(任意键返回主菜单)\n");getch();menu(G);exit(0);

}

}

int search(adjlist *G,int s)

{

int i;

for(i=0;i

if(G->vertex[i].num==s)

return(i);

return(-1);//没有就返回-1

}

int y=0;

void findallpath(adjlist *G)

{

int i,j;//两景点编号

Map();

printf("\n你想查寻哪两个景点之间的路线呢?( - 间隔)请按照本校平面图输入--标号: " );

scanf("%d-%d",&i,&j);

if(0

{

findallway(G,i,j);//所有路径

printf("\n\t共有%d条路径!\n",y);

y=0;//很重要,否则查询几次,她就一直叠加。

shortestway(G);//最短路径广度优先

niceway(G);//最佳访问路径地界斯科拉算法

initstack(s);//找完所有路径后,必须初始化栈,否则栈可能满而溢出

initstack1(&z);//找完所有路径后,必须初始化栈,否则栈可能满而溢出

}

else

{

printf("不存在此景点或者起点和终点是同一点!!(任意键返回主菜单)");

getch();

menu(G);

exit(0);

}

printf("\n\ (任意键返回主菜单)");

getch();menu(G);

exit(0);

}

void shortestway(adjlist *G)

{

int i,max,min,k,t;//不可以直接int max=min=z.elem[0];

max=min=z.elem[0].sum;

for(i=1;i<=z.top;i++)

{

if(min>=z.elem[i].sum)

{

min=z.elem[i].sum;

k=i;

}

if(max<=z.elem[i].sum)

{

max=z.elem[i].sum;

t=i;

}

}

if(min==z.elem[0].sum)

k=0;

if(max==z.elem[0].sum)

t=0;

printf("\n\t最短路径为:%3d号路径,途径%2d个景点!!\n",z.elem[k].num,min);

printf("\n\t最长路径为:%3d号路径,途径%2d个景点!!\n",z.elem[t].num,max);

}

void niceway(adjlist *G)

{

int i,max,min,k,t;//不可以直接int max=min=z.elem[0];

max=min=z.elem[0].sumweight;

for(i=1;i<=z.top;i++)

{

if(min>z.elem[i].sumweight)

{

min=z.elem[i].sumweight;

k=i;

}

if(max

{

max=z.elem[i].sumweight;

t=i;

}

}

if(min==z.elem[0].sumweight)

k=0;

if(max==z.elem[0].sumweight)

t=0;

printf("\n\t最佳访问路径为:%3d号路径,长度为:%2d 米!!\n",z.elem[k].num,min);

printf("\n\t最差访问路径为:%3d号路径,长度为:%2d 米!!\n",z.elem[t].num,max); }

void findallway(adjlist *G,int m,int n)//两点之间的所有路径

{

int i,t,k;

arcnode *p;

pa_th rp;

push(s,m);

G->vertex[m-1].flag=1;

if(m==n)

{

rp.sumweight=k=calculate(G);

rp.sum=s->top;

rp.num=(y+1);

push1(&z,rp);

printf(" 路径%3d为(途径%2d个景点,长度为%3d):",y+1,s->top,k);

for(i=0;i<=s->top;i++)

printf("->%d",s->elem[i]);

printf("\n");

G->vertex[m-1].flag=1;

y++;

}

else

for(p=G->vertex[m-1].firstarc;p!=NULL;p=p->nextarc)

{

t=p->num;

if(G->vertex[t-1].flag==0)

findallway(G,t,n);

}

G->vertex[s->elem[s->top]-1].flag=0;//两句顺序不可以调换

pops(s);

}

int calculate(adjlist *G)

{

int i;

int sum=0;

for(i=0;i<=s->top;i++)

{

findweight(&sum,G,search(G,s->elem[i]),i);

}

return(sum);

}

void findweight(int *sum,adjlist *G,int m,int n)

{

arcnode *p;

for(p=G->vertex[m].firstarc;p!=NULL;p=p->nextarc)

if(p->num==s->elem[n+1])

{

*sum+=p->weight;break;

}

}

void byebye()

{

system("cls");

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

printf("\t\t/\~~~~~~~~~~~~~\▓^*^☆$$.☆\n");

printf("\t\t./\~~~▓~~~~~\ ◆圣诞.快乐*$◢◣$* \n");

printf("\t\t/ ^^ \ ══════\.◆***$◢★◣$* \n");

printf("\t\t..▎[]▎田田▎|┃◆.*$◢■■◣$* \n");

printf("\t\t&&▎▎▎'|'▎@* $◢■■■◣$ * \n");

printf("\t\t#■■■■■■■■■■〓▄▃▂▁愿你圣诞快乐︸︸||︸︸\n\n\n\n");

printf(" 制作人:崔斌\n");

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

printf(" ●☆☆Bye-Bye☆☆●\n");

printf("\n");

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

printf("\n");

printf(" \n");

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

printf("\n");

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

printf(" 西★计\n");

printf(" 安★算\n");

printf(" 邮★机\n");

printf(" 电★科\n");

printf(" 大★学\n");

printf(" 学★与\n");

printf(" ★技\n");

printf(" ★术\n");

printf(" ★11 \n");

printf(" ★级\n");

printf(" ★ 6 \n");

printf(" ★班\n");

printf(" ◆谢谢使用◆\n\n\n");

printf("\t\t\t\t\t\t\t\t-----感谢学姐\n\n\n");

}

void Map()

{

system("cls");

printf("\n\n");

printf("\t\t┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓\n\n");

printf("\t\t┣西安邮电学院校园图┫\n\n");

printf("\t\t┣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬┫\n");

printf("\t\t┣┏━━━┓┫\n");

printf("\t\t┣╔═══════┫①超市┣════┳━━━┓┫\n");

printf("\t\t┣║┗━━━┛┃②宿舍┃┫\n");

printf("\t\t┣║┗━━┳┛┫\n");

printf("\t\t┣┏③┓┏━━━━━┓║┫\n");

printf("\t\t┣┃体┃┃旭┃║┫\n");

printf("\t\t┣┃育┃┃④┃┏⑤━┓┫\n");

printf("\t\t┣┃馆┃┣━━日━━┣════┫网吧┃┫\n");

printf("\t\t┣┗┳┛┃┃┗┳━┛┫\n");

printf("\t\t┣║┃苑┃║┫\n");

printf("\t\t┣║┗┳━━┳━┛║┫\n");

printf("\t\t┣║┏━━━━━┓║║┏━━┓║┫\n");

printf("\t\t┣┗┫⑥图书馆┣┛┗══⑦美广┣═╝┫\n");

printf("\t\t┣┣━━━━━┛┗━┳┛┫\n");

printf("\t\t┣┏⑧━┫┏━━━┻━┓┫\n");

printf("\t\t┣┃大学┃┃实┃┫\n");

printf("\t\t┣┃生活┃┏━━┓┃⑩验┃┫\n");

printf("\t\t┣┃动中┣════⑨喷泉┣══┫楼┃┫\n");

printf("\t\t┣┃心┃┗┳┛┗━━┳━━┛┫\n");

printf("\t\t┣┗━┳┛║║┫\n");

printf("\t\t┣║║┏━━┻━━┓┫\n");

printf("\t\t┣║║┃⑾教学楼┃┫\n");

printf("\t\t┣║║┗━━┳━━┛┫\n");

printf("\t\t┣┏━⑿━┓║║┫\n");

printf("\t\t┣┃行政楼┃║║┏━━━┓┫\n");

printf("\t\t┣┗━━━┻══┳━━⒀━━┳════┛┃东╬西┃┫\n");

printf("\t\t┣┗北门┛┗━━━┛┫\n");

printf("\t\t┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┛\n");

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

}

void readnet(adjlist *G)

{

int i,count,m;

arcnode *head,*p2,*p1;

FILE *fp;

fp=fopen(U,"rt");

if(fp==NULL)

{

printf("文件打开失败!!");exit(0);

}

for(i=0;i

{

fscanf(fp,"%d %s %s %d %d",&G->vertex[i].num,G->vertex[i].name,G->vertex[i].introduce,&G->vertex[i]. sum,&G->vertex[i].flag);//fprintf() 的"后面不加第一个空格也可以。

m=G->vertex[i].sum;

printf("%d %s %s %d %d\n",G->vertex[i].num,G->vertex[i].name,G->vertex[i].introduce,G->vertex[i].sum, G->vertex[i].flag);

p2=H;head=p2;

p1=H;

fscanf(fp,"%d %d",&p1->num,&p1->weight);//fprintf() 的"后面不加第一个空格也可以。

count=1;

printf("%d %d\n",p1->num,p1->weight);

while(count

{

p2->nextarc=p1;

p2=p1;

p1=H;

fscanf(fp,"%d %d",&p1->num,&p1->weight);//fprintf() 的"后面不加第一个空格也可以。

count++;

printf("%d %d\n",p1->num,p1->weight);

}

//p2->nextarc=p1;//千万不能忘掉此语句,令人蛋碎一地呀

//p2=p1;//千万不能忘掉此语句,令人蛋碎一地呀

p2->nextarc=NULL;

free(p1);//千万不能有此语句,令人蛋碎一地呀

G->vertex[i].firstarc=head->nextarc;

}

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

printf(" 制作人:崔斌\n");

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

printf(" ●☆☆WelComE☆☆●\n");

getchar();

fclose(fp);

}

?:

Common.h里的内容:

#include

#include

#include

#include

#include

?:

(长的为:编号简介邻接点个数flag标志—短的为:邻接点编号上面顶点到此的权值)Daoyou1.txt里的内容:

1 超市同学们购物的天堂!

2 0

2 100

3 150

2 宿舍楼同学们就寝,玩游戏的宝地。2 0

1 100

5 30

3 体育馆锻炼身体,高校的体育交流之地。2 0 1 150

6 70

4 旭日苑就餐之地1. 3 0

5 90

6 300

7 120

5 网吧锻炼大脑,手指灵活性的地方。3 0

2 30

4 90

7 120

6 图书馆书的海洋。3 0

3 70

4 300

8 40

7 美广就餐之地2. 3 0

4 120

5 20

10 110

8 大活娱乐晚会举办地。3 0

6 40

9 30

12 200

9 喷泉哈哈,你懂得!3 0

8 30

10 70

13 40

10 实验楼下一个产生钱学森的圣地!3 0

7 110

9 70

11 30

11 教学楼园丁与花朵!2 0

10 30

13 100

12 行政楼学校领导办公之地。2 0

8 200

13 90

13 北门学校的正门。2 0

11 100

12 90

?:

schooltravel.h里的内容:

#define MAX 100

typedef struct SSS

{

int num;//接收编号y

int sum;//接收路径条数t

int sumweight;

}pa_th;

typedef struct MM//顺序栈

{

pa_th elem[MAX];

int top;

}seqstackpath;//sequence-stack-int

void initstack1(seqstackpath *s)

{

s->top=-1;

}

void push1(seqstackpath *s,pa_th ch)//进栈

{

if(s->top==MAX-1)

{

printf("栈已满!");exit(0);

}

s->top++;

s->elem[s->top].sum=ch.sum;

s->elem[s->top].num=ch.num;

s->elem[s->top].sumweight=ch.sumweight; }

?:

seqstacki.h里的内容:

#define MAX 100

typedef struct Node//顺序栈

{

int elem[MAX];

int top;

}seqstacki;//sequence-stack-int

void initstack(seqstacki *s)

{

s->top=-1;

}

void push(seqstacki *s,char ch)//进栈

{

if(s->top==MAX-1)

{

printf("栈已满!");exit(0);

}

s->top++;

s->elem[s->top]=ch;

}

void pop(seqstacki *s,char *ch)//出栈

{

if(s->top==-1)

{

printf("栈已空!");exit(0);

}

else

{

*ch=s->elem[s->top];

s->top--;

}

}

void pops(seqstacki *s)//出栈

{

if(s->top==-1)

{

printf("栈已空!");exit(0);

}

else

s->top--;

}

void gettop(seqstacki *s,char *ch)//取栈顶

{

if(s->top==-1)

{

printf("栈已空!");exit(0);

}

else

*ch=s->elem[s->top];

}

int isempty(seqstacki *s)//空栈

{

if(s->top==-1)

re turn(1);

else

re turn(0);

}

int isfull(seqstacki *s)//满栈

{

if(s->top==MAX-1)

re turn(1);

else

re turn(0);

}

void clearstack(seqstacki *s)//清空栈

{

s->top=-1;

}

注:关于.h文件的创建,只需要把上述相关内容复制到同名的文本文档中,然后把.txt改为.h

西安邮电大学课程设计报告

一. 实验目的及实验环境 实验目的:目前,对于中小超市来说,需要采取一套行之有效的超市管理系统来管理超市的日常进货、销售、员工管理等信息。本次设计的超市管理系统就是想让用户以最少的手工业务处理,来完成超市中的日常工作,增加超市业务处理的效率。 一个典型的超市管理系统,除了应该完成超市中必要的销售工作,如收银台,还应该具有后台管理的功能。 实验环境:系统的体系结构:C/S结构 前台:Java (Eclipse 3.5) 后台数据库:SQL Server 2008 二. 实验内容 超市管理系统 该系统应具备前台收银操作,还有后台对各种数据的管理。 该系统应为多用户使用的,应以用户的权限来进入系统管理模块。 友好的界面及方便简单的操作。 数据存放在数据库中,系统对数据库可进行增、删、查、改的操作。三.方案设计 系统开发的总体任务是实现Java与SQL Server 2008的组合应用,实现用JDBC 方式调用SQL数据库,且有一定的透明性。 超市管理系统需要完成的功能主要有: 1、用户分类登录系统及权限管理。 2、超市收银台的销售管理方式。 3、销售商品信息的录入、查询、修改、删除。 4、供应商信息的录入,查询,修改、删除。 5、超市员工的职位基本信息的设定。 6、员工的基本信息的录入,查询,修改和删除。 7、仓库信息的录入与查看。 8、数据间的相互联系:销售商品的数量和库存量的基本联系;商品信息和供应商的相关数据联系;员工与职位间的联系等。 9、数据存放在数据库中,任何数据操作都是对数据库的数据的操作。

系统结构图(功能模块图) 各个模块的功能描述: (1)、登录界面:本系统简单的设置有三种职位,用户使用密码登录,成功后给其相应的操作界面。 (2)、仓库管理:是仓库管理员和老板可使用的操作,主要是查看仓库的入库信息和添加入库信息。 (3)、管理商品信息:只有老板可用,主要是查看现有商品的信息、修改、删除及添加新的商品信息。 (4)、管理供应商信息:只有老板可用,主要是查看现有的供应商的信息、修改、删除及添加新供应商的信息。 (5)、管理员工信息:只有老板可用,主要是查看现有的员工信息、修改、删除及增加新员工。 (6)、查看销售纪录。 四.测试数据及运行结果 1、Java与数据库SQL 2008的链接: String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=SuperMarket"; 2、用户登陆(登陆界面,老板界面,仓库管理员界面,销售员界面):

软件工程课程设计方案报告范例

西安科技大学 软件工程课程设计报告 题目:图书馆管理系统 班级:软件工程** 学号: ********** 姓名: ******* 2013年1月

目录 1绪论 (1) 2 可行性研究报告 (1) 3 需求规格说明书 (4) 4 总体设计说明书 (7) 5 数据库设计说明书 (8) 6 详细设计说明书 (9) 7 系统实现 (11) 8测试分析报告 (23) 参考文献

1.绪论 1.1 选题目的及意义 随着计算机技术的快速发展,人们对用计算机代替手工管理信息的需求越来越强烈,越来越多的计算机软件如雨后春笋般的应用于人们生产生活的各个领域,为人们提供各种各样的便利。本图书馆管理系统应用软件可以有效地解决高等院校、中小学图书馆由于藏书量增大而带来的管理问题,图书馆管理员可以更好地管理学校图书馆藏书信息,学生可以更方便地享受借书还书的服务,为更有效地学习知识提供有利的保证。 对于我来说,选择这个题目作为课程设计的题目有以下两个原因:一是因为自从上大学以来,每当在图书馆借书的时候,我都会留心观察一下图书馆管理员的那台计算机上显示的内容,久而久之,就对本系统的基本流程越来越了解,做好一个软件的前提是必须对这个软件的功能和原理非常熟悉,相比别的题目,我对这个题目更加了解;二是本学期通过学习Java程序设计和Oracle数据库课程,我觉得这个题目虽然没有那么难(涉及算法的内容很少),但也不是轻而易举就能完成的,所以我想挑战一下自己,看看自己的实现能力到底怎么样,因此决定用面向对象方法学的思想,前台用Java程序设计语言编写界面,访问Oracle数据库中的数据,完成本系统。 1.2 系统概述 本系统通过JDBC-ODBC桥实现前后台数据的联系,基本上实现了一个图书馆管理系统所具备的基本功能,本系统把使用者分为三类:超级管理员、普通管理员、读者,对三种用户分别设计了各自的主界面,以便更好的实现信息的隐藏性,超级管理员可以进行这个系统所有操作;管理员只能执行超级管理员的基本功能,查看自己的信息;读者只能查看自己的信息,对自己当前借书进行挂失和续借两种操作,查询图书馆的藏书。 2.可行性研究报告 2.1 编写目的 本报告编写目的在于研究图书馆管理系统应用软件是否可行,指出本软件开发所使用的方法和手段,并对该软件前景进行分析。 本报告的预期读者是:高等院校、中小学图书馆管理人员、程序设计人员、以及对图书馆管理系统感兴趣的爱好者。 2.2 相关背景 工程名称:图书馆管理应用软件 工程产品名称:高校图书馆管理系统应用软件 工程的组织者:西安科技大学计算机学院软件工程系 产品用户:高校图书馆、中小学图书馆; 产品的生产者:西安科技大学计算机学院软件工程062班袁震; 产品设计者:西安科技大学计算机学院软件工程062班袁震; 2.3 可行性研究的前提 本图书管理系统在功能上要求完成以下基本功能: a).读者、管理员登陆;

2018西安邮电大学初试考试大纲—826数据结构

西安邮电大学硕士研究生招生考试大纲 科目代码:826 科目名称:《数据结构》 一、课程性质和任务 数据结构是计算机各专业的专业基础课。它是操作系统、数据库、编译原理等所有软件专业基础课和专业课的重要基础;它还是进行程序设计,尤其是进行高水平的应用程序和系统程序必不可少的基础。通过本课程的学习,使学生掌握数据组织、存储和运算的基本原理和方法,培养学生对各类数据结构和相关算法的分析和设计的能力,使学生能够编写出正确、清晰和较高质量的算法和程序。 二、课程教学内容和要求 第一章数据结构和算法 1.了解数据结构、逻辑结构、存储结构和抽象数据类型的基本概念。 2.了解数据结构的发展和地位。 3.了解各种算法描述方法和算法设计的基本要求。 4.掌握对算法的评价标准和算法效率的度量方法。 第二章线性表 1.理解线性表的概念、定义、逻辑结构和存储结构。 2.熟练掌握线性表的顺序结构及其各种基本运算。 3.熟练掌握单链表、循环链表、双向链表的存储结构及其各种基本运算。 4.理解链表的应用——稀疏多项式存储和运算。 第三章栈和队列 1.掌握栈的定义、表示、实现和应用。 2.掌握递归的概念和递归的实现过程。 3.掌握队列的定义以及顺序(循环队列)和链式存储结构的实现。 第四章串 1.了解串的基本概念及顺序和链式存储结构。 2.掌握串的各种基本运算。

3.了解串的模式匹配算法。 第五章数组和广义表 1.掌握数组的顺序存储结构。 2.理解稀疏数组的概念和压缩存储的方法。 3.理解稀疏矩阵的三元组存储结构和基本运算。 4.了解稀疏矩阵的十字链表存储结构。 5.理解广义表的基本概念,掌握广义表的存储结构。 第六章树 1.理解树的基本概念及其存储结构。 2.熟练掌握二叉树的定义、性质以及各种存储结构和遍历算法。 3.掌握线索二叉树的概念、存储结构及线索化算法。 4.掌握树和森林与二叉树间的转换,掌握树和森林的遍历算法。 5.掌握哈夫曼树的概念、存储结构和应用。 第七章图 1.理解图的基本概念,掌握图的邻接矩阵和邻接表的存储结构。 2.了解十字链表,邻接多重表等存储结构。 3.熟练掌握图的深度优先和广度优先遍历算法。 4.理解图的连通性、最小生成树的概念。 5.掌握求最小生成树算法。 6.理解有向无环图的概念,掌握拓扑排序和关键路径算法。 7.理解带权最短路径的概念,掌握求最短路径的算法。 第八章查找 1.理解查找的概念及其效率的评价方法。 2.理解静态查找表的概念,熟练掌握顺序、折半和分块查找算法。 3.理解动态查找表和二叉排序树的概念。 4.了解平衡二叉树的概念。 5.理解哈希表的含义,掌握哈希函数的构造和处理冲突的基本方法。第九章内部排序 1.掌握插入类排序的算法:直接插入排序、希尔排序。

西安邮电大学认识实习报告

西安郵電大学 认知实习报告书 院系名称:计算机学院 学生姓名:张帆帆 专业名称:计算机科学与技术 班级:1506班 实习时间:2016年6月20-216年6月22

认识实习报告 2016年6月20日我们开始了我们为期三天的认识实习,从学校一些重要的实验室到学校的网络中心室,还有西安软件园和中兴手机。 虽然说我们从来到这所学校已经快一年了,但是我们对学校的了解还是微乎其微,比如各种各样的实验室,他们有自己不同的发展方向和侧重点,还有各种各样高级的实验设备和经验丰富的指导老师,这些都是一个学校,一个学院甚至一个专业的精华所在,是无数代前人和学长学姐努力的产物,他们把它赋予价值并且发扬光大。相比于对自己学院的核心一无所知,整天待在宿舍,能见识一下自己所在地方的魅力,显得意义非凡。 第一天我们参观的是自动化学院的实验室,参观的同时有老师或者学长进行讲解,我们首先参观的是217-221实验室,他们的侧重点是测控和计控原理,其中自控原理的核心思想是闭环控制,老师讲解的时候举了一个空调的例子。一个闭环控制主要部件有控制器、执行器、被控对象和监测系统。即由监测系统检测并反馈给CPU,CPU启动执行器,执行器执行其所控制的被控对象,比如空调会制冷,形成一个闭合的执行系统。211实验室主要是单片机,也叫单板机,是一个装置的核心控制部分。然后还参观了无线传感实验室,主要承担智能传感网、物联网技术等,面向测控技术与仪器。中途老师还带我们参观了航模实验室,虽然核心地区在一个非常小的屋子里,但是里面墙壁,桌面上,地上,摆放着各种各样的飞行器组件及成品,虽然有些成品看起来非常简单,但它却能完成各种各样的飞行任务,保持双翼平衡及旋转角度控制,真的非常神奇,因为完成它们的不是什么传说中的科学家或教授,而是在校大学生,是一些为了梦想不断学习的普普通通的大学生。最后参观的是非常有意思的一个实验室,叫机器人创新实验室,他们主要是做一些有目的性的“机器人”,可以完成特定任务,当然它们的长相不一定是人的形态,是一个比较形象的称呼,主要是由一些传感器和电机以及单片机焊接电路组成,学长还展示了他们的功能,比如避障,摇尾巴,电子秤,会踢足球的机器人,还有门禁系统,我觉得这些和我们东区的嵌入式其实差不多,可是我却并不了解! 在这个过程中,老师还展示了一些学长学姐由一个思想的火花把它变成现实

西安工业大学通信工程专业和电子信息工程专业本科毕业设计题目

西安工大通信工程和电子信息工程专业 毕业设计参考题目 题目: 导师: 内容: 要求:专业不限..【通信工程 电子信息科学与技术 电子信息工 程】 部门:部门不限..【信通系 电工电子教学部 电工电子实验中心 信控技术研究所 院办】 来源:来源不限..科研 生产实际 自拟 其它 状态:可选状态 结束状态 状态不限 列表按 默认题目 导师专业来源部门 限选 已选结束 日期 降序 升序排列 【信通系】网上选题系统 秦刚电子信息工程[需要1人] 浏览详情 [1]电缆隧道车转向控制系统的研究 4004 张海宁 专业方向不限[需要1人,已接受0人]可选报 [2]电动扭矩扳手设计 还没有人选报! 雷斌 专业方向不限[需要1人] 浏览详情 [3]便携式水分数据采集仪设计与实现 4018 王鹏 专业方向不限[需要1人] 浏览详情 [4]基于WIFI 的嵌入式图像监控系统--图像存储模块 4023 张峰 专业方向不限[需要1人] 浏览详情 [5]无线气压测量系统 一接口及显示单元设计 4015 [需要1人] 浏览详情 [6] 雷斌专业方向不限 基于Creator/Vega 的试验水槽仿真模型的实现 4031 雷斌 专业方向不限[需要1人] 浏览详情 [7] 靶场试验环境的虚拟现实场景建模 4016 雷斌 专业方向不限[需要1人] 浏览详情 [8] 便携式热敏电阻测温缆数据采集仪设计 4015 雷斌 专业方向不限[需要1人] 浏览详情 [9] 多路高 精度计时及延时控制器通信接口设计 4032 雷斌 专业方向不限[需要1人] 浏览详情 [10] 多路高精度计时及延时控制器人机接口设计 4019 雷斌 专业方向不限[需要1人] 浏览详情 [11] 多路高精度计时及延时控制器设计与实现 4032

西安邮电大学嵌入式实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:嵌入式系统原理与应用 专业名称:软件工程 班级:1101班 学生姓名: 学号(8位): 指导教师:李宥谋 实验日期:2013年12月25日

实验一流水灯实验 一.实验目的及实验环境 1.实验目的 ●熟悉LPC2000系列ARM7微控制器的GPIO输出控制。 2.实验环境 ●硬件:PC机一台 LPC2131教学实验开发平台一套 ●软件:Windows 98/XP/2000系统,ADS1.2集成开发环境。 二.实验内容 使用GPIO口控制8个LED流水灯显示。 三.方案设计 ①启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131 工程模板建立一个工程LedDisp_C。 ②在user组里编写主程序代码main.c。 ③选用DebugInRam生成目标,然后编译链接工程。 ④将EasyARM教学实验开发平台上的P1.[18:25]管脚对应与LED[1:8]跳线 短接。 ⑤选择Project->Debug,启动AXD进行JTAG仿真调试。 ⑥全速运行程序,程序将会在main.c的主函数中停止。

⑦单击Context Variable图标按钮(或者选择Processor Views->Variables)打开变量观察窗口,通过此窗口可以观察局部变量 和全局变量。选择System Views->Debugger Internals 即可打开 LPC2000系列ARM7微控制器的片内外寄存器窗口。 ⑧可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程 序运行,观察变量的值,判断LED1~LED8控制是否正确。 四.测试数据及运行结果

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

数据结构课程设计报告含代码完整版

数据结构课程设计报告 含代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

西安邮电学院 数据结构课程设计报告题目:校园导航系统 院系名称:计算机学院 专业名称:计算机科学与技术 班级: 学生姓名: 学号(8位): 指导教师: 设计起止时间:2011年12月11日~2011年12月15日

一. 设计目的 1.通过本次课程设计巩固《数据结构》中所学的内容; 2.提高自己上机编程以及调试能力。 二. 设计内容 1.设计所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 2.为来访客人提供图中任意景点相关信息的查询。 3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 三.概要设计 1.功能模块图; 2.各个模块详细的功能描述。 1. 可以手动创建一个校园图。 2. 可以直接从文件读取校园各个景点的信息。 3. 可选择从任意个景点作为起点进行遍历。

4. 输入景点序号查询该景点相关信息。 5. 输入两个景点查询两个景点的最短,最佳及其所有的路径。 6. 将校园图信息保存入文件。 四.详细设计 1.功能函数的调用关系图

2.各功能函数的数据流程图 1. Adjmatrix *g即结构体对象在main()中被创建在其他子函数中进行参数传递。 2. 全局变量visited数组 中用。 3. 全局变量shorest[][],path[][] 在floyd()中被赋值来分别记录v[i]-v[j]最短路径和 v[i]-v[j]所经过景点。 3.重点设计及编码 两景点最短距离弗洛伊德算法 void floyd(adjmatrix *g) { int i,j,k; for(i=0;ivexnum;i++) for(j=0;jvexnum;j++) shortest[i][j]=0; for(i=0;ivexnum;i++) for(j=0;jvexnum;j++) { shortest[i][j]=g->arcs[i][j].adj; path[i][j]=0; } for(i=0;ivexnum;i++) for(j=0;jvexnum;j++) for(k=0;kvexnum;k++) if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) { shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k; path[j][i]=k; } }

电子生产实习报告 西安邮电大学

西安邮电大学 生产实习报告书 系部名称:电子工程学院 学生姓名: 专业名称:电子信息工程 班级: 实习时间:2013 年 2 月25日至2013 年3月8日

报告内容包括以下几方面: 一、生产实习的目的 1、通过实训熟悉原理图的绘制流程。 2、通过实训认识基本元器件的序号、封装形式。 3、通过实习制作原理图生成电路板。 4、通过实习学会自动布线,制作电路原理图元件和元件封装。 5、通过PROTELl 99 SE 完成几个简单的电路设计,建立和提高对SCH和PCB系统 的认识,并应用到自己的硬件电路设计中。 二、生产实习的内容 1、单片机板:原理图、两种封装形式(直插、表贴) 2、DSP板:符号库、封装库(表贴) 三、原理图设计步骤 (1)新建数据库文件:如mydesign2.ddb (2)建立原理图文件:File/new Schematic document sheet1.Sch (3)加载元件库:Miscellaneous Devices. lib; Protel Dos Schematic. lib; (4)绘制原理图,对于元件库中没有的元器件要自己创建。 (5)检查原理图:tools/ERC (6)添加器件封装:footprint,注意直插式和表贴式的封装形式是不同的。对于封装库中没有的封装,要注意利用向导自己建立。 (7)生成元件清单:reports/bill of material (8)产生网络表:Design/Create Netlist

四、印刷电路板设计步骤 (1)绘制原理图及生成网络表 (2)规划电路板 (3)启动印刷电路板编辑器 (4)设置参数 (5)装入网络表及元件的封装 (6)布置元件 (7)自动布线与手工调整 (8)印刷电路板文件的保存及打印输出 五、原理图符号库的设计 (1)进入元件符号库:design/make project library (2)利用绘图工具栏绘制所需元件。 (3)保存绘制元件,将元件置入电路图。 六、印刷电路板封装库的设计 (1)启动设计数据库文件,进入PCB元件编辑界面。 (2)从tools菜单中选择new component命令,进入封装创建向导。(3)根据实际的元器件确定封装形式,并按照向导的步骤创建元件封装。(4)保存添加。 各阶段电路原理图及封装结果如下: 1.单片机板: (1)原理图

西安工业大学毕业设计要求

1 专科毕业设计说明书(论文)的字数及印装 1.1 毕业设计说明书(论文)的字数 专科毕业设计说明书(论文)的字数:理工科1.2万字以上,文科1万字以上,体育艺术类8,000字以上。 1.2毕业设计说明书(论文)用纸、版面及页眉 1.3 毕业设计说明书(论文)用字及打印 毕业设计说明书(论文)使用简化汉字撰写(外语类专业除外)。毕业设计说明书(论文)必须打印;打印稿正文、中文摘要用字为小四号宋体,页码置于页面的底部并居中放置,论文采用单面打印。 电子文档格式:DOC格式或WPS格式。 1.4毕业设计说明书(论文)的装订 毕业设计说明书(论文)的封面按统一要求(见附录A)制作,论文装订后,成品尺寸与A4纸幅的偏差为 2mm。

2 毕业设计说明书(论文)内容顺序、摘要及主要符号表 2.1毕业设计说明书(论文)的内容及顺序 毕业设计说明书(论文)的内容按顺序依次为:封面、扉页、摘要、目录、主要符号表、论文主体部分(包括绪论、正文和结论三部分)、致谢(总结)、注释、参考文献、附录等。 2.2 封面 a. 封面的主要内容包括:“毕业设计说明书”或“毕业设计论文”字样、论文题目、论文作者信息、指导教师(含专业技术职务信息)、提交论文时间等。 b. 论文题目应能反映论文的主要工作、研究目的和特点。确定题目时要把握好可索引性、特异性、明确性和简短性。论文题目的字数一般应在25字以内。如果有些细节必须放进标题,可分为主标题和副标题两个部分。 封面的排版规范见附录A。 2.3 扉页 内容与封面相同。 2.3 摘要 a. 摘要包括:论文题目、“摘要”字样(位置居中)、摘要正文、关键词。 b. 摘要主要包括三部分内容:论文研究工作的目的意义、研究的内容及方法、结果与结论。 c. 毕业设计摘要应简明扼要,文字要精练。 d. 关键词是反映毕业设计(论文)主题内容的名词,是供检索使用的,应尽量选取《汉语主题词表》等词表提供的规范词。一般为3~5个,按词条外延层次(学科目录分类),由高至低顺序排列。关键词排在摘要部分的下方。 e. 英文摘要与中文摘要相对应,但应避免按中文字义逐字逐句生搬硬译。 f. 摘要排版见附录B(中文摘要B1,英文摘要B2)。 2.4 目录 a.目录应包括:主要符号表、正文中的标题、附录、参考文献、致谢等。 b.目录编入三级标题,即章、节、小节的标题,各级序号均使用阿拉伯数字。 c.目录中的页码从论文的正文开始至全文结束。 d.中英文摘要、符号表及目录本身的页码另编,页码在页下方居中排列。 目录的排版规范见附录C。

西安邮电大学软件课程设计报告

软件课程设计 报告书 院系名称:电子工程学院 学生姓名:李群 专业名称:光信息 班级:1103 学号:05113096 时间:2012年4月11日至2012年4月20日

实验题目 一、实验目的 让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平。要求编程时采用结构体、指针、文件等复杂数据结构存储组织数据。 二、实验内容 1 通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证; 2 给定学号,显示某位学生的学生证信息; 3 学生信息的添加 4 显示全部的学生证信息; 5 给定某位学生的学号,修改该学生的学生证信息; 6 给定某位学生的学号,删除该学生的学生证信息; 7 提供一些统计各类信息的功能。统计学生数,学生男女人数; 8 能够对年龄进行升序和降序排序; 9 用文件的形式将录入的数据进行存储,并从其中读取数据。 三、需求分析 根据题目要求,学生信息要从文本文件中存取,所以本程序要提供读写文件,显示,统计,查寻,修改记录,保存文件等操作,此外,还要提供键盘式选择菜单实现功能。 四、概要设计 分析整个系统,根据上面的需求分析,可以将这个系统的设计分为如下几大模块:读取数据,输出数据,添加数据,输入数据、修改数据、查询数据、删除数据、统计数据,排序数据,保存数据。 五、详细设计及运行结果

西安邮电大学封面个人简历模板

……………………….…………………………………………………………………………………姓名:杜宗飞专业:计算机科学与技术 学院:数理信息学院学历:本科……………………….…………………………………………………………………………………手机:×××E – mail:×××地址:西安邮电大学

自荐信 尊敬的领导: 您好!今天我怀着对人生事业的追求,怀着激动的心情向您毛遂自荐,希望您在百忙之中给予我片刻的关注。 我是西安邮电大学计算机科学与技术专业的2014届毕业生。西安邮电大学大学四年的熏陶,让我形成了严谨求学的态度、稳重踏实的作风;同时激烈的竞争让我敢于不断挑战自己,形成了积极向上的人生态度和生活理想。 在西安邮电大学四年里,我积极参加各种学科竞赛,并获得过多次奖项。在各占学科竞赛中我养成了求真务实、努力拼搏的精神,并在实践中,加强自己的创新能力和实际操作动手能力。 在西安邮电大学就读期间,刻苦进取,兢兢业业,每个学期成绩能名列前茅。特别是在专业必修课都力求达到90分以上。在平时,自学一些关于本专业相关知识,并在实践中锻炼自己。在工作上,我担任西安邮电大学计算机01班班级班长、学习委员、协会部长等职务,从中锻炼自己的社会工作能力。 我的座右铭是“我相信执着不一定能感动上苍,但坚持一定能创出奇迹”!求学的艰辛磨砺出我坚韧的品质,不断的努力造就我扎实的知识,传统的熏陶塑造我朴实的作风,青春的朝气赋予我满怀的激情。手捧菲薄求职之书,心怀自信诚挚之念,期待贵单位给我一个机会,我会倍加珍惜。 下页是我的个人履历表,期待面谈。希望贵单位能够接纳我,让我有机会成为你们大家庭当中的一员,我将尽我最大的努力为贵单位发挥应有的水平与才能。 此致 敬礼! 自荐人:××× 2014年11月12日 唯图设计因为专业,所 以精美。为您的求职锦上添花,Word 版欢迎 下载。

西安工业大学毕业设计要求

1 专科毕业设计说明书(论文)地字数及印装 1.1 毕业设计说明书(论文)地字数 专科毕业设计说明书(论文)地字数:理工科1.2万字以上,文科1万字以上,体育艺术类8,000字以上. 1.2毕业设计说明书(论文)用纸.版面及页眉 专科科毕业设计说明书(论文)用纸均为A4(标准幅面210mm×297mm),版芯为38行(行距为固定值18磅)×39字(小四号),字体要求为宋体.矚慫润厲钐瘗睞枥庑赖。 1.3 毕业设计说明书(论文)用字及打印 毕业设计说明书(论文)使用简化汉字撰写(外语类专业除外).毕业设计说明书(论文)必须打印;打印稿正文.中文摘要用字为小四号宋体,页码置于页面地底部并居中放置,论文采用单面打印.聞創沟燴鐺險爱氇谴净。 电子文档格式:DOC格式或WPS格式. 1.4毕业设计说明书(论文)地装订 毕业设计说明书(论文)地封面按统一要求(见附录A)制作,论文装订后,成品尺寸与A4纸幅地偏差为 2mm.残骛楼諍锩瀨濟溆塹籟。

2 毕业设计说明书(论文)内容顺序.摘要及主要符号表 2.1毕业设计说明书(论文)地内容及顺序 毕业设计说明书(论文)地内容按顺序依次为:封面.扉页.摘要.目录.主要符号表.论文主体部分(包括绪论.正文和结论三部分).致谢(总结).注释 .参考文献 .附录等. 2.2 封面 a. 封面地主要内容包括:“毕业设计说明书”或“毕业设计论文”字样.论文题目.论文作者信息.指导教师(含专业技术职务信息).提交论文时间等. b. 论文题目应能反映论文地主要工作.研究目地和特点.确定题目时要把握好可索引性.特异性.明确性和简短性.论文题目地字数一般应在25字以内.如果有些细节必须放进标题,可分为主标题和副标题两个部分.謀荞抟箧飆鐸怼类蒋薔。 封面地排版规范见附录A. 2.3 扉页 内容与封面相同. 2.3 摘要 a. 摘要包括:论文题目.“摘要”字样(位置居中).摘要正文.关键词. b. 摘要主要包括三部分内容:论文研究工作地目地意义.研究地内容及方法.结果与结论. c. 毕业设计摘要应简明扼要,文字要精练. d. 关键词是反映毕业设计(论文)主题内容地名词,是供检索使用地,应尽量选取《汉语主题词表》等词表提供地规范词.一般为3~5个,按词条外延层次(学科目录分类),由高至低顺序排列.关键词排在摘要部分地下方.厦礴恳蹒骈時盡继價骚。 e. 英文摘要与中文摘要相对应,但应避免按中文字义逐字逐句生搬硬译. f. 摘要排版见附录B(中文摘要B1,英文摘要B2). 2.4 目录 a.目录应包括:主要符号表.正文中地标题.附录.参考文献.致谢等. b.目录编入三级标题,即章.节.小节地标题,各级序号均使用阿拉伯数字.

西安邮电大学本科生学分制学籍管理办法

西安邮电大学本科生学分制学籍管理办法 为提高教育教学质量,维护正常教学秩序,培养德智体全面发展的高素质人才,根据教育部《普通高等学校学生管理规定》、《高等学校学生行为准则》及陕西省教育厅普通高等学校学生管理有关规定精神,结合我校办学实际,制定本办法。 第一章总则 第一条我校全日制本科生实施学分制。 第二条学分制是用学分计算学习量的一种教学管理制度。学生可以根据专业培养方案及自己的基础和能力,在教师的指导下安排学习计划。 第三条学生选课应办理有关选课手续。免修、免听课程应由本人提出书面申请,经学院批准,教务处审核后方可进行。 第四条对学有余力的学生,经批准可以跨校、跨学院、跨专业、跨年级选课。 第五条学生成绩档案必须同时登记考核成绩和学分。有正式学籍的学生修满专业培养方案规定的应修学分,同时符合学校有关规定者,准予毕业。 第六条我校本科生标准学制为四年,学生在校修读年限最长为六年。在校时间超过四年者,需按规定标准缴纳培养费。 第二章教学实施细则 第七条全日制本科教学必须依照专业培养方案组织实施。 第八条各专业所学课程分必修课、选修课两类。 第九条课程修读 (一)必修课 学生应根据各专业培养方案的安排,修读各门必修课。 (二)选修课选课原则

学生应以培养方案安排为依据,在专业教师的指导下,确定选读课程、选修时间及顺序。凡有先修课要求的课程,一般应首先修完先修课程,取得学分后,才可选修该课程。 (三)选修课修读办法 1.各类选修课修读学分要求详见各专业培养方案。学生在毕业前必须修够所在专业要求的相应学分方可毕业。 2.学校于每学期第八周左右按照专业培养方案,组织落实下一学期各专业拟开设的选修课程,并向全校公布,以供学生选课。 3.学生预选课程前,各开课学院应组织有关教师参加选课的咨询活动,向学生介绍所开课程情况、解答学生提出的问题等。 4.凡经批准选定的课程,中途不得更改。学生应按规定参加该课程的各项教学活动,凡缺课三分之一以上者不得参加该课程的考核。 5.凡未按规定办理选修手续者,不得参加该门选修课的考核。 第十条学分按照各专业人才培养方案要求认定。 第十一条学生须修满本专业培养方案要求的毕业最低学分,其中必修课学分不得用其它学分替补。 第三章学籍管理细则 第一节入学与注册 第十二条凡本校录取的新生,必须持本校录取通知书和学校规定的有关证件,按规定的期限到校办理入学手续。因故不能按期入学者,应书面向学校请假,假期不得超过两周。未请假或者请假逾期者,除因不可抗力等正当事由以外,视为放弃入学资格。 第十三条新生入学后,学校将在三个月内,按照国家招生规定对其进行复查。复查合格者予以注册,即取得学籍。复查不

西安科技大学发电厂课程设计报告书

‘ 发电厂电气部分课程设计 (煤矸石电厂厂用电设计) 设 计 计 算 说 明 书

目录 一.煤矸石电厂基础资料----------------------------------------1 1.1电厂基本情况-----------------------------------------------1 1.2电源情况--------------------------------------------------1 1.3环境条件--------------------------------------------------1二.设计说明书------------------------------------------------1 三.设计计算书------------------------------------------------3 3.1 各车间的计算负荷-----------------------------------------------3 3.2 厂用低压变压器的选择-------------------------------------------5 3.3 发电机端分裂电抗器的选择---------------------------------------6 3.4 短路电流的计算-------------------------------------------------6 3.5 母线导体的选择-------------------------------------------------10 3.6 电动机的选择及自启动校验---------------------------------------11 3.7 设备的选型-----------------------------------------------13 参考文献-----------------------------------------------------20

西安邮电大学linux操作系统课程设计

西安郵電大學 操作系统课程设计 报告书 院系名称:软件工程 学生姓名:蒋博 专业名称:软件工程 班级:1202班 学号:04123038 时间:2015 年4月13 日至2015 年4月24 日

1实验目的 操作系统是控制和管理计算机硬件和软件资源的虚拟机,其中的文件系统是对软件和设备进行管理的系统,文件系统是操作系统中非常重要的一个模块,它的实现占用了操作系统源码的最大编码量,其好坏也直接影响着用户对操作系统的感受程度。通过对操作系统课程设计的实践,进一步加深对文件系统的认识和理解,并在此基础上培养学生的工程应用能力。实验分别从用户态和内核态两个层次实践文件系统的部分功能。 2实验任务 2.1 ls实现 在linux下编程实现带参数的shell命令ls,ls命令必须支持如下功能。 1.基本要求 (1)支持-l 参数; (2)输出结果按字典排序; (3)列出“.”文件,支持-a参数,在没有-a时候不显示隐藏文件; (4)显示记录总数。 2.高级要求 (1)支持对给定的目录进行操作,如ls /tmp; (2)输出结果分栏排序,每栏的宽度由这一栏最长的文件名决定,显示的栏 数还受终端显示器的宽度影响,每一列尽可能的等宽; (3)正确显示文件特殊属性suid、sgid和sticky,参见联机帮助确保程序能处 理各种情况; (4)支持标准的ls支持选项-R,它的功能是递归地列出目录中所有的文件包 含子目录中的文件; (5)支持标准的ls支持选项-u,它会显示出文件的最后访问时间,如果用了 -u而不用-l,会有什么结果?; (6)当关掉一个文件的读权限,就不能打开这个文件来读。如果从一个终端 登录,打开一个文件,保持文件的打开状态,然后从另外的终端登录,去掉文件的读权限,这时有什么事情会发生?编写一个程序,先用open()打开一个文件,用read()读一些内容,调用sleep()等待20s以后,再读一些内容,从另外的终端,再等待的20s内去掉文件的读权限,这样会有什么结果?。 2.2编写内核模块显示目录或文件的信息。

课程设计实习报告

课程设计实习报告 篇一:课程设计实习报告 测绘工程08-2班 郭庆彪实习报告 07082967 课程设计(一) ——灯湖矿区设计 《灯湖矿区控制网设计任务通知书》 XX测绘队: 灯湖矿区位于广州省灯湖煤田东北域,煤藏总量为10000亿吨。本矿区已列入国家经济建设计划,准备进行重点开发。根据建设规划,首先需分别施测54 的1∶XX地形图及23 1∶1000地形图。图2-1为该矿区1∶50000地形图,其中虚线范围为1∶XX测图区,点划线范围为1∶1000测图区。 为了加快建井速度,需在竖井间进行对向掘进(石红-上村直线贯通),最大贯通距离为3km,矿井最大单翼长度5km,井深一般不超过300m。

为满足矿山设计,建井、生产三阶段测绘各种比例尺地形图、井巷贯通以及工业场地施工测量的需要,应在全矿区建立统一的具有足够精度密度的平面控制网与高程控制网。另外,为贯通工程需布设一专用控制网,要求两近井点横向相对中误差小于30mm。要求你队在任务通知书下达后二个月内完成技术设计和准备工作,一年内完成建网任务。 《灯湖矿区控制测量技术设计说明书》 (一)作业任务及测区概况 1.作业目的及任务范围 灯湖矿区位于广州市灯湖煤田东北域,煤藏量为10000亿吨。要求于XX年XX月之前,完成建网任务和提交阳春一矿的54 的1:XX和23 1∶1000地形图。。在全矿区建立统一的具有足够精度密度的平面控制网与高程控制网。另外,为贯通工程需布设一个专用控制网,要求两近井点横向相对中误差小于30mm。灯湖矿区的测图总面积为77km2。 2.测区概况 测区地处华东近海地区,玉山东南方向;大牛山以北的地区。面积约为77平方千米,行政律属广州市。测区内的主要的城镇有马林,史庄,白马村,小刘庄,广兴镇,广平庄,五店,王家屯,大北望,小北望等分散列式的农庄。灯湖地区有海拔在80米到300米的玉山,大广山,太山,广

西安邮电大学编译原理语法分析器的制作

《编译原理》实验报告题目: 语法分析器的制作 学生姓名:江荣吉 班级: 学号: 指导教师: 成绩: 西安邮电大学计算机学院 2015 年 6 月 7 日

一:实验目的 熟悉语法分析的过程; 理解相关文法的步骤; 熟悉First集和Follow集生成 二:实验要求 对于给定的文法,试编写调试一个语法分析程序: 要求和提示: (1)可选择一种你感兴趣的语法分析方法(LL(1)、算符优先、递归下降、SLR(1)等)作为编制语法分析程序的依据。 (2)对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造所给文法的机内表示。 (3)能进行分析过程模拟。如输入一个句子,能输出与句子对应的语法树,能对语法树生成过程进行模拟;能够输出分析过程每一步符号栈的变化情 况。 设计一个由给定文法生成First集和Follow集并进行简化的算法动态模拟。 三:实验过程 1:文法: E->TE’ E’->+TE’|ε T->FT’ T’->*FT’|ε F->(E)|i: 2程序描述(LL(1)文法) 本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,判断输入的字符串是否属于该文法的句子。 基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。然后取出分析栈的栈顶字符,判断是否为终结符,若为终结符则判断是否为“#”且与当前输入符号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不为“#”且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串中除去,进入下一个字符的分析。若不为“#”且不与当前输入符号一样,则出错。

数字信号处理课程设计(西安科技大学通信学院)

通信与信息工程学院 数字信号处理课程设计(综合实验) 班级:电信XX班 姓名:XX 学号:XX 指导教师:李远征 设计时间:2013~2014学年第18~19周 成绩: 评 通信与信息工程学院 二〇一三年

设计一 正余弦信号的谱分析 【一】 设计目的 1. 用DFT 实现对正余弦信号的谱分析; 2. 观察DFT 长度和窗函数长度对频谱的影响; 3. 对DFT 进行谱分析中的误差现象获得感性认识。 【二】 设计原理 数字信号处理方法的一个重要用途是在离散时间域中确定一个连续时间信号的频谱,通常称为频谱分析,更具体地说,它也包括确定能量谱和功率谱。基于表征正余弦信号的基本参数,如振幅、频率和相位不随时间改变,则此信号的傅立叶变换)(ω j e G 可以用计算 它的DTFT 得到 ∑∞ -∞ =-= n n j j e n g e G ωω )()( 实际上无限长序列)(n g 首先乘以一个长度为M 的窗函数)(n w ,使它变成一个长为M 的有限长序列,)()()(1n w n g n g =,对)(1n g 求出的DTFT )(1ω j e G 应该可以作为原连续 模拟信号)(t g a 的频谱估计,然后求出)(1ω j e G 在πω20≤≤区间等分为N 点的离散傅立 叶变换DFT 。为保证足够的分辨率,DFT 的长度N 选的比窗长度M 大,其方法是在截断了的序列后面补上N -M 个零。计算采用FFT 算法。 【三】 设计内容 1. 图1.1 设计内容1的运行结果

程序: N=input('输入谱分析的长度'); n=0:N-1; x1=cos(pi*20*n/64); x2=cos(pi*22*n/64); subplot(2,2,1),stem(n,x1) xlabel('n');ylabel('x1(n)'); title('余弦序列'); subplot(2,2,2),stem(n,x2) xlabel('n');ylabel('x2(n)'); title('余弦序列'); X1=abs(fft(x1,N)); subplot(2,2,3) k=0:N-1; stem(k,X1) %绘制序列的幅 xlabel('k');ylabel('X1(k)'); string=[num2str(N),'点FFT幅频曲线']; X2=abs(fft(x2,N)); %求x2余弦序 subplot(2,2,4) k=0:N-1; stem(k,X2) xlabel('k');ylabel('X2(k)'); string=[num2str(N),'点FFT幅频曲线']; 泄漏的原因:通过图可看出:频率为10Hz的余弦曲线DFT只有两个点不等于零,位于k=5和 k=27处,k=5对应于频率10Hz,k=27对应于频率54Hz(也就是-10Hz)。这样DFT确实正确的分辨了余弦信号的频率。但是这样的理想结果是恰巧得到的,此时我们借去了五个完整的余弦周期(f*N/Fs=5). 将频率改为11Hz,采样频率和窗长度依然为32点,计算图像可看出:频谱图上k=5和k=27处都有较大的峰值,而其它的点上幅度不再为零。这两个峰值对应的频率为10Hz和12Hz,所以,信号的峰值位于两者之间,本来是单一的11Hz频率的能量会分不到许多DFT频率上,这种现象叫频率泄露,来源于截断效应。 2. 图1.2 设计内容2的运行结果 程序: N1=input('输入谱分析的长度');

相关文档
最新文档