| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:文件的读取,出现烫烫烫。而且 total vip is 人数也不对。求大神指点。。。 ...
取消只看楼主 加入收藏
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
文件的读取,出现烫烫烫。而且 total vip is 人数也不对。求大神指点。。。(ps.没学过文件)程序还没有完全做完。
程序代码:
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct vip
{
    long ID;    /*会员编号*/
    char name[10];          /*会员姓名*/
    long int phone;     /*会员电话号码*/
    int credits;    /*会员积分*/
}VIP;
int menu();/*欢迎界面函数*/
void input();/*会员信息输入函数*/
void Writetofile(VIP vip[],int n);/*往文件中保持数据*/
int inputn(VIP vip[]);/*返回值函数*/
int Readfromfile(VIP vip[]);/*从文件里读取数据*/
void Printvip(VIP vip[],int n);/*输出函数*/
int smallmenu();/*查询会员界面*/
void quit(); /*退出的函数说明*/
int vipIDsearch(VIP vip[],long j);/*按会员编号查找函数*/
int main()
{
    VIP vip[1000];
    int n,choice,smallchoice,pos;
    long j;
    choice=menu();
    while(1)
        {
            switch (choice)
            {
               case 1:/*会员信息输入*/
                    input(vip);
                    n=inputn(vip);
                    Writetofile(vip,n);
                    break;
               case 2:
                    Readfromfile(vip);
                    printf("===================================================\n");
                       printf("编号\t姓名\t电话号码\t积分\n");
                      Printvip(vip,n);
                    printf("\n=================================================\n");
                    break;
                  
              case 3:
                  smallchoice = smallmenu();
                      while(1)
                        {
                            switch (smallchoice)
                            {
                               case 1:/*按会员编号查询会员*/
               
                                    break;
                               case 2:
                                  
                                   break;
                              case 3:
                                  break;
                              case 0:
                                  printf("正在退出查询系统....\n正在进入首页界面.....\n\n\n");
                                  choice=menu();
                                  break;
                           
                            }
                           smallchoice = smallmenu();
                      }
                  break;
              case 4:
                   break;
              case 5:
              case 0:
                    quit();
                    break;
            }
           choice=menu();
        }
}
int menu()/*欢迎界面函数*/
{
    int choice;
    printf("*****************************************************************\n");
    printf("                    欢迎使用会员管理系统\n");
    printf("1.会员信息输入\n");
    printf("2.查询所有会员信息\n");
    printf("3.通过条件查询会员\n");
    printf("4.会员信息的修改或删除\n");
    printf("5.会员积分达到可领取礼品的统计结果\n");
    printf("0.退出系统\n");
    printf("****************************************************************\n");
    printf("\t请选择菜单号(0---5):"); 
    while( (!(scanf("%d",&choice)))|| (choice<0)||(choice>5))
    {
       
        printf("\n\t\t\a\a选择错误!!!!!!!!!!!请重新选择:"); 
       
        printf("******************************************************************\n"); 
        printf("                    欢迎使用会员管理系统\n");
        printf("1.会员信息输入\n");
        printf("2.查询所有会员信息\n");
        printf("3.通过条件查询会员\n");
        printf("4.会员信息的修改或删除\n");
        printf("5.会员积分达到可领取礼品的统计结果\n");
        printf("0.退出系统\n");
        printf("******************************************************************\n");
        printf("\t请选择菜单号(0---5):");
       
    }
   
    return choice;  /*返回值为choice*/
}
void input(VIP vip[])/*会员信息输入函数*/
{
    int i;
    i=0;
    while(vip[i].ID >=0)
    {
        i++;
        printf("请输入会员编号(输入0结束录入):");
        scanf("%ld",&vip[i].ID);
        printf("请输入会员姓名:");
        scanf("%s",&vip[i].name);
        printf("请输入会员电话号码:");
        scanf("%ld",&vip[i].phone);
        printf("请输入会员积分(新会员为0):");
        scanf("%d",&vip[i].credits);
    }

}
int inputn(VIP vip[])/*返回值函数*/
{
    int i,k;
    i=0;
    do{
        i++;
        printf("请输入会员编号(输入0结束录入):");
        scanf("%ld",&vip[i].ID);
        if(vip[i].ID==0)
            break;
        printf("请输入会员姓名:");
        scanf("%s",&vip[i].name);
        printf("请输入会员电话号码:");
        scanf("%ld",&vip[i].phone);
        printf("请输入会员积分(新会员为0):");
        scanf("%d",&vip[i].credits);
       
    }while(1);
    k=i;
    return k;
}

