c语言仓库货物管理系统.docx

上传人:b****1 文档编号:480944 上传时间:2022-10-10 格式:DOCX 页数:44 大小:105.31KB
下载 相关 举报
c语言仓库货物管理系统.docx_第1页
第1页 / 共44页
c语言仓库货物管理系统.docx_第2页
第2页 / 共44页
c语言仓库货物管理系统.docx_第3页
第3页 / 共44页
c语言仓库货物管理系统.docx_第4页
第4页 / 共44页
c语言仓库货物管理系统.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

c语言仓库货物管理系统.docx

《c语言仓库货物管理系统.docx》由会员分享,可在线阅读,更多相关《c语言仓库货物管理系统.docx(44页珍藏版)》请在冰豆网上搜索。

c语言仓库货物管理系统.docx

c语言仓库货物管理系统

软件学院

课程设计报告

设计名称:

C语言课程设计

选题名称仓库货物管理系统

姓名:

李明慧

学号:

5592560

专业班级:

云计算班

系〔院〕:

软件学院

设计时间:

设计地点:

实验室5#60

.课程设计目的

(1)稳固和加深学生对C语言的根本知识的理解和掌握;

(2)掌握C语言编程和程序调试的根本技能;

(3)利用C语言进行简单软件设计的根本思路和方法;

(4)提高运用C语言解决实际问题的能力;

(5)掌握书写程序设计说明文档的能力。

2.课程设计任务与要求:

任务

设计题目从任务书所列选题表中选取,每人题。

要求:

、在处理每个题目时,要求从分析题目的需求入手,进行合理的模块设计,定义正确函数和自定义数据类型〔如结构体类型〕、编制上机程序和上机调试等假设干步骤完成题目,最终写出完整的分析报告。

前期准备工作完备与否直接影响到后序上机调试工作的效率。

在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。

2、设计的题目要求到达一定工作量〔200行以上代码〕,并具有一定的深度。

3、程序设计语言推荐使用C,程序书写标准,源程序需加必要的注释并且缩进一致。

4、每位同学需提交可独立运行的程序;

5、每位同学需独立提交设计报告书〔每人一份〕,要求编排格式统一、标准、内容充实,不少于0页〔代码不算〕;

6、课程设计实践作为培养学生动手能力的一种手段,单独考核。

3.课程设计说明书

一需求分析

现阶段快速的社会开展要求高速的完成任何事情。

在各个市场,特别在超市,管理员对货物的高效管理显得尤为重要。

不仅客户希望快速,准确的查询到购置的货物信息,管理员也希望能方便的管理货物,给客户提供满意的效劳。

因此,本程序就可以完成统计并管理货物信息的任务。

实现了统计每个货物的信息,然后可以轻松地通过对货物编号的排序快速的去找到想要查询的货物,然后就可以实现对货物的修改、删除、添加等功能。

本程序的宗旨在于提高管理者的工作效率,方便管理者及客户进行查询,实现精确地管理货物目的。

 

二系统设计

该程序设计主要运用了c语言的根本知识,通过调用各个函数实现整个完整的系统功能。

该仓库管理系统主要实现了管理员和用户两种不同身份的功能,以下就是程序实现的主要功能:

管理员的功能:

用户的功能:

0:

显示菜单:

读取信息

录入信息2:

查询信息

2:

查询信息3:

退出系统

3:

修改信息

4:

添加信息

5:

删除信息

6:

正向排序

7:

输出信息

8:

保存信息

9:

退出系统

0:

读取信息

有功能模块图和流程图

功能模块图:

仓库货物管理系统

 

管理员

用户

 

输入密码

退出系统

查询信息

读取信息

是否正确?

 

读取信息

退出系统

保存信息

输出信息

正向排序

删除信息

添加信息

修改信息

查询信息

录入信息

显示菜单

 

开始

流程图:

读取信息

是否是管理员?

输入密码

查询信息

密码是否正确?

 

菜单项选择择

 

查询信息

添加信息

删除信息

修改信息

录入信息

正向排序

输入编号

选择添加方式

输入编号

输入编号

输入信息

输出信息

排序完毕

输入添加内容

查询完毕

删除完毕

选择修改内容

输入完毕

 

添加完毕

输入修改信息

 

修改完毕

 

保存信息

 

读取信息

 

退出系统

 

结束

 

三详细设计

、首先写入头文件

#include

#include

#include

#include

#defineMsizeof(structgoods)

2、定义一个结构体存储货物的信息

structgoods

{

intnum;

charname[20];

floatprice;

intamount;

structgoods*next;

};

