请大神帮忙。。。这是学校的期末课程设计,我是新手,实在不知道怎么改,。
程序是有关设备管理的,包括设备信息的录入 保存 浏览 查询等功能 运行环境C++6.0
下面是我自己编的,有错误,大神帮忙指点下。
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 10
struct shebei_type
{char name[50];
char No[20];
double price;
int date;
}stud[SIZE];
void main(){
int n;
void input();
void print();
void query();
do{
printf("*******************************\n");
printf("* 1 录入新数据 *\n");
printf("* 2 读取存档 *\n");
printf("* 3 设备信息查询 *\n");
printf("* 4 退出 *\n");
printf("*******************************\n");
printf("请输入功能项:");
scanf("%d",&n);
if(n==1){
input();
}
if(n==2){
print();
}
if(n==3){
query();
}
if(n==4){
return;
}
}while(1==1);
}
void input()
{int i;for(i=0;i<3;i++)
do{void save();
int i;
for(i=0;i<SIZE;i++)
{
printf("请输入第%d个设备的编号:\n",i+1);
scanf("%s",stud[i].No);
printf("请输入第%d个设备的名称:\n",i+1);
scanf("%s",stud[i].name);
printf("请输入第%d个设备的单价:\n",i+1);
scanf("%6.2f",&stud[i].price);
printf("请输入第%d个设备的生产日期:\n",i+1);
scanf("%d",&stud[i].date);
{ void save();
{FILE*fp;
int i;
if ((fp=fopen("stu.dat","w"))==NULL)
{printf("cannot open file\n");
return;
for(i=0;i<SIZE;i++)
if(fwrite(&stud[i],sizeof(struct shebei_type),1,fp)!=1)
fclose(fp);}
}}
}while(i<3);
}
void print()
{
{FILE*fp;
int i;
if((fp=fopen("stu.list"."r"))==NULL)
{printf("cannot open infine\n");
return;
}
for(i=0;i<SIZE;i++)
if(fread(&stud[i],sizeof(struct shebei_type),1,fp)!=1)
{if(feof(fp))
{fclose(fp);
return;
}
printf("file read error\n");
}
fclose(fp);
}
}
void query()
{{
void A();
void B();
void C();
void D();
int n;
do{
printf("*******************************\n");
printf("* 1 编号查询 *\n");
printf("* 2 名称查询 *\n");
printf("* 3 单价查询 *\n");
printf("* 4 日期查询 *\n");
printf("* 5 返回 *\n");
printf("*******************************\n");
printf("请输入功能项:");
scanf("%d",&n);
if(n==1){
A();
}
if(n==2){
B();
}
if(n==3){
C();
}
if(n==4){
D();
}
if(n==5){
return;
}
}while(1==1);}}
void A()
{int i;
char cpbh[10];
printf("请输入要查询的设备编号:\n");
scanf("%s",cpbh);
for(i=0;i<3;i++)
{
if(strcmp(cpbh,stud[i].No)==0)
{
printf("设备编号:%s\t设备名称:%s\t 价格:%6.2f\t生产日期:%d\t",stud[i].No,stud[i].name,stud[i].price,stud[i].date);
printf("\n");
}
}
}
void B()
{int i;
char cpbh[20];
printf("请输入要查询的设备名称:\n");
scanf("%s",cpbh);
for(i=0;i<3;i++)
{
if(strcmp(cpbh,stud[i].name)==0)
{printf("设备编号:%s\t设备名称:%s\t价格:%6.2f\t生产日期:%d\t",stud[i].No,stud[i].name,stud[i].price,stud[i].date);
printf("\n");
}
}
}
void C()
{int i;
double cpbh;
printf("请输入要查询的设备价格:\n");
scanf("%lf",&cpbh);
for(i=0;i<3;i++)
{
if(cpbh==stud[i].price)
{printf("设备编号:%s\t设备名称:%s\t价格:%6.2f\t生产日期:%d\t",stud[i].No,stud[i].name,stud[i].price,stud[i].date);
printf("\n");
}
}
}
void D()
{int i;
int cpbh;
printf("请输入要查询的设备生产日期:\n");
scanf("%d",&cpbh);
for(i=0;i<3;i++)
{
if(cpbh==stud[i].date)
{printf("设备编号:%s\t设备名称:%s\t价格:%6.2f\t生产日期:%d\t",stud[i].No,stud[i].name,stud[i].price,stud[i].date);
printf("\n");
}
}
}
--------------------Configuration: 课程 - Win32 Debug--------------------
Compiling...
课程.c
d:\microsoft visual studio\myprojects\课程.c(80) : error C2059: syntax error : 'type'
d:\microsoft visual studio\myprojects\课程.c(84) : error C2143: syntax error : missing ';' before 'type'
d:\microsoft visual studio\myprojects\课程.c(85) : error C2065: 'fp' : undeclared identifier
d:\microsoft visual studio\myprojects\课程.c(85) : error C2059: syntax error : 'string'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2059: syntax error : 'for'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2143: syntax error : missing '{' before '<'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2059: syntax error : '<'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2143: syntax error : missing '{' before '++'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2059: syntax error : '++'
d:\microsoft visual studio\myprojects\课程.c(89) : error C2059: syntax error : ')'
d:\microsoft visual studio\myprojects\课程.c(98) : error C2059: syntax error : '}'
执行 cl.exe 时出错.
课程.exe - 1 error(s), 0 warning(s)
[解决办法]
函数声明没有,全是基本语法错误。
那个报错点那个错误。自己动手。搞编程的
没有人能跳过调试和找bug。
[解决办法]
编译器都跟你说的明明白白
[解决办法]
为何感觉好高端,我们大1就考试一些简单的题
[解决办法]
跟着编译器的错误提示,一点一点修改你的语法错误先。编程人永远都跳不过这一步的。