| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 394 人关注过本帖
标题:帮忙看一下这代码,问题出在哪了?要求是从文件导入,然后进行相应的操作
只看楼主 加入收藏
Gavintop
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-1-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
帮忙看一下这代码,问题出在哪了?要求是从文件导入,然后进行相应的操作
#include<stdio.h>
#include<stdlib.h>
struct student
{
    int num;
    char name[10];
    struct student *next;
};

int x;
void Add();
void Delete();
void Modify();
void Query();
struct student *pnew,*tail,*head,*p;
int main()
{
    FILE*fp1;
    FILE*fp2;
    p=(struct student*)malloc(sizeof(struct student));
    if((fp1=fopen("C:\\Users\\dell\\Desktop\\1.txt","r"))==NULL)
    {
        printf("打开错误");exit(0);
    }
    if((fp2=fopen("C:\\Users\\dell\\Desktop\\2.txt","w"))==NULL)
    {
        printf("打开错误");exit(0);
    }
    while((fscanf(fp1,"%d %s",&p->num,p->name))!=EOF)
    {
        printf("%d %s\n",p->num,p->name);
        
    }printf("初始化.........\n");
    char ch[6];
    scanf("%s",&ch);
    while(ch[0]!='E')
    {
        switch(ch[0])
        {
            case 'A':Add();break;
            case 'D':Delete();break;
            case 'M':Modify();break;
            case 'Q':Query();break;
        }
    }
    if(ch[0]=='E')
    {
        fprintf(fp2,"%d %s",pnew->num,pnew->name);
        fclose(fp1);
        fclose(fp2);
    }
    return 0;
}
void Add()
{
    printf("添加信息:");
    pnew=(struct student*)malloc(sizeof(struct student));
    pnew->next=NULL;   
    scanf("%d %s",&pnew->num,pnew->name);
    if(head==NULL)
    {head=pnew;return ;}
    else
    tail->next=pnew;
    tail=pnew;
   
   
}
void Delete()
{
    struct student *h,*d;
    printf("输入要删除的学号");
    scanf("%d",&x);
    if(head->num==x)
    {
       head=head->next;   
    }
    d=h=head;
    while(h->next!=NULL)
    {
        if(h->num==x)
        {
            d->next=h->next;
        }
        d=h;
        h=h->next;
    }
        printf(" 输入错误,请重新输入");
        Delete();
}
void Modify()
{
    struct student *H;
    printf("输入要修改的学生学号");
    scanf("%d",&x);
    H=head;
    while(H!=NULL)
    {
        if(H->num==x)
        {
            printf("请输入修改信息");
            scanf("%d %s",&H->num,H->name);
        }
        H=H->next;
    }
    printf("学生信息不存在,重新输入");
    Modify();
}
void Query()
{
    struct student *H;
    H=head;
    printf("输入要查询的学生学号");
    scanf("%d",&x);
    while(H!=NULL)
    {
        if(H->num==x)
        printf("%d &s",H->num,H->name);
    }
    printf("学生信息不存在,重新输入");
    Query();
}
搜索更多相关主题的帖子: void dell Desktop include Users 
2013-01-03 00:35
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
建议看看链表操作的内容

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-01-03 17:58
朱三哥
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:311
专家分:359
注 册:2012-12-11
收藏
得分:6 
同意上面的
自己看书才是王道
这理论理解的缺胳膊断腿的,然后就动手写代码
程序运行不过去
算法在逻辑上出现错误等 等

情况的出现, 都应该这么去回答你

哥,破你无线很难的,不要老是改,少看路由器上的灯,你会死啊
2013-01-03 18:01
Gavintop
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-1-3
收藏
得分:0 
嗯,其实看了很多次的
2013-01-04 17:26
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:10 
建议楼主一段一段的编写程序
每做完一个功能就检查一次
不然在做较大的程序时一点编译一下子就出现上百个错误,很让人崩溃的啊...

I have not failed completely
2013-01-06 11:23
快速回复:帮忙看一下这代码,问题出在哪了?要求是从文件导入,然后进行相应的操 ...
数据加载中...
 
   



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

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