void Writetofile(VIP vip[],int n)/*往文件中保持数据*/
{
    FILE *fp;
    if((fp=fopen("vip.txt","w"))==NULL)
    {
        printf("Failure to open vip.txt!\n");
        exit(0);
    }
    fwrite(vip,sizeof(VIP),n,fp);
    fclose(fp);
}
int Readfromfile(VIP vip[])/*从文件里读取数据*/
{
    FILE*fp;
    int i;
    if((fp=fopen("vip.txt","r"))==NULL)/*以读方式打开文本文件*/
    {
        printf("打开文件失败!!");
        exit(0);
    }
    for(i=0;!feof(fp);i++)
    {
        fread(&vip[i],sizeof(VIP),1,fp);/*按数据块读文件*/
    }
    fclose(fp);
    printf("Total vip is %d.\n",i-1);
    return i-1;
   
}
void Printvip(VIP vip[],int n)/*输出函数*/
{  
    int i;
    for(i=0;i<n;i++)
    {
    printf("\t%ld\t%s\t%ld\t%d",vip[i].ID,vip[i].name,vip[i].phone,vip[i].credits);
    }
}
int smallmenu()/*查询会员界面*/
{
        int choice;
    printf("*****************************************************************\n");
    printf("                    请选择条件区域\n");
    printf("1.会员编号\n");
    printf("2.会员姓名\n");
    printf("3.电话号码\n");
    printf("0.退出查询系统\n");
    printf("****************************************************************\n");
    printf("\t请选择菜单号(0---3):"); 
    while( (!(scanf("%d",&choice)))|| (choice<0)||(choice>3))
    {
       
        printf("\n\t\t\a\a选择错误!!!!!!!!!!!请重新选择:"); 
       
        printf("*****************************************************************\n");
        printf("                    请选择条件区域\n");
        printf("1.会员编号\n");
        printf("2.会员姓名\n");
        printf("3.电话号码\n");
        printf("0.退出查询系统\n");
        printf("****************************************************************\n");
        printf("\t请选择菜单号(0---3):"); 
       
    }
   
    return choice;  /*返回值为choice*/
}
void quit() /*退出的函数说明*/

{
    printf("\n\t感谢使用商城会员管理系统,正在退出....\n");
    exit(0); 
} 
搜索更多相关主题的帖子: 而且 
2014-06-02 14:07
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
收藏
得分:0 
回复 3 楼 zhu224039
统计信息个数 怎么样才能以写入文件的信息数为准呢?
2014-06-02 19:29
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
收藏
得分:0 
回复 2 楼 wp231957
不会调试。求教
2014-06-02 19:33
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
收藏
得分:0 
回复 9 楼 kwxx
恩恩。我去试试。。。用fprint和fscanf能不能永久保存数据呢?就是,我打开了执行框,输入数据后。关闭。再打开数据还会在吗???我用的fwrite和fread实现不了//
2014-06-03 19:56
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
收藏
得分:0 
感谢各位
2014-06-04 19:56
北北ztz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-6-2
收藏
得分:0 
回复 13 楼 TonyDeng
解决咯。
2014-06-04 21:26
快速回复:文件的读取,出现烫烫烫。而且 total vip is 人数也不对。求大神指点 ...
数据加载中...
 
   



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

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