当前位置:首页 » 编程语言 » 产品销售统计c语言源代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

产品销售统计c语言源代码

发布时间: 2022-11-03 21:07:15

‘壹’ c语言商品管理系统源代码,加注释

#include <stdio.h>
#include <conio.h>
#include <string.h>
#define SIZE 300

typedef struct
{
char name[30];
int num;
char shang[10];
float price;
}record;

void DataInput(record *com, int *nptr);
int DataRead(record *com,int *nptr) ;
void DataStorage(record *com, int n); /*信息保存到文件*/
void DataFind( );
void DataDisPlay( );
void DataAdd( );
void DataDel( );
void DataStatistic( );

int main( )
{
record shangpin[SIZE];
int number=20; /*设商品数*/
char fn;
printf("\t~~~~~~商品管理系统~~~~~~");
while(1)
{
printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/
printf("\t\t2.商品信息显示\n");
printf("\t\t3.商品信息查找\n");
printf("\t\t4.商品信息添加\n");
printf("\t\t5.商品信息删除\n");
printf("\t\t6.商品信息统计\n");
printf("\t\t0.退出系统");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-6): ");
fflush(stdin);
scanf("%c",&fn);
puts("\n");

switch(fn) /*切换到不同功能*/
{
case '1':
DataInput(shangpin, &number );
break; /*录入信息*/
case '2':DataDisPlay();
break; /*信息显示*/
case '3':
DataFind();
break; /*信息查找*/
case '4':
DataAdd( );
break; /*增加*/
case '5':
DataDel( );
break; /*删除*/
case '6':
DataStatistic();
break; /*信息统计*/
case '0':
return 0;

default:puts("\t\t没有这个项!返回主菜单!");
break;
}

printf("\n\t\t完毕!按任意键继续");
getch( );

puts("\n");
}
}

void DataInput(record *com, int *nptr) /*商品信息录入*/
{
int i = 0;
int n ; /*录入的总数*/
char YesOrNo; /*判断是否保存*/
char shangming[30]; /*商名*/
int haoma; /*商品号*/
char shangjia[10]; /*单价*/
float danjia;
printf("\t\t请输入商品个数:");
scanf("%d",&n);
*nptr = n; /*nptr返回商品个数*/
printf("\t\t现在开始录入这%d个商品信息:\n\n",n);
while(i<n)
{
printf("请输入商品的商品名:",i+1);
scanf("%s",&shangming);
printf("请输入商品的商品号:",i+1);
scanf("%d",&haoma);
printf("请输入商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("请输入商品的单价 :",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的单价才录入*/
{
strcpy(com[i].name,shangming);
com[i].num = haoma;
strcpy(com[i].shang,shangjia);
com[i].price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值!!!\n\n");
} /*结束while*/

printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("输入了不正确的选项\n");
return;

} /*结束函数*/

void DataFind( ) /*查找*/
{

void OnNumber(record *com,int n ); /*按商品号排序*/
int key; /*key为要查找的关键值*/
int low = 0; /*下限*/
int high ; /*上限*/
int mid ; /*中间值*/
char ans; /*选项*/
record com[SIZE];
int n;

if(DataRead(com,&n)==1) /*从文件中读取信息*/
{
OnNumber(com,n); /*先按商品号排序*/
high = n;
do
{
printf("\n\n\t\t请输入你要查找的商品号:");
scanf("%d",&key);

low = 0;high = n;
while (low <=high)
{
mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )
{
printf("\n\t\t你要找的是第%d个商品\n",mid + 1);
printf("\t\t结果如下:\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,
com[mid].price);

break; /*如果找到则退出循环*/
}

if (key > com[mid].num ) low = mid + 1;
else high = mid - 1;
}

if (low > high)
printf("\t\t,没有找到这个价格!\n");
printf("\n\t\t还要继续查询吗(Y/N)?");
ans = getch( );
}
while (ans =='Y'||ans == 'y'); /*结束do....while*/
}
}

void DataStorage(record *com, int n) /*录入保存文件*/
{
int i;
FILE *comPtr;
char FileName[20];
printf("请输入您要保存的文件名:");
scanf("%s",FileName);
printf("正在将商品信息保存到文件,请稍候……\n");
if((comPtr=fopen(FileName,"w"))==NULL)
printf("没有该文件\n");
else
for(i=0 ; i<n ; i++)
fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);
fclose(comPtr);
}

int DataRead(record *com,int *nptr) /*读取文件*/
{
int i=0;
char datafile[20];
FILE *comPtr;

*nptr = 0;
printf("请输入文件名:");
scanf("%s",datafile);
if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/
{
printf("没有该文件,请重新输入!\n");
return 0;
}
else
{
printf("正在读取商品单价,请稍候……\n");
while (!feof(comPtr))
{
fscanf(comPtr,"%s%d%s%f",&com[i].name,&com[i].num,&com[i].shang,&com[i].price);
i++;
}
*nptr = i;
printf("\n");

fclose(comPtr);

return 1;
}

}

void DataDisPlay()
{
void OnPrice(record *com,int n ); /*按单价*/
void OnNumber(record *com,int n ); /*按商品号*/
int N;
int i;
record com[300];
char YesNo; /*是否按顺序显示*/
char tp;

if(DataRead(com,&N)==1) /*从文件读取数据*/
{

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0;i<N;i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按顺序显示吗?(Y/N)?");
fflush(stdin);
scanf("%c",&YesNo);
if(YesNo=='y'||YesNo=='Y')
{
printf("\t请输入排序方式:\n");
printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");
fflush(stdin);
scanf("%c",&tp);
if(tp=='1')
OnPrice(com,N);
else if(tp =='2')
OnNumber(com,N);
else
printf("\t输入了不正确项!\n");
}
}
} /*结束显示成绩*/

void OnPrice(record *com,int n ) /*按单价顺序*/
{ int i,j;
record temp;
printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; j<n-1 ; j++) /*冒泡排序*/
for(i=0 ; i<n-j-1 ; i++)
if(com[i].price>com[i+1].price)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void OnNumber(record *com,int n ) /*按序号顺序*/
{
int i,j;
record temp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; j<n-1 ; j++)
for(i=0 ; i<n-j-1 ; i++)
if(com[i].num>com[i+1].num)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void DataAdd( ) /*增加*/
{
int i=0,n,m; /*商品名称*/
char shangming[30];
int haoma; /*生产商*/
char shangjia[10];
float danjia;
char YesOrNo;
record com[SIZE];

printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t信息读取完毕!\n\n");

printf("\t\t请输入要添加的商品总数:");
scanf("%d",&m);

printf("\t\t现在开始录入这%d个商品信息:\n\n",m);

while(i<m)
{

printf("第%d个商品的商品名:",i+1);
scanf("%s",&shangming);
printf("第%d个商品的商品号:",i+1);
scanf("%d",&haoma);
printf("第%d个商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("第%d个商品的单价:",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的单价才录入*/
{
strcpy(com[i+n].name,shangming);
com[i+n].num = haoma;
strcpy(com[i+n].shang,shangjia);
com[i+n].price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值,请重新输入!\n\n");

}

printf("要保存您刚才录入的数据吗(Y/N)?");
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n+m);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("输入了不正确项,返回上一级\n");
return;
}
}

void DataDel( )//删除
{
void OnNumber(record *com,int n );
record com[SIZE];
int i; /*总记录数*/
int n; /*要删除的记录号*/
int m;

printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t原始数据如下:\n\n");
OnNumber(com,n );

printf("请输入你要删除的记录的序号");
scanf("%d",&m);
if(m>=1 && m<=n)
{
for(i=m-1;i<n-1;i++)
com [i] = com[i+1];
DataStorage(com,n-1);
}
}
}

