cC语言物品管理设计报告.docx

上传人:b****3 文档编号:24871093 上传时间:2023-06-02 格式:DOCX 页数:39 大小:579.61KB
下载 相关 举报
cC语言物品管理设计报告.docx_第1页
第1页 / 共39页
cC语言物品管理设计报告.docx_第2页
第2页 / 共39页
cC语言物品管理设计报告.docx_第3页
第3页 / 共39页
cC语言物品管理设计报告.docx_第4页
第4页 / 共39页
cC语言物品管理设计报告.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

cC语言物品管理设计报告.docx

《cC语言物品管理设计报告.docx》由会员分享,可在线阅读,更多相关《cC语言物品管理设计报告.docx(39页珍藏版)》请在冰豆网上搜索。

cC语言物品管理设计报告.docx

cC语言物品管理设计报告

学号

2016-2017学年第2学期

1608220203

 

《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源程序代码(物品管理系统) ........................................... 23

1.设计内容及要求

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"

#defineNAME_MAX_LEN20

#defineProd_MAX_NUM50

typedefstruct{

intnum;

charname[NAME_MAX_LEN];

doubleunitprice;

intamount;

doubletotalprice;

}prodNode;

typedefstructsequence

{

prodNodedata[Prod_MAX_NUM];

intlen;

}seq;

seqproduct;

3.2主函数main()

voidmain()

{intmenuItemCode=1;

product.len=0;

while(menuItemCode!

=0)

{

printf("\n\n");

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)

{case1:

inputGoods();break;

case2:

outputGoods();break;

case3:

saveGoods();break;

case4:

insertOneGoods();break;

case5:

deleteOneGoods();break;

case6:

sortGoods();break;

case7:

searchGoods();break;

case0:

break;

default:

printf("输入超出范围!

\n");break;

}

}

}

3.3输入物品信息函数

