程序哪里错了?小弟的课件之「通讯录」!
#include <stdio.h>#include <dos.h>
#include <string.h>
struct student
{
char name[20];
char tel[16];
char qq[11];
char address[20];
char danwei[30];
}stu;
void enter();
void output();
void modify( );
void display();
void seach();
void delete();
void enter()
{
FILE *fp;
if((fp=fopen("xinxi.txt","w"))==NULL)
{
printf("Bu Neng Da Kai!\n");
getch();
exit(1);
}
printf("Shu Ru Xing Ming(seimei):");
gets(stu.name);
printf("\nShu Ru Dian Hua(dennwa):");
gets(stu.tel);
printf("\nShu Ru QQ(kyokyo):");
gets(stu.qq);
printf("\nShu Ru Di Zhi(jyuusyoroku):");
gets(stu.address);
printf("\nShu Ru Dan Wei(tanni):");
gets(stu.address);
fwrite(&stu,sizeof(stu),1,fp);
fclose(fp);
}
void seach()
{
int i;
char name;
printf("Shu Ru Xing Ming(seimei):");
scanf("%s",&name);
for(i=0;i<20;i++)
{
if(strcmp(name,stu.name)==0);
}
printf("Xingming=%s\ttel=%s\tqq=%s\naddress=%s\tdanwei=%s\t",stu.name,stu.tel,stu.qq,stu.address,stu.danwei);
getch();
}
load()
{
printf("\t\t\tAddress book[jyuusyoroku]");
printf("\n\n");
printf("Loading..");
sleep(1);
printf("..");
sleep(1);
printf("..");
sleep(1);
printf("..");
printf("OK\n");
sleep(1);
system("cls");
}
main()
{
int a[7]={1,2,3,4,5,6,7};
int i;
load();
printf("\t\t\tAddress book[jyuusyoroku]");
printf("\n\n\n");
printf("\t\t Qing Xuan Ze Gong Neng Hang\n");
printf("--------------------------------------------------------------------------------");
printf("1.Shu Ru 2.Xiu Gai 3.Xian Shi 4.Cha Xun 5.Shan Chu 6.Tui Chu\n");
printf("--------------------------------------------------------------------------------");
printf("Wo Yao Xuan Ze:");
scanf("%d",&i);
if(i==a[0])
{
enter();
}
if(i==a[4])
{
seach();
}
getch();
}
第一个输出项和第二个输出项连在一起了。。。怎么办,换成scanf就全部输出了。 printf("\t\t\tAddress book[jyuusyoroku]");
printf("\n\n\n");
printf("\t\t Qing Xuan Ze Gong Neng Hang\n");
printf("--------------------------------------------------------------------------------");
printf("1.Shu Ru 2.Xiu Gai 3.Xian Shi 4.Cha Xun 5.Shan Chu 6.Tui Chu\n");
printf("--------------------------------------------------------------------------------");
printf("Wo Yao Xuan Ze:");
scanf("%d",&i);
你问的是这一段的 1.shu ru 2.xiu gai 吗?
你直接用:
printf("--------------------------------------------------------------------------------");
printf(" 1.Shu Ru \n");
printf(" 2.Xiu Gai \n");
printf(" 3.Xian Shi \n");
printf(" 4.Cha Xun \n");
printf("--------------------------------------------------------------------------------");
类似这样的就可以了阿 人家问的是enter函数啦
你既然是“通讯录”,怎么会只有一个条目呢?
你需要一个“表”,来装很多的条目。至于使用什么数据结构,就自己想吧
数据结构的课设
难道你也是湖北工业大学的?? Deleting intermediate files and output files for project '3 - Win32 Debug'.
--------------------Configuration: 3 - Win32 Debug--------------------
Compiling...
3.cpp
f:\新建文件夹\3.cpp(17) : warning C4091: '' : ignored on left of 'void' when no variable is declared
f:\新建文件夹\3.cpp(17) : error C2143: syntax error : missing ';' before 'delete'
f:\新建文件夹\3.cpp(17) : error C2143: syntax error : missing ';' before 'delete'
f:\新建文件夹\3.cpp(24) : error C2065: 'getch' : undeclared identifier
f:\新建文件夹\3.cpp(25) : error C2065: 'exit' : undeclared identifier
f:\新建文件夹\3.cpp(48) : error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
f:\新建文件夹\3.cpp(49) : warning C4390: ';' : empty controlled statement found; is this the intent?
f:\新建文件夹\3.cpp(58) : error C2065: 'sleep' : undeclared identifier
f:\新建文件夹\3.cpp(66) : error C2065: 'system' : undeclared identifier
f:\新建文件夹\3.cpp(67) : warning C4508: 'load' : function should return a value; 'void' return type assumed
f:\新建文件夹\3.cpp(91) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.
3.exe - 1 error(s), 0 warning(s)
这就是错误
修改
#include <stdio.h>#include <dos.h>
#include <string.h>
#include<stdlib.h>
int i;
struct student
{
char name[20];
char tel[16];
char qq[11];
char address[20];
char danwei[30];
}stu[20];
void enter();
void output();
void modify( );
void display();
void seach();
void delete1();
void enter()
{
FILE *fp;
if((fp=fopen("xinxi.txt","w"))==NULL)
{
printf("Bu Neng Da Kai!\n");
getchar();
exit(0);
}
else
{
printf("Shu Ru Xing Ming(seimei):");
scanf("%s",stu[i].name);
printf("\n\nShu Ru Dian Hua(dennwa):");
scanf("%s",stu[i].tel);
printf("\nShu Ru QQ(kyokyo):");
scanf("%s",stu[i].qq);
printf("\nShu Ru Di Zhi(jyuusyoroku):");
scanf("%s",stu[i].address);
printf("\nShu Ru Dan Wei(tanni):");
scanf("%s",stu[i].address);
fwrite(&stu[i],sizeof(stu[i]),1,fp);
}
fclose(fp);
}
void seach()
{
int i;
printf("Shu Ru Xing Ming(seimei):");
for(i=0;i<20;i++)
{
scanf("%s\n",stu[i].name);
}
printf("Xingming=%s\ttel=%s\tqq=%s\naddress=%s\tdanwei=%s\t",stu[i].name,stu[i].tel,stu[i].qq,stu[i].address,stu[i].danwei);
getchar();
}
void main()
{
int a[7]={1,2,3,4,5,6,7};
printf("\t\t\tAddress book[jyuusyoroku]");
printf("\n\n\n");
printf("\t\t Qing Xuan Ze Gong Neng Hang\n");
printf("--------------------------------------------------------------------------------");
printf("1.Shu Ru 2.Xiu Gai 3.Xian Shi 4.Cha Xun 5.Shan Chu 6.Tui Chu\n");
printf("--------------------------------------------------------------------------------");
printf("Wo Yao Xuan Ze:");
scanf("%d",&i);
if(i==a[0])
{
enter();
}
if(i==a[4])
{
seach();
}
getchar();
}
这是我纠正的一些错误,你可以参考一下 LS的改的很清晰,不过,这里能不能给解释下?
void seach()
{
int i;
printf("Shu Ru Xing Ming(seimei):");
for(i=0;i<20;i++)
{
scanf("%s\n",stu[i].name);
}
printf("Xingming=%s\ttel=%s\tqq=%s\naddress=%s\tdanwei=%s\t",stu[i].name,stu[i].tel,stu[i].qq,stu[i].address,stu[i].danwei);
getchar();
}
这个函数!起到什么作用?循环20次?
页:
[1]