void DataStatistic( ) /*统计信息*/
{
int high=0,low=200,ave=0;
int n,i,sum=0;
int g,l;
record com[SIZE];
printf("读取数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("商品总数为%d\n\n",n);
for(i=0;i<n;i++)
{
if(com[i].price>high)
{
high = com[i].price;
g=i;
}
if(com[i].price<low)
{
low = com[i].price;
l=i;
}
sum += com[i].price;
}
ave=sum/n;
printf("\t\t最高\t最低\t平均\n"); /*计算值*/
printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");

printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);
printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*结束统计*/
}

‘贰’ C语言设计商品管理系统,可以实现商品的录入,查询,求源代码

#include <stdio.h>
#include <conio.h>
#include <string.h>
#define SIZE 300

typedef struct
{
char name[30];
int num;
char shang[10];
float price;
}record;

void DataInput(record *com, int *nptr);
int DataRead(record *com,int *nptr) ;
void DataStorage(record *com, int n); /*信息保存到文件*/
void DataFind( );
void DataDisPlay( );
void DataAdd( );
void DataDel( );
void DataStatistic( );

int main( )
{
record shangpin[SIZE];
int number=20; /*设商品数*/
char fn;
printf("\t~~~~~~商品管理系统~~~~~~");
while(1)
{
printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/
printf("\t\t2.商品信息显示\n");
printf("\t\t3.商品信息查找\n");
printf("\t\t4.商品信息添加\n");
printf("\t\t5.商品信息删除\n");
printf("\t\t6.商品信息统计\n");
printf("\t\t0.退出系统");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-6): ");
fflush(stdin);
scanf("%c",&fn);
puts("\n");

switch(fn) /*切换到不同功能*/
{
case '1':
DataInput(shangpin, &number );
break; /*录入信息*/
case '2':DataDisPlay();
break; /*信息显示*/
case '3':
DataFind();
break; /*信息查找*/
case '4':
DataAdd( );
break; /*增加*/
case '5':
DataDel( );
break; /*删除*/
case '6':
DataStatistic();
break; /*信息统计*/
case '0':
return 0;

default:puts("\t\t没有这个项!返回主菜单!");
break;
}

printf("\n\t\t完毕!按任意键继续");
getch( );

puts("\n");
}
}

void DataInput(record *com, int *nptr) /*商品信息录入*/
{
int i = 0;
int n ; /*录入的总数*/
char YesOrNo; /*判断是否保存*/
char shangming[30]; /*商名*/
int haoma; /*商品号*/
char shangjia[10]; /*单价*/
float danjia;
printf("\t\t请输入商品个数:");
scanf("%d",&n);
*nptr = n; /*nptr返回商品个数*/
printf("\t\t现在开始录入这%d个商品信息:\n\n",n);
while(i<n)
{
printf("请输入商品的商品名:",i+1);
scanf("%s",&shangming);
printf("请输入商品的商品号:",i+1);
scanf("%d",&haoma);
printf("请输入商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("请输入商品的单价 :",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的单价才录入*/
{
strcpy(com[i].name,shangming);
com[i].num = haoma;
strcpy(com[i].shang,shangjia);
com[i].price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值!!!\n\n");
} /*结束while*/

printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("输入了不正确的选项\n");
return;

} /*结束函数*/

void DataFind( ) /*查找*/
{

void OnNumber(record *com,int n ); /*按商品号排序*/
int key; /*key为要查找的关键值*/
int low = 0; /*下限*/
int high ; /*上限*/
int mid ; /*中间值*/
char ans; /*选项*/
record com[SIZE];
int n;

if(DataRead(com,&n)==1) /*从文件中读取信息*/
{
OnNumber(com,n); /*先按商品号排序*/
high = n;
do
{
printf("\n\n\t\t请输入你要查找的商品号:");
scanf("%d",&key);

low = 0;high = n;
while (low <=high)
{
mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )
{
printf("\n\t\t你要找的是第%d个商品\n",mid + 1);
printf("\t\t结果如下:\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,
com[mid].price);

break; /*如果找到则退出循环*/
}

if (key > com[mid].num ) low = mid + 1;
else high = mid - 1;
}

if (low > high)
printf("\t\t,没有找到这个价格!\n");
printf("\n\t\t还要继续查询吗(Y/N)?");
ans = getch( );
}
while (ans =='Y'||ans == 'y'); /*结束do....while*/
}
}

void DataStorage(record *com, int n) /*录入保存文件*/
{
int i;
FILE *comPtr;
char FileName[20];
printf("请输入您要保存的文件名:");
scanf("%s",FileName);
printf("正在将商品信息保存到文件,请稍候……\n");
if((comPtr=fopen(FileName,"w"))==NULL)
printf("没有该文件\n");
else
for(i=0 ; i<n ; i++)
fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);
fclose(comPtr);
}

int DataRead(record *com,int *nptr) /*读取文件*/
{
int i=0;
char datafile[20];
FILE *comPtr;

*nptr = 0;
printf("请输入文件名:");
scanf("%s",datafile);
if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/
{
printf("没有该文件,请重新输入!\n");
return 0;
}
else
{
printf("正在读取商品单价,请稍候……\n");
while (!feof(comPtr))
{
fscanf(comPtr,"%s%d%s%f",&com[i].name,&com[i].num,&com[i].shang,&com[i].price);
i++;
}
*nptr = i;
printf("\n");

fclose(comPtr);

return 1;
}

}

void DataDisPlay()
{
void OnPrice(record *com,int n ); /*按单价*/
void OnNumber(record *com,int n ); /*按商品号*/
int N;
int i;
record com[300];
char YesNo; /*是否按顺序显示*/
char tp;

if(DataRead(com,&N)==1) /*从文件读取数据*/
{

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0;i<N;i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按顺序显示吗?(Y/N)?");
fflush(stdin);
scanf("%c",&YesNo);
if(YesNo=='y'||YesNo=='Y')
{
printf("\t请输入排序方式:\n");
printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");
fflush(stdin);
scanf("%c",&tp);
if(tp=='1')
OnPrice(com,N);
else if(tp =='2')
OnNumber(com,N);
else
printf("\t输入了不正确项!\n");
}
}
} /*结束显示成绩*/

void OnPrice(record *com,int n ) /*按单价顺序*/
{ int i,j;
record temp;
printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; j<n-1 ; j++) /*冒泡排序*/
for(i=0 ; i<n-j-1 ; i++)
if(com[i].price>com[i+1].price)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void OnNumber(record *com,int n ) /*按序号顺序*/
{
int i,j;
record temp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; j<n-1 ; j++)
for(i=0 ; i<n-j-1 ; i++)
if(com[i].num>com[i+1].num)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void DataAdd( ) /*增加*/
{
int i=0,n,m; /*商品名称*/
char shangming[30];
int haoma; /*生产商*/
char shangjia[10];
float danjia;
char YesOrNo;
record com[SIZE];

printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t信息读取完毕!\n\n");

printf("\t\t请输入要添加的商品总数:");
scanf("%d",&m);

printf("\t\t现在开始录入这%d个商品信息:\n\n",m);

while(i<m)
{

printf("第%d个商品的商品名:",i+1);
scanf("%s",&shangming);
printf("第%d个商品的商品号:",i+1);
scanf("%d",&haoma);
printf("第%d个商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("第%d个商品的单价:",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的单价才录入*/
{
strcpy(com[i+n].name,shangming);
com[i+n].num = haoma;
strcpy(com[i+n].shang,shangjia);
com[i+n].price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值,请重新输入!\n\n");

}

printf("要保存您刚才录入的数据吗(Y/N)?");
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n+m);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("输入了不正确项,返回上一级\n");
return;
}
}

