使用java仓库管理系统设计Word文档格式.docx

上传人:b****7 文档编号:22291571 上传时间:2023-02-03 格式:DOCX 页数:29 大小:130.96KB
下载 相关 举报
使用java仓库管理系统设计Word文档格式.docx_第1页
第1页 / 共29页
使用java仓库管理系统设计Word文档格式.docx_第2页
第2页 / 共29页
使用java仓库管理系统设计Word文档格式.docx_第3页
第3页 / 共29页
使用java仓库管理系统设计Word文档格式.docx_第4页
第4页 / 共29页
使用java仓库管理系统设计Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

使用java仓库管理系统设计Word文档格式.docx

《使用java仓库管理系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《使用java仓库管理系统设计Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

使用java仓库管理系统设计Word文档格式.docx

三、系统详细设计

1.数据结构设计

(1)数据结构选择

选取动态数据结构,本系统是通过双向链表来完成。

动态存储分配与释放:

申请存储空间函数malloc()

函数首部原型为

void*malloc(unsignedintsize)

释放存储空间函数free()

voidfree(void*p)

动态数据结构——双向链表

(2)数据类型选择

structcommodity/*定义双向链表结构体*/

{intnumber;

/*货物编号*/

charname[max];

/*货物名称*/

intcounter;

/*货物数量*/

structcommodity*piror,*next;

/*定义两指针,分别指向其前驱和后继*/

};

(3)变量函数说明:

COM*input()

操作结果:

输入货品信息

COM*insert_perf()

插入某货品

COM*del_perf()

删除某货品

serch()

查找某货品

print_perf()

输出某货品

save(COM*head)

保存

COM*openfile()

载入

2.流程框图

查找模块和载入模块算法框图在此略。

(1)输入模块

N

Y

Y

Y

(2)插入模块

(3)保存模块

(4)输出模块

Y

对以上各模块文字解释说明:

(1)输入模块:

其实就是一个建立链表操作模块。

建立链表具体操作就是逐一输入各结点数据,并建立其前后相链关系。

首先设三个指针变量:

head,ptr1,ptr2。

它们都是指向结构体类型数据。

先使head值为NULL,这是链表为空情况。

用malloc函数开辟一个结点,并使ptr1,ptr2都指向它,之后从键盘读入一个货品数据给ptr1所指向结点。

当输入ptr1->

num不为0时,令head=ptr1;

ptr2=ptr1,即把ptr1值赋给head,使ptr2,ptr1,head都指向这一新开辟结点,此结点就成为链表中第一个结点。

再开辟一个新结点并使ptr1指向它,读入该结点数据,如果输入ptr1->

num不为0,则应链入这第二个结点,这时和上一个结点处理不同,是将ptr1值赋给ptr2->

next,也就是使第一个结点next成员指向第二个结点,接着将ptr2也指向结点2。

再开辟一个新结点并使ptr1指向它,读入该结点数据,同样将ptr1值赋给ptr2->

next,也就是使第三个结点链接到第二个结点之后,并接着将ptr1值赋给ptr2,使ptr2指向结点3。

再开辟一个新结点,并使ptr1指向它,输入该结点数据,如果输入ptr1->

num为0,则是输入结束标志,此结点不被链接到链表中,就将NULL赋给ptr2->

next。

建立链表过程至此结束,ptr1最后所指结点并未链入链表中。

(2)插入模块:

要完成是链表插入操作,即将一个新结点插入到一个已有链表中,对刚刚建立链表,首先新设一个指针变量ptr0,并开辟一个结点使ptr3指向它,输入该结点数据,即新货有关数据,接下来查找要插入位置结点,找到后只需修改此结点和ptr0指向结点指针域值即可,链表中所有元素位置均不需移动,这就体现了链表优点。

(3)删除模块:

要完成是链表删除操作,只需修改链表中要删除结点前一个结点链指针。

使之指向被删除结点后面一个结点即可。

(4)保存模块:

将最终想要保留数据信息保存于文件中。

(5)输出模块:

要完成是依次输出链表中各结点数据操作。

首先找到链表头结点地址,也就是head值,然后设一个指针变量ptr1,先指向第一个结点,输出ptr1所指结点,然后使ptr1后移一个结点,再输入直至链表尾结点结束。

四、系统源代码

#include<

stdio.h>

/*标准输入/输出头文件*/

conio.h>

/*包含绘制图形函数等头文件*/

string.h>

/*包含字符串处理函数头文件*/

stdlib.h>

/*包含动态存储与释放函数头文件*/

graphics.h>

#defineLENsizeof(COM)

#definePRINT"

%-15ld%-15s%-15d\n"

ptr1->

num,ptr1->

name,ptr1->

count

#defineCHECK_COUNTptr1->

count<

#defineCHECK_COUNT2ptr3->

#defineNULL0

typedefstructcom

{longintnum;

charname[10];

intcount;

structcom*prior,*next;

}COM;

/*定义结构体*/

COM*input();

/*输入货品信息*/

COM*insert();

/*插入货品信息*/

COM*delet();

/*删除货品信息*/

voidsearch();

/*查找货品信息*/

voidsave(COM*head);

/*保存货品信息*/

COM*openfile();