3、输入货物信息函数

structgoods*create()

{

inti;

structgoods*head,*p,*q;

p=q=head=NULL;

printf("请输入货物的编号名称价格数量\n");

for(i=;;i++)

{

p=(structgoods*)malloc(sizeof(structgoods));

scanf("%d%s%f%d",&p>num,p>name,&p>price,&p>amount);

if(i==)

head=p;

else

q>next=p;

q=p;

if(p>num==0)

{

break;

}

}

q>next=NULL;

returnhead;

}

4、查找货物信息函数

voidfind(structgoods*head,intnum)

{

structgoods*p;

p=head;

inti=0;

while(p!

=NULL)

{

if(p>num==num)

{

i=;

printf("%d%s%.2f%d\n",p>num,p>name,p>price,p>amount);

printf("查找货物编号成功");

}

p=p>next;

}

if(i==0)

printf("没有查到货物编号\n");

}

5、修改信息函数

voidchange(structgoods*head,intnum)

{

structgoods*p2;

p2=head;

intj;

inti=0;

while(p2!

=NULL)

{

if(p2>num==num)

{

i=;

printf("你想修改货物的.编号2.名称3.价格4.数量5.全部修改?

\n");

scanf("%d",&j);

switch(j)

{

case:

printf("请输入修改的货物的编号:

");scanf("%d",&p2>num);printf("修改货物信息成功\n");break;

case2:

printf("请输入修改的货物的名称:

");scanf("%s",p2>name);printf("修改货物信息成功\n");break;

case3:

printf("请输入修改的货物的价格:

");scanf("%f",&p2>price);printf("修改货物信息成功\n");break;

case4:

printf("请输入修改的货物的数量:

");scanf("%d",&p2>amount);printf("修改货物信息成功\n");break;

case5:

printf("请输入修改的货物的编号名称价格数量:

");scanf("%d%s%f%d",&p2>num,p2>name,&p2>price,&p2>amount);printf("修改货物信息成功\n");break;

default:

printf("error!

\n");break;

}

}

p2=p2>next;

}

if(i==0)

printf("没有找到要修改的货物编号\n");

}

6、〔〕添加货物信息函数头插法

structgoods*add(structgoods*head)

{

structgoods*p3,*pm;

inti=0;

pm=head;

p3=(structgoods*)malloc(sizeof(structgoods));

printf("请添加货物的编号名称价格数量\n");

scanf("%d%s%f%d",&p3>num,p3>name,&p3>price,&p3>amount);

while(pm!

=NULL)

{

while(pm>num==p3>num)

{

printf("已有此货物编号\n");

scanf("%d%s%f%d",&p3>num,p3>name,&p3>price,&p3>amount);

pm=head;

}

pm=pm>next;

}

p3>next=head;

head=p3;

returnhead;

printf("添加信息成功\n");

}

〔2〕添加货物信息函数非头插法

structgoods*add2(structgoods*head,intnum)

{

structgoods*p4,*p5;

p5=head;

p4=(structgoods*)malloc(sizeof(structgoods));

printf("请添加货物的编号名称价格数量\n");

scanf("%d%s%f%d",&p4>num,p4>name,&p4>price,&p4>amount);

while(p5!

=NULL)

{

while(p5>num==p4>num)

{

printf("已有此货物编号\n");

scanf("%d%s%f%d",&p4>num,p4>name,&p4>price,&p4>amount);

p5=head;

}

if(p5>num!

=p4>num)

{

p5=p5>next;

}

}

p5=head;

while(p5!

=NULL)

{

if(p5>num==num)

{

p4>next=p5>next;

p5>next=p4;

}

p5=p5>next;

}

returnhead;

printf("添加信息成功\n");

}

7、删除货物信息函数

structgoods*del(structgoods*head,intnum)

{

structgoods*p3,*p4;

p3=p4=head;

inti=0;

while(p3>next!

=NULL)

{

p4=p3;

p3=p3>next;

if(p3>num==num)

{

i=;

p4>next=p3>next;

free(p3);

printf("删除货物信息成功\n");

}

}

if(i==0)

printf("没有找到要删除的货物\n");

returnhead;

}

8、正向排序函数

structgoods*sort(structgoods*head)

{

structgoods*p,*q,*a,*b,*newhead;

newhead=NULL;

intmax;

while(head!

=NULL)

{

p=head;

q=head>next;

a=head;

b=NULL;

max=p>num;

while(q!

=NULL)

{

if(q>num>max)

{

max=q>num;

a=q;

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

当前位置:首页 > 解决方案 > 学习计划

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

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