商品信息管理系统C语言课程设计.docx
- 文档编号:10079430
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:53
- 大小:551.71KB
商品信息管理系统C语言课程设计.docx
《商品信息管理系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《商品信息管理系统C语言课程设计.docx(53页珍藏版)》请在冰豆网上搜索。
商品信息管理系统C语言课程设计
*******************
实践教案
*******************
软件学院(本科)
2014年秋季学期
计算机应用基础课程设计说明书
题目:
公司产品管理系统
专业班级:
2014级软件4班
姓名:
苏旺春
学号:
1417700221
指导教师:
马威
成绩:
1系统分析....................................................................................................................1
1.1课程设计内容..................................................................................................1
1.2系统功能需求分析..........................................................................................1
1.3数据结构设计..................................................................................................2
2系统设计....................................................................................................................3
2.1总体设计..........................................................................................................3
2.2详细设计..........................................................................................................4
2.2.1界面设计................................................................................................4
2.2.2各功能模块地设计................................................................................5
3系统编码设计..........................................................................................................11
3.1main函数........................................................................................................11
3.2load函数.........................................................................................................12
3.3creat创建链表函数........................................................................................13
3.4search函数.....................................................................................................16
3.5add数..............................................................................................................20
3.6amend函数.....................................................................................................22
3.7del函数...........................................................................................................25
3.8purchase函数.................................................................................................26
3.9sales函数........................................................................................................28
3.10print函数......................................................................................................29
3.11save函数.......................................................................................................33
3.12menu函数.....................................................................................................34
4系统运行..................................................................................................................36
5总结..........................................................................................................................41
1系统分析
1.1课程设计内容
1设计一商场商品信息管理系统,功能包括:
1.文件操作:
可建立、打开、保存、关闭数据文件.
2.输入商品信息数据:
数据包括商品编号、商品名、商品类别、商品数量、商品价格等.
3.编辑数据:
可添加、删除、修改数据.
4.输入进货、销售信息:
输入商品编号、数量完成进货或销售操作.
5.计算:
应在输入进货及销售信息时,自动更改商品数量.
6.查询:
可按商品编号、商品名或类别查询;还可查询需进货地商品.
7.排序:
可按编号、名称或类型排序.
8.
浏览:
可浏览输入、查询或排序后地数据.
1.2系统功能需求分析
本系统应具有以下功能:
1、文件操作功能:
可建立、打开、保存、关闭数据文件.
2、数据输入功能:
数据包括商品编号、商品名、商品类别、商品数量、商品价格等.以及输入商品编号、数量完成进货或销售操作.
3、数据添加、修改、删除功能
4、计算功能:
在输入进货及销售信息时,自动更改商品数量.
5、查询功能:
可按商品编号、商品名或类别查询;还可查询需进货地商品.
6、排序功能:
可按编号、名称或类型排序.
7、数据显示功能:
可浏览输入、查询或排序后地数据.
1.3数据结构设计
structshangpingxinxi/*结构体,用于存放主要数据*/
{
longnumber。
/*商品编号*/2
charname[100]。
/*商品名*/charleibie[100]。
/*商品类别*/intkucun。
/*库存量*/floatjiage。
/*商品价格*/structshangpingxinxi*next。
/*指向下一个结构体地指针*/
}intn,k。
/*全局变量*/
structshangpingxinxi*head。
/*局部变量*/
structshangpingxinxi*p1,*p2,*p3。
/*局部变量*/
chartemp[20]。
/*局部变量*/
int/long/char/floata,b,c,d,e,f,i,j;/*局部变量*/
FILE*fp。
/*局部变量,用于指向文件*/
2系统设计
2.1总体设计
3按系统分析地功能要求将系统划分为以下几个主要功能模块:
2.2详细设计
2.2.1界面设计
1、菜单设计
4
2、输入界面地设计
Ø输入商品编号:
提示输入7位商品编号.编号应为首位不为0地数字编号,当输入字符和非7位数字时提示错误;添加商品时,还应检查是否有重复编号,如有重新输入.
Ø输入商品名称:
提示输入商品名称.可输入任意字符串,但为了对齐最好不超过八个字符,以回车为输入结束.
Ø输入商品类型:
提示输入商品类型.可输入任意字符串,但为了对齐最好不超过八个字符,以回车为输入结束.
Ø输入商品库存:
提示输入大于零地商品库存(大于0).可输入0~32767地任意数字,当输入为字符和小于0地数字时提示错误,重新输入.
Ø输入商品价格:
提示输入大于零地商品价格(大于0).可输入0~3.4×
1038地任意浮点数,当输入为字符和小于0地数字时提示错误,重新输入.3、信息显示界面地设计
◆菜单信息显示:
在页面中央以阶梯状加半框形式显示,页面底部显示提示信息.
◆商品信息显示:
应显示商品编号、商品名称、商品类别、库存数量、商品
价格五种信息,并以表格形式显示.5
2.2.2各功能模块地设计
根据划分地功能模块,定义以下函数实现各功能:
(这部分应介绍各函数地原型,各功能模块实现所用地算法,可用流程图描述)
1、主函数main()
2、读取文件函数
structshangpingxinxi*load(structshangpingxinxi*head)
3、创建链表函数(输入数据函数)structshangpingxinxi*creat(void)
定义变量
开辟一个内存空间开辟内存空间
输入商品编号并判断是否有效和重复
输入商品名称并判断是否有效
输入商品类别并判断是否有效
输入商品库存并判断是否有效
输入商品价格并判断是否有效
判断是否输入结束
退出函数
4、查询函数
structshangpingxinxi*search(structshangpingxinxi*head)
5、添加函数
structshangpingxinxi*add(information*head,information*newgoods)
6、修改函数
structshangpingxinxi*amend(structshangpingxinxi*head)
7、删除函数
structshangpingxinxi*del(structshangpingxinxi*head)
8、进货函数
structshangpingxinxi*purchase(structshangpingxinxi*head)
9、销售函数
structshangpingxinxi*sales(structshangpingxinxi*head)
10、排序函数(输出函数)
voidprint(structshangpingxinxi*head)
11、保存函数
voidsave(structshangpingxinxi*p1)
3系统代码设计
3.1main函数
#include
#include
#include
#include
#defineLENsizeof(structshangpingxinxi)structshangpingxinxi
{
longnumber。
/*7位商品编号*/charname[100]。
/*商品名*/charleibie[100]。
/*商品类别*/intkucun。
/*库存量*/floatjiage。
/*商品价格*/structshangpingxinxi*next。
}。
typedefstructshangpingxinxiinformation。
intn,k。
/*n,k为全局变量,本程序中地函数均可以使用它*/
voidmain()/*主函数main,功能:
通过调用各函数,实现商品信息管理系统
地功能*/
{
information*head=0,*newgoods=0。
intk=0。
chara[10]。
intj。
charch。
pp:
system("cls")。
/*清屏*/printf("请输入密码:
")。
j=0。
while((ch=getch())!
=13)
{putchar('*')。
a[j]=ch。
j++。
}a[j]='\0'。
if(strcmp(a,"zeus880825")!
=0)
{
printf("\n\n密码错误!
")。
getch()。
gotopp。
}
system("cls")。
/*清屏*/
{lp:
k=menu(k)。
switch(k)/*用switch语句实现功能选择*/12
{
case1:
head=load(head)。
break。
/*从文件调入记录函数*/case2:
head=creat()。
break。
/*调用创建链表函数*/case3:
head=search(head)。
break。
/*调用信息查询函数*/case4:
head=amend(head)。
break。
/*调用修改信息地函数*/case5:
head=del(head)。
break。
/*调用删除信息函数*/case6:
head=add(head,newgoods)。
break。
/*调用追加信息资料函数*/case7:
head=purchase(head)。
break。
/*调用输入进货信息地函数*/case8:
head=sales(head)。
break。
/*调用输入销售信息地函数*/case9:
print(head)。
break。
/*调用显示信息资料函数*/case10:
save(head)。
break。
/*调用保存函数*/case0:
exit(0)。
/*退出系统,返回主界面*/default:
printf("输入错误,请重试!
\n")。
}gotolp。
}
}
3.2load函数
information*load(information*head)/*函数load,功能:
从文件读入商品
信息*/
{
information*p1,*p2。
charfilepn[10]。
FILE*fp。
system("cls")。
/*清屏*/
printf("请输入文件路径及文件名:
")。
scanf("%s",filepn)。
/*输入文件路径及名称*/if((fp=fopen(filepn,"r+"))==NULL)
{
printf("不能打开文件!
\n")。
getch()。
system("cls")。
/*清屏*/
return0。
}
fp=fopen(filepn,"r+")。
fscanf(fp,"\n商品编号\t商品名称\t商品类别\t库存数量\t商品价格
\n")。
n=0。
p1=p2=(information*)malloc(LEN)。
/*开辟一个新单元*/
fscanf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%f\n",&p1->number,&p1->name,&p1-
>leibie,&p1->kucun,&p1->jiage)。
head=p1。
13ll:
n=n+1。
p2=p1。
p1=(information*)malloc(LEN)。
/*开辟一个新单元*/
fscanf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%f\n",&p1->number,&p1->name,&p1-
>leibie,&p1->kucun,&p1->jiage)。
p2->next=p1。
if(p1->number!
=0)gotoll。
p2->next=NULL。
fclose(fp)。
/*结束读入,关闭文件*/
printf("\n总有%d种商品地信息:
\n",n)。
printf("\n商品编号\t商品名称\t商品类别\t库存数量\t商品价格
\n")。
p2=p1=head。
do
{
printf("%ld\t\t%s\t\t%s\t\t%d\t\t%.2f\n",p1->number,p1->name,p1->lei
bie,
p1->kucun,p1->jiage)。
p1=p1->next。
}
while(p1!
=NULL)。
getch()。
system("cls")。
/*清屏*/
return(head)。
}
3.3creat创建链表函数
information*creat(void)/*函数creat,功能:
创建链表,此函数带回一个指向链表头地指针*/
{
information*head。
information*p1,*p2,*p3。
inti。
system("cls")。
/*清屏*/n=0。
p1=p2=p3=(information*)malloc(LEN)。
head=p3。
/*开辟一个新单元*/
repeat1:
printf("请输入7位商品编号(退出请按“0”):
")。
/*输入编号,编号应大于
0*/
scanf("%d",&p1->number)。
if(p1->number==0)
gotoend。
14else
{
while(p1->number<1000000||p1->number>=10000000)
{printf("输入错误!
")。
gotorepeat1。
}p3=head。
if(n>0){for(i=0。
i i++){ if(p1->number! =p3->number)p3=p3->next。 else{ printf("编号重复,请重输! \n")。 gotorepeat1。 /*当输入地编号已经存在,程序报错,返回前面重新输入*/ } } } } printf("请输入商品名: ")。 scanf("%s",&p1->name)。 /*输入商品商品名*/ printf("请输入商品类别: ")。 /*输入商品类别*/ scanf("%s",&p1->leibie)。 printf("请输入商品库存(大于0): ")。 /*输入商品库存*/ scanf("%d",&p1->kucun)。 while(p1->kucun<0) { printf("输入错误,请重新输入商品数量")。 /*输入错误,重新输入商品库存直到正确为止*/ scanf("%d",&p1->kucun)。 } printf("请输入商品价格(大于0): ")。 /*输入商品价格*/ scanf("%f",&p1->jiage)。 while(p1->jiage<0) { printf("输入错误,请重新输入商品价格")。 scanf("%f",&p1->jiage)。 }/*输入错误,重新输入商品价格直到正确为止*/ head=NULL。 while(p1->number! =0)15 {n=n+1。 if(n==1)head=p1。 else p2->next=p1。 p2=p1。 p1=(information*)malloc(LEN)。 repeat2: printf("请输入7位商品编号(退出请按“0”): ")。 scanf("%d",&p1->number)。 /*输入编号,编号应大于0*/if(p1->number==0)gotoend。 else { while(p1->number<1000000||p1->number>=10000000) {printf("输入错误! ")。 gotorepeat2。 }p3=head。 if(n>0){ for(i=0。 i i++) { if(p1->number! =p3->number) p3=p3->next。 else{ printf("编号重复,请重输! \n")。 gotorepeat2。 /*当输入地编号已经存在,程序报错,返回前面重新输入*/ } } } } printf("请输入商品名: ")。 scanf("%s",&p1->name)。 /*输入商品商品名*/printf("请输入商品类别: ")。 /*输入商品类别*/scanf("%s",&p1->leibie)。 printf("请输入商品库存(大于0): ")。 /*输入商品库存*/ scanf("%d",&p1->kucun)。 while(p1->kucun<0) { printf("输入错误,请重新输入商品数量")。 /*输入错误,重新输入商品库存直到正 确为止*/16scanf("%d",&p1->kucun)。 } printf("请输入商品价格(大于0): ")。 /*输入商品价格*/ scanf("%f",&p1->jiage)。 while(p1->jiage<0) { printf("输入错误,请重新输入商品价格")。 scanf("%f"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商品信息 管理 系统 语言 课程设计