| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 930 人关注过本帖, 1 人收藏
标题:能不能给我改改这个程序
只看楼主 加入收藏
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:12 
能不能给我改改这个程序
    我是第一次来这个论坛,我找了很多程序都没成功,你们能不能帮帮我啊?给我调试一下吧,谢谢拉。
   #include<stdio.h>
#include<ctype.h>      /*调用字符函数*/
#include<stdlib.h>
#include<conio.h>      /*通用输入输出库*/
#include<string.h>
#define M 1000
void menu();
void made();
void input();
void add();
void life();
void enter();
void browse();
void huo(int k);
void hedui(int k);
void menu1(int k);
void fetch(int k);
void change(int k);
void deposit(int k);
 void stat_one(int k);
void print_one(int j);
int search(char h[20]);
void search1();
int n=0;
 struct credicard         /*定义会员卡结构体*/
{  
 int number;
 char name[20];  
 char ID[20];
 char word[8];
 int flag;
 float account;
 int integal;
}card[M];
void menu()
{
  int v,w1;
  do
  {
   printf("\n\n\n\n");
   printf("\t\t <________________________THE MENU_______________________>\n");
   printf("\t\t||                    (1) 录 入 信 息                   ||\n");
   printf("\t\t||------------------------------------------------------||\n");   
   printf("\t\t||                    (2) 建 卡 操 作                   ||\n");
   printf("\t\t||------------------------------------------------------||\n");   
   printf("\t\t||                    (3) 帐 号 激 活                   ||\n");
   printf("\t\t||------------------------------------------------------||\n");
   printf("\t\t||                    (4) 帐 户 登 陆                   ||\n");
   printf("\t\t||------------------------------------------------------||\n");
   printf("\t\t||                    (5) 报 表 操 作                    ||\n");
   printf("\t\t||------------------------------------------------------||\n");
   printf("\t\t||                    (6) 查 询 会 员                   ||\n");
   printf("\t\t||------------------------------------------------------||\n");
   printf("\t\t||                    (7) 退 出                         ||\n");
   printf("\t\t||______________________________________________________||\n");
   printf("\n\n\t\t 请选择操作(1--7):< >\b\b");
   scanf("%d",&v);
   if(v<1||v>7)
   {
       printf("\n\n\t\t**********输 入 有 误 !************");
         w1=1;
       getchar();
   }
   else w1=0;
  }
  while(w1==1);
  switch(v)
  {
  case 1:input();break;
  case 2:made();break;    /*制作*/
  case 3:life();break;    /*激活*/
  case 4:enter();break;   /*登陆*/
  case 5:browse();break; /*报表*/
  case 6:search1();break;
  case 7:exit(0);             /*退出*/
  }
}
void input()
 {
  int i;
  printf("name : ");
  scanf("%s",&card[n].name);
  printf("ID : ");
  scanf("%s",&card[n].ID);
  printf("word : ");
  scanf("%s",&card[n].word);
  printf("account : ");
  scanf("%f",&card[n].account);
  printf("integal : ");
  scanf("%d",&card[n].integal);
  n++;  add();  menu();
 }
void main()
{
  printf("\n\n\n\n\n\n\n\n\n");
  printf("\t\t********************会员积分卡管理系统***********************\n");
  printf("\n\n\n\t\t 按任意键进入............");
  getchar();  menu();
 }
