编程论坛's Archiver

a65931536 发表于 2008-6-24 11:07

程序哪里错了?小弟的课件之「通讯录」!

#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就全部输出了。

木猪学编程 发表于 2008-6-24 11:18

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("--------------------------------------------------------------------------------");

类似这样的就可以了阿

StarWing83 发表于 2008-6-24 12:21

人家问的是enter函数啦
你既然是“通讯录”,怎么会只有一个条目呢?
你需要一个“表”,来装很多的条目。至于使用什么数据结构,就自己想吧
数据结构的课设
难道你也是湖北工业大学的??

hummhumm 发表于 2008-7-9 20:06

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)
这就是错误

hummhumm 发表于 2008-7-9 21:36

修改

#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();
}
这是我纠正的一些错误,你可以参考一下

独孤小梦 发表于 2008-7-9 21:45

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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.