求C语言高手
详细的解释一下这个程序(尤其是指针),一定又追加而且越详细,追加的越多,所花不算话的不知道是咋死的!!!http://zhidao.baidu.com/question/...
详细的解释一下这个程序(尤其是指针),一定又追加而且越详细,追加的越多,所花不算话的不知道是咋死的!!!
http://zhidao.baidu.com/question/163229928.html(第二个,明矾的)
在线等啊!qq597694432 展开
http://zhidao.baidu.com/question/163229928.html(第二个,明矾的)
在线等啊!qq597694432 展开
1个回答
展开全部
上不了QQ,直接百度hi里说
功能描述的很清楚了,自己录入的时候注意就好了,没有做录入的判断
============================================================
/*
图书的数量和价格必须是数字,否则可能会出错
另外这个程序没有要求做出售图书的功能,从而售出册书始终为0
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <iostream>
using namespace std;
#define MAX_ID_LEN 20
#define MAX_NAME_LEN 40
#define MAX_PRESS_NAME_LEN 40
#define MAX_BOOK_KIND 1000 //书店最多销售图书种类
#define NULL 0
struct BOOK_INFO {
char id[MAX_ID_LEN+1]; //图书编号
char name[MAX_NAME_LEN+1]; //图书名称
char press_name[MAX_PRESS_NAME_LEN+1]; //出版社
int total; //购进册数
double buy_price; //购进价格
int sale_total; //卖出册数
double sale_price; //买出价格
};
BOOK_INFO book[MAX_BOOK_KIND];
int index = 0;
void init_book_shop()
{
memset(book, 0, sizeof(book));
}
void show_menu()
{
printf("------------------图书销售系统菜单------------------\n");
printf("----- 1.图书信息录入 -----\n");
printf("----- 2.进书处理 -----\n");
printf("----- 3.显示书库现状 -----\n");
printf("----- 4.退出 -----\n");
printf("----------------------------------------------------\n");
}
BOOK_INFO *search(char *id)
{
/*通过图书的id来查找图书,这里如果要用这个函数,则需传入你录入的图书的编号
*/
int i;
for(i=0; i<index; i++)
{
if ( 0 == strcmp(id, book[i].id) )
{
return &book[i];
}
}
return NULL;
}
void entering_book_info()
/*录入图书信息的函数
请输入图书编号(最大20个字符):
请输入图书名称(最大40个字符):
请输入出版社名称(最大40个字符):
请输入购进册数:
请输入图书进价:
请输入图书售价:
输入完后如果不输入Y或者y则停止录入图书信息
*/
{
char c, buf[128];
do{
if( index == MAX_BOOK_KIND)
{
printf("图书种类已经达到了最大值%d,无法继续添加\n", MAX_BOOK_KIND);
return;
}
printf("请输入图书编号(最大%d个字符):", MAX_ID_LEN);
scanf("%s", book[index].id);
if(search(book[index].id))
{
printf("图书编号已经存在,请重新输入!\n");
continue;
}
printf("请输入图书名称(最大%d个字符):", MAX_NAME_LEN);
scanf("%s",book[index].name);
printf("请输入出版社名称(最大%d个字符):", MAX_PRESS_NAME_LEN);
scanf("%s",book[index].press_name);
printf("请输入购进册数:");
scanf("%d", &(book[index].total));
printf("请输入图书进价:");
scanf("%s", buf);
book[index].buy_price = atof(buf);
printf("请输入图书售价:");
scanf("%s", buf);
book[index].sale_price = atof(buf);
getchar();
printf("是否继续录入图书?(Y or N):");
scanf("%c", &c);
index++;
book[index].sale_total = 0;
if(c != 'Y' && c != 'y')
{
return;
}
}while(1);
}
void stock_book()
{/*
进书管理
通过这个函数来购进已经录入过某种噢乖编号的图书,这样录入更方便
如果这个编号没有路如过,那么就会通过1也就是一条条的信息录入的方式录入图书信息
**/
char c;
int num;
BOOK_INFO *info;
do{
printf("请输入图书编号(最大%d个字符):", MAX_ID_LEN);
scanf("%s", book[index].id);
if( (info = search(book[index].id)) == NULL)
{
printf("图书编号不存在,请先进行图书信息录入,谢谢!\n");
break;
}
printf("请输入购进册数:");
scanf("%d", &num);
info->total = info->total + num;
getchar();
printf("是否继续录入?(Y or N):");
scanf("%c", &c);
if(c != 'Y' && c != 'y')
{
return;
}
}while(1);
}
void show_all()
{
/*显示所有的图书的信息格式如下
编号 名称 出版社 购进册数 进价 售出册数 售价
kj lk d 3 7.00 0 20.00
3 lk jk 6 3.00 0 66.00
*/
int i;
printf("编号\t名称\t出版社\t购进册数\t进价\t售出册数\t售价\n");
for(i = 0; i < index; i++)
{
printf("%4s\t%4s\t%6s\t% 8d\t%.2f\t% 8d\t%.2f\n",
book[i].id,book[i].name,book[i].press_name,book[i].total,book[i].buy_price,
book[i].sale_total,book[i].sale_price);
}
}
==============
基本上没怎么用到指针,另外指针也没那么可怕吧,只是search的时候返回图书编号的指针
功能描述的很清楚了,自己录入的时候注意就好了,没有做录入的判断
============================================================
/*
图书的数量和价格必须是数字,否则可能会出错
另外这个程序没有要求做出售图书的功能,从而售出册书始终为0
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <iostream>
using namespace std;
#define MAX_ID_LEN 20
#define MAX_NAME_LEN 40
#define MAX_PRESS_NAME_LEN 40
#define MAX_BOOK_KIND 1000 //书店最多销售图书种类
#define NULL 0
struct BOOK_INFO {
char id[MAX_ID_LEN+1]; //图书编号
char name[MAX_NAME_LEN+1]; //图书名称
char press_name[MAX_PRESS_NAME_LEN+1]; //出版社
int total; //购进册数
double buy_price; //购进价格
int sale_total; //卖出册数
double sale_price; //买出价格
};
BOOK_INFO book[MAX_BOOK_KIND];
int index = 0;
void init_book_shop()
{
memset(book, 0, sizeof(book));
}
void show_menu()
{
printf("------------------图书销售系统菜单------------------\n");
printf("----- 1.图书信息录入 -----\n");
printf("----- 2.进书处理 -----\n");
printf("----- 3.显示书库现状 -----\n");
printf("----- 4.退出 -----\n");
printf("----------------------------------------------------\n");
}
BOOK_INFO *search(char *id)
{
/*通过图书的id来查找图书,这里如果要用这个函数,则需传入你录入的图书的编号
*/
int i;
for(i=0; i<index; i++)
{
if ( 0 == strcmp(id, book[i].id) )
{
return &book[i];
}
}
return NULL;
}
void entering_book_info()
/*录入图书信息的函数
请输入图书编号(最大20个字符):
请输入图书名称(最大40个字符):
请输入出版社名称(最大40个字符):
请输入购进册数:
请输入图书进价:
请输入图书售价:
输入完后如果不输入Y或者y则停止录入图书信息
*/
{
char c, buf[128];
do{
if( index == MAX_BOOK_KIND)
{
printf("图书种类已经达到了最大值%d,无法继续添加\n", MAX_BOOK_KIND);
return;
}
printf("请输入图书编号(最大%d个字符):", MAX_ID_LEN);
scanf("%s", book[index].id);
if(search(book[index].id))
{
printf("图书编号已经存在,请重新输入!\n");
continue;
}
printf("请输入图书名称(最大%d个字符):", MAX_NAME_LEN);
scanf("%s",book[index].name);
printf("请输入出版社名称(最大%d个字符):", MAX_PRESS_NAME_LEN);
scanf("%s",book[index].press_name);
printf("请输入购进册数:");
scanf("%d", &(book[index].total));
printf("请输入图书进价:");
scanf("%s", buf);
book[index].buy_price = atof(buf);
printf("请输入图书售价:");
scanf("%s", buf);
book[index].sale_price = atof(buf);
getchar();
printf("是否继续录入图书?(Y or N):");
scanf("%c", &c);
index++;
book[index].sale_total = 0;
if(c != 'Y' && c != 'y')
{
return;
}
}while(1);
}
void stock_book()
{/*
进书管理
通过这个函数来购进已经录入过某种噢乖编号的图书,这样录入更方便
如果这个编号没有路如过,那么就会通过1也就是一条条的信息录入的方式录入图书信息
**/
char c;
int num;
BOOK_INFO *info;
do{
printf("请输入图书编号(最大%d个字符):", MAX_ID_LEN);
scanf("%s", book[index].id);
if( (info = search(book[index].id)) == NULL)
{
printf("图书编号不存在,请先进行图书信息录入,谢谢!\n");
break;
}
printf("请输入购进册数:");
scanf("%d", &num);
info->total = info->total + num;
getchar();
printf("是否继续录入?(Y or N):");
scanf("%c", &c);
if(c != 'Y' && c != 'y')
{
return;
}
}while(1);
}
void show_all()
{
/*显示所有的图书的信息格式如下
编号 名称 出版社 购进册数 进价 售出册数 售价
kj lk d 3 7.00 0 20.00
3 lk jk 6 3.00 0 66.00
*/
int i;
printf("编号\t名称\t出版社\t购进册数\t进价\t售出册数\t售价\n");
for(i = 0; i < index; i++)
{
printf("%4s\t%4s\t%6s\t% 8d\t%.2f\t% 8d\t%.2f\n",
book[i].id,book[i].name,book[i].press_name,book[i].total,book[i].buy_price,
book[i].sale_total,book[i].sale_price);
}
}
==============
基本上没怎么用到指针,另外指针也没那么可怕吧,只是search的时候返回图书编号的指针
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询