毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C语言仓库管理系统-数据结构 第2页

更新时间:2010-1-25:  来源:毕业论文
C语言仓库管理系统-数据结构 第2页
操作结果:插入某货品
COM *del_perf( )
操作结果:删除某货品
serch( )
操作结果:查找某货品
print_perf( )
操作结果:输出某货品
save(COM*head)
操作结果:保存
COM *openfile( )
操作结果:载入

2. 流程框图
查找模块和载入模块的算法框图在此略。
(1)输入模块       (2)插入模块
(3)删除模块   (4)保存模块 
(5)输出模块    对以上各模块的文字解释说明:
(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后移一个结点,再输入直至链表的尾结点结束。
四、C源程序清单
#include<stdio.h>             /*标准输入/输出头文件*/
#include<conio.h>             /*包含绘制图形函数等头文件*/
#include<string.h>            /*包含字符串处理函数头文件*/
#include<stdlib.h>            /*包含动态存储与释放函数头文件*/
#include<graphics.h>
#define LEN sizeof(COM)
#define PRINT "% -15ld% -15s% -15d\n",ptr1->num,ptr1->name,ptr1->count
#define CHECK_COUNT ptr1->count<0
#define CHECK_COUNT2 ptr3->count<0
#define NULL 0
typedef struct com
 {long int num;
  char name[10];
  int count;
  struct com *prior, *next;
 }COM;                        /*定义结构体*/
COM *input();                   /*输入货品信息*/
COM *insert( );                  /*插入货品信息*/
COM *delet( );                  /*删除货品信息*/
void search( );                   /*查找货品信息*/
void save(COM *head);           /*保存货品信息*/
COM *openfile( );               /*从文件将货品信息载入链表*/
void print( );                    /*输出货品信息*/
FILE *fp;                      /*定义指向文件的指针变量*/
COM *head=NULL;
COM *ptr1=NULL,*ptr2=NULL;
char filename1[10];           /*定义字符数组,用来存放文件名*/
char filename2[ ]={".dat"};    /*文件扩展名.dat*/
www.751com.cn
  char string3[ ]={"count"};
  int n=1;
  if((ptr1=(COM*)malloc(LEN))==NULL)       /*申请空间函数*/
    {printf("No enough memory,fail to creat linklist!");
     getch( );                             /*无回显的从键盘读取任意一个字符*/
    }
  clrscr( );
  printf("Please input depend on the emply(goodsnumber==0 over):\n");

上一页  [1] [2] [3] [4] [5] [6] 下一页

C语言仓库管理系统-数据结构 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。