| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:大神能帮帮看看这C语言题吗?超市会员管理系统
只看楼主 加入收藏
jianggehappy
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2018-4-22
结帖率:0
收藏
 问题点数:0 回复次数:1 
大神能帮帮看看这C语言题吗?超市会员管理系统
哪里错了
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
// 1111111.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


/*  HELLO.C -- Hello, world */
#include "string.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define N 1000
struct huiyuan    /*定义会员信息结构体类型*/
{
char num[100];    /*卡号*/
char name[20];    /*姓名*/
char ID[30];      /*身份证号*/
char tel[30];     /*电话号码*/
float fen;        /*积分*/
char g[10];       /*记录改卡是否已挂失*/
}huiyuan [100];
                /*自定义函数*/
void menu();         /*菜单函数*/
void enter();        /*输入函数*/
void search();       /*查找函数*/
void guashi();       /*挂失函数*/
void buy();          /*购书函数*/
void modify();       /*修改函数*/
void output();       /*显示所有数据函数*/
void add();          /*添加信息函数*/
void input(int i);
void printf_back();
void printf_out(int i);
void printf_face();
float buy_money(float add);
float Money();
int modify_data(int i,int n);
int save(int n);     /*保存数据函数*/
int load();          /*读取数据函数*/


void main()              /*主函数*/
{
menu();
getch();
}


void menu()                     /*菜单函数*/
{ 
int n,w1; 
system("cls");
do                     /*显示菜单*/
{ 
printf("\t\t================================================\n\n");
printf("\t\t================================================\n\n");
printf("\t\t ================= WELCOM!===================\n\n");
printf("\t\t *** 1 .............Enter new information ***\n\n");
printf("\t\t *** 2 .............................buy ***\n\n");
printf("\t\t *** 3 ........................Search or delete or modify ***\n\n");
printf("\t\t *** 4 ............................modify ***\n\n");
printf("\t\t *** 5 ............................guashi ***\n\n");
printf("\t\t *** 6 ............................xian shi ***\n\n");
printf("\t\t *** 7 ..............................add data ***\n\n");
printf("\t\t *** 8 ..............................Exit ***\n\n");
printf("\t\t================================================\n\n");
printf("\t\t================================================\n\n");
printf("\nChoose your number(1-8):[ ]\b\b");   /*选择菜单*/
scanf("%d",&n); 
if(n<1||n>8)
w1=1; 
else w1=0; 
} 
while(w1==1); 
switch(n) 
{ 
case 1:enter();break; 
case 2:buy();break;
case 3:search();break; 
case 4:modify();break;
case 5:guashi();break;
case 6:output();break;
case 7:add();break;
case 8:exit(0);
} }


void enter()            /*输入函数*/
{

int i,n; 
printf("How many people do you want to add(0-%d)?:",N-1);
scanf("%d",&n); 
printf("\n Enter data now\n\n"); 
for(i=0;i<n;i++)
{ 
printf("\n Input %dth people record.\n",i+1);
input(i);           /*调用子函数*/
}
if(i!=0){
save(n); }
printf_face();            /*显示刚刚输入的所有信息*/
for(i=0;i<n;i++)
{ 
printf_out(i);}
printf_back();
}


