C语言商品管理系统1.docx

上传人:b****3 文档编号:4413173 上传时间:2023-05-07 格式:DOCX 页数:29 大小:178.31KB
下载 相关 举报
C语言商品管理系统1.docx_第1页
第1页 / 共29页
C语言商品管理系统1.docx_第2页
第2页 / 共29页
C语言商品管理系统1.docx_第3页
第3页 / 共29页
C语言商品管理系统1.docx_第4页
第4页 / 共29页
C语言商品管理系统1.docx_第5页
第5页 / 共29页
C语言商品管理系统1.docx_第6页
第6页 / 共29页
C语言商品管理系统1.docx_第7页
第7页 / 共29页
C语言商品管理系统1.docx_第8页
第8页 / 共29页
C语言商品管理系统1.docx_第9页
第9页 / 共29页
C语言商品管理系统1.docx_第10页
第10页 / 共29页
C语言商品管理系统1.docx_第11页
第11页 / 共29页
C语言商品管理系统1.docx_第12页
第12页 / 共29页
C语言商品管理系统1.docx_第13页
第13页 / 共29页
C语言商品管理系统1.docx_第14页
第14页 / 共29页
C语言商品管理系统1.docx_第15页
第15页 / 共29页
C语言商品管理系统1.docx_第16页
第16页 / 共29页
C语言商品管理系统1.docx_第17页
第17页 / 共29页
C语言商品管理系统1.docx_第18页
第18页 / 共29页
C语言商品管理系统1.docx_第19页
第19页 / 共29页
C语言商品管理系统1.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言商品管理系统1.docx

《C语言商品管理系统1.docx》由会员分享,可在线阅读,更多相关《C语言商品管理系统1.docx(29页珍藏版)》请在冰点文库上搜索。

C语言商品管理系统1.docx

C语言商品管理系统1

1问题定义…………………………………………………………………………..1

2系统设计……………………………………………………………………2

2.1总体设计………………………………………………………………………………3

2.2详细设计………………………………………………………………………………5

2.2.1数据结构设计…………………………………………………………6

2.2.2主控流程…………………………………………………………………………7

2.2.3函数功能描述…………………………………………………………………….7

3系统实现………………………………………………………………………8

3.1编码………………………………………………………………………9

3.1.1程序预处理……….……………………………………………………………10

3.1.2主函数main()……….………………………………………………………..12

3.1.3主菜单界面………….……………………………………………………….13

3.1.4输入商品信…….………………………………………………………………….15

3.1.5查找商品信息………….…………………………………………………………….16

3.1.6录入商品信息……….……………………………………………………………..17

3.1.7显示商品信息………….…………………………………………………………….18

3.1.8添加商品信息………….………………………………………………………18

3.2测试与调试………………………………………………………………………20

3.2.1概述………….……………………………………………………………20

3.2.2程序测试………….……………………………………………………………21

4系统维护………………………………………………………………………21

5归纳总结………………………………………………………………………21

5.1开发经验………………………………………………………………………22

5.2实训中遇到的问题及解决方法………………………………………………22

5.3设计中的不足之处……………………………………………………………………23

5.4感想和心得体会……………………………………………………………………23

6参考资料………………………………………………………………………23

前言

课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。

我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。

但是,对于程序设计而言,学习C的步伐不应该停留于此。

我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C语言开发出解决复杂问题的大型综合程序。

可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对TurboC语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。

本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。

本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。

由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。

编者

 

桂林电子科技大学信息科技学院

商品管理系统

本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。

本程序中涉及结构体、数组、文件等方面的知识。

通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用文件保存实现对商品管理管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义

制作一个商品管理系统,功能包括商品录入、商品排序、商品查找、商品存储与读入、按条件输出商品单价等。

图1.1商品管理系统功能需求

在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。

2、系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

图2.1

本商品管理系统采用文件保存实现,如图2.1所示,它由如下五大功能模块组成:

●输入商品信息模块。

完成将信息输入文件的工作。

信息以二进制形式存储的数据文件中读入。

商品信息由商品序号,商品生产商,商品单价构成。

●显示商品模块。

完成商品信息的输入后,可以选择打开商品信息存入的文件,并按照商品号或者商品单价的排序形式输出商品信息。

●查找商品信息模块。

查找要找的商品信息,打开商品存入的文件并输入商品号显示要查找的商品信息。

●添加商品模块。

将新添的商品信息存储入指定的文件。

●退出系统模块。

输入0按回车键退出商品管理系统。

2.2详细设计

2.2.1数据结构设计

●商品信息结构体

typedefstruct

{

charname[30];/*商品名称*/

intnum;/*商品号*/

charshang[10];/*商品生产厂家*/

floatprice;/*商品单价*/

}record;

结构体structstudent将用于存储商品信息,它将存储到指定的文件。

 

2.2.2主控main()函数执行流程

本成绩管理系统执行主流程如图2.2所示。

它先创建文件,将商品信息输入文件,并按提示输入数字(0-4)打开文件,通过文件读写来实行商品的显示和添加等。

在选择功能时,有效的输入为本0至4之间的任意数值,其他输入都被视为错误按键。

若输入为0(即变量fn=0),它会显示退出系统,并按任意键退出。

若选择1,则调用voidDataInput(record*com,int*nptr)函数,执行输入商品信息操作;若选择2,则调用voidDataDisPlay()函数,执行商品显示操作;若选择3,则调用voidDataFind();函数,执行商品查找操作;若选择4,则调用voidDataAdd()函数,执行商品信息添加操作;若选择5,则调用voidDataStatistic()函数,执行退出系统操作。

2.2.3函数功能描述

DataInput(record*st,int*q)

函数原型:

voidDataInput(record*st,int*q)

DataInput(record*st,int*q)函数用于输入商品信息,写入文件中

DataStorage(record*st,intn)

函数原型:

voidDataStorage(record*st,intn)

DataStorage(record*st,intn)函数用于将商品信息存储入文件中。

DataFind()

函数原型:

voidDataFind()

DataFind()函数用于商品信息的查找。

DataDisPlay()

函数原型:

voidDataDisPlay()

DataDisPlay()函数用于显示商品信息,按指定的顺序显示出来。

voidDataAdd()

函数原型:

voidvoidDataAdd()

voidDataAdd()函数用于添加商品信息,写入并存储到指定的文件当中。

●主函数main()

整个成绩管理系统控制部分,其详细说明可参考图二。

完成在上述系统设计后,即可着手进行系统实现的工作,开始程序代码的编写。

3、系统实现

3.1编码

3.1.1程序预处理

包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。

#include

#include

#include

#defineS50

typedefstruct

{

charname[30];

intnum;

charshangjia[10];

floatprice;

}record;

voidDataInput(record*st,int*q);

intDataRead(record*st,int*q);

voidDataStorage(record*st,intn);/*信息保存到文件*/

voidDataFind();

voidDataDisPlay();

voidDataAdd();

 

3.1.2主函数main()

main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。

详细分析可参考图2。

intmain()

