QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 569|回复: 3

救命亚,那位大哥帮帮我

[复制链接]
发表于 2004-1-10 09:40:15 | 显示全部楼层 |阅读模式
老师布置了一个作业题
题目是:
    建立一个链表,其中每个结点都是一个结构,这是一个关于商店里每个商品的信息
构成的结构,内容包括商品的名字,商品的编号,商品的品牌,商品的买入价,商品的
卖出价,商品在商店里的库存量,每个结构的最后一个成员是指针域指向下一个结点存
放首地址。这个链表可以随时向里添加商品,还可以根据商品的编号或商品的名字来排
序并显示,可以根据商品编号删除相应的商品。这个链表要以文件的形式存放起来,每
次使用这个程序时都会先把存放在文件里的内容以链表的形式读入内存,经过对这个链
表的一系列操作后,再把这个修改过的链表存回原来的文件中。如果出现错误或特殊情
况都会给出相应的提示,并且可以在不退出程序的情况下继续运行,主要是防止数据的
丢失。

附件里是一个自己编的C++程序,形式差不多,虽然可以编译成可执行文件,但是和要
求差太大,并且没有按名字排序的功能。
这些商品信息组成的结构只能用链表的方式来使用,而不可以用结构数组。
我做了一个,但是不是很理想,用c++来做
那位大哥能帮我做一个,我实在是没有办法了
我的qq在线等274828361

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2004-1-11 23:05:48 | 显示全部楼层

:neutral:
回复

使用道具 举报

发表于 2004-1-14 18:24:31 | 显示全部楼层
there are so many faults in your program.
do you think your program can be run???

after i help you write one functin,i can't help stopping.

#include <iostream.h>
struct goods
{
    char goods_name[20];
    int goods_number;
    char goods_sign[20];
    float input_price;
    float output_price;
    struct goods *next;
};

struct goods creat()
{
    FILE* fp1;
    struct goods *p_head,*p_temp;

    p_head=NULL;

    if((fp1==fopen("data.txt","r"))==NULL)
    {
        cout&lt;&lt;"open data.txt failed"&lt;&lt;endl;
        fclose(fp1);
        return(p_head);
    }

    int num=i=0;
    do{
        p=(struct goods)malloc(sizeof(struct goods));
        num=fread(p_temp,sizeof(struct goods),1,fp1);
        if(num&lt;0)
        {
            cout&lt;&lt;"read data.txt failed"&lt;&lt;endl;
            fclose(fp1);
//            exit(1);
            return(p_head);
        }
        if(i==0)
        {
            p_head-&gt;next=p;
            i++;
            continue;
        }
        p_temp-&gt;next=p_head-&gt;next;
        p_head-&gt;next=p_temp;
    }while(num!=0)

    fclose(fp1);
    return(p_head);
}
回复

使用道具 举报

发表于 2004-1-14 18:43:49 | 显示全部楼层
#include
struct goods
{
char goods_name[20];
int goods_number;
char goods_sign[20];
float input_price;
float output_price;
struct goods *next;
};

struct goods creat()
{
FILE* fp1;
struct goods *p_head,*p_temp;

p_head=NULL;

if((fp1==fopen("data.txt","r"))==NULL)
{
cout&lt;&lt;"open data.txt failed"&lt;&lt;endl;
fclose(fp1);
return(p_head);
}

int num,i;
num=i=0;
do{
p_temp=(struct goods*)malloc(sizeof(struct goods));
num=fread(p_temp,sizeof(struct goods),1,fp1);
if(num&lt;0)
{
cout&lt;&lt;"read data.txt failed"&lt;&lt;endl;
fclose(fp1);
// exit(1);
return(p_head);
}
if(i==0)
{
p_head-&gt;next=p;
i++;
continue;
}
p_temp-&gt;next=p_head-&gt;next;
p_head-&gt;next=p_temp;
}while(num!=0);

fclose(fp1);
return(p_head);
}
//in fact ,if you write code by c++,you should full use these features of c++
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 00:53 , Processed in 0.080418 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表