void DataDel( )//删除
{
void OnNumber(record *com,int n );
record com[SIZE];
int i; /*总记录数*/
int n; /*要删除的记录号*/
int m;

printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t原始数据如下:\n\n");
OnNumber(com,n );

printf("请输入你要删除的记录的序号");
scanf("%d",&m);
if(m>=1 && m<=n)
{
for(i=m-1;i<n-1;i++)
com [i] = com[i+1];
DataStorage(com,n-1);
}
}
}

void DataStatistic( ) /*统计信息*/
{
int high=0,low=200,ave=0;
int n,i,sum=0;
int g,l;
record com[SIZE];
printf("读取数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("商品总数为%d\n\n",n);
for(i=0;i<n;i++)
{
if(com[i].price>high)
{
high = com[i].price;
g=i;
}
if(com[i].price<low)
{
low = com[i].price;
l=i;
}
sum += com[i].price;
}
ave=sum/n;
printf("\t\t最高\t最低\t平均\n"); /*计算值*/
printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");

printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);
printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*结束统计*/
}

‘叁’ 求一个C语言课程设计题的源程序代码,题目是:商品进销存管理程序。

#include<stdio.h>
#include <string.h>
#define NULL 0
#define LEN sizeof(struct student)
struct date
{ int year;
int month;
int day;
};
struct xueke
{
int pingshi;
int shiyan;
int kaoshi;
float zchji;
};
struct student
{
int num;
char name[10];
char sex;
struct date birthday;
struct xueke xk[2];
struct student *next; /*指向下一个结构体数据类型*/
};
typedef struct student score; /*用score来代替类型struct student*/
int n,k; /*n.k为全局变量,n表示结点个数,k表示人数*/
score *r=NULL; /*定义一个全局变量指针*/
score *stu;
/***************************************菜单***********/
int caidan(k)
{
int i;
printf("\n\n\n\t\t\t\t考试成绩管理系统\n");
printf("\t\t\t作者:薛文波、魏文清、姚志浩\n");
for(i=1;i<79;i++)
printf("*");
printf("\n");
printf("1.输入学生资料\t\t2.输出学生资料\t\t3.统计学生资料\n");
printf("4.删除学生资料\t\t5.查询学生资料\t\t6.排序学生资料\n");
printf("7.插入学生资料\t\t8.更新学生资料\t\t9.保存学生资料\n");
printf("0.退出!\n");
for(i=1;i<79;i++)
printf("*");
printf("\n");
printf("请输入你所要操作的选项:");
scanf("%d",&k);
printf("\n");
getchar();
return(k);
}
/**************************************************/
save(score *head)
{
score *q=head;
FILE *fp; /*调用fopen()函数打开磁盘文件*/
char wjlj[90];
printf("请输入文件的路经:");
scanf("%s",wjlj);
if((fp=fopen(wjlj,"w"))==NULL) /*为读、写建立一个新的二进制文件 */
{
printf("文件打开失败!\n");
return(0);
}
fprintf(fp,"*****************************************************************************\n");
fprintf(fp,"|学号|姓名|性别|生 日 |");
fprintf(fp,"C(平时.实验.考试.综合)|");
fprintf(fp,"高数(平时.实验.考试.综合)\n");
fprintf(fp,"*****************************************************************************\n");
while(q!=NULL)
{
fprintf(fp,"|%4d|%4s|%4c|%4d-%2d-%2d|",q->num,q->name,q->sex,q->birthday.year,q->birthday.month,q->birthday.day);
fprintf(fp,"%5d|%5d|%5d|%.1f|",q->xk[0].pingshi,q->xk[0].shiyan,q->xk[0].kaoshi,q->xk[0].zchji);
fprintf(fp,"%5d|%5d|%5d|%.1f\n",q->xk[1].pingshi,q->xk[1].shiyan,q->xk[1].kaoshi,q->xk[1].zchji);
q=q->next;
}
fclose(fp); /*关闭文件指针fP指向的文件*/
printf("文件已保存\n");
return(0);
}
/*******************************************输入模块*******/
score *creat(void)
{
score *head,*p1,*p2; /*定义一个头指针和两个工作点*/
int i;
head=NULL;
n=0;
p1=(struct student *)malloc(LEN); /*用P1开辟一个新单元*/
printf("1.请输入学生资料(输0退出):\n");
printf("a.请输入学生学号(学号应大于0):");
scanf("%d",&p1->num);
while(p1->num<0)
{
printf("输入错误,请重新输入:"); /* 学号小于零报错*/
scanf("%d",&p1->num);
}
while(p1->num!=0)
{ printf("b.请输入学生的姓名:");
scanf("%s",p1->name);
printf("请输入学生的性别(M&&F):");
scanf(" %c",&p1->sex);
while(p1->sex!='M'&&p1->sex!='F') /*判断输入性别时的字母是否为M或F*/
{
printf("输入错误,请重新输入学生的性别:");
scanf(" %c",&p1->sex);
}
printf("c.请输入学生的生日(年.月.日):");
scanf(" %d.%d.%d",&p1->birthday.year,&p1->birthday.month,&p1->birthday.day);
printf("d.请输入学生的成绩!\n");
printf("1.请输入 C 成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&p1->xk[0].pingshi,&p1->xk[0].shiyan,&p1->xk[0].kaoshi);
p1->xk[0].zchji=p1->xk[0].pingshi*0.1+p1->xk[0].shiyan*0.2+p1->xk[0].kaoshi*0.7;
printf("2.请输入高数成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&p1->xk[1].pingshi,&p1->xk[1].shiyan,&p1->xk[1].kaoshi);
p1->xk[1].zchji=p1->xk[1].pingshi*0.1+p1->xk[1].shiyan*0.2+p1->xk[1].kaoshi*0.7;
n=n+1; /*结点个数加一*/
if(n==1) head=p2=p1; /*若为首结点,则头指针指向本结点*/
else p2->next=p1;
p2=p1; /*若不是首结点 则把本结点链接到尾部*/
p1=(struct student *)malloc(LEN);
printf("********************************\n");
printf("1.请输入学生资料(输0退出):\n");
printf("a.请输入学生的学号(学号应大于0):");
scanf("%d",&p1->num);
while(p1->num<0) /*判断输入的学号是否小于0*/
{
printf("输入错误,输入错误请重新输入学号:");
scanf("%d",&p1->num);
}
}
p2->next=NULL; /* 最后结点不指向任何地址*/
free(p1); /*释放结点占用空间*/
return(head);
}
/*****************************************输出模块********/
void print(score *head)
{

score *q=head;
printf("\n输出%d个学生的资料:\n",n);
printf("*****************************************************************************\n");
printf("|学号|姓名|性别|生 日 |");
printf("C(平时.实验.考试.综合)|");
printf("高数(平时.实验.考试.综合)\n");
printf("*****************************************************************************\n");
if(head==NULL)
{
printf("\n没有这个学生的资料!\n");
return;
}
while(q!=NULL)
{
printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q->num,q->name,q->sex,q->birthday.year,q->birthday.month,q->birthday.day);
printf("%5d|%5d|%5d|%.1f|",q->xk[0].pingshi,q->xk[0].shiyan,q->xk[0].kaoshi,q->xk[0].zchji);
printf("%5d|%5d|%5d|%.1f \n",q->xk[1].pingshi,q->xk[1].shiyan,q->xk[1].kaoshi,q->xk[1].zchji);
q=q->next; /*q指针依次向下扫描*/
}
printf("\n***************************************************************************\n");
}
/*********************************************统计模块*****/
score *tongji(score *head)
{
score *q=head,*max,*min;
int i,k1[2]={0,0},k2[2]={0,0},k3[2]={0,0}; /*将人数统计值的初始值赋为0*/
float czong=0,gzong=0,caver,gaver;
q=head; /*工作点首先指向头指针*/
max=q;
min=q;
while(q!=NULL)
{
czong+=q->xk[0].zchji; /*P1指向学生总成绩*/
gzong+=q->xk[1].zchji;
for(i=0;i<2;i++)
{
if(q->xk[i].zchji>max->xk[i].zchji)
max=q; /*将最大值的地址赋给P1*/
if(q->xk[i].zchji<min->xk[i].zchji)
min=q;
if(q->xk[i].zchji>=80) k1[i]++; /*k1[i]++为人数的统计*/
else if(q->xk[i].zchji>=60) k2[i]++;
else k3[i]++; /*分段成绩的人数统计*/
}
q=q->next;
}
caver=czong/n; /*计算C的平均成绩*/
gaver=gzong/n; /*计算math平均成绩*/
printf("C 语言成绩的总分为:%.2f C 语言成绩的平均分为:%.2f\n",czong,caver);
printf("C 语言成绩的最高分为:%.2f C 语言成绩的最低分为:%.2f\n",max->xk[0].zchji,min->xk[0].zchji);
printf("C 语言成绩优秀的人数为:%d\n",k1[0]);
printf("C 语言成绩良好的成绩为:%d\n",k2[0]);
printf("C 语言成绩及格的人数为:%d\n",k1[0]+k2[0]);
printf("C 语言成绩不及格的人数为:%d\n",k3[0]);
printf("高数成绩的总分为:%.2f 高数成绩的平均分为:%.2f\n",gzong,gaver);
printf("高数成绩的最高分为:%.2f 高数成绩的最低分为:%.2f\n",max->xk[1].zchji,min->xk[1].zchji);
printf("高数成绩优秀的人数为:%d\n",k1[1]);
printf("高数成绩良好的人数为:%d\n",k2[1]);
printf("高数成绩及格的人数为:%d\n",k1[1]+k2[1]);
printf("高数成绩不及格的人数为:%d\n",k3[1]);
return(head);
}
/*********************************************按学号查询模块*****/
void chaxun2(score *head)
{
score *q=head;
int sss=0;
char name[10];
printf("请输入要查询的学生姓名:");
scanf("%s",name);
while(q!=NULL)
{
if(strcmp(name,q->name)==0) /*通过字符串的比较按姓名查找*/
{
printf("*****************************************************************************\n");
printf("|学号|姓名|性别|生 日 |");
printf("C(平时.实验.考试.综合)|");
printf("高数(平时.实验.考试.综合)\n");
printf("*****************************************************************************\n");
printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q->num,q->name,q->sex,q->birthday.year,q->birthday.month,q->birthday.day);
printf("%5d|%5d|%5d|%.1f|",q->xk[0].pingshi,q->xk[0].shiyan,q->xk[0].kaoshi,q->xk[0].zchji);
printf("%5d|%5d|%5d|%.1f\n",q->xk[1].pingshi,q->xk[1].shiyan,q->xk[1].kaoshi,q->xk[1].zchji);
printf("*****************************************************************************\n");
sss=3; /*定义变量不等于初始值则退出循环体*/
}
q=q->next;
}
if(sss==0) printf("没有这个学生的资料!\n\n");

}
/*******************************************按学号查询*******/
void chaxun1(score *head)
{
score *q=head;
int num,sss=0;
printf("请输入要查询的学生学号:");
scanf("%d",&num);
while(q!=NULL)
{
if(num==q->num)
{
printf("*****************************************************************************\n");
printf("|学号|姓名|性别|生 日 |");
printf("C(平时.实验.考试.综合)|");
printf("高数(平时.实验.考试.综合)\n");
printf("*****************************************************************************\n");
printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q->num,q->name,q->sex,q->birthday.year,q->birthday.month,q->birthday.day);
printf("%5d|%5d|%5d|%.1f|",q->xk[0].pingshi,q->xk[0].shiyan,q->xk[0].kaoshi,q->xk[0].zchji);
printf("%5d|%5d|%5d|%.1f\n",q->xk[1].pingshi,q->xk[1].shiyan,q->xk[1].kaoshi,q->xk[1].zchji);
printf("*****************************************************************************\n");
sss=3;
}
q=q->next;
}
if(sss==0) printf("没有这个学生的资料!\n\n");
}