{

recordshangpin[S];

intnumber=20;/*设商品数*/

chara;

printf("\t~~~~~~~欢迎进入我的商品管理系统~~~~~~~~\t");

3.1.3主菜单界面

用户进入商品管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。

此代码被main()函数调用。

while

(1)

{

printf("\n\t\t1.录入商品\n");/*显示主菜单*/

printf("\t\t2.显示商品\n");

printf("\t\t3.查找商品\n");

printf("\t\t4.添加商品\n");

printf("\t\t0.退出");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-4):

");

fflush(stdin);

scanf("%c",&a);

puts("\n");

switch(a)/*切换到不同功能*/

{

case'1':

DataInput(shangpin,&number);

break;/*录入信息*/

case'2':

DataDisPlay(shangpin,number);

break;/*信息显示*/

case'3':

DataFind(shangpin,number);

break;/*信息查找*/

case'4':

DataAdd();

break;/*增加*/

case'0':

return0;

default:

puts("\t\t没有这个项!

返回主菜单!

");

break;

}

printf("\n\t\t完毕!

按任意键继续");

getch();

puts("\n");

}

}

3.1.4输入商品信息

用户进入商品管理系统时,通过输入商品数量,商品名称,商品号,商品生产厂家,商品单价来录入到文件中。

voidDataInput(record*st,int*q)/*商品信息录入*/

{

inti=0;

intn;/*录入的总数*/

charYesOrNo;/*判断是否保存*/

charshangjiaming[30];/*商名*/

inthaoma;/*商品号*/

charshangjia[10];/*单价*/

floatdanjia;

printf("\t\t请输入商品个数:

");

scanf("%d",&n);

*q=n;/*q返回商品个数*/

printf("\t\t现在开始录入这%d个商品信息:

\n\n",n);

while(i

{

printf("请输入商品的商品名:

",i+1);

scanf("%s",&shangjiaming);

printf("请输入商品的商品号:

",i+1);

scanf("%d",&haoma);

printf("请输入商品的生产商:

",i+1);

scanf("%s",&shangjia);

printf("请输入商品的单价:

",i+1);

scanf("%f",&danjia);

if(danjia>=0&&danjia<=12345)/*有效的单价才录入*/

{

strcpy(st[i].name,shangjiaming);

st[i].num=haoma;

strcpy(st[i].shangjia,shangjia);

st[i].price=danjia;

i=i+1;

}

else

printf("输入的单价是一个无效的值\n\n");

}/*结束while*/

 

printf("要保存您刚才录入的数据吗(Y/N)?

");/*选择保存*/

fflush(stdin);

scanf("%c",&YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(st,n);

elseif(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确的选项\n");

return;

 

}/*结束函数*/

3.1.5查找商品信息

以读出的形式打开文件,通过条件来查找文件中的商品信息,并且以按商品号或者按商品单价的形式由低到高排列出来。

voidDataFind()/*查找*/

{

voidOnNumber(record*st,intn);/*按商品号排序*/

intkey;/*key为要查找的关键值*/

intlow=0;/*下限*/

inthigh;/*上限*/

intmid;/*中间值*/

charans;/*选项*/

recordst[S];

intn;

if(DataRead(st,&n)==1)/*从文件中读取信息*/

{

OnNumber(st,n);/*先按商品号排序*/

high=n;

do

{

printf("\n\n\t\t请输入你要查找的商品号:

");

scanf("%d",&key);

low=0;high=n;

while(low<=high)

{

mid=(high+low)/2;

if(key==st[mid].num)

{

printf("\n\t\t你要找的是第%d个商品\n",mid+1);

printf("\t\t结果如下:

\n\n");

printf("序号\t\t商品名\t商品号\t生产商\t单价\n");

printf("%3d%17s%12d%12s%8.1f\n",mid+1,st[mid].name,st[mid].num,st[mid].shangjia,

st[mid].price);

break;/*如果找到则退出循环*/

}

if(key>st[mid].num)low=mid+1;

elsehigh=mid-1;

}

if(low>high)

printf("\t\t,没有找到这个价格!

\n");

printf("\n\t\t还要继续查询吗(Y/N)?

");

ans=getch();

}

while(ans=='Y'||ans=='y');/*结束do....while*/

}

}

3.1.6录入商品信息

新建一个文件,将输入的商品信息录入文件并保存,成功后,可执行将商品信息添加到该文件中,或者从文件中读取商品信息等功能。

voidDataStorage(record*st,intn)/*录入保存文件*/

{

inti;

FILE*fp;

charFileName[20];

printf("请输入您要保存的文件名:

");

scanf("%s",FileName);

printf("正在将商品信息保存到文件,请稍候……\n");

if((fp=fopen(FileName,"w"))==NULL)

printf("没有该文件\n");

else

for(i=0;i

fprintf(fp,"\n%17s%12d%12s%8.1f",st[i].name,st[i].num,st[i].shangjia,st[i].price);

fclose(fp);

}

intDataRead(record*st,int*q)/*读取文件*/

{

inti=0;

chardatafile[20];

FILE*fp;

*q=0;

printf("请输入文件名:

");

scanf("%s",datafile);

if((fp=fopen(datafile,"r"))==NULL)/*打开文件*/

{

printf("没有该文件,请重新输入!

\n");

return0;

}

else

{

printf("正在读取商品单价,请稍候……\n");

while(!

feof(fp))

{

fscanf(fp,"%s%d%s%f",&st[i].name,&st[i].num,&st[i].shangjia,&st[i].price);

i++;

}

*q=i;

printf("\n");

fclose(fp);

return1;

}

}

3.1.7显示商品信息

文件创建成功并且存入了商品信息后,可以通过指定的操作打开文件并将文件的商品信息显示出来。

 

voidDataDisPlay()

{

voidOnPrice(record*st,intn);/*按单价*/

voidOnNumber(record*st,intn);/*按商品号*/

intN;

inti;

recordst[300];

charYesNo;/*是否按顺序显示*/

chartp;

if(DataRead(st,&N)==1)/*从文件读取数据*/

{

printf("序号\t\t商品名\t商品号\t生产商\t单价\n");

for(i=0;i

printf("%3d%17s%12d%12s%8.1f\n",i+1,st[i].name,st[i].num,st[i].shangjia,st[i].price);

printf("要按顺序显示吗?

(Y/N)?

");

fflush(stdin);

scanf("%c",&YesNo);

if(YesNo=='y'||YesNo=='Y')

{

printf("\t请输入排序方式:

\n");

printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");

fflush(stdin);

scanf("%c",&tp);

if(tp=='1')

OnPrice(st,N);

elseif(tp=='2')

OnNumber(st,N);

else

printf("\t输入了不正确项!

\n");

}

}

}/*结束显示成绩*/

按单价排序商品信息

查找商品信息时,按照商品单价的高低查看要查找的商品信息。

voidOnPrice(record*st,intn)/*按单价顺序*/

{inti,j;

recordtemp;

printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:

\n",n);

for(j=0;j

for(i=0;i

if(st[i].price>st[i+1].price)

{

temp=st[i];

st[i]=st[i+1];

st[i+1]=temp;

}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):

\n\n");

printf("序号\t\t商品名\t商品号\t生产商\t单价\n");

for(i=0;i

printf("%3d%17s%12d%12s%8.1f\n",i+1,st[i].name,st[i].num,st[i].shangjia,

st[i].price);

}

 

按商品序号查找商品信息

查找商品信息时,按照商品序号来查看要查找的商品信息。

voidOnNumber(record*st,intn)/*按序号顺序*/

{

inti,j;

recordtemp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:

\n",n);

for(j=0;j

for(i=0;i

if(st[i].num>st[i+1].num)

{

temp=st[i];

st[i]=st[i+1];

st[i+1]=temp;

}

printf("\n\t(按商品号从小到大):

\n\n");

printf("序号\t\t商品名\t商品号\t生产商\t单价\n");

for(i=0;i

printf("%3d%17s%12d%12s%8.1f\n",i+1,st[i].name,st[i].num,st[i].shangjia,

st[i].price);

}

3.1.8添加商品信息

打开建立的文件,将要添加的商品信息写入文件当中并且保存。

voidDataAdd()/*增加*/

{

inti=0,n,m;/*商品名

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2