void search()     /*查找函数*/
{ 
int i,n,k,w1=1,w2,w3,w4,m,a; 
struct huiyuan p;
n=load(); 
do 
{ 
printf("\n\nWhich way do you want to choose? \n\t1).By ID  2).By num [ ]\b\b");
scanf("%d",&m); 
switch(m) 
{ 
case 1:                      /*按身份证查找*/
do 
{ k=-1; 
printf("\n\nEnter danwei that you want to search! ID.");
scanf("%s",p.ID);
printf_face(); 
for(i=0;i<n;i++) 
if(strcmp(p.ID,huiyuan[i].ID)==0)
{ k=i; 
printf_out(k);break;      /*显示该卡信息*/
} 
if(k==-1) 
{ printf("\n\nNO exist!please");     /*该卡不存在*/
printf("\n\nAre you again?\n\t1).again    2).NO and back     [ ]\b\b");
scanf("%d",&w1); 
if(w1==2) 
printf_back(); 
} 
} 
while(k==-1&&w1==1);break; 
case 2:                 /*按卡号查找*/
do 
{k=-1; 
printf("\n\nEnter num that you want to search! num."); 
scanf("%s",p.num); 
printf_face(); 
for(i=0;i<n;i++) 
if(strcmp(p.num,huiyuan[i].num)==0)
{k=i; 
printf_out(k);break;          /*显示该卡信息*/
} 
if(k==-1)                       /*该卡不存在*/
{printf("\n\nNO exist!please"); 
printf("\n\nAre you again?\n\t1).again    2).NO and back      [ ]\b\b");
scanf("%d",&w1); 
if(w1==2) 
printf_back(); 
} 
} 
while(k==-1&&w1==1);break; 
} 
w4=0;w3=0; 
if(k!=-1) 
{printf("\n\nWhat do you want to do?\n\t 1).Search 2).Modify 3).Delete  4).Back menu [ ]\b\b");
scanf("%d",&w2); 
switch(w2) 
{case 2:w3=modify_data(k,n);break; 
case 3:{printf("\nAre you sure?\n\t 1).Sure 2).No and back [ ]\b\b");/*删除函数*/
        scanf("%d",&w4);
        if(w4==1)
        for(a=k;a<n;a++)
       {strcpy(huiyuan[a].num,huiyuan[a+1].num);    /*删除信息*/
        strcpy(huiyuan[a].name,huiyuan[a+1].name);
        strcpy(huiyuan[a].ID,huiyuan[a+1].ID);
        strcpy(huiyuan[a].fen,huiyuan[a+1].fen);
        strcpy(huiyuan[a].g,huiyuan[a+1].g);
        strcpy(huiyuan[a].tel,huiyuan[a+1].tel);
        }break;}
}    if(w4==1)

if(w3==1||w4==1) 
{save(n); 
printf("\n\nSuccessful.^_^."); 
printf("\n\nWhant do you want to do? \n\t 1).Search another 2).Back [ ]\b\b" ); 
scanf("%d",&w2); 
} 
} 
} 
while(w2==1); 
menu(); 
}


void modify()          /*修改函数*/
{struct huiyuan p;
FILE *fp; 
int i,n,k,w0=1,w1,w2=0; 
n=load(); 
do 
{ 
k=-1; 
printf_face();           /*显示所有卡信息*/
for(i=0;i<n;i++) 
{if((i!=0)&&(i%10==0)) 
{printf("\n\nRemember NO.which needed modify.pass any key to contiune ..."); 
getch(); 
puts("\n\n"); 
} 
printf_out(i);
} 
do 
{printf("\n\nEnter NO.that you want to modify! NO.:"); /*选择序号*/
scanf("%s",p.num); 
for(i=0;i<n;i++) 
if(strcmp(p.num,huiyuan[i].num)==0)
{k=i; 
p=huiyuan[i];
} 
if(k==-1)printf("\n\nNO exist!please again"); /*判断是否存在该卡*/
}while(k==-1); 
printf_face(); 
printf_out(k);
w1=modify_data(k,n);  /*调用修改数据子函数*/
if(w1==1) 
{printf("\nSuccessful ^_^.\n\nAre you modify another ?\n\n\t 1).Yes 2).Back with save\t[ ]\b\b"); 
scanf("%d",&w0); 
w2=1; 
} 
else 
{w0=0; 
if(w2==1) 
huiyuan[k]=p;
} 
if(w0!=1&&w2==1) 
save(n);            /*保存信息*/
}while(w0==1); 
menu(); 
} 