/********************************************查询二级菜单******/
chaxun_cd()
{
int m=0,i;
while(m==0)
{
printf("查询学生的资料\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("请选择你所要操作的选项(按0退出):");
scanf("%d",&i);
switch(i)
{
case 1:chaxun1(r);break; /*break表示跳出循环结构结束循环退出包含break语句的那层循环体*/
case 2:chaxun2(r);break;
case 0:m=1;break;
default:printf("错误,重新选择:");break;
}
}
}
/***************************************按学号删除***********/
score *del1(score *head)
{
score *p1,*p2;
int num;
printf("请输入要删除学生的学号:");
scanf("%d",&num);
if(head==NULL)
{
printf("没有这个学生的资料!\n\n");
return(head);
}
p2=p1=head;
while(num!=p1->num&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if(head==p1)
head=head->next;
else
p2->next=p1->next;
free(p1);
p1=p2;
printf("第%d 学生的资料已删除完毕!\n\n",num);
}
else printf("没有这个学生的资料!\n\n");
return(head);
}
/**************************************************/
score *del2(score *head)
{
score *p1,*p2;
char name[10];
printf("请输入要删除学生的姓名:");
scanf("%s",name);
if(head==NULL)
{
printf("没有这个学生的资料!\n\n");
return(head);
}
p2=p1=head;
while(strcmp(name,p1->name)!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(name,p1->name)==0)
{
if(head==p1)
head=head->next;
else
p2->next=p1->next;
free(p1);
p1=p2;
printf("名字叫%s的学生的资料已被删除!\n\n",name);
}
else printf("没有这个学生的资料!\n\n");
return(head);
}
/*************************************************/
del_cd()
{
int m=0,i;
while(m==0)
{
printf("删除学生的资料\n");
printf("1.按学号删除\n");
printf("2.按姓名删除\n");
printf("3.查看删除结果\n");
printf("请选择你所要操作的选项(按0退出):");
scanf("%d",&i);
switch(i)
{
case 1:r=del1(r);break;
case 2:r=del2(r);break;
case 3:print(r);break;
case 0:m=1;break;
default:printf("错误,重新选择:");break;
}

}
}

/*****************************************按学号排序********/
score *paixu2(score *head)
{
score *p1,*p2,*k,h;
int i;
if(head==NULL)
{
printf("没有任何学生的资料!");
return(head);
}
p1=head;
p2=head->next;
k=p1;
for(i=0;i<n-1;i++)
{
while(p2!=NULL)
{
if(k->num>p2->num)
k=p2;
p2=p2->next;
}
if(k!=p1)
{
h=*k;
*k=*p1;
*p1=h;
h.next=k->next;
k->next=p1->next;
p1->next=h.next;
}
p1=p1->next;
p2=p1->next;
k=p1;
}
printf("排序成功!\n\n");
return(head);
}
/*************************************************/
score *paixu1(score *head)
{
score *p1,*p2,*k,h;
int i;
if(head==NULL)
{
printf("没有任何学生的资料!");
return(head);
}

p1=head;
p2=head->next;
k=p1;
for(i=0;i<n-1;i++)
{

while(p2!=NULL)
{
if(k->xk[0].zchji>p2->xk[0].zchji)
k=p2;
p2=p2->next;
}
if(k!=p1)
{
h=*k;
*k=*p1;
*p1=h;
h.next=k->next;
k->next=p1->next;
p1->next=h.next;
}
p1=p1->next;
p2=p1->next;
k=p1;
}
printf("排序成功!\n\n");
return(head);
}
/*************************************************/
paixu_cd()
{
int m=0,i;
while(m==0)
{
printf("对学生的资料进行排序\n");
printf("1.按C语言成绩排序\n");
printf("2.按学号排序\n");
printf("请选择你所要操作的选项(按0退出):");
scanf("%d",&i);
switch(i)
{
case 1:r=paixu1(r);break;
case 2:r=paixu2(r);break;
case 0:m=1;break;
default:printf("错误,重新选择:");break;
}

}
}
/*******************************************按C成绩插入******/
score *charu1(score *head,score *stu)
{
score *p1,*p2;
int i;
p1=head;
r=paixu1(r);
stu=(score*)malloc(LEN); /*开辟一个新单元,用于保存要插入的信息*/
printf("请输入要增加的学生资料:\n");
printf("请输入要增加的学生学号:");
scanf("%d",&stu->num);
while(stu->num<0) /*判断学号是否小于0*/
{
printf("输入错误,输入错误请重新输入学号:");
scanf("%d",&stu->num);
}
printf("b.请输入要增加的学生姓名:");
scanf("%s",stu->name);
printf("请输入要增加的学生性别(F或M):");
scanf(" %c",&stu->sex);
while(stu->sex!='M'&&stu->sex!='F')
{
printf("输入错误,输入错误请重新输入性别:");
scanf(" %c",&stu->sex);
}
printf("c.请输入要增加的学生生日(年.月.日):");
scanf(" %d.%d.%d",&stu->birthday.year,&stu->birthday.month,&stu->birthday.day);
printf("d.请输入要增加的学生成绩!\n");
printf("1.请输入要增加的学生C语言成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&stu->xk[0].pingshi,&stu->xk[0].shiyan,&stu->xk[0].kaoshi);
stu->xk[0].zchji=stu->xk[0].pingshi*0.1+stu->xk[0].shiyan*0.2+stu->xk[0].kaoshi*0.7;
printf("2.请输入要增加的学生高数成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&stu->xk[1].pingshi,&stu->xk[1].shiyan,&stu->xk[1].kaoshi);
stu->xk[1].zchji=stu->xk[1].pingshi*0.1+stu->xk[1].shiyan*0.2+stu->xk[1].kaoshi*0.7;
if(head==NULL) /*判断头指针是否为空*/
{
head=stu;
stu->next=NULL; /*如果为空,直接插入头上*/
n++; /*人数加一*/
return(head);
}
while(p1->xk[0].zchji<stu->xk[0].zchji&&p1->next!=NULL) /*根据C成绩确定要插入的位置*/
{
p2=p1;
p1=p1->next;
}
if(stu->xk[0].zchji<=p1->xk[0].zchji)
{
if(p1==head) /*如果p1指向头指针 */
{
head=stu;
stu->next=p1;
n++;
}
else
{
stu->next=p2->next;
p2->next=stu;
n++;
}
}
else
{
p1->next=stu;
stu->next=NULL;
n++;
}
printf("增加学生资料成功!\n");
return(head);
}

/*********************************************按学号插入****/
score *charu2(score *head,score *stu)
{
score *p1,*p2;
int i=0;
p1=head;
r=paixu2(r); /*调用排序函数*/
stu=(score*)malloc(LEN); /*开辟一个新单元,用于保存要插入的信息*/
printf("请输入要增加的学生资料:\n");
printf("请输入要增加的学生学号:");
scanf("%d",&stu->num);
while(stu->num<0)
{
printf("输入错误,输入错误请重新输入学号:");
scanf("%d",&stu->num);
}
printf("b.请输入要增加的学生姓名:");
scanf("%s",stu->name);
printf("请输入要增加的学生性别(F或M):");
scanf(" %c",&stu->sex);
while(stu->sex!='M'&&stu->sex!='F')
{
printf("输入错误,输入错误请重新输入性别:");
scanf(" %c",&stu->sex);
}
printf("c.请输入要增加的学生生日(年.月.日):");
scanf(" %d.%d.%d",&stu->birthday.year,&stu->birthday.month,&stu->birthday.day);
printf("d.请输入要增加的学生的成绩!\n");
printf("1.请输入要增加的学生C语言成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&stu->xk[0].pingshi,&stu->xk[0].shiyan,&stu->xk[0].kaoshi);
stu->xk[0].zchji=stu->xk[0].pingshi*0.1+stu->xk[0].shiyan*0.2+stu->xk[0].kaoshi*0.7;
printf("2.请输入要增加的学生高数的成绩(平时,实验,考试):");
scanf(" %d,%d,%d",&stu->xk[1].pingshi,&stu->xk[1].shiyan,&stu->xk[1].kaoshi);
stu->xk[1].zchji=stu->xk[1].pingshi*0.1+stu->xk[1].shiyan*0.2+stu->xk[1].kaoshi*0.7;
if(head==NULL) /*判断头指针是否为空*/
{
head=stu;
stu->next=NULL;
n++;
return(head);
}
while(p1->num<stu->num&&p1->next!=NULL) /*根据学号确定要插入的位置*/
{
p2=p1;
p1=p1->next;
}
if(stu->num<=p1->num)
{
if(p1==head)
{
head=stu;
stu->next=p1;
n++;
}
else
{
stu->next=p2->next;
p2->next=stu;
n++;
}
}
else
{
p1->next=stu;
stu->next=NULL;
n++;
}
printf("增加学生资料成功!\n");
printf("\n");
return(head); /*返回头指针*/
}

/*******************************************插入的二级菜单******/
charu_cd()
{
int m=0,i;
while(m==0)
{
printf("增加学生的人数\n");
printf("\n1.按C语言成绩增加\n");
printf("2.按学号增加\n");
printf("请选择你所要操作的选项(按0退出):");
scanf("%d",&i);
switch(i)
{
case 1:r=charu1(r,stu);break;
case 2:r=charu2(r,stu);break;
case 0:m=1;break;
default:printf("错误,重新选择:");break;
}

}
}

‘肆’ C语言做个小型商品销售管理系统

我这里有一个!
具体的,稍微改一下就可以了!

#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}

‘伍’ 用C语言来编写:商品销售统计程序

#include<iostream>
#include<cstring>
#include<fstream>
#include<stdlib.h>//system("cls")//清屏
#include<conio.h>//getche()
using namespace std;
//全局变量
int i=0;//已录入商品总个数
char ch;//cin>>ch
int n;//case(n)
char code[10];
char name[10];
char unit[10];
int amount;
float unitprice;
float total=0;//总价
ofstream f1("./test.txt");
ofstream f2("./sell.txt");//构建输出流,没有文件就建立

class Goods
{
private:
char code[10];//代码
char name[10];//名称
char unit[10];//单位
int amount;//总数
float unitprice;//单价
public:
Goods();
Goods(char co[10],char na[10],char un[10],int am,float unpr);//构造函数
void f_write();// 录入
void f_change();//改变
void f_delete();//删除
void display();//显示全部商品信息
void s_buy();//买入
};
//构造函数
Goods::Goods(){}
Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)
{
strcpy(code,co);
strcpy(name,na);
strcpy(unit,un);
amount=am;
unitprice=unpr;
}
Goods *g[50];
//商品信息录入
void Goods::f_write()
{
cout<<"请输入第"<<i+1<<"件商品代码:"<<endl;
cin>>code;
cout<<"请输入第"<<i+1<<"件商品名称:"<<endl;
cin>>name;
cout<<"请输入第"<<i+1<<"件商品计量单位:"<<endl;
cin>>unit;
cout<<"请输入第"<<i+1<<"件商品总数:"<<endl;
cin>>amount;
cout<<"请输入第"<<i+1<<"件商品单价:"<<endl;
cin>>unitprice;
g[i]=new Goods(code,name,unit,amount,unitprice);
i++;
cout<<"信息录入成功!(继续录入按y,返回上一层按n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_write();
}
}
//改变商品信息
void Goods::f_change()
{
cout<<"请输入要改变的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"商品信息如下:"<<endl;
cout<<"代码 名称 单价 总数 单位"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<"\t"<<g[h]->unit<<endl;
char newco,newna,newun;
int newam;
float newunpr;
cout<<"你想要修改:1、代码;2、名称;3、单价;4、总数;5、单位。"<<endl;
cin>>n;
switch(n)
{
case 1:
cout<<"请输入修改后的商品代码:";
cin>>newco;
g[h]->code[10]=newco;
cout<<"修改成功!"<<endl;
break;
case 2:
cout<<"请输入修改后的商品名称:";
cin>>newna;
g[h]->name[10]=newna;
cout<<"修改成功!"<<endl;
break;
case 3:
cout<<"请输入商品单价:";
cin>>newunpr;
g[h]->unitprice=newunpr;
cout<<"修改成功!"<<endl;
break;
case 4:
cout<<"请输入修改后的商品总数:";
cin>>newam;
g[h]->amount=newam;
cout<<"修改成功!"<<endl;
break;
case 5:
cout<<"请输入修改后的商品单位:";
cin>>newun;
g[h]->unit[10]=newun;
cout<<"修改成功!"<<endl;
break;
}
break;
}//if
}//for循环
cout<<"是否继续修改?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_change();
}
}
//删除信息
void Goods::f_delete()
{
cout<<"请输入要删除的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
for(int k=h;k<i;k++)
{
g[k]=g[k+1];
i--;
}
}
}
cout<<"删除成功!"<<endl;
cout<<"是否继续删除?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_delete();
}
}
//打印信息
void Goods::display()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------全部商品信息如下-------------------"<<endl;
cout<<" "<<endl;
cout<<"代码 名称 单价 总数 单位"<<endl;
f1<<" "<<endl;
f1<<"---------------全部商品信息如下--------------"<<endl;
f1<<" "<<endl;
f1<<"代码 名称 单价 总数 单位"<<endl;
if(i==0)
{
cout<<"系统未曾录入任何商品信息,或记录被删除!";
}
for(int k=0;k<i;k++)
{
cout<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
f1<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
}
cout<<endl;
}
//买入
void Goods::s_buy()
{
float price=0;//单个商品价格
cout<<"请输入想要买的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"请输入想要购买的商品数量:";
cin>>amount;//当前要购买的数量
price=amount*g[h]->unitprice;
g[h]->amount=g[h]->amount-amount;
cout<<endl;
cout<<"代码 名称 单价 数量 小计"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
f2<<"代码 名称 单价 数量 小计"<<endl;
f2<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
total=total+price;
break;
}
}
cout<<"按1继续购买,按2结束。"<<endl;
cin>>n;
if(n==2)
{
cout<<endl;
cout<<"购买结束,总计:"<<total<<"元!"<<endl;
}
else
{
s_buy();
}
}