void made()                     /*建卡操作*/
{  int i;
  char h[20];
  do
 {
   printf("\n\n\t请输入要申请的号码:<\t\t\t>\b\b\b\b\b\b\b");
   scanf("%s",h);
   if(strlen(h)!=6)
   {
  printf("\n\n\n\t\t***************输入有误,请重新输入****************\n\n");
  continue;
  }
  for(i=0;i<n;i++)
  if(strcmp(card[i].ID,h)==0)
      {
       printf("\n\n\t\t***********该号码已经存在,请重新输入************\n\n");
       break;
      }
    }
    while(((strlen(h))!=6)||strcmp(card[i].ID,h)==0);
    card[n].number=n;
    strcpy(card[n].name,"***");
    strcpy(card[n].ID,h);
    strcpy(card[n].word,"000000");
    card[n].flag=0;
    card[n].account=0.00;
    card[n].integal=0;
    printf("\n\n\n\t\t********************制 卡 成 功 !**********************\n\n");
    print_one(n);
    n++;
    add();
    menu();
   }
    void print_one(int j)                /*显示消息*/
  {
      printf("\n|---------------|---------------|----------|----------|");
      printf("\n|      name     |        ID     | 存款     |  积分    |");
      printf("\n|---------------|---------------|----------|----------|");
      printf("\n|%15s|%15s|%10.2f|%10d|",
      card[j].name,card[j].ID,card[j].account,card[j].integal);
      printf("\n|---------------|---------------|----------|----------|");
   }
    void add()                          /*存款*/
   {
    int i;
    FILE *fp;
    if((fp=fopen("score.txt","wb"))==NULL)
    {
     printf("\t\t Can not open the file \n");
     return;
    }
    for(i=0;i<n;i++)
    {
     if(fwrite(&card[i],sizeof(struct credicard),1,fp)!=1)
     {
      printf("\t\t File write error \n");
      return;
     }
    }
     fclose(fp);
     printf("\n\n\n\t\t************成功保存!!!************");
   }
   void life()                          /*登陆*/
  {  int k=-1;
     char h[20];
     if(n==0)        
     printf("\n\n\t\t****************请 先 建 卡*********************\n");
     else
    {   printf("\n\n\t请输入卡号码:<\t\t\t>\b\b\b\b\b\b\b");
        scanf("%s",h);
        k=search(h);
        if(k==-1)   
        printf("\n\n\t\t\t*****************该号码不存在!****************\n");
        else
    {
      if(card[k].flag==1)
      printf("\n\n\t\t****************该卡已经激活!*****************\n");
      else huo(k);
    }
   }
    menu();
 }
int search(char h[20])
{  
  int i,k=-1;
  for(i=0;i<n;i++)
  if(strcmp(card[i].ID,h)==0)k=i;
  return(k);
 }
 void search1()
 {
  int i,k=-1,m=0;
  char f[20];
  printf("输入卡号 : ");
  scanf("%s",&f);
  for(i=0;i<n;i++)
  {
  if(strcmp(card[i].ID,f)==0)
   {
  k=i;
  print_one( k);
  m=0;
  break;   
  }
  else
  m=1;
  }
  if(m==1)
  printf("没有该卡号!\n");
  menu();
 }