void guashi()               /*挂失函数*/
{ int n,i,x;
char ID,a,num;
n=load();
printf("Enter 1).ID 2).num [ ]\b\b");
scanf("%d",&x);
switch(x)
{case 1:{printf("\nEnter ID /*用身份证挂失*/
        scanf("%s",ID);
        printf_face();
        for(i=0;i<n;i++)          /*查找相应信息*/
        if(strcmp(huiyuan[i].ID,ID)==0){
        printf_out(i);
        printf("\nAre suer(y/n):[ ]\b\b");
        scanf("%s",a);
        if(strcmp(a,"y")==0)   /*判断是否为挂失*/
        strcpy(huiyuan[i].g,"diu");
        }break;}
case 2:{printf("\nEnter num:");/*用卡号挂失*/
        scanf("%s",num);
        printf_face();
        for(i=0;i<n;i++)                    /*查找相应信息*/
        if(strcmp(huiyuan[i].num,num)==0){
        printf_out(i);
        printf("\nAre suer(y/n):[ ]\b\b");
        scanf("%s",a);
        if(strcmp(a,"y")==0)            /*判断是否为挂失*/
        strcpy(huiyuan[i].g,"diu");
        }
        break;
        }}
save(n);
printf_back();
}


void buy()          /*购书函数*/
{
float m,n;
int x;
  m=buy_money(n);
  printf("\nchoose:\t1)go on buying     2)end and back to menu\t [ ]\b\b");
  scanf("%d",&x);
  if(x==1)
  buy();
  else
  menu();
}


float Money()                    /*处理输入的购书总金额*/
{
  int i, n,a,b,c;
  float sum=0.0;
  float m[100];

  printf("\nEnter the number of books:");   /*输入所买书的本书*/
  scanf("%d",&n);
  for(i=0;i<n ;i++){
  printf("\nEnter %dth book's money:\n",i+1);  /*输入每本书的价格*/
    scanf("%f",&m[i]);
    sum=sum+m[i];
  }
  return sum;
}



float buy_money(float acc)          /*购书打折处理函数*/
{
int i,n,a,b,c;
char num;                           /*暂时存储每次购书金额*/
  n=load();
  acc=Money();
   printf("\nEnter card num:");
  scanf("%s",num);
  for(i=0;i<n;i++){
  if(strcmp(huiyuan[i].num,num)==0){
  a=i;
  break;
  }
  }

 if(i==n){                                        /*判断是否为会员*/
  printf("\nthis card is no exist!!!");
  printf("\nAll books worth %.2f. \n1)buy again.  2)add a card.  3)back to menu.  [ ]\b\b",acc);
  scanf("%d",&c);
  do{if(c==1)buy();
  if(c==2)add();
  if(c==3)menu();
  }while(c>=1&&c<=3);
  }else{
  printf_face();                           /*显示该卡信息*/
  printf_out(a);
  printf("\nAll books worth %.2f ",acc);
  if(strcmp(huiyuan[a].g,"diu")!=0){       /*判断是否已挂失*/
  huiyuan[a].fen=huiyuan[a].fen+acc;
  if(huiyuan[a].fen>=5000)  {acc=acc*0.80; printf("<80%>discount");}/*打折处理*/
    else if(huiyuan[a].fen>=2000) {acc=acc*0.90;                     printf("   <90%>discount");}
      else if(huiyuan[a].fen>=1000) {acc=acc*0.95;                   printf("   <95%>discount");}
   printf("\nShould pay total money:%.2f",acc);
   save(n);
  return acc;
  }else{
  printf("\n1)back to menu.    2)search.    [ ]\b\b");
  scanf("%d",&b);
  if(b==2)search();
  else menu();}
  }}


int modify_data(int i)     /*修改数据的子函数*/
{int c,w1; 
do 
{puts("\nmodify by=>\n\n 1).num2).name3).ID4).telephone\t[ ]\b\b");/*选择要修改的内容*/
printf("Which you needed?:[ ]\b\b");
scanf("%d",&c); 
if(c>4||c<1)
{puts("\nChoice error!Please again!"); 
getchar(); 
} 
}while(c>4||c<1);
do 
{switch(c)                        /*修改相应信息*/
{ 
case 1:printf("num:");scanf("%s",huiyuan[i].num);break;
case 2:printf("name:");scanf("%s",huiyuan[i].name);break;
case 3:printf("ID:");scanf("%s",huiyuan[i].ID);break;
case 4:printf("tel:");scanf("%s",huiyuan[i].tel);break;
}
puts("\nNow:\n");         /*显示刚修改的信息*/
printf_face(); 
printf_out(i);
printf("\nAre you sure?\n\n\t 1).Sure 2).No and remodify 3).Back without save in this time [ ]\b\b"); 
scanf("%d",&w1); 
} 
while(w1==2); 
return(w1); 
} 


void add()            /*添加信息函数*/
{ 
int i,n,m,k; 
FILE*fp; 
n=load(); 
printf("How many people are you want to add(0-%d)?:",N-1-n);/*输入要添加的人数*/
scanf("%d",&m); 
k=m+n; 
for(i=n;i<k;i++)                         /*依次输入信息*/
{
printf("\nInput %dth people record.\n",i-n+1 ); 
input(i); 
}
printf_face();                        /*显示刚输入的信息*/
for(i=n;i<k;i++){

 printf_out(i);

 }
if((fp=fopen("Pro.txt","ab"))==NULL) 
{ 
printf("cannot open file\n"); 
} 
for(i=n;i<k;i++)                  /*保存数据*/
if(fwrite(&huiyuan[i],sizeof(struct huiyuan),1,fp)!=1)
printf("file write error\n"); 
fclose(fp);
printf_back(); 
} 


void output()                          /*显示所有数据函数*/
{

 int i,n,x;
char pa;
n=load();
  clrscr();
  printf("Enter password:\n");         /*输入密码*/
  gets(pa);
  while(strcmp(pa,"12345")!=0){
  clrscr();
  printf("Enter password again:");
  gets(pa);

  }
  clrscr();
  printf_face();               /*显示所有信息*/
  for(i=0;i<n;i++){
    printf_out(i);
    }
    printf("\n\n1)back to menu.  2)buy.  3)search and delete.   4)modify.\t[ ]\b\b");
    scanf("%d",&x);
    switch(x){
    case 1:menu();break;
    case 2:buy();break;
    case 3:search();break;
    case 4:modify();break;
    default:menu();
    }}


int save(int n)               /*保存数据函数*/
{FILE *fp; 
int i; 
if((fp=fopen("Pro.txt","wb"))==NULL) 
{printf("\nCannot open file\n"); 
return NULL; 
} 
for(i=0;i<n;i++) 
if(huiyuan[i].num!=0)
if(fwrite(&huiyuan[i],sizeof(struct huiyuan),1,fp)!=1)
printf("file write error\n"); 
fclose(fp); 
} 


int load()                      /*读取数据函数*/
{FILE *fp; 
int i; 
if((fp=fopen("Pro.txt","rb"))==NULL) 
{printf("\nCannot open file\n"); 
return NULL; 
} 
for(i=0;!feof(fp);i++) 
fread(&huiyuan[i],sizeof(struct huiyuan),1,fp);
fclose(fp); 
return(i-1); 
}  


void input(int i)           /*输入数据的子函数*/
{ 
int k,y;
long x;
  randomize();
  x=random(32767);             /*随机产生卡号*/
  ltoa(x,huiyuan[i].num,10);
for(k=0;k<i;k++){
if(strcmp(huiyuan[k].num,huiyuan[i].num)==0)
  x=random(32767);
  ltoa(x,huiyuan[i].num,10);
}
printf("name:");                 /*输入姓名*/
scanf("%s", huiyuan[i].name) ;
printf("ID:");
scanf("%s",huiyuan[i].ID);      /*输入身份证*/
printf("telephone:");
scanf("%s",huiyuan[i].tel);    /*输入电话号码*/
huiyuan[i].fen=0.0;            /*积分初始值为0.0*/
}


void printf_back()          /*用于调用其他函数*/
{ 
int j,w; 
printf("\n\n\tSuccessful!^_^\n\n");
printf("What do you want you to continue to do?\n\n\t1).search or modify\t2).Back to menu.\t3).add data     [ ]\b\b");
scanf("%d",&w); 
if(w==1) 
search();
if(w==3)
add();
if(w!=1&&w!=3)
menu();
}

void printf_out(int i)  /*显示信息函数*/
{
if(strcmp(huiyuan[i].g,"diu")==0)
printf("%s card yi gua shi!!!\nyou can't use it!!!\n",huiyuan[i].num);
else
printf("%d%8s%15s%15s%16s%15f\n",i+1,huiyuan[i].num,huiyuan[i].name,huiyuan[i].ID,huiyuan[i].tel,huiyuan[i].fen);

}

void printf_face()       /*显示信息表头*/
{
printf("\n xuhao   num         name        ID        telephone     jifen \n");
}
搜索更多相关主题的帖子: int num 函数 printf scanf 
2018-06-29 00:54
jianggehappy
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2018-4-22
收藏
得分:0 
错误太多了,能帮我改改吗,感谢!
2018-06-29 00:55
快速回复:大神能帮帮看看这C语言题吗?超市会员管理系统
数据加载中...
 
   



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

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