//类外函数
//第一部分操作显示
void f_screen()
{
system("cls");
Goods g;
cout<<"按相应键操作:"<<endl;
cout<<"0.录入信息 1.更改信息 2.删除信息 3.返回上一层"<<endl;
cin>>n;
switch(n)
{
case 0:
g.f_write();
if(ch=='n'||ch=='N')
f_screen();
break;
case 1:
g.f_change();
if(ch=='n'||ch=='N')
f_screen();
break;
case 2:
g.f_delete();
if(ch=='n'||ch=='N')
f_screen();
break;
}
}
//第二部分操作显示
void s_screen()
{
Goods g;
g.display();
cout<<endl;
g.s_buy();
}
//初始屏幕显示
void screen()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------------商品销售统计系统---------------"<<endl;
cout<<" "<<endl;
f2<<" "<<endl;
f2<<"----------------商品销售统计系统--------------"<<endl;
f2<<" "<<endl;
cout<<"更改商品信息请按1,进行销售统计请按-1。"<<endl;
cin>>ch;
if(ch=='1')
{
f_screen();
if(n==3)
screen();
}
else if(ch=='-1')
{
s_screen();
}
else
{
cout<<"输入错误,系统重新启动!";
screen();
}
}
int main()
{
screen();
return 0;
}

