商品信息管理系统C语言课程设计.docx
- 文档编号:26223955
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:51
- 大小:661.29KB
商品信息管理系统C语言课程设计.docx
《商品信息管理系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《商品信息管理系统C语言课程设计.docx(51页珍藏版)》请在冰豆网上搜索。
商品信息管理系统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 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 { 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("输入错误,请重新输入商品数量");/*输入错误,重新输入商品库存直到正
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商品信息 管理 系统 语言 课程设计