欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C语言课程设计(论文)—商场商品管理信息系统.doc

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

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

    C语言课程设计(论文)—商场商品管理信息系统.doc

    目 录1 系统分析11.1 课程设计内容11.2 系统功能需求分析11.3 数据结构设计22 系统设计22.1 总体设计22.2 详细设计22.2.1 界面设计22.2.2 各功能模块的设计23 系统编码设计23.1 main函数23.2 load函数23.3 creat创建链表函数23.4 search函数23.5 add数23.6 amend函数23.7 del函数23.8 purchase函数23.9 sales函数23.10 print函数23.11 save函数23.12 menu函数24 系统运行25 总结21 系统分析1.1 课程设计内容设计一商场商品信息管理系统,功能包括:1. 文件操作:可建立、打开、保存、关闭数据文件。2. 输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、 商品价格等。3. 编辑数据:可添加、删除、修改数据。4. 输入进货、销售信息:输入商品编号、数量完成进货或销售操作。5. 计算:应在输入进货及销售信息时,自动更改商品数量。6. 查询:可按商品编号、商品名或类别查询;还可查询需进货的商品。7. 排序:可按编号、名称或类型排序。8. 浏览:可浏览输入、查询或排序后的数据。1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能:可建立、打开、保存、关闭数据文件。2、数据输入功能: 数据包括商品编号、商品名、商品类别、商品数量、 商品价格等。以及输入商品编号、数量完成进货或销售操作。3、数据添加、修改、删除功能4、计算功能:在输入进货及销售信息时,自动更改商品数量。5、查询功能:可按商品编号、商品名或类别查询;还可查询需进货的商品。6、排序功能:可按编号、名称或类型排序。7、数据显示功能:可浏览输入、查询或排序后的数据。1.3 数据结构设计struct shangpingxinxi /*结构体,用于存放主要数据*/long number; /*商品编号*/ char name100; /*商品名*/ char leibie100; /*商品类别*/ int kucun; /*库存量*/ float jiage; /*商品价格*/ struct shangpingxinxi *next; /*指向下一个结构体的指针*/int n,k; /*全局变量*/struct shangpingxinxi *head; /*局部变量*/struct shangpingxinxi *p1,*p2,*p3; /*局部变量*/char temp20; /*局部变量*/int/long/char/float a,b,c,d,e,f,i,j; /*局部变量*/ FILE *fp; /*局部变量,用于指向文件*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:2.2 详细设计2.2.1 界面设计1、菜单设计2、输入界面的设计Ø 输入商品编号:提示输入7位商品编号。编号应为首位不为0的数字编号,当输入字符和非7位数字时提示错误;添加商品时,还应检查是否有重复编号,如有重新输入。Ø 输入商品名称: 提示输入商品名称。可输入任意字符串,但为了对齐最好不超过八个字符,以回车为输入结束。Ø 输入商品类型:提示输入商品类型。可输入任意字符串,但为了对齐最好不超过八个字符,以回车为输入结束。Ø 输入商品库存:提示输入大于零的商品库存(大于0)。可输入032767的任意数字,当输入为字符和小于0的数字时提示错误,重新输入。Ø 输入商品价格:提示输入大于零的商品价格(大于0)。可输入03.4×1038的任意浮点数,当输入为字符和小于0的数字时提示错误,重新输入。3、信息显示界面的设计u 菜单信息显示:在页面中央以阶梯状加半框形式显示,页面底部显示提示信息。u 商品信息显示:应显示商品编号、商品名称、商品类别、库存数量、商品价格五种信息,并以表格形式显示。2.2.2 各功能模块的设计根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)1、主函数main()定义变量进入欢迎界面输入密码Y 密码正确? N进入主菜单返回重新输入密码k=1 读取文件k=2 创建信息k=3 查询信息k=4 修改信息k=5 删除信息k=6 添加信息k=7 进货信息k=8 销售信息k=9 浏览信息k=10 保存文件switch(k)返回主菜单退出程序2、读取文件函数struct shangpingxinxi *load(struct shangpingxinxi *head)定义变量输入所要打开的文件路径及文件名 Y 文件是否存在 N打开文件退出本函数读取文件中的目录开辟一个内存空间读取一个信息再开辟一个空间再开辟一个内存空间读取信息到内存空间if(p1->number!=0)关闭文件输出读入的信息到屏幕退出本函数3、创建链表函数(输入数据函数)struct shangpingxinxi *creat(void)定义变量开辟一个内存空间输入商品编号并判断是否有效和重复输入商品名称并判断是否有效输入商品类别并判断是否有效输入商品库存并判断是否有效输入商品价格并判断是否有效开辟内存空间 判断是否输入结束退出函数4、查询函数struct shangpingxinxi *search(struct shangpingxinxi *head)定义变量Y 内存中是否有数据信息 N进入选择菜单退出此函数a=1 按商品编号查询a=2 按商品名查询a=3 按商品类别查询a=4 查询需进货商品switch(a)返回选择菜单退出此函数5、添加函数struct shangpingxinxi *add(information *head,information *newgoods)定义变量开辟一个新内存空间输入需添加商品的编号并判断是否合法和重复输入需添加商品的名称输入需添加商品的类别输入需添加商品的库存判断是否合法输入需添加商品的价格判断是否合法Y 是否保存 N将所开辟空间链接到已有链表末尾返回重输退出此函数6、修改函数struct shangpingxinxi *amend(struct shangpingxinxi *head)定义变量Y 内存中是否有数据 N输入需修改的商品编号并查询是否存在退出此函数输入修改后的商品编号并判断是否合法和重复输入修改后的商品名称输入修改后的商品类别输入修改后的商品库存并判断是否合法输入修改后的商品价格并判断是否合法显示修改后的信息 Y 确认修改? N 修改成功返回重输退出此函数7、删除函数struct shangpingxinxi *del(struct shangpingxinxi *head)定义变量Y 内存中是否有数据 N输入需删除的商品编号退出此函数Y 是否存在? N显示该商品信息返回重输Y 是否删除? N删除该商品信息返回重输退出此函数8、进货函数struct shangpingxinxi *purchase(struct shangpingxinxi *head)定义变量Y 内存中是否有数据 N输入所进货商品的编号退出此函数Y 是否存在? N显示该商品信息返回重输输入进货量显示该商品信息退出此函数9、销售函数struct shangpingxinxi *sales(struct shangpingxinxi *head)定义变量Y 内存中是否有数据 N输入所销售商品的编号退出此函数Y 是否存在? N显示该商品信息返回重输输入销售量Y 库存>销售量? N显示该商品信息返回重输退出此函数10、排序函数(输出函数)void print(struct shangpingxinxi *head)定义变量Y 内存中是否有数据信息 N进入选择菜单退出此函数a=1 按商品编号顺序浏览a=2 按商品名顺序浏览a=3 按商品类别顺序浏览a=0 返回选择菜单switch(a)退出此函数11、保存函数void save(struct shangpingxinxi *p1)定义变量Y 内存中是否有数据 N输入文件地址和文件名退出此函数Y 能否打开? N打开文件退出此函数把内存中的信息保存到文件在屏幕上显示信息关闭文件退出此函数3 系统代码设计3.1 main函数#include <malloc.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#define LEN sizeof(struct shangpingxinxi)struct shangpingxinxilong number;/*7位商品编号*/ char name100;/*商品名*/ char leibie100;/*商品类别*/ int kucun;/*库存量*/ float jiage;/*商品价格*/ struct shangpingxinxi *next;typedef struct shangpingxinxi information;int n,k;/*n,k为全局变量,本程序中的函数均可以使用它*/void main() /*主函数main,功能:通过调用各函数,实现商品信息管理系统的功能*/information *head=0,*newgoods=0;int k=0;char a10; int j;char ch;pp:system("cls");/*清屏*/ printf("请输入密码:");j=0;while(ch=getch()!=13) putchar('*'); aj=ch; j+; aj='0' if(strcmp(a,"zeus880825")!=0) printf("nn密码错误!"); getch(); goto pp; system("cls");/*清屏*/lp:k=menu(k);switch(k)/*用switch语句实现功能选择*/case 1: head=load(head);break;/*从文件调入记录函数*/ case 2: head=creat();break;/*调用创建链表函数*/ case 3: head=search(head);break;/*调用信息查询函数*/ case 4: head=amend(head);break;/*调用修改信息的函数*/ case 5: head=del(head); break;/*调用删除信息函数*/ case 6: head=add(head,newgoods);break;/*调用追加信息资料函数*/ case 7: head=purchase(head);break;/*调用输入进货信息的函数*/ case 8: head=sales(head);break;/*调用输入销售信息的函数*/ case 9: print(head); break;/*调用显示信息资料函数*/ case 10:save(head);break;/*调用保存函数*/ case 0: exit(0);/*退出系统,返回主界面*/ default: printf("输入错误,请重试!n"); goto lp;3.2 load函数information *load(information *head)/*函数load,功能:从文件读入商品信息*/ information *p1,*p2; char filepn10; FILE *fp; system("cls");/*清屏*/ printf("请输入文件路径及文件名:"); scanf("%s",filepn);/*输入文件路径及名称*/ if(fp=fopen(filepn,"r+")=NULL) printf("不能打开文件!n"); getch(); system("cls");/*清屏*/ return 0; fp=fopen(filepn,"r+"); fscanf(fp,"n商品编号t商品名称t商品类别t库存数量t商品价格n"); n=0; p1=p2=(information *)malloc(LEN); /*开辟一个新单元*/fscanf(fp,"%ldtt%stt%stt%dtt%fn",&p1->number,&p1->name,&p1->leibie,&p1->kucun,&p1->jiage); head=p1;ll:n=n+1; p2=p1; p1=(information *)malloc(LEN); /*开辟一个新单元*/fscanf(fp,"%ldtt%stt%stt%dtt%fn",&p1->number,&p1->name,&p1->leibie,&p1->kucun,&p1->jiage); p2->next=p1; if(p1->number!=0) goto ll; p2->next=NULL;fclose(fp);/*结束读入,关闭文件*/printf("n总有%d种商品的信息:n",n);printf("n商品编号t商品名称t商品类别t库存数量t商品价格n"); p2=p1=head; doprintf("%ldtt%stt%stt%dtt%.2fn",p1->number,p1->name,p1->leibie,p1->kucun,p1->jiage);p1=p1->next;while(p1!=NULL);getch();system("cls");/*清屏*/ return (head);3.3 creat创建链表函数information *creat(void)/*函数creat,功能:创建链表,此函数带回一个指向链表头的指针*/information *head;information *p1,*p2,*p3;int i;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)goto end;elsewhile(p1->number<1000000|p1->number>=10000000) printf("输入错误!"); goto repeat1; p3=head; if(n>0) for(i=0;i<n;i+) if(p1->number!=p3->number) p3=p3->next; else printf("编号重复,请重输!n"); goto repeat1; /*当输入的编号已经存在,程序报错,返回前面重新输入*/ 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) 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)goto end;elsewhile(p1->number<1000000|p1->number>=10000000) printf("输入错误!"); goto repeat2; p3=head; if(n>0) for(i=0;i<n;i+) if(p1->number!=p3->number) p3=p3->next; else printf("编号重复,请重输!n"); goto repeat2; /*当输入的编号已经存在,程序报错,返回前面重新输入*/ 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); /*输入错误,重新输入商品价格直到正确为止*/ end: p1=head; p3=p1;p2->next=NULL;/*链表结尾*/ printf("nn输入的商品数为:%d个!n",n); getch(); system("cls");/*清屏*/ return(head);3.4 search函数information *search(information *head)/*函数search,功能:查询商品信息*/information *p1,*p2;int a,b;long c; char t100;system("cls");/*清屏*/if(head=NULL) printf("nnn没有任何商品资料,请先建立商品资料!n"); getch(); system("cls"); return(head); p2=p1=head;lp2:system("cls");/*清屏*/ printf("nnnn"); printf(" $n"); printf(" $n"); printf(" $ 1 *按商品编号查询n"); printf(" $n");printf(" $t 2 *按商品名称查询n");printf(" $n");printf(" $tt 3 *按商品类别查询ttt $n");printf(" $ttttttt $n");printf(" ttt 4 *查询需进货商品(库存小于50) $n");printf("tttttttt $");printf(" tttttt 0 *退出tt $n");printf("tttttttt $");printf("ntttt $"); printf("nnnnnn"); printf("请选择您所要的查询方式:"); scanf("%d",&a);/*选择操作*/switch(a)/*用switch语句实现功能选择*/*=*/case 1:system("cls");/*清屏*/lp3:printf("请输入所要查询商品的7位编号(按0返回选择界面):");lp10:scanf("%ld",&c);b=0;if(c=0)goto lp2;while(c<1000000|c>=10000000) printf("输入错误n"); goto lp3; while(c!=0) p1=head; while(c!=p1->number&&p1->next!=NULL) p2=p1; p1=p1->next; if(c=p1->number) printf("n商品编号t商品名称t商品类别t库存数量t商品价格n");printf("%ldtt%stt%stt%dtt%.2fnn",p1->number,p1->name,p1->leibie,p1->kucun,p1->jiage);b=1; if(b=0) printf("不存在%d该商品!n",c); printf("请输入要查询的商品的编号(按0返回选择界面):"); goto lp10;break;/*=*/case 2:system("cls");/*清屏*/lp7:printf("输入所要查询商品的名称(按0返回选择界面):");scanf("%s",&t); b=0; if(strcmp(t,"0")=0)goto lp2; while(strcmp(t,"0")!=0) p1=head; if(strcmp(t,p1->name)!=0&&p1->next!=NULL) p2=p1; p1=p1->next; if(strcmp(t,p1->name)=0) printf("n商品名称t商品编号t商品类别t库存数量t商品价格n");printf("%stt%ldtt%stt%dtt%.2fn",p1->name,p1->number,p1->leibie,p1->kucun,p1->jiage);b=1; if(b=0) printf("n不存在%s该商品!n",t); printf("n请输入要查询的商品的名称(按0返回选择界面):"); scanf("%s",&t); else goto lp7; break;/*=*/case 3:system("cls");/*清屏*/lp8:printf("输入所要查询商品的类别(按0返回选择界面):");scanf("%s",&t); b=0; if(strcmp(t,"0")=0)goto lp2; p1=head; printf("n商品类别t商品编号t商品名称t库存数量t商品价格n");do if(strcmp(t,p1->leibie)=0) printf("%stt%ldtt%stt%dtt%.2fn",p1->leibie,p1->number,p1->name,p1->kucun,p1->jiage);b+; p1=p1->next;while(p1!=NULL); if(b=0) printf("n不存在%s该类型商品!n",t); goto lp8; goto lp8;break;/*=*/case 4: system("cls");/*清屏*/ b=0; printf("商品编号t商品名称t商品类别t库存数量t商品价格n");p1=head;if(head!=NULL)doif(p1->kucun<50)printf("%ldtt%stt%stt%dtt%.2fn",p1->number,p1->name,p1->leibie,p1->kucun,p1->jiage);b+;p1=p1->next;while(p1!=NULL);printf("n需要进货的商品有以上%d种!",b);getch(); system("cls");/*清屏*/ ; break; case 0: system("cls"); return(head); default: printf("输入错误,请重试!n"); goto lp2; 3.5 add数information *add(information *head,information *newgoods)/*函数add,功能:追加商品信息*/information *p0,*p1,*p2;int i,a;p1=newgoods=(information *)malloc(LEN);/*开辟一个新单元*/system("cls");/*清屏*/repeat:printf("请输入你想添加的商品的7位商品编号(退出请按“0”):");scanf("%ld",&newgoods->number);if(newgoods->number=0) goto end2;else while(p1->number<1000000|p1->number>=10000000) printf("输入错误,请重新输入7位商品编号:"); scanf("%d",&p1->number); p1=head; if(n>0) for(i=0;i<n;i+) if(newgoods->number!=p1->number) p1=p1->next; else printf("编号重复,请重输!n"); goto repeat; printf("请输入商品名:");scanf("%s",&newgoods->name);printf("请输入商品类别:");scanf("%s",&newgoods->leibie); printf("请输入商品库存(大于0):");/*输入商品库存*/scanf("%d",&newgoods->kucun); while(newgoods->kucun<0) printf("输入错误,请重新输入商品数量");/*输入错误,重新输入商品库存直到正确为止*/ scanf("%d",&newgoods->kucun); printf("请输入商品价格(大于0):

    注意事项

    本文(C语言课程设计(论文)—商场商品管理信息系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开