‘陆’ 急求商品进销存管理(商品销售管理)C语言程序~大侠帮帮忙~谢谢!

用象过河进销存软件,你要的功能都有

‘柒’ c语言粮油进销存系统源代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

//日期结构体
typedef struct
{
int year;
int month;
int day;
}DATE;
//商品结构体
//定义链表
typedef struct Node
{
long num;
char name[20];
char kind[20];
DATE pro_date;
int save_day;
int shuliang;
float jinjia;
float shoujia;
DATE sale_date;
struct Node *next;
}Node,*LinkList;
//申请函数
void apply()
{
int i,flag=1;
FILE *fp;
char name[20],key[20];
flushall();
printf("用户名(不能为空):");
scanf("%s",name);
flushall();
printf("密码(不能为空):");
for(i=0;i<=20;i++)
{
key[i]=getch();
if(key[i]==13)
{
key[i]='\0';
break;
}
printf("*");
}
fp=fopen("key.txt","w");
if(fp==NULL)
{
printf("the file can not open!");
flag=0;
exit(1);
}
fprintf(fp,"%s %s",name,key);
fclose(fp);
if(flag==1)
printf("\n申请成功,请登录!\n");
else
printf("\n申请失败,请重新申请!\n");
}
//登录函数
int load()
{
FILE *fp;
int i;
char name[20],key[20];
char name1[20],key1[20];
fp=fopen("key.txt","r");
fscanf(fp,"%s %s",name,key);
fclose(fp);
printf("用户名(不能为空):");
scanf("%s",name1);
flushall();
printf("密码(不能为空):");
for(i=0;i<=20;i++)
{
key1[i]=getch();
if(key1[i]==13)
{
key1[i]='\0';
break;
}
printf("*");
}
printf("\n");
if(strcmp(name1,name)==0&&strcmp(key1,key)==0)
{ printf("登陆成功!\n\n");return 1; }
else
{ printf("用户名或密码错误;请重新登录!"); return 0;}

}
//密码保护系统
void key()
{
int choice,c;
do
{ printf("\n****************************申请登录系统********************************\n\n");
printf(" 1: 新用户注册; \n\n");
printf(" 2: 新用户登录; \n\n");
printf("请选择:");
scanf("%d",&choice);
switch(choice)
{
case 1: apply(); break;
case 2: c=load();break;
}
}while(c!=1);
}
LinkList goods_input()
{

LinkList L;
Node *p1,*p2;
int i=1;
void file_write(Node *p);
int flag=1;
L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间
while(flag)
{
p1=(Node*)malloc(sizeof(Node));
printf("请输入第%d种商品的信息(商品号为0时,结束商品输入):\n\n",i++);
flushall();
printf("商品号:");
scanf("%ld",&p1->num);
if(p1->num!=0)
{
flushall();
printf("名称:");
scanf("%s",&p1->name);
flushall();
printf("类别:");
scanf("%s",&p1->kind);
flushall();
printf("生产日期(年月日用空格隔开):");
scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);
flushall();
printf("保质期:");
scanf("%d",&p1->save_day);
flushall();
printf("商品数量:");
scanf("%d",&p1->shuliang);
flushall();
printf("进价:");
scanf("%f",&p1->jinjia);
flushall();
printf("售价:");
scanf("%f",&p1->shoujia);
flushall();
printf("销售日期(年月日用空格隔开):");
scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p2->next=p1;
p2=p1;
}
else
{
flag=0;
break;
}
}
p2->next=NULL;
file_write(L);
free(p1);
return(L);
}
//将商品信息写入文件
void file_write(Node *p)
{

FILE *fp;
char filename[50];int c;
printf("是否保存?(保存按1;不保存按0):");
scanf("%d",&c);
if(c==1)
{ flushall();
printf("\n为了将你操作的信息保存下来,请输入要写入的文件的路经或文件:");
gets(filename);
fp=fopen(filename,"w");
if(fp==NULL)
{
printf("\n this file can not be open!");
exit(1);
}
p=p->next;
while(p!=NULL)
{
fprintf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d\n",p->num,p->name,p->kind,p->pro_date.year,p->pro_date.month,p->pro_date.day,p->save_day,p->shuliang,p->jinjia,p->shoujia,p->sale_date.year,p->sale_date.month,p->sale_date.day);
p=p->next;
}
fclose(fp);
printf("文件保存成功!");
}

}
//将文件中的信息读出的函数
LinkList file_read()
{
FILE *fp;
LinkList L;
Node *p1,*p2;
char filename[50];
int i,k=0,t=-2;
flushall();
printf("请输入要读取的文件的路径或文件名:");
gets(filename);
flushall();
printf("请输入商品的种类数:");
scanf("%d",&i);
fp=fopen(filename,"r");
L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间
while(t!=EOF&&k<i)
{
p1=(Node*)malloc(sizeof(Node));
t=fscanf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d",&p1->num,p1->name,p1->kind,&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day,&p1->save_day,&p1->shuliang,&p1->jinjia,&p1->shoujia,&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p2->next=p1;
p2=p1;
k++;
}
p2->next=NULL;
fclose(fp);
return L;
}
//查找商品信息
void goods_find()
{
long snum;
int flag=0,t;
Node *p0,*p1;
p1=p0=file_read();
while(1)
{
flag=0;
printf("请输入你要查找的商品信息的商品号:");
scanf("%ld",&snum);
while( p0->next!=NULL)
{
p0=p0->next;
if(p0->num==snum)
{
flag=1;
break;
}
}
if(flag==1)
{ printf("该商品的信息如下:\n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
}
else
printf("此商品号不存在,查找失败!\n");
p0=p1;
printf("结束查找按0,继续查找按1:");
scanf("%d",&t);
if(t==0)
break;
}
}
//修改商品信息
void goods_change()
{
Node *p1,*p0,*p2;
int c,flag=0,t;
long snum;
p2=p0=file_read();
while(1)
{
flag=0;
p1=p0->next;
if(p1==NULL) flag=0;
printf("请输入你要修改的商品信息的商品号:");
scanf("%ld",&snum);
while(p1!=NULL)
{
if(p1->num==snum)
{
flag=1;
break;
}
p1=p1->next;
}
if(flag==1)
{ printf(" 1:商品号;\n");
printf(" 2:商品名称;\n");
printf(" 3:商品类别;\n");
printf(" 4:商品生产日期;\n");
printf(" 5:商品保质期;\n");
printf(" 6:商品数量\n");
printf(" 7:商品进价\n");
printf(" 8:商品售价\n");
printf(" 9:商品销售日期\n");
printf(" 请选择修改的内容(0~9):");
scanf("%d",&c);
while(1)
{
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9)break;
else
{
printf("\n输入有误,请重新输入!\n清选择(0~9):");
scanf("%d",&c);
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9) break;
}
}
switch(c)
{
case 1:
{
printf("\n输入修改后的商品号:");
scanf("%ld",&p1->num);break;
}
case 2:
{
printf("输入修改后的商品名:");
scanf("%s",&p1->name);break;
}
case 3:
{
printf("输入修改后的商品类别:");
scanf("%s",&p1->kind);break;
}
case 4:
{
printf("输入修改后的商品生产日期(年月日之间用空格隔开):");
scanf("%d%d%d",&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day);break;
}
case 5:
{
printf("输入修改后的商品保质期:");
scanf("%d",&p1->save_day);break;
}
case 6:
{
printf("输入修改后的商品数量:");
scanf("%d",&p1->shuliang);break;
}
case 7:
{
printf("输入修改后的商品进价:");
scanf("%f",&p1->jinjia);break;
}
case 8:
{
printf("输入修改后的商品售价:");
scanf("%f",&p1->shoujia);break;
}
case 9:
{
printf("输入修改后的商品销售日期(年月日之间用空格隔开):");
scanf("%d%d%d",&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);break;
}
}
printf("修改后的商品信息如下:\n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p1->num,p1->name,p1->kind,p1->pro_date.year,p1->pro_date.month,p1->pro_date.day,p1->save_day,p1->shuliang,p1->jinjia,p1->shoujia,p1->sale_date.year,p1->sale_date.month,p1->sale_date.day);
}
else
printf("此商品号不存在,修改失败!\n");
p0=p2;
printf("结束修改按0,继续修改按1:");
scanf("%d",&t);
if(t==0)
break;
}
file_write(p0);
}
//插入商品
void goods_insert()
{
Node *p0,*p1,*p2,*p3;
int k,i,flag,t;
p0=file_read();
while(1)
{
p3=p2=p0;
k=0;
printf("请输入插入位置i的值(i的值小于商品的种类数):");
scanf("%d",&i);
while(p2!=NULL&&k<i-1)
{
p2=p2->next;
k=k+1;
}
if(k!=i-1) flag=0;
p1=(Node*)malloc(sizeof(Node));
printf("请输入要插入的商品号 名称 类别 生产日期 保质期 数量 进价 售价 销售日期:\n");
scanf("%ld%s%s%d%d%d%d%d%f%f%d%d%d",&p1->num,p1->name,p1->kind,&p1->pro_date.year,&p1->pro_date.month,&p1->pro_date.day,&p1->save_day,&p1->shuliang,&p1->jinjia,&p1->shoujia,&p1->sale_date.year,&p1->sale_date.month,&p1->sale_date.day);
p1->next=p2->next;
p2->next=p1;
flag=1;
if(flag==1)
printf("插入位置合理!\n");
else
printf("插入位置不合理!\n");
printf("结束插入按0,继续插入按1:");
scanf("%d",&t);
if(t==0)
break;
}
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}
file_write(p3);
}
//删除商品信息
void goods_delete()
{
long num;
Node *p,*p0,*p1,*p2;
int flag=0,t;
p0=file_read();
while(1)
{
flag=0;
p1=p2=p0;
p=p1->next;
if(p==NULL) flag=0;
printf("请输入你要删除的商品的商品号:");
scanf("%ld",&num);
while(p!=NULL)
{
if(p->num==num)
{
p1->next=p->next;
free(p);
flag=1;
break;
}
p1=p;
p=p->next;
flag=0;
}
if(flag==1)
printf("你已正确删除!\n");
else
printf("你输入的商品号不存在!\n");
printf("结束删除按0,继续删除按1:");
scanf("%d",&t);
if(t==0)
break;
}
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}

