欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    cC语言物品管理-设计报告(共46页).doc

    • 资源ID:13849044       资源大小:606KB        全文页数:46页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    cC语言物品管理-设计报告(共46页).doc

    精选优质文档-倾情为你奉上学号2016-2017学年 第2学期C语言物品管理课程设计报告题目:C语言物品管理专业:网络工程班级:16级(3)班姓名:代应豪指导教师:代美丽成绩: 计算机学院 2017 年 4月 27 日专心-专注-专业  目录 1设计内容及要求 . 2 1.1概述. 2 1.2主要功能. 2 1.3设计目的及具体要求. 2 2 概要设计. 2 2.1系统的功能简介. 2 2.2 总体程序框图 . 3 2.3各个模块之间的主要关系. 3 3设计过程及程序代码 . 3 3.1定义结构体及宏定义. 4 3.2主函数 main().4 3.3输入物品信息函数. .5 3.4输出显示物品函数. 5 3.5将物品写入磁盘. 6 3.6插入物品记录函数. 7 3.7 删除一个物品记录函数 . 7 3.8按照物品编号进行递增排序函数. 8 3.9按照物品总价进行递增排序函数. 8 3.10对物品记录进行排序函数. 9 3.11输出头部信息函数. 10 3.12输出一条物品信息函数. .10 3.13判断该编号物品是否存在函数. 10 3.14根据物品编号进行查找函数. 10 3.15根据物品名字进行查找函数. 10 3.16对物品记录进行查找函数. 11 4设计结果与分析 . 12 4.1各个模块的程序流程图 . 12 1) 主函数程序(N-S)流程图及运行界面. 12 2) 输入物品记录信息的(N-S)流程图及程序运行界面. .13 5设计心得 . 21 6参考文献 .22 7源程序代码(物品管理系统) . 231. 设计内容及要求1.1概述 物品管理系统主要根据课程设计要求进行设计,从对物品的简单处理着手设计一份物品管理系统。1.2主要功能物品管理系统是一个针对物品管理的系统。该系统功能主要包括八大模块: 1)插入物品记录:输入物品个数,根据物品个数依次输入每个物品记录的详细信息。例如物品编号、名字、单价、数量。 2)输出物品记录:对已经写入磁盘的记录信息的显示。如无数据,则显示无数据!3) 将物品记录写入文件。4) 插入一个物品记录。5) 删除一个物品记录。6) 对物品记录进行排序。7) 对物品记录进行查找。8) 退出系统。1.3设计目的及具体要求主要利用C语言的文件操作能力设计开发一个小型的信息系统,至少具有如下功能:物品的读和写、物品信息的增删改、物品信息的排序、查找。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:系统以菜单方式工作,根据菜单项序号提示进行工作。物品信息包括编号看、名称、单价、数量、总价。系统以菜单方式工作,实现对物品信息的录入、修改、统计、排序、查询、输出等功能。2概要设计2.1系统的功能简介该系统的主要功能是系统以菜单方式工作,实现对物品信息的录入,修改,统计,排序,查询,输出等功能。2.2总体程序框图物品管理系统操作主要流程如下,各个函数分别实现不一样的功能。2.3各个模块之间的主要关系该程序的功能主要是实现物品信息的录入,并对物品的相应信息进行进本的增删该的计算。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也是有联系的,对物品读取,插入删除,检索排序必须是在主函数的情况下进行的。因此在第一步选择菜单项是非常重要的。第一步菜单项的选择决定用户所要实现的操作功能。3设计过程及程序代码整个系统除了主函数外,另外还有8个函数,实现7人功能:输入功能、输出功能、写入磁盘功能、插入并显示功能、分类查找并显示功能、分类排序并显示功能。各个函数的详细设计说明分别如下:3.1定义结构体及宏定义#include "stdio.h"#include "string.h" #define NAME_MAX_LEN 20 #define Prod_MAX_NUM 50typedef struct int num; char nameNAME_MAX_LEN;double unitprice; int amount; double totalprice; prodNode; typedef struct sequenceprodNode dataProd_MAX_NUM; int len; seq; seq product;3.2主函数main()void main() int menuItemCode=1; product.len=0; while (menuItemCode!=0)printf("nn"); printf("*物品管理系统*n"); printf("* 1.输入物品记录 *n"); printf("* 2.输出物品记录 *n"); printf("* 3.将物品记录写入文件 *n");printf("* 4.插入一个物品记录 *n"); printf("* 5.删除一个物品记录 *n");printf("* 6.对物品记录进行排序 *n"); printf("* 7.对物品记录进行查找 *n"); printf("* 0.退出系统 *n"); printf("*n"); printf("请输入所选项菜单项序号:"); scanf("%d",&menuItemCode); switch (menuItemCode)case 1:inputGoods(); break; case 2:outputGoods(); break; case 3:saveGoods(); break; case 4:insertOneGoods(); break;case 5:deleteOneGoods(); break; case 6:sortGoods(); break; case 7:searchGoods(); break; case 0:break; default:printf("输入超出范围!n"); break;3.3输入物品信息函数void inputGoods() int i,n; printf("请输入物品个数:n"); scanf("%d",&n); if (n<0) return; for (i=0;i<n;i+)printf("输入物品的编号:n"); scanf("%d",&product.datai.num); printf("输入物品的名字:n"); scanf("%s",product.datai.name); printf("输入物品的单价:n"); scanf("%lf",&product.datai.unitprice); printf("输入物品的数量:n"); scanf("%d",&product.datai.amount); product.datai.totalprice=product.datai.unitprice*product.datai.amount;product.len=n;3.4输出显示物品函数void outputGoods() int i; if (product.len=0) printf("n无数据!n"); return; printf("n物品的记录为:n"); printf("编号t名字t单价 t数量t总价n");for (i=0;i<product.len;i+)printf("%dt%st%lft%dt%.2lf",product.datai.num,product.datai.name,product.datai.unitprice,product.datai.amount,product.datai.totalprice); printf("n"); 3.5将物品写入磁盘void saveGoods() int i; FILE *fp; if (product.len=0) printf("n无数据!n");return;fp=fopen("D:goods.txt","w"); if (fp=NULL)printf("文件打开失败!n"); return;fprintf(fp,"%st","编号"); fprintf(fp,"%st","名称"); fprintf(fp,"%st ","单价"); fprintf(fp,"%st","数量");fprintf(fp,"%s","总价"); for (i=0;i<product.len;i+) fprintf(fp,"n"); fprintf(fp,"%dt",product.datai.num); fprintf(fp,"%st",product.datai.name); fprintf(fp,"%lft",product.datai.unitprice); fprintf(fp,"%dt",product.datai.amount); fprintf(fp,"%.2lf",product.datai.totalprice); fclose(fp); printf("已成功存盘!n");3.6插入物品记录函数void insertOneGoods() prodNode G; int i,pos; if(product.len=Prod_MAX_NUM) printf("表已满!n"); return;printf("请输入插入位置:"); scanf("%d",&pos); if (pos<0|pos>product.len) printf("插入位置出错!n");return;printf("请输入要插入的物品记录:n"); printf("请输入编号:"); do scanf("%d",&G.num); if (G.num<=0) printf("输入的编号不合理,请重新输入。n"); while (G.num<=0); printf("输入物品的名字:n"); scanf("%s",G.name);printf("输入物品的单价:n"); scanf("%lf",&G.unitprice); printf("输入物品的数量:n"); scanf("%d",&G.amount); G.totalprice=G.unitprice*G.amount; for (i=product.len-1;i>=pos;i-)product.datai+1=product.datai; product.datapos=G; product.len=product.len+1; printf("插入成功!");3.7删除一个物品记录函数void deleteOneGoods() int i,pos; if (product.len=0)printf("表空!n"); return;printf("请输入要删除的物品记录的位置:"); scanf("%d",&pos); if (pos<0|pos>product.len-1) printf("删除的位置出错!n"); return; for(i=pos+1;i<=product.len-1;i+) product.datai-1=product.datai;product.len=product.len-1; printf("删除成功!n");3.8按照物品编号进行递增排序函数void bubbleSortByNum() int i,j,n; prodNode temp; int tag; n=product.len; for(tag=1,i=0;i<n-1 && tag=1;i+)tag=0; for (j=n-1;j>i;j-) if (product.dataj.num<product.dataj-1.num) temp=product.dataj; product.dataj=product.dataj-1; product.dataj-1=temp;tag=1; 3.9按照物品总价进行递增排序函数void bubbleSortByTotal() int i,j,n; prodNode temp; int tag; n=product.len;for (tag=1,i=0;i<n-1 && tag=1;i+) tag=0; for (j=n-1;j>i;j-)if (product.dataj.totalprice<product.dataj-1.totalprice) temp=product.dataj; product.dataj=product.dataj-1; product.dataj-1=temp;tag=1;3.10对物品记录进行排序函数void sortGoods() int subMenuItem=1; while (subMenuItem!=0)printf("nn"); printf("*排序子菜单*n"); printf("* 1.按照物品编号进行递增排序 *n"); printf("* 2.按照物品总价进行递增排序 *n"); printf("* 0.退出子菜单 *n"); printf("*n"); printf("请输入所选子菜单项序号:"); scanf("%d",&subMenuItem); switch (subMenuItem)case 1:bubbleSortByNum(); printf("已按照物品的编号进行递增排序。排序后的结果为:n"); outputGoods(); break;case 2: bubbleSortByTotal(); printf("已按照物品的总价进行递增排序。排序后的结果为:n"); outputGoods(); break;case 0:break; default:printf("输入超出范围!n"); break;3.11输出头部信息函数void outputHead() printf("编号t名字t单价 t数量t总价n");3.12输出一条物品信息函数void outputOneGoods(prodNode s) printf("%dt%st%lf t%dt%.2lf",s.num,s.name,s.unitprice,s.amount,s.totalprice);printf("n"); 3.13判断该编号物品是否存在函数int isNumberExist (int number) int n,i=0; n=product.len; while (i<n && product.datai.num!=number)i+; if (i<n) return i; else return -1;3.14根据物品编号进行查找函数void seqSearchByNumber (int number) int pos; pos=isNumberExist(number); if (pos !=-1) printf("查找成功!查找结果如下:n"); outputHead(); outputOneGoods(product.datapos); elseprintf("查找失败!编号为%d的物品不存在。n",number); 3.15根据物品名字进行查找函数void seqSearchByName(char name) int flag=0; int n,i; n=product.len; i=0; while (i<n)if (strcmp(product.datai.name,name)=0) if (flag=0) flag=1; printf("查找成功!查找结果如下:n"); outputHead(); outputOneGoods(product.datai);i+;if (flag=0) printf("查找失败!名字为%s的物品不存在。n",name); 3.16对物品记录进行查找函数void searchGoods() int number; char nameNAME_MAX_LEN; int subMenuItem=1;while (subMenuItem!=0)printf("nn"); printf("*查找子菜单*n"); printf("* 1.根据物品编号进行查找 *n"); printf("* 2.根据物品名字进行查找 *n"); printf("* 0.退出系统 *n"); printf("*n"); printf("请输入所选子菜单项序号:"); scanf("%d",&subMenuItem); switch (subMenuItem)case 1: printf("请输入要查找的物品编号:"); scanf("%d",&number); seqSearchByNumber(number); break; case 2: printf("请输入要查找的物品名字:"); scanf("%s",name); seqSearchByName(name); break; case 0:break; default:printf("输入超出范围!n"); break;4设计结果与分析4.1各个模块的程序流程图1)主函数程序(N-S)流程图及运行界面主函数程序(N-S)流程图简单说明:该功能主要显示给用户一个进入界面,它主要的是显示该程序主要能够执行哪些功能。根据用户输入的不同的菜单项对应不同的功能。 主菜单2)输入物品记录信息的(N-S)流程图及程序运行界面物品记录信息的(N-S)流程定义变量 int menuItemCode=1;product;len=0 While(menuItemCode); Scanf(“%d”,&menuItemCode); Switch(menuItemCode); Case 1:inputGods(); break; 请输入物品信息 Case 2:outputGods(); break; 显示物品信息 Case 3:saveGoods(); break; 将物品记录存盘 Case 4:insertOneGoods(); break; 插入一个物品信息 Case 5 :deleteOneGoods(); break; 删除一个物品记录 Case 6:sortGoods(); break; 将物品记录排序 Case 7:searchGoods(); break; 查找物品记录 Case 0: 退出系统 break; 返回程序主界面该模块主要是对物品信息进行录入,录入的主要有物品记录的编号、名字、单价、数量等信息然后在存盘。 物品录入信息 物品记录信息存盘物品记录存盘详细信息 输出物品记录插入物品记录 插入物品之显示结果 删除物品记录 删除物品记录之显示结果 对物品记录按编号递增排序 对物品记录按总价递增排序查找子菜单界面根据物品编号查找根据物品名字查找退出系统源程序如下:#include "stdio.h"#include "string.h" #define NAME_MAX_LEN 20 #define Prod_MAX_NUM 50typedef struct int num; char nameNAME_MAX_LEN;double unitprice; int amount; double totalprice; prodNode; typedef struct sequenceprodNode dataProd_MAX_NUM; int len; seq; seq product;void inputGoods() int i,n; printf("请输入物品个数:n"); scanf("%d",&n); if (n<0) return; for (i=0;i<n;i+)printf("输入物品的编号:n"); scanf("%d",&product.datai.num); printf("输入物品的名字:n"); scanf("%s",product.datai.name); printf("输入物品的单价:n"); scanf("%lf",&product.datai.unitprice); printf("输入物品的数量:n"); scanf("%d",&product.datai.amount); product.datai.totalprice=product.datai.unitprice*product.datai.amount;product.len=n;void outputGoods() int i; if (product.len=0) printf("n无数据!n"); return; printf("n物品的记录为:n"); printf("编号t名字t单价 t数量t总价n");for (i=0;i<product.len;i+)printf("%dt%st%lft%dt%.2lf",product.datai.num,product.datai.name,product.datai.unitprice,product.datai.amount,product.datai.totalprice); printf("n"); void saveGoods() int i; FILE *fp; if (product.len=0) printf("n无数据!n");return;fp=fopen("D:goods.txt","w"); if (fp=NULL)printf("文件打开失败!n"); return;fprintf(fp,"%st","编号"); fprintf(fp,"%st","名称"); fprintf(fp,"%st ","单价"); fprintf(fp,"%st","数量");fprintf(fp,"%s","总价"); for (i=0;i<product.len;i+) fprintf(fp,"n"); fprintf(fp,"%dt",product.datai.num); fprintf(fp,"%st",product.datai.name); fprintf(fp,"%lft",product.datai.unitprice); fprintf(fp,"%dt",product.datai.amount); fprintf(fp,"%.2lf",product.datai.totalprice); fclose(fp); printf("已成功存盘!n");void insertOneGoods() prodNode G; int i,pos; if(product.len=Prod_MAX_NUM) printf("表已满!n"); return;printf("请输入插入位置:"); scanf("%d",&pos); if (pos<0|pos>product.len) printf("插入位置出错!n");return;printf("请输入要插入的物品记录:n"); printf("请输入编号:"); do scanf("%d",&G.num); if (G.num<=0) printf("输入的编号不合理,请重新输入。n"); while (G.num<=0);

    注意事项

    本文(cC语言物品管理-设计报告(共46页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开