voidinputGoods(){

inti,n;

printf("请输入物品个数:

\n");

scanf("%d",&n);

if(n<0)

return;

for(i=0;i

{

printf("输入物品的编号:

\n");

scanf("%d",&product.data[i].num);

printf("输入物品的名字:

\n");

scanf("%s",product.data[i].name);

printf("输入物品的单价:

\n");

scanf("%lf",&product.data[i].unitprice);

printf("输入物品的数量:

\n");

scanf("%d",&product.data[i].amount);

product.data[i].totalprice=product.data[i].unitprice*product.data[i].amount;

}

product.len=n;

}

3.4输出显示物品函数

voidoutputGoods(){

inti;

if(product.len==0)

{printf("\n无数据!

\n");

return;

}

printf("\n物品的记录为:

\n");

printf("编号\t名字\t单价\t数量\t总价\n");

for(i=0;i

{printf("%d\t%s\t%lf\t%d\t%.2lf",product.data[i].num,product.data[i].name,product.data[i].unitprice,product.data[i].amount,product.data[i].totalprice);

printf("\n");

}

}

3.5将物品写入磁盘

voidsaveGoods()

{inti;

FILE*fp;

if(product.len==0)

{printf("\n无数据!

\n");

return;

}

fp=fopen("D:

\\goods.txt","w");

if(fp==NULL)

{

printf("文件打开失败!

\n");

return;

}

fprintf(fp,"%s\t","编号");

fprintf(fp,"%s\t","名称");

fprintf(fp,"%s\t","单价");

fprintf(fp,"%s\t","数量");

fprintf(fp,"%s","总价");

for(i=0;i

{fprintf(fp,"\n");

fprintf(fp,"%d\t",product.data[i].num);

fprintf(fp,"%s\t",product.data[i].name);

fprintf(fp,"%lf\t",product.data[i].unitprice);

fprintf(fp,"%d\t",product.data[i].amount);

fprintf(fp,"%.2lf",product.data[i].totalprice);

}

fclose(fp);

printf("已成功存盘!

\n");

}

3.6插入物品记录函数

voidinsertOneGoods()

{prodNodeG;

inti,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.data[i+1]=product.data[i];

product.data[pos]=G;

product.len=product.len+1;

printf("插入成功!

");

}

3.7删除一个物品记录函数

voiddeleteOneGoods()

{

inti,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.data[i-1]=product.data[i];

product.len=product.len-1;

printf("删除成功!

\n");

}

3.8按照物品编号进行递增排序函数

voidbubbleSortByNum()

{inti,j,n;prodNodetemp;

inttag;n=product.len;

for(tag=1,i=0;i

{

tag=0;

for(j=n-1;j>i;j--)

if(product.data[j].num

{

temp=product.data[j];

product.data[j]=product.data[j-1];

product.data[j-1]=temp;

tag=1;

}

}

}

3.9按照物品总价进行递增排序函数

voidbubbleSortByTotal()

{inti,j,n;

prodNodetemp;

inttag;n=product.len;

for(tag=1,i=0;i

{tag=0;

for(j=n-1;j>i;j--)

if(product.data[j].totalprice

{temp=product.data[j];

product.data[j]=product.data[j-1];

product.data[j-1]=temp;

tag=1;

}

}

}

3.10对物品记录进行排序函数

voidsortGoods()

{intsubMenuItem=1;

while(subMenuItem!

=0)

{

printf("\n\n");

printf("******************排序子菜单***********************\n");

printf("*1.按照物品编号进行递增排序*\n");

printf("*2.按照物品总价进行递增排序*\n");

printf("*0.退出子菜单*\n");

printf("***************************************************\n");

printf("请输入所选子菜单项序号:

");scanf("%d",&subMenuItem);

switch(subMenuItem)

{

case1:

bubbleSortByNum();

printf("已按照物品的编号进行递增排序。

排序后的结果为:

\n");

outputGoods();

break;

case2:

bubbleSortByTotal();

printf("已按照物品的总价进行递增排序。

排序后的结果为:

\n");

outputGoods();

break;

case0:

break;

default:

printf("输入超出范围!

\n");

break;

}

}

}

3.11输出头部信息函数

voidoutputHead()

{

printf("编号\t名字\t单价\t数量\t总价\n");

}

3.12输出一条物品信息函数

voidoutputOneGoods(prodNodes)

{printf("%d\t%s\t%lf\t%d\t%.2lf",s.num,s.name,s.unitprice,s.amount,s.totalprice);

printf("\n");

}

3.13判断该编号物品是否存在函数

intisNumberExist(intnumber)

{intn,i=0;

n=product.len;

while(i

=number)

i++;

if(i

returni;

else

return-1;

}

3.14根据物品编号进行查找函数

voidseqSearchByNumber(intnumber)

{intpos;

pos=isNumberExist(number);

if(pos!

=-1)

{printf("查找成功!

查找结果如下:

\n");

outputHead();

outputOneGoods(product.data[pos]);

}

else

printf("查找失败!

编号为%d的物品不存在。

\n",number);

}

3.15根据物品名字进行查找函数

voidseqSearchByName(charname[])

{intflag=0;

intn,i;

n=product.len;

i=0;

while(i

{

if(strcmp(product.data[i].name,name)==0)

{

if(flag==0)

{

flag=1;

printf("查找成功!

查找结果如下:

\n");

outputHead();

}

outputOneGoods(product.data[i]);

}

i++;

}

if(flag==0)

printf("查找失败!

名字为%s的物品不存在。

\n",name);

}

3.16对物品记录进行查找函数

voidsearchGoods()

{intnumber;

charname[NAME_MAX_LEN];

intsubMenuItem=1;

while(subMenuItem!

=0)

{

printf("\n\n");

printf("*********************查找子菜单********************\n");

printf("*1.根据物品编号进行查找*\n");

printf("*2.根据物品名字进行查找*\n");

printf("*0.退出系统*\n");

printf("***************************************************\n");

printf("请输入所选子菜单项序号:

");scanf("%d",&subMenuItem);

switch(subMenuItem)

{

case1:

printf("请输入要查找的物品编号:

");

scanf("%d",&number);

seqSearchByNumb

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

当前位置:首页 > 初中教育 > 理化生

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

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