file_write(p2);
}
//商品信息排序
void goods_rank()
{
Node *p,*q,*k,*L,t;
Node *p0;
int flag=0;
L=file_read();
p=L->next;
while(p->next)
{
k=p;
q=p->next;
while(q)
{
if((k->shuliang)>(q->shuliang))
k=q;
q=q->next;
}
if(p!=k)
{
t=*p;
*p=*k;
*k=t;
t.next=p->next;
p->next=k->next;
k->next=t.next;
flag=1;
}
p=p->next;
}
if(flag=1)
printf("按商品数量从小到大排序成功!\n");
else
printf("按商品数量从小到大排序失败!\n");
p0=L;
p0=p0->next;
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}

file_write(L);
}
//商品信息统计
void goods_tongji()
{
Node *p0,*p1;
int liang_sum=0;
float lirun_sum=0;
p0=p1=file_read();
p0=p0->next;
printf(" 商品信息统计表 \n\n");
printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");
while(p0!=NULL)
{
printf("--------------------------------------------------------------------------------\n");
printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0->num,p0->name,p0->kind,p0->pro_date.year,p0->pro_date.month,p0->pro_date.day,p0->save_day,p0->shuliang,p0->jinjia,p0->shoujia,p0->sale_date.year,p0->sale_date.month,p0->sale_date.day);
p0=p0->next;
}
printf("\n");
p1=p1->next;
while(p1!=NULL)
{
liang_sum+=p1->shuliang;
// printf("商品数量:%d\n",p1->shuliang);
lirun_sum+=((p1->shoujia)-(p1->jinjia))*(p1->shuliang);
p1=p1->next;
}
printf("迄今,商店里还有%d件商品;\n总利润为%0.2f元;\n",liang_sum,lirun_sum);
if(liang_sum<=200)
printf("注意:商店里的商品偏少,请适当进货!\n");
else if(liang_sum>1100)
printf("注意:商店里积压的货物太多,请及时清仓!\n");
else
printf("\n商品总件数大于200件,小于1100件,无需进货,清仓!\n");
}
main()
{
int c;
key();
do
{
printf("请按任意键返回主菜单!");
getch();
system("cls");
printf("\n****************************欢迎进入商场店面管理系统****************************\n\n");
printf(" 1,录入商品信息;\n");
printf(" 2,查找商品信息;\n");
printf(" 3,修改商品信息;\n");
printf(" 4,插入商品信息;\n");
printf(" 5,删除商品信息;\n");
printf(" 6,商品信息排序;\n");
printf(" 7,统计商品信息;\n");
printf(" 0,退出系统;\n");
printf(" 请选择(0~7):");
scanf("%d",&c);
while(1)
{
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0)break;
else
{
printf("\n输入有误,请重新输入!\n清选择(0~7):");
scanf("%d",&c);
if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0) break;
}
}
switch(c)
{
case 1:goods_input();break;
case 2:goods_find();break;
case 3:goods_change();break;
case 4:goods_insert();break;
case 5:goods_delete();break;
case 6:goods_rank();break;
case 7:goods_tongji();break;
case 0 :break;
}
}while(c!=0);
}