/*从文件将货品信息载入链表*/

voidprint();

/*输出货品信息*/

FILE*fp;

/*定义指向文件指针变量*/

COM*head=NULL;

COM*ptr1=NULL,*ptr2=NULL;

charfilename1[10];

/*定义字符数组,用来存放文件名*/

charfilename2[]={"

.dat"

/*文件扩展名.dat*/

/*输入模块*/

{charstring1[]={"

number"

charstring2[]={"

name"

charstring3[]={"

count"

intn=1;

if((ptr1=(COM*)malloc(LEN))==NULL)/*申请空间函数*/

{printf("

Noenoughmemory,failtocreatlinklist!

"

);

getch();

/*无回显从键盘读取任意一个字符*/

}

clrscr();

printf("

Pleaseinputdependontheemply(goodsnumber==0over):

\n"

do

PleaseinputtheNo.%dgoods'

%s:

n,string1);

scanf("

%ld"

&

ptr1->

num);

flushall();

if(ptr1->

num==0)

PleasepressanykeytobacktolastMenu:

free(ptr1);

return(0);

n,string2);

scanf("

%s"

name);

flushall();

/*刷新缓冲区函数*/

n,string3);

%d"

count);

if(CHECK_COUNT)

Pleaseinputtherightgoodscount!

}while(CHECK_COUNT);

while(ptr1->

num!

=NULL)

{if(n==1)

head=ptr1;

elseptr2->

next=ptr1;

ptr1->

prior=ptr2;

n=n+1;

ptr2=ptr1;

if((ptr1=(COM*)malloc(LEN))==NULL)

{printf("

{ptr1->

num=NULL;

break;

}

ptr2->

next=NULL;

gotoxy(1,24);

Finishtheinputtingofgoods'

message,pressanykeytobacktolastMenu,pleasesave:

getch();

return(head);

/*插入模块*/

COM*insert()

{COM*ptr3;

charstring1[]={"

goodsnumber"

goodsname"

goodscount"

charjudge[10];

gotoxy(18,10);

Pleaseinputinsertedgoods'

fliename:

head=openfile();

if(head==NULL)

return(NULL);

else

{clrscr();

goodsmessage:

if((ptr3=(COM*)malloc(LEN))==NULL)

Noenoughmemory,failtocreatnode!

Pleaseinputgoods'

%s(>

0):

string1);

ptr3->

if(ptr3->

num<

=0)

Errorinputting!

pleasechoosetheinsertedgoodsagain\n"

return;

string2);

flushall();

string3);

(ptr3->

count));

if(CHECK_COUNT2)

Pleaseinputtherightgoodscount(>

0)!

}while(CHECK_COUNT2);

ptr1=head;

while(ptr1!

{ptr2=ptr1;

ptr1=ptr1->

next;

ptr2->

next=ptr3;

ptr3->

\nInsertingsuccess!

Cotinuetoinsert?

(yesorno):

judge);

}while(!

strcmp(judge,"

yes"

));

gotoxy(20,10);

Insertingsuccess!

gotoxy(18,11);

PressanykeytobacktolastMenu\n"

gotoxy(16,12);

AndmakesuretoSave(6)themoryouwilllosethem!

/*删除模块*/

COM*delet()

{charname[10];

intsel;

intdel_num;

Pleaseinputdelectedgoods'

{do

gotoxy(3,4);

message:

gotoxy(1,9);

*1.Deldependongoodsnumber\n"

gotoxy(1,10);

*2.Deldependongoodsname\n"

gotoxy(10,22);

pleasechooseanumberbetween1and2:

sel);

switch(sel)

{case1:

clrscr();

gotoxy(6,6);

Pleaseinputgoodsnumber:

del_num);

case2:

Pleaseinputgoodsname:

}while(sel!

=1&

&

sel!

=2);

num==del_num||(strcmp(ptr1->

name,name)==0))

{head=ptr1->

Successtodelectgoodsmessage!

else/*判断是否是目标结点*/

{while(ptr1!

=NULL&

=del_num&

strcmp(ptr1->

name,name)!

{ptr2->

next=ptr1->

next->

prior=ptr1->

prior;

\nSuccesstodelectgoodsmessage!

\n\n"

elseprintf("

\nCan'

tfindthisgoodsmessage!

Cotinuetodelect?

strcmp(judge,"

Delectingsuccess!

/*查找模块*/

voidsearch()

{charname[10];

longintsel_num;

Pleasepresssearchedgoods'

return;

gotoxy(5,4);

Pleasechoosethewaytosearch:

*1.Searchdependongoodsnumber\n"

*1.Searchdependongoodsname\n"

sel_num);

name);

=sel_num&

if((ptr1->

num==sel_num)||(strcmp(ptr1->

\nSuccesstosearchgoodsmessage!

goodsnumbergoodsnamegoodscount\n\n"

printf(PRINT);

Cotinuetosearch?

gotoxy(10,24);

/*输出模块*/

voidprint()

{inti=1;

Pleaseinputprintedgoods'

filename:

Theprintedresultasfollows:

{printf(PRINT);

if(i/10==1)/*超过十行换页*/

{i=0;

Pressanykeytochangepage:

gotoxy(0,6);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1