编写一个程序以维护商店中以下商品类别的库存详细信息:Women、Men、Girls、Boys和Ba 50
编写一个程序以维护商店中以下商品类别的库存详细信息:Women、Men、Girls、Boys和Babies。接受用户输入的商品类别。此外,接受商品名称、单位数量以及单价。...
编写一个程序以维护商店中以下商品类别的库存详细信息:Women、Men、Girls、Boys和Babies。接受用户输入的商品类别。此外,接受商品名称、单位数量以及单价。将所有特性定义为属性。最后,显示所有详细信息。
展开
1个回答
展开全部
#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);
}
附上出处链接:http://zhidao.baidu.com/link?url=FyasAyHBCVrhUhB6nIqzVL_PZcb49BwGILeZUYWbwjPVJN7D6oOaajz6wPtOWEZTorhSTKCwG4vEIJJTg77X6K
#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);
}
附上出处链接:http://zhidao.baidu.com/link?url=FyasAyHBCVrhUhB6nIqzVL_PZcb49BwGILeZUYWbwjPVJN7D6oOaajz6wPtOWEZTorhSTKCwG4vEIJJTg77X6K
北京宇涛伟业
2024-11-04 广告
2024-11-04 广告
作为北京宇涛伟业文化传播有限公司的工作人员,我们认为图书批发后进行有效的库存管理,关键在于采用库存管理软件,实时更新库存数据,避免人工操作错误。同时,定期盘点库存,确保账实相符,优化进货流程,制定科学的进货计划。此外,应对库存进行分类管理,...
点击进入详情页
本回答由北京宇涛伟业提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询