‘捌’ 数据结构:产品进销存管理系统的源代码(c语言或c++的)

&(p->salesquantity),&(p->salestime).year),&((p->salestime).month),&((p->salestime).day)); p->nextproct=q->nextproct;
q->nextproct=p;
q=p
}
}
return ok;
}//ProctInsert
void ProQuantity_add(sqmountlink&L,char pkindname 1[],char pname 1[],int n)
{//添加顺序表挂接链表的某产品的总量,且需添加的产品总量为n
int i,k;
plinklist p;
for(i=0;i<L.length;i++)
{
if(strcmp(L.kindelem[i]).pkindname,pkindname 1)!=0)
continue;
else
break;
}
if(i<L.length)
{
for(p=L.kindelem[i].firstproct;p!=NULL;p=p->nextproct)
{
k=strcnp(p->pname.pname);
if(k==0)
{
p->totalquantity=p->totalquantity+n;
printf("查看添加后产品的各项输出:%s %d%d,%d %d %d,%d,%d\n",p-pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goods).day,
p->salequanlity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}
}
}//ProQuantity_add
void Visit(sqmountlink&L,char pkindname3[],char pname3[])
{//在顺序表挂接链表L中,查询属于某产品类的某产品的各项信息
int i,k;
plinklist p;
for(i=0;i<L.length;i++)
{
if(strcmp((L.kindelem[i]),pkindname.pkindname3)!=0)
continue
else
break;
}
if(i<L.length)
{
for(p=L.kindelem[i].firstprodicy;p!=NULL;p=p->nextprocy)
{
k=strcmp(p->pname.pname3);
if(k==0)
break;
}
if(k!=0)
printf("此产品不存在:\n")
else
{
printf("输出带查询产品的各项信息:\n");
printf("%s %s %d %d,%d,%d %d %d,%d,%d\n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goodsdate).day,
p->salequantity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}
}//Visit
void DisplayList(sqmountlink&L)
{//显示各产品所属产品类,产品名称、产品总量,进货日期,销出数量,销售时间
int i;
plinklist p;
printf("产品类 产品 进货日期 销出数量 销售时间\n")
for(i=0;i<L.length;i++)
{
if(!(L.kindelem[i],firstproct))
printf("%s\n",(L.kindelem[i]).pkindname);
for(p=L.kindelem[i].firstproct;p;p=p->nextproct)
printf("%s %s %d %d,%d,%d %d %d,%d,%d \n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(P->goodsdate).month,(p->goodsdate).day,p->salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}//DisplayList
void DestoryMountList(sqmountlink&L)
{//销毁已存在的顺序表挂接链表L
int i;
kindlnode *p;
for(i=L.length;i>=0;
{
p=&(L.kindelem[i]);
if(*p).firstproct==NULL)
free(p);
else
{
while((*p).firstproct;q->nextproct;q=q->nextproct);
free(q);
}
free(q);
}
}
}//DestroyMountList
void menu_operation()
{//操作菜单
printf("----输入所要执行操作:-------\n")
printf("----产品类的添加:1------\n");
printf("----产品的添加:2-----\n");
printf("----产品数量的添加:3-----\n");
printf("----查询每种产品所属产品类,产品总量,进货日期,销出数量,销售时间:4-----------\n")
printf("----释放L所占内存空间,退出程序:0-----\n");
}//menu_operation
/*--------------主程序-------------*/
void main(void)
{
int order,
int i,n;
char a[30];
char b[30];
sqmountlink L;
InitMountList(L);
printf("-----创建初始的产品类、产品顺序表挂接链表L-----\n");
CreatMuntList(L);
DisplayList(L);
printf("-----初始的产品类、产品顺序表挂接链表L创建完成-----\n");
menu_operation();
loop:
printf("输入命令:");
scanf("%d",&order);
switch(order)
{
case 1:
printf("需添加产品类的个数:");
scanf("%d",&i);
kindinsert(L,i);
printf("输出修改后的产品库存管理表:\n");
DisplayList(L);
goto loop;
case 2:
printf("需添加产品所属产品类的名称:")
scanf("%s",&a);
printf("需向此产品类添加产品的个数:");
scanf("%d",&i);
ProctInsert(L,a,i);
printf("输出修改后的产品库存管理表:\n");
DisplayList(L);
goto loop;
case 3:
printf("输入需添加数量的产品所属产品类的名称:");
scanf("%s",&a);
printf("输入需添加数量的产品的名称:");
scanf("%d",&n);
ProQuantity_add(L,a,b,n);
printf("输出修改后的产品库存管理表:\n");
DisplayList(L);
goto loop ;
case 4:
printf("输入待查询产品所属产品类的名称:");
scanf("%s",&b);
printf("输入待查询产品的名称:");
scanf(%s",&b);
Visit(L<a,b);
goto loop;
case ():
DestroyMountList(L);
exit(0);
}
}

‘玖’ C语言编程:商家商品销售量统计

按照题目要求编写的商品销量表的C语言程序如下

#include<stdio.h>

int main(){

int i,sum=0,a[8];

printf("----------商家商品销售量统计---------- ");

printf("请输入商品6个月的销售量:");

for(i=0;i<6;i++){

scanf("%d",&a[i]);

sum=sum+a[i];

}

a[6]=sum;

a[7]=sum/6;

printf(" 商 品 销 量 表 ");

printf("__________________________________________________________________________ ");

printf(" 1月份 2月份 3月份 4月份 5月份 6月份 总销量 平均销量 ");

for(i=0;i<8;i++){

printf(" %d |",a[i]);

}

printf(" ");

printf("__________________________________________________________________________ ");

return 0;

}