| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 271 人关注过本帖
标题:帮着看看怎么回事
只看楼主 加入收藏
向前看其
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-1-3
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
帮着看看怎么回事
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 50

struct product/*定义结构体类型*/
{
    char name[50];
    int num;
    char date[10];
    int sell;
    char time[10]; 
}pro[M];
/*函数原型说明*/
int menu_select();/*菜单选择select*/
int enter(struct product t[]);/*增加记录*/
int emp();/*清空数据库*/
int disp(struct product t[]);/*显示记录*/
int find(struct product t[]);/*查找记录*/
int del(struct product t[]);/*删除记录*/
int main()
{
    for(;;)
    {
        struct product pro[M];
        switch(menu_select())/*菜单选择*/
        {
        case 0:exit(0);/*正常退出*/
        case 1:emp();break;
        case 2:enter(pro);break;
        case 3:disp(pro);break;
        case 4:find(pro);break;
        case 5:del(pro);break;
        }
    }
    return(0);/*OK*/
}
/*清空数据库*/
int emp()
{
    FILE *fp;
    fp=fopen("42.txt","w");
    fclose(fp);
    return(0);
}
/*显示记录*/
int disp(struct product t[])
{
    int i,n=0;
    FILE *fp;
    fp=fopen("42.txt","rb");

    while(fp!=NULL)
    {
        fread(&t[n],sizeof(struct product),1,fp);
        n++;
    }
    printf("产品名称\t产品总量\t进货日期\t销售数量\t销售时间\n");
    for(i=0;i<n-1;i++)
    {
        
        printf("%s\t         %d\t         %s\t         %d\t         %s\n",pro[i].name,pro[i].num,pro[i].date,pro[i].sell,pro[i].time);
    }
    fclose(fp);
    return(0);
}
/*增加记录*/
int enter(struct product t[])
{
    int i,y,n;
    FILE *fp;
    printf("\n请输入这次要进货的产品数目:");
    scanf("%d",&n);
    printf("\n请输入此次进货产品的信息:\n");
    for(i=0;i<n;i++)
    {
        printf("产品名称:");scanf("%s",&pro[i].name);
        printf("产品总量:");scanf("%d",&pro[i].num);
        printf("进货日期:");scanf("%s",&pro[i].date);
        printf("销售数量:");scanf("%d",&pro[i].sell);
        printf("销售时间:");scanf("%s",&pro[i].time);
        printf("产品名称\t产品总量\t进货日期\t销售数量\t销售时间\n");
        printf("%s\t         %d\t         %s\t         %d\t         %s\n",pro[i].name,pro[i].num,pro[i].date,pro[i].sell,pro[i].time);
    }
    printf("是否保存这次记录(1/0):");
    scanf("%d",&y);
    if(y==1)
    {
        fp=fopen("42,txt","ab+");
        fwrite(&t[n],sizeof(struct product),1,fp);
        n++;
        fclose(fp);
    }
    return(0);
}
int del(struct product t[])
{
    char name[20];/*要删除产品的名称*/
    FILE *fp;
    int i=0,n=0,j=0;
    printf("输入要删除产品的记录:");
    scanf("%s",&name);
    fp=fopen("42.txt","rb");
    
    while(fp!=NULL)
    {
        fread(&t[n],sizeof(struct product),1,fp);
        n++;
    }
    fclose(fp);
    fp=fopen("42.txt","wb");
    while(i<=n)
    {   
        
        if(strcmp(name,pro[i].name)!=0)/*name 和 pro[i].name不相同*/
            fwrite(&t[i],sizeof(struct product),1,fp);/*将不同的pro[i].name放在42.txt文件中*/
        else
        {printf("\n******删除成功******\n");j=0;}
        i++;
    }
    fclose(fp);
    if(j==1)
        printf("没有找到要删除的记录\n");
    return 0;
}
int find(struct product t[])
{
    int i,n=0;
    char name[30];
    FILE *fp;
    printf("请输入要查找的产品名称:");
    scanf("%s",&name);
    fp=fopen("42.txt","r");

    while(fp!=NULL)
    {
        fread(&t[n],sizeof(struct product),1,fp);
        n++;
    }
    for(i=0;i<n;i++)
        if(strcmp(name,t[i].name)==0)
        {
            printf("产品名称\t产品总量\t进货日期\t销售数量\t销售时间\n");    
            printf("%s\t         %d\t         %s\t         %d\t         %s\n",pro[i].name,pro[i].num,pro[i].date,pro[i].sell,pro[i].time);
            break;
        }
    else
        printf("对不起,此数据库没有你要查找到产品记录");
        fclose(fp);
        return 0;
}
int menu_select()
{
    int c;
    printf("\n***************产品进销存管理系统***************\n\n");
    printf("                1.清空产品记录\n");
    printf("                2.增加产品记录\n");
    printf("                3.显示产品记录\n");
    printf("                4.查找查找记录\n");
    printf("                5.删除产品记录\n");
    printf("                6.退出程序\n");
    printf("***************************************************\n");
    do{
        printf("\n 请输入您的选项:");
        scanf("%d",&c);
    }
    while(c<0||c>5);
    
    return c;printf("\n您输入的选项错误,请重新输入:");
}


            


    




无法完全运行,帮忙看看怎么回事?
2011-01-03 21:40
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:5 
像这样的程序,不要一次把所有的函数写完,先写好一个,测试没有问题后再写下一个。/
如果要查错误,从入口函数 main开始, 按函数调用顺序逐个检查。

我就是真命天子,顺我者生,逆我者死!
2011-01-03 21:51
向前看其
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-1-3
收藏
得分:0 
我也看了很多遍,始终找不到缺什么,那里错。
2011-01-03 22:39
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
看是没用的   单步走  每一个函数跟进去  
把这程序调试出来 你还是自己来吧

                                         
===========深入<----------------->浅出============
2011-01-04 18:21
快速回复:帮着看看怎么回事
数据加载中...
 
   



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

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