标题:大一新手想做一个信息管理系统,文件的修改方面遇到难题。。。
只看楼主
zzzzzzzmy
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2018-6-9
结帖率:0
已结贴  问题点数:20 回复次数:1 
大一新手想做一个信息管理系统,文件的修改方面遇到难题。。。
主要想做一个健身会员信息管理系统
包含了三大模块
一是录入基本信息:会员号、姓名、身高体重(初始课程瑜伽、健身、游泳数量为0)
二是记录课程:根据会员号记录,其中有购买课程和消费课程,每消费一次相应课程减一
三是查询资料:根据会员号查询相关基本信息,包括各个课程所剩数量

求大触指导设计!谢谢!

以下是自己码的浅陋代码,错误很多但是头已经很大了,就是想说不是自己毫无思考就来求教的。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct member
{
    int ID;
    char name[20];
    double hight;
    double weight;
    int yoga;
    int jianshen;
    int swim;
}member;

void Readfile(member m[20])  //录入函数//
{
    FILE *fp;
    static int i=1;
    m[i].yoga=0,m[i].jianshen=0,m[i].swim=0;
    fp=fopen("D:\\file.txt","a");
    printf("请输入会员号   姓名   身高(m)  体重(kg)\n");
    scanf("%d%s%lf%lf",&m[i].ID,m[i].name,&m[i].hight,&m[i].weight);
    if(fp==0)
    {
        printf("ERROE\n");
        exit(1);
    }
    printf("\n注册成功!\n\n\n");
    fprintf(fp,"%d、%d  %s  %gm  %gkg %5d%5d%5d\n",i++,m[i].ID,m[i].name,m[i].hight,m[i].weight,m[i].yoga,m[i].jianshen,m[i].swim);
    fclose(fp);
}

void refer(member s[20])//查询函数//
{
    double BMI;double h;double w;
    int i;int num;
    printf("请输入身高、体重和会员号:\n");
    scanf("%lf %lf %d",&h,&w,&num);
    BMI=w/h/h;
    if(BMI<18.5)
    {
        printf("BMI=%lf   偏瘦\n",BMI);
    }
    else
    {
        if(BMI>23.9)
        {
            printf("BMI=%lf   偏胖\n",BMI);
        }
        else
        {
            printf("BMI=%lf   正常\n",BMI);
        }
    }
    FILE *fp;
    fp=fopen("D://file.txt","r");
    if(fp==0)
    {
        printf("file error\n");
        exit(1);
    }
    for(i=1;i<11;i++)
    {
        if(s[i].ID==num)
        {
            printf("瑜伽=%d   游泳=%d   健身=%d\n",s[i].yoga,s[i].swim,s[i].jianshen);
            break;
        }
    }
}
void purchase(member s[])  //购买函数//
{
   
    int a,k,num,i;   
    FILE *fp;
    fp=fopen("D:\\file.txt","r+");
    printf("----请输入您的会员号: ");
    scanf("%d",&num);
    if(fp==0)
    {
        printf("file error\n");
        exit(1);
    }
    do{
        printf("\n----请选择需要购买项目:\n");
        printf("\n~~~~~~~~~~~~~~~~~~~~~~~~\n");
        printf("     ****1.瑜伽****\n");
        printf("     ****2.游泳****\n");
        printf("     ****3.健身****\n");
        printf("       ***0退出***\n");
        printf("\n~~~~~~~~~~~~~~~~~~~~~~~~\n");
        do         //防止操作失误,误按情况//
        {
            scanf("%d",&a);
            if(a>3)
                printf("--错误输入,请重试:");
        }while(a>3);
        if(a==0)
            break;
        printf("\n----请输入购买数量:");
        scanf("%d",&k);
        switch(a)
        {
        case 1:for(i=1;i<20;i++)
               {
                   if(s[i].ID==num)
                   {  
                       s[i].yoga+=k;
                       printf("\n****购买成功******\n");
                       break;
                   }
               }break;
                  
               
            case 2:for(i=1;i<20;i++)
                   {
                       if(s[i].ID==num)
                       {
                           s[i].swim+=k;
                           printf("\n****购买成功******\n");
                           break;
                       }
                   }break;
            case 3:for(i=1;i<20;i++)
                   {
                       if(s[i].ID==num)
                       {
                           s[i].jianshen+=k;
                            printf("\n****购买成功******\n");
                           break;
                       }
                   }break;   
        }
    }while(a>0&&a<4);
    fprintf(fp,"%d、%d  %s  %gm  %gkg %5d%5d%5d\n",i,s[i].ID,s[i].name,s[i].hight,s[i].weight,s[i].yoga,s[i].jianshen,s[i].swim);
    fclose(fp);
}



void comsume(member s[])  //消费函数//
{
    int m,n;
    FILE *fp;
    fp=fopen("D:\\file.txt","a");
    printf("----请输入会员号:");
    scanf("%d",&m);
    printf("\n----请选择消费项目:\n");
    printf("\n~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("       ****1.瑜伽****\n");
    printf("       ****2.游泳****\n");
    printf("       ****3.健身****\n");
    printf("        ***0退出***\n");
    printf("\n~~~~~~~~~~~~~~~~~~~~~~~~\n");
    scanf("%d",&n);
    switch(n)
    {
    case 1:s[m].yoga-=1;
        break;
    case 2:s[m].swim-=1;
        break;
    case 3:s[m].jianshen-=1;
        break;
    case 12:s[m].yoga-=1,s[m].swim-=1;
        break;
    case 13:s[m].yoga-=1,s[m].jianshen-=1;
        break;
    case 23:s[m].swim-=1,s[m].jianshen-=1;
        break;
    case 123:s[m].yoga-=1,s[m].swim-=1,s[m].jianshen-=1;
        break;
    case 0:break;
    }
    printf("\n---消费成功!\n");
    fprintf(fp,"%d、%d  %s  %gm  %gkg %5d%5d%5d\n",m++,s[m].ID,s[m].name,s[m].hight,s[m].weight,s[m].yoga,s[m].jianshen,s[m].swim);
    fclose(fp);
}

void record(member s[])   //记录函数//
{
    int i;
    do
    {
        printf("请选择需要服务项目序号:\n");
        printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
        printf("  ****** 1.项目购买 ********\n");
        printf("  ****** 2.项目消费 ********\n");
        printf("        **0退出**\n");
        printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
        scanf("%d",&i);
        if(i==0)
            break;
        switch(i)
        {
          case 1:purchase(s);
               break;
          case 2:comsume(s);
               break;
          case 0:break;
        }
    }while(i>0&&i<3);
}

int main()
{
    int n;
    member mem[20];
    do
    {
    printf("请输入所需服务对应序号,并按回车键结束:\n");
    printf("\n");
    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    printf("^^1、*************录入信息*************^^\n");
    printf("^^2、*************信息查询*************^^\n");
    printf("^^3、*************信息记录*************^^\n");
    printf("^^4、*************退出程序*************^^\n");
    printf("^^                                     ^^\n");
    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    scanf("%d",&n);
    switch(n)
    {
    case 1: Readfile(mem);
        break;
    case 2:refer(mem);
        break;
    case 3:record(mem);
        break;
    }
    }while(n>0&&n<4);
    return 0;
}
搜索更多相关主题的帖子: int FILE printf break case 
2018-06-09 21:37
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
得分:20 
程序中只有写数据到文件,没有从文件读数据。
逻辑不合理。
2018-06-10 15:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487762-1-1.html




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

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