| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 995 人关注过本帖
标题:一个有关struct在C++和C中应用的问题
只看楼主 加入收藏
gang
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-28
收藏
 问题点数:0 回复次数:5 
一个有关struct在C++和C中应用的问题

学了一个月的C语言,前几个在一本书中抄了一个C的超市管理系统的程序,可是编译的时候出了点问题,试了多种方法最后免强能用,但仍有很多不明的地方,希望各路过的大侠能指点一二!
程序的片段是这样的:
#include<stdio.h>
#include<string.h>
#define MAX 20

……
……



int sum; /*用来记录商品数目*/


/*日期结构体类型*/
struct datetime
{ int year;
int month;
int date;
};

/*商品结构体类型*/
struct goods_type
{ int num;
char name[10];
char kind[10];
int amount;
int goods_up;
int goods_down;
int in_price;
int out_price;
int in_num;
struct datetime in_time;
struct datetime pro_time;
char factory[10];
int save_day;
int profit;
}goods[MAX]; /*存放MAX种商品记录的结构体数组*/

/*输入模块*/
input_message()
{ int i=0,s=MAX;
clrscr();
printf("\n\n 录入商品信息 (最多%d种)\n",s);
printf(" -------------------------------\n");
do
{printf("\n 第%d种商品",i+1);
printf("\n 商品号:");
scanf("%d",&goods[i].num);
if(goods[i].num==0) break;
printf("\n 商品名称:");
scanf("%s",goods[i].name);
printf("\n 商品类别:");
scanf("%s",goods[i].kind);
printf("\n 商品总量:");
scanf("%d",&godds[i].amount);
printf("\n 商品上限:");
scanf("%d",&goods[i].goods_up);
printf("\n 商品下限:");
scanf("%d",&goods[i].goods_down);
printf("\n 进货价格:");
scanf("%d",&goods[i].in_price);
printf("\n 销售价格:");
scanf("%d",&goods[i].out_price);
printf("\n 进货数量:");
scanf("%d",&goods[i].in_num);
printf("\n 进货日期(yyyy-mm-dd):");
scanf("%d%d%d",&goods[i].in_time.year,&goods[i].in_time.month,&goods[i].in_time.date);
printf("\n 生产日期(yyyy-mm-dd):");
scanf("%d%d%d",%goods[i].pro_time.year,%goods[i].pro_time.month,&goods[i].pro_time.date);
printf("\n 生产厂家:");
scanf("%s",goods[i].factory);
printf("\n 保质期:");
scanf("%d",&goods[i].save_day);
i++;
}while(i<MAX);
printf("\n --%d种商品信息输入完毕!--\n",i);
sum=i;
printf("\n 按任意键返回主菜单!");
bioskey(0);
}

但是用VC++编译的时候却出现了下面这样的问题
left of '.name' must have class/struct/union type
left of '.kind' must have class/struct/union type
left of '.out_prince' must have class/struct/union type
left of '.pro_time' must have class/struct/union type
left of '.year' must have class/struct/union type
left of '.pro_time' must have class/struct/union type
left of '.month' must have class/struct/union type
left of '.pro_time' must have class/struct/union type
left of '.date' must have class/struct/union type
left of '.save_day' must have class/struct/union type
left of '.num' must have class/struct/union type
left of '.name' must have class/struct/union type


最后又换了TC2。0也是出现了点问题,改用WIN—TC才解决问题,可是我就不是很明白,VC++不是也可以用来编译C的吗?怎么会出现这样的问题呢!
还有就是能不能告诉我那个bioskey(0)是作什么用的?是不是用来返回到主函数的?

搜索更多相关主题的帖子: struct int 商品 MAX 
2006-02-28 22:59
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
int bioskey(int cmd)
cmd=0 返回一个键盘值,如无键盘按下,一直等待。
cmd=1 查询键盘是否按下
0-无键按下,非0-有键按下
cmd=2 返回控制键状态,返回值保存在低8位中
B0 右边的shift键按下
B1 左边的shift键按下
B3 Ctrl键按下
B4 Alt键按下
B5 已打开Scroll Lock
B6 已打开Num Lock
B7 已打开Caps Lock
B8 已打开Insert

不同的编译器有少许的不同

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-28 23:08
gang
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-28
收藏
得分:0 
哦,谢谢了!
那是不是它每返回到主程序而且每返回一次都会再执行一次主程序啊?要不然怎么能够返回到主菜单呢?

一个来自华南师大通信工程的菜鸟,只学过一点学校教的C++和自学了一点C,大家不要笑他!哈哈……
2006-02-28 23:32
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
按下键返回主菜单,然后你再选择你需要进行的操作,要是不按键,就停在当前位置等待(默默地

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-28 23:36
gang
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-28
收藏
得分:0 
哦,原来是这样,知道了,谢谢了!
那上面那个struct有没有什么想法?

一个来自华南师大通信工程的菜鸟,只学过一点学校教的C++和自学了一点C,大家不要笑他!哈哈……
2006-02-28 23:49
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
这错误提示我也不明白~我没用过VC++  可能是由于编译器自己的特性造成的

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-28 23:55
快速回复:一个有关struct在C++和C中应用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015081 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved