收藏 分销(赏)

湖北汽车工业学院C语言优秀课程设计商品销售信息综合管理系统源代码.docx

上传人:快乐****生活 文档编号:2657874 上传时间:2024-06-03 格式:DOCX 页数:31 大小:20.33KB 下载积分:12 金币
下载 相关 举报
湖北汽车工业学院C语言优秀课程设计商品销售信息综合管理系统源代码.docx_第1页
第1页 / 共31页
湖北汽车工业学院C语言优秀课程设计商品销售信息综合管理系统源代码.docx_第2页
第2页 / 共31页


点击查看更多>>
资源描述
C语言课程设计 商品销售信息管理系统 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> struct product //定义商品数据结构 { int num; //商品编号 char productname[20]; //商品名称 float price; //商品售价 char place[30]; //商品产地 int storage; //商品库存 struct product *next; }*head,*p1,*p2; //定义主结构体数组和备用结构体数组及指针 struct time //定义时间结构体 { int year; int month; int day; }; struct sell //定义销售数据结构 { int ID; //用户代码 char customername[20]; //用户姓名 int num; //商品编号 int count; //销售数量 char date[10]; //日期 struct sell * next1; }*head1; //定义头指针head,缓冲指针p1,和尾指针p2 /*************************函数申明****************************/ void Enter_productmessage(); //导入商品信息 void Creat(); //输入销售统计 void Search_num(); //按编号查询销售历史 void Search_customername(); //按用户姓名查询购置历史 void Printf_customername(); //显示用户信息 void Search_date(); //计算时间段内销售总额 void Save_product(); //保留销售信息 void Save_customername(); //保留用户信息 void Exit(); //退出程序 /***************************主菜单******************************/ int select() { int c; printf("\t\t************欢迎使用商品销售管理程序**************\n"); printf("\t\t T1123-5班 胡 军 一分耕耘 一分收获 \n"); printf("\n--------------------------------------------------------------------------------\n"); printf("\n"); printf("\t\t********************************************\n"); printf("\t\t**********欢迎使用商品销售管理系统**********\n"); printf("\t\t** **\n"); printf("\t\t** 1:导入商品信息 **\n"); printf("\t\t** 2:输入销售统计 **\n"); printf("\t\t** 3:按编号查询销售历史 **\n"); printf("\t\t** 4: 按用户姓名查询购置历史 **\n"); printf("\t\t** 5:计算时段内各销售总额 **\n"); printf("\t\t** 6:显示用户信息 **\n"); printf("\t\t** 7:保留销售信息 **\n"); printf("\t\t** 8:保留用户信息 **\n"); printf("\t\t** 0:退出 **\n"); printf("\t\t********************************************\n"); printf("\n--------------------------------------------------------------------------------\n"); printf("\t\t请输入您选择(0~8整数): "); scanf("%d",&c); return c; } /********************************主函数***************************/ int main() { for(;;) { switch(select()) { case 1:system("cls");Enter_productmessage();break; case 2:system("cls");Creat();break; case 3:system("cls");Search_num();break; case 4:system("cls");Search_customername();break; case 5:system("cls");Search_date();break; case 6:system("cls");Printf_customername();break; case 7:system("cls");Save_product();break; case 8:system("cls");Save_customername();break; case 0:system("cls");Exit();break; default : { system("cls"); printf("\n\n\n\n\n\n"); printf("\t\t*******************************************************\n"); printf("\t\t** 输入错误!!!请重新输入您选择(0~8整数) **\n"); printf("\t\t** 请按Enter键返回!!! **\n"); printf("\t\t*******************************************************\n"); getchar(); getchar(); system("cls"); } } } return 0; } /****************************************************************/ int judgech(char *a) //判定是否为汉字 { int i,flag; for(i=0;a[i]!='\0';i++) if(a[i]>=0) { flag=0; break; } else flag=1; return flag; } int judgedate(char date[10]) //判定日期是否正当 { int i,year,month,day,s1=0; //日期格式输入正确则s1=1,不然s1=0 for(i=0;i<10;i++) if(date[i]=='\0') { s1=0; break; } if(date[4]=='-'&&date[7]=='-') { if(strlen(date)==10) { year=1000*(date[0]-48)+100*(date[1]-48)+10*(date[2]-48)+(date[3]-48);//年月日 month=10*(date[5]-48)+(date[6]-48); day=10*(date[8]-48)+(date[9]-48); } } if(i==10) { if(year%4==0&&month==2&&day>0&&day<=29) s1=1; else if(year%4!=0&&month==2&&day>0&&day<=28) s1=1; else if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day>0&&day<=31) s1=1; else if((month==4||month==6||month==9||month==11)&&day>0&&day<=30) s1=1; } return s1; } void file() //读入文件操作 { int i=0,m=0,k=1,j=1,c=1,o=1,v=1; FILE *fp; char filename[30]; printf("请输入读入文件路径:"); rewind(stdin); gets(filename); rewind(stdin); p1=p2=head=(struct product*)malloc(sizeof(struct product)); if((fp=fopen(filename,"r+"))==NULL) { printf("\t\t********************************************\n"); printf("\t\t** 导入信息文件错误!请检验文件路径!!! **\n"); printf("\t\t********************************************\n"); getchar(); system("cls"); Enter_productmessage(); } printf("********************************商品信息***********************************\n"); printf("编号(1-10整数) 名称(汉字) 价格(数字) 产地(汉字) 库存数量\n"); printf("***************************************************************************\n"); while(!feof(fp)) { p1=(struct product*)malloc(sizeof(struct product)); p2->next=p1; p1->next=NULL; p2=p1; fscanf(fp,"%d%s%f%s%d",&p2->num,p2->productname,&p2->price,p2->place,&p2->storage); while(k==1) { if(p2->num>10||p2->num<=0) { printf("\t*******************************************************\n"); printf("\t\t第%d个商品编码!请重新输入(1-10):",i+1); rewind(stdin); scanf("%d",&p2->num); k=1; } else k=0; } while(j==1){ if(judgech(p2->productname)==0) { printf("\t\t第%d个商品名称错误!请重新输入(汉字):",i+1); rewind(stdin); scanf("%s",p2->productname); j=1; } else j=0; } while(o==1){ if(p2->price<=0) { printf("\t\t第%d个商品价格错误!请重新输入价格(>0):",i+1); rewind(stdin); scanf("%f",&p2->price); o=1; } else o=0; } while(c==1){ if(judgech(p2->place)==0) { printf("\t\t第%d个商品产地格式错误!请重新输入(汉字):",i+1); rewind(stdin); scanf("%s",p2->place); c=0; } else c=0; } while(v==1){ if(p2->storage!=1000) { printf("\t*******************************************************\n"); printf("\t\t第%d个商品数量错误!请输入1000:",i+1); rewind(stdin); scanf("%d",&p2->storage); v=1; } else v=0; } printf("\t%-12d%-15s %-15.2f%-15s%-12d\n",p2->num,p2->productname,p2->price,p2->place,p2->storage); } fclose(fp); } void comp() { FILE *fp; int i=0,n,k=1,m=1,c=1,l=1,d=1; char filename[20],a; printf("\t请输入商品信息保留路径:"); rewind(stdin); gets(filename); p1=p2=head=(struct product*)malloc(sizeof(struct product)); if((fp=fopen(filename,"a+"))==NULL) { printf("\t\t********************************************\n"); printf("\t\t** 不能打开文件!请检验文件路径!!! **\n"); printf("\t\t********************************************\n"); getchar(); system("cls"); Enter_productmessage(); } printf("\n\n\n"); printf("\t\t********************************************\n"); printf("\t\t** 若输入路径和从文件导入商品信息路径相同!**\n"); printf("\t\t** 并已导入十个商品信息,请不要再导入!!! **\n"); printf("\t\t** 注意商品编号不要和已导入编码反复!!! **\n"); printf("\t\t********************************************\n"); printf("\n\n\n"); getchar(); system("cls"); printf("\t已从文件导入个数和要输入个数和不超出十!!!\n\n"); printf("\t请输入要导入销售统计个数:"); scanf("%d",&n); if(n>0) { do{ p1=(struct product*)malloc(sizeof(struct product)); p2->next=p1; p1->next=NULL; p2=p1; printf("***********************************商品信息*****************************\n"); printf(" 编号(整数) 名称(汉字) 价格(数字) 产地(汉字) 库存数量\n"); scanf("%d%s%f%s%d",&p2->num,p2->productname,&p2->price,p2->place,&p2->storage); while(k==1) { if(p2->num>10||p2->num<=0) { printf("\t*******************************************************\n"); printf("\t\t 商品编码!请重新输入(1-10):"); rewind(stdin); scanf("%d",&p2->num); k=1; } else k=0; } while(m==1){ if(judgech(p2->productname)==0) { printf("\t\t商品名称错误!请重新输入(汉字):"); rewind(stdin); scanf("%s",p2->productname); m=1; } else m=0; } while(l==1){ if(p2->price<=0) { printf("\t\t商品价格错误!请重新输入价格(>0):"); rewind(stdin); scanf("%f",&p2->price); l=1; } else l=0; } while(c==1){ if(judgech(p2->place)==0) { printf("\t\t商品产地格式错误!请重新输入(汉字):"); rewind(stdin); scanf("%s",p2->place); c=1; } else c=0; } while(d==1){ if(p2->storage!=1000) { printf("\t*******************************************************\n"); printf("\t\t 商品数量错误!请输入1000:"); rewind(stdin); scanf("%d",&p2->storage); d=1; } else d=0; } p2=head->next; fprintf(fp,"\n%-6d%-6s%-6.2f%-6s%-6d\n",p2->num,p2->productname,p2->price,p2->place,p2->storage); printf("\n%-6d%-6s%-6.2f%-6s%-6d\n",p2->num,p2->productname,p2->price,p2->place,p2->storage); printf("\t\t是否继续输入信息(Y/N)?\n"); getchar(); a=getchar(); }while(a=='Y'||a=='y'); } fclose(fp); //关闭文件夹 if(n==0) { printf("\t\t不从键盘输入入信息!!!"); getchar(); getchar(); system("cls"); } fclose(fp); //关闭文件夹 } void Enter_productmessage() //导入销售信息 { int a; printf("\t************************************************************\n"); printf("\t** 请输入10种产品信息--编号、名称、价格、产地、数量: **\n"); printf("\t** 1:经过文件导入(推荐)! **\n"); printf("\t** 2: 经过键盘输入! **\n"); printf("\t************************************************************\n"); printf("\t 请输入您选择(1或2): "); scanf("%d",&a); getchar(); system("cls"); if(a!=1&&a!=2) { printf("\t\t输入错误!!!请重新输入您选择(1或2):"); scanf("%d",&a); } switch(a) { case 1:system("cls"); file();break; case 2:system("cls"); comp();break; } printf("*************************************************************************\n"); printf("\t*******************************************************\n"); printf("\t** 数据类信息操作成功!请按Enter键继续!!! **\n"); printf("\t*******************************************************\n"); getchar(); getchar(); system("cls"); } void Creat() //输入销售信息函数 { int i=0,k=1,code; char a; struct sell *p3,*p4; srand(0); code=1+rand()%90; p3=p4=head1=(struct sell *)malloc(sizeof(struct sell)); p3=head1; printf("\t\t请输入销售统计:\n"); //提醒输入统计 printf("--------------------------------------------------------------------------------\n"); do{ p3=(struct sell *)malloc(sizeof(struct sell)); p4->next1=p3; p3->next1=NULL; p4=p3; printf(" 用户姓名(汉字) 商品编号(1-10整数) 销售数量(数字) 销售日期(YYYY-MM-DD)\n"); printf("--------------------------------------------------------------------------------\n"); scanf("%s%d%d%s",p4->customername,&p4->num,&p4->count,p4->date); //输入统计 do{ if(judgech(p4->customername)==0) { printf("\t*******************************************************\n"); printf("\t\t用户名字输入错!请重新输入用户名字(汉字):"); scanf("%s",p4->customername); rewind(stdin); k=1; } else k=0; }while(k==1); do{ if(p4->num>10||p4->num<=0) { printf("\t*******************************************************\n"); printf("\t\t 商品编码!请重新输入(1-10):"); scanf("%d",&p4->num); rewind(stdin); k=1; } else k=0; }while(k==1); do{ if(p4->count>1000||p4->count<0) { printf("\t*******************************************************\n"); printf("\t 销售商品数量错误!请输入(0-1000):"); scanf("%d",&p4->count); rewind(stdin); k=1; } else k=0; }while(k==1); do{ if(judgedate(p4->date)!=1) { printf("\t*******************************************************\n"); printf("\t 输入日期不正当!请重新输入(YYYY-MM-DD):"); scanf("%s",p4->date); rewind(stdin); k=1; } else k=0; }while(k==1); p4->ID=code+i; i++; printf("\n\n"); printf("是否继续输入销售统计(Y/N)?\n"); getchar(); a=getchar(); }while(a=='Y'||a=='y'); system("cls"); printf("\n\n\n\n"); printf("\t*******************************************************\n"); printf("\t** 销售信息输入成功!按Enter键继续!!! **\n"); printf("\t*******************************************************\n"); getchar(); getchar(); system("cls"); return; } void Search_num() //依据产品编号查询产品销售历史 { int num,flag=1,i=0; struct sell *p3; struct product *p; printf("\t\t请输入商品编号(1-10整数):"); scanf("%d",&num); getchar(); system("cls"); printf(" 用户姓名 商品编号 销售数量 销售总额 销售日期\n"); printf(" ------------------------------------------------------------------------------\n"); p3=head1; p=head; while(p3!=NULL) { if(p3->num==num) { p=head; while(p!=NULL) { if(p->num==num) break; else p=p->next; } printf(" %-15s%-13d%-13d%-13.2f%-10s\n",p3->customername,p3->num,p3->count,p->price*p3->count,p3->date); flag=0; } p3=p3->next1; } if(flag==1) { printf("\t\t*******************************************************\n"); printf("\t\t** 无此编码商品销售统计!请查实后再输入!!! **\n"); printf("\t\t** 请按Enter键返回!!! **\n"); printf("\t\t*******************************************************\n"); getchar(); system("cls"); return; } printf("-------------------------------------------------------------------------------\n"); printf("\t\t********************************************\n"); printf("\t\t** 销售统计查询完成!请按Enter键返回!!! **\n"); printf("\t\t********************************************\n"); getchar(); getchar(); system("cls"); return; } void Search_customername() //依据用户姓名查询购置历史 { int k=1,m=0; float a=0; char name[20],b; struct product *p; struct sell *p3; p3=head1; p=head; prin
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服