1、c语言仓库货物管理系统软件学院课程设计报告设计名称: C语言课程设计 选题名称 仓库货物管理系统 姓 名: 李明慧 学 号: 5592560 专业班级: 云计算班 系 院: 软件学院 设计时间: 设计地点: 实验室 5#60 课程设计目的(1)稳固和加深学生对C语言的根本知识的理解和掌握;(2)掌握C语言编程和程序调试的根本技能;(3)利用C语言进行简单软件设计的根本思路和方法;(4)提高运用C语言解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。2课程设计任务与要求:任务设计题目从任务书所列选题表中选取,每人题。要求:、在处理每个题目时,要求从分析题目的需求入手,进行合理的模块设计,
2、定义正确函数和自定义数据类型如结构体类型、编制上机程序和上机调试等假设干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、设计的题目要求到达一定工作量200行以上代码,并具有一定的深度。3、程序设计语言推荐使用C,程序书写标准,源程序需加必要的注释并且缩进一致。4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书每人一份,要求编排格式统一、标准、内容充实,不少于0页代码不算;6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3课程设计说明书一 需求分析 现阶段快速的
3、社会开展要求高速的完成任何事情。在各个市场,特别在超市,管理员对货物的高效管理显得尤为重要。不仅客户希望快速,准确的查询到购置的货物信息,管理员也希望能方便的管理货物,给客户提供满意的效劳。因此,本程序就可以完成统计并管理货物信息的任务。实现了统计每个货物的信息,然后可以轻松地通过对货物编号的排序快速的去找到想要查询的货物,然后就可以实现对货物的修改、删除、添加等功能。 本程序的宗旨在于提高管理者的工作效率,方便管理者及客户进行查询,实现精确地管理货物目的。二 系统设计 该程序设计主要运用了c语言的根本知识,通过调用各个函数实现整个完整的系统功能。该仓库管理系统主要实现了管理员和用户两种不同身
4、份的功能,以下就是程序实现的主要功能:管理员的功能: 用户的功能: 0:显示菜单 :读取信息 :录入信息 2:查询信息 2:查询信息 3:退出系统 3:修改信息4:添加信息 5:删除信息 6:正向排序7:输出信息8:保存信息9:退出系统 0:读取信息有功能模块图和流程图 功能模块图:仓库货物管理系统 管理员用户 输入密码 退出系统 否 查询信息 读取信息是否正确? 是 读取信息 退出系统 保存信息 输出信息 正向排序 删除信息 添加信息 修改信息 查询信息 录入信息显示菜单 开 始流程图:读取信息是否是管理员? 否输入密码查询信息 是密码是否正确? 是 菜单项选择择 查询信 息添加信息删除信息
5、修改信息录入信息 正向排序输入编号 选择添加方式输入编号输入编号输入信息输出信息排序完毕输入添加内容查询完毕 删除完毕选择修改内容输入完毕 添加完毕输入修改信息 修改完毕保 存 信 息 读 取 信 息 退 出 系 统结 束三 详细设计 、首先写入头文件#include#include#include#include#define M sizeof(struct goods)2、定义一个结构体存储货物的信息struct goods int num; char name20; float price; int amount; struct goods *next;3、 输入货物信息函数struct
6、 goods *create() int i; struct goods *head,*p,*q; p=q=head=NULL; printf(请输入货物的编号 名称 价格 数量n); for(i=;i+) p=(struct goods *)malloc(sizeof(struct goods); scanf(%d %s %f %d,&pnum,pname,&pprice,&pamount); if(i=) head=p; else qnext=p; q=p; if(pnum=0) break; qnext=NULL; return head;4、查找货物信息函数void find(stru
7、ct goods *head,int num) struct goods *p; p=head; int i=0; while(p!=NULL) if(pnum=num) i=; printf(%d %s %.2f %dn,pnum,pname,pprice,pamount); printf(查找货物编号成功); p=pnext; if(i=0) printf(没有查到货物编号n); 5、修改信息函数 void change(struct goods *head,int num) struct goods *p2; p2=head; int j; int i=0; while(p2!=NULL
8、) if(p2num=num) i=; printf(你想修改货物的.编号 2.名称 3.价格 4.数量 5.全部修改?n); scanf(%d,&j); switch(j) case :printf(请输入修改的货物的编号:);scanf(%d,&p2num);printf(修改货物信息成功n);break; case 2:printf(请输入修改的货物的名称:);scanf(%s,p2name);printf(修改货物信息成功n);break; case 3:printf(请输入修改的货物的价格:);scanf(%f,&p2price);printf(修改货物信息成功n);break; c
9、ase 4:printf(请输入修改的货物的数量:);scanf(%d,&p2amount);printf(修改货物信息成功n);break; case 5:printf(请输入修改的货物的编号 名称 价格 数量:);scanf(%d %s %f %d,&p2num,p2name,&p2price,&p2amount);printf(修改货物信息成功n);break; default :printf(error!n);break; p2=p2next; if(i=0) printf(没有找到要修改的货物编号n);6、添加货物信息函数头插法 struct goods *add(struct go
10、ods *head) struct goods *p3,*pm; int i=0; pm=head; p3=(struct goods *)malloc(sizeof(struct goods); printf(请添加货物的编号 名称 价格 数量n); scanf(%d %s %f %d,&p3num,p3name,&p3price,&p3amount); while(pm!=NULL) while(pmnum=p3num) printf(已有此货物编号n); scanf(%d %s %f %d,&p3num,p3name,&p3price,&p3amount); pm=head; pm=pm
11、next; p3next=head; head=p3; return head; printf(添加信息成功n);2添加货物信息函数非头插法struct goods *add2(struct goods *head,int num) struct goods *p4,*p5; p5=head; p4=(struct goods *)malloc(sizeof(struct goods); printf(请添加货物的编号 名称 价格 数量n); scanf(%d %s %f %d,&p4num,p4name,&p4price,&p4amount); while(p5!=NULL) while(p
12、5num=p4num) printf(已有此货物编号n); scanf(%d %s %f %d,&p4num,p4name,&p4price,&p4amount); p5=head; if(p5num!=p4num) p5=p5next; p5=head; while(p5!=NULL) if(p5num=num) p4next=p5next; p5next=p4; p5=p5next; return head; printf(添加信息成功n);7、删除货物信息函数struct goods *del(struct goods *head,int num) struct goods *p3,*p
13、4; p3=p4=head; int i=0; while(p3next!=NULL) p4=p3; p3=p3next; if(p3num=num) i=; p4next=p3next; free(p3); printf(删除货物信息成功n); if(i=0) printf(没有找到要删除的货物n); return head;8、 正向排序函数 struct goods *sort(struct goods *head) struct goods *p,*q,*a,*b,*newhead; newhead=NULL; int max; while(head!=NULL) p=head; q=headnext; a=head; b=NULL; max=pnum; while(q!=NULL) if(qnummax) max=qnum; a=q;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1