void huo(int k)                    /*激活操作*/
{
  char m[20],p[8];
  int x,w2;
  do
  {
     printf("\n\n\t\t 是否激活该卡?  (1) 是     (2) 否  \n");
     printf("\n\t\t 请选择卡号:< >\b\b");
     scanf("%d",&x);
     if(x<1||x>2)
     {w2=1;getchar();
   }
     else w2=0;
}
while(w2==1);
if(x==1)
{
     printf("\n\n\t\t请输入姓名:<\t\t\t>\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");               
     scanf("%s",m);   
     strcpy(card[k].name,m);  
     printf("\n\n\t\t请输入六位数密码:<      >\b\b\b\b\b\b\b");   
     scanf("%s",p);      
     strcpy(card[k].word,p);         
     card[k].flag=1;         
     printf("\n\n\n\t\t********************激 活 成 功!**********************\n\n");      
     print_one(k);   
     add();
 }
}
 void enter()                            /*进入*/
{   
     int k=-1;  char h[20];  
     if(n==0)      
     printf("\n\n\t\t****************请 先 制 卡*********************\n");
else
{   
     printf("\n\n\t请输入会员卡号码:<\t\t\t>\b\b\b\b\b\b\b");
     scanf("%s",h);
     k=search(h);
     if(k==-1)
     printf("\n\n\t\t\t*****************该号码不存在!****************\n");
else
{     
     if(card[k].flag=0)
     printf("\n\n\t\t************该卡还未激活,请先激活!************\n");
else
hedui(k);
}  
}
menu();
}
void hedui(int k)                        /*验证核对*/
{
     int c=0,w3=0;
     char p[8];
do
{
     printf("\n\n\t\t*******请输入密码:<      >\b\b\b\b\b\b\b");
     scanf("%s",p);
     if(strcmp(card[k].word,p)!=0)
{
     printf("\n\n\t\t********密码不正确,请重新输入!**********\n");
     c++;
     continue;
}
else
{
     printf("\n\n\t\t**********密 码 正 确 !***********\n");
     w3=1;
     menu1(k);
}
}
while(w3==0&&c<3);
}
void menu1(int k)                       /*显示*/
{
        int v,w4;
     do
{
       printf("\n\n\n");
       printf("\t\t <_______________________THE MENU1_______________________>\n");     
       printf("\t\t||                    (1)                          ||\n");         
       printf("\t\t||------------------------------------------------------||\n");
       printf("\t\t||                    (2)                          ||\n");
       printf("\t\t||------------------------------------------------------||\n");
       printf("\t\t||                    (3)                          ||\n");           
       printf("\t\t||------------------------------------------------------||\n");
       printf("\t\t||                 (4) 修 改 密 码                   ||\n");               
       printf("\t\t||------------------------------------------------------||\n");
       printf("\t\t||                    (5) 返回主菜单                    ||\n");           
       printf("\t\t||______________________________________________________||\n");           
       printf("\n\n\t\t Choice your number(1--5):< >\b\b");
       scanf("%d",&v);
       if(v<1||v>5)
{
            w4=1;getchar();
}
else w4=0;
}
while(w4==1);
switch(v)
{  
       case 1:stat_one(k);break;  
       case 2:deposit(k);break;  
       case 3:fetch(k);break;  
       case 4:change(k);break;      
       case 5:menu();  
}
}
 void stat_one(int k)
{  
       printf("\n\n\t\t*************操 作 成 功 !***************");  
       print_one(k);  menu1(k);
}
void deposit(int k)
{
       float a=0.00;  
       printf("\n\n\t\t请输入存款金额:<\t\t>\b\b\b\b\b\b\b\b\b\b\b");
       scanf("%f",&a);
       card[k].account+=a;   
       printf("\n\n\t\t**********存 款 成 功 !***********");  
       print_one(k);  
       add();  
       menu1(k);
}  
void fetch(int k)                    /*消费*/
{  
       float b=0.00;   
       printf("\n\n\t\t请输入消费金额:<\t\t>\b\b\b\b\b\b\b\b\b\b\b");  
       scanf("%f",&b);  
       if(b>card[k].account)   
       printf("\n\n\t\t**********余 额 不 足 !*************");  
else
{      
       card[k].account-=b;     
       card[k].integal=b;     
       printf("\n\n\t\t**********谢 谢 惠 顾 !***********");     
       print_one(k);      
       add();
 }
 menu1(k);
}
void change(int k)                     /*修改密码*/
 {   
       char a[8],b[8];
       printf("\n\n\t\t请输入新六位数密码:<      >\b\b\b\b\b\b\b");
       scanf("%s",a);  
       printf("\n\t\t请再次输入新六位数密码:<      >\b\b\b\b\b\b\b");  
       scanf("%s",b);
 if(strcmp(a,b)==0)  
{
       printf("\n\n\t\t**********密码修改成功!*************");  
       add();  
}  
else  
       printf("\n\n\t\t两次密码输入不一致,密码修改失败!");  
       menu1(k);
}  
void browse()
{   
       int i;   
       if(n==0)     
       printf("\n\n\t\t**********无记录,请先制卡!***********");   
else   
{   
     printf("\n\n\t\t*************操 作 成 功 !**************\n");  
     printf("\n|---------------|---------------|----------|----------|");   
     printf("\n|          |           |    存款  |  积分    |");                 
     printf("\n|---------------|---------------|----------|----------|");   
  for(i=0;i<n;i++)                                                                     
      printf("\n|%15s|%15s|%10.2f|%10d|",card[i].name,card[i].ID,card[i].account,card[i].integal);  
  printf("\n|---------------|---------------|----------|----------|");
   }   
menu();
}  
       我们马上就要讲解了,涅米给我帮个忙,谢谢
搜索更多相关主题的帖子: void deposit include change 
2013-01-07 19:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:4 
祝楼主好运
2013-01-07 20:00
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
   大概要求本课题要求编写一个会员卡管理系统;
实现会员开户、销户、续款、消费等活动;
能够显示所有的会员信息及余额;
能查询会员的续款和消费记录;
能够根据积分情况进行不同折扣的处理。
   这些要求都得要,再添加一些功能也行。谢谢大哥哥们了。
2013-01-07 20:02
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
回复 2楼 zklhp
大哥,你就帮帮吧!我是真的调不过了。
2013-01-07 20:03
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
用数据结构。
2013-01-07 20:03
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:4 
贴这么长的代码,谁会想看?你把行号和错误信息贴出来也好啊。
2013-01-07 20:28
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:4 
此程序运行仅一个警告,没问题,好强大。

www.qunxingw.wang
2013-01-07 20:36
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
回复 7楼 qunxingw
我也是郁闷的,就是出不来啊!
2013-01-07 22:13
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
回复 7楼 qunxingw
你们有成功的,给我发个也行!好不?
2013-01-07 22:15
小丫头·远离
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-7
收藏
得分:0 
回复 2楼 zklhp
大哥,帮个忙呗
2013-01-07 22:15
快速回复:能不能给我改改这个程序
数据加载中...
 
   



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

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