湖北汽车工业学院C语言课程设计商品销售信息管理系统源代码Word格式.docx
《湖北汽车工业学院C语言课程设计商品销售信息管理系统源代码Word格式.docx》由会员分享,可在线阅读,更多相关《湖北汽车工业学院C语言课程设计商品销售信息管理系统源代码Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
//日期
structsell*next1;
}*head1;
//定义头指针head,缓冲指针p1,以及尾指针p2
/*************************函数申明****************************/
voidEnter_productmessage();
//导入商品信息
voidCreat();
//输入销售记录
voidSearch_num();
//按编号查询销售历史
voidSearch_customername();
//按顾客姓名查询购买历史
voidPrintf_customername();
//显示顾客信息
voidSearch_date();
//计算时间段内销售总额
voidSave_product();
//保存销售信息
voidSave_customername();
//保存顾客信息
voidExit();
//退出程序
/***************************主菜单******************************/
intselect()
intc;
printf("
\t\t************欢迎使用商品销售管理程序**************\n"
);
printf("
\t\tT1123-5班胡军一分耕耘一分收获\n"
\n--------------------------------------------------------------------------------\n"
\n"
\t\t********************************************\n"
\t\t**********欢迎使用商品销售管理系统**********\n"
\t\t****\n"
\t\t**1:
导入商品信息**\n"
\t\t**2:
输入销售记录**\n"
\t\t**3:
按编号查询销售历史**\n"
\t\t**4:
按顾客姓名查询购买历史**\n"
\t\t**5:
计算时段内各销售总额**\n"
\t\t**6:
显示顾客信息**\n"
\t\t**7:
保存销售信息**\n"
\t\t**8:
保存顾客信息**\n"
\t\t**0:
退出**\n"
\t\t请输入您的选择(0~8的整数):
"
scanf("
%d"
&
c);
returnc;
}
/********************************主函数***************************/
intmain()
for(;
;
)
{
switch(select())
{
case1:
system("
cls"
Enter_productmessage();
break;
case2:
Creat();
case3:
Search_num();
case4:
Search_customername();
case5:
Search_date();
case6:
Printf_customername();
case7:
Save_product();
case8:
Save_customername();
case0:
Exit();
default:
{system("
printf("
\n\n\n\n\n\n"
printf("
\t\t*******************************************************\n"
\t\t**输入错误!
!
请重新输入您的选择(0~8的整数)**\n"
\t\t**请按Enter键返回!
**\n"
getchar();
getchar();
system("
}
}
}
return0;
/****************************************************************/
intjudgech(char*a)//判断是否为汉字
inti,flag;
for(i=0;
a[i]!
='
\0'
i++)
if(a[i]>
=0)
flag=0;
break;
else
flag=1;
returnflag;
intjudgedate(chardate[10])//判断日期是否合法
inti,year,month,day,s1=0;
//日期格式输入正确则s1=1,否则s1=0
i<
10;
if(date[i]=='
s1=0;
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;
elseif(year%4!
=0&
=28)s1=1;
elseif((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&
=31)s1=1;
elseif((month==4||month==6||month==9||month==11)&
=30)s1=1;
returns1;
voidfile()//读入文件操作
inti=0,m=0,k=1,j=1,c=1,o=1,v=1;
FILE*fp;
charfilename[30];
请输入读入文件路径:
"
rewind(stdin);
gets(filename);
p1=p2=head=(structproduct*)malloc(sizeof(structproduct));
if((fp=fopen(filename,"
r+"
))==NULL)
{
printf("
printf("
\t\t**导入信息文件错误!
请检查文件路径!
**\n"
getchar();
system("
Enter_productmessage();
********************************商品信息***********************************\n"
编号(1-10的整数)名称(汉字)价格(数字)产地(汉字)库存数量\n"
***************************************************************************\n"
while(!
feof(fp))
{
p1=(structproduct*)malloc(sizeof(structproduct));
p2->
next=p1;
p1->
next=NULL;
p2=p1;
fscanf(fp,"
%d%s%f%s%d"
p2->
num,p2->
productname,&
price,p2->
place,&
storage);
while(k==1)
if(p2->
num>
10||p2->
num<
{
printf("
\t*******************************************************\n"
printf("
\t\t第%d个商品编码!
请重新输入(1-10):
i+1);
rewind(stdin);
scanf("
num);
k=1;
elsek=0;
while(j==1){
if(judgech(p2->
productname)==0)
{
\t\t第%d个商品名称错误!
请重新输入(汉字):
rewind(stdin);
scanf("
%s"
p2->
productname);
j=1;
elsej=0;
while(o==1){
price<
printf("
\t\t第%d个商品价格错误!
请重新输入价格(>
0):
scanf("
%f"
price);
o=1;
}
elseo=0;
while(c==1){
place)==0)
\t\t第%d个商品产地格式错误!
place);
c=0;
}
elsec=0;
while(v==1){
storage!
=1000)
{
\t\t第%d个商品数量错误!
请输入1000:
rewind(stdin);
v=1;
elsev=0;
\t%-12d%-15s%-15.2f%-15s%-12d\n"
productname,p2->
place,p2->
fclose(fp);
}
voidcomp()
{
FILE*fp;
inti=0,n,k=1,m=1,c=1,l=1,d=1;
charfilename[20],a;
\t请输入商品信息保存路径:
a+"
{
printf("
printf("
\t\t**不能打开文件!
**\n"
getchar();
system("
Enter_productmessage();
}
\n\n\n"
\t\t**若输入路径与从文件导入商品信息路径相同!
**\n"
\t\t**并已导入十个商品信息,请不要再导入!
**\n"
\t\t**注意商品编号不要和已导入的编码重复!
**\n"
getchar();
system("
\t已从文件导入的个数和要输入的个数和不超过十!
\n\n"
\t请输入要导入的销售记录个数:
n);
if(n>
0)
do{
p2->
p2=p1;
***********************************商品信息*****************************\n"
编号(整数)名称(汉字)价格(数字)产地(汉字)库存数量\n"
scanf("
\t\t商品编码!
while(m==1){
\t\t商品名称错误!
m=1;
elsem=0;
while(l==1){
\t\t商品价格错误!
l=1;
elsel=0;
\t\t商品产地格式错误!
c=1;
while(d==1){
\t\t商品数量错误!
d=1;
elsed=0;
p2=head->
next;
fprintf(fp,"
\n%-6d%-6s%-6.2f%-6s%-6d\n"
\t\t是否继续输入信息(Y/N)?
a=getchar();
}while(a=='
Y'
||a=='
y'
//关闭文件夹
if(n==0)
\t\t不从键盘输入入信息!
getchar();
fclose(fp);
}