| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1101 人关注过本帖
标题:课程设计——图书馆管理系统中的一个小麻烦 请高手指教下
只看楼主 加入收藏
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:11 
课程设计——图书馆管理系统中的一个小麻烦 请高手指教下
一般在一个小功能完成以后需要回到上一步,以进行其他操作,这个返回操作怎么办?

例如下面的片段,我想执行完密码修改pwChange后回到printWorkersList的界面怎么处理?


void pwChange()
{
     printf("请输入新密码:(密码长度不能低于2位多于15位)\n");
     scanf("%s",admin);
     while(strlen(admin)>15||strlen(admin)<2)
       {printf("密码长度不正确!请重新输入:");
        scanf("%s",admin);}
     FILE *fp;
     if((fp=fopen("E:/AdminPassword.txt","w"))==NULL)
       {printf("Password is Lost!!!\n");
        return;}     
     fprintf(fp,"%s",admin);
     printf("密码修改成功!请按\"Enter\"键退出!");
     getchar();
     getchar();
 }
  
void printWorkersList()
  {
      int accessnum=0;
      
      printf("***************************************\n");
      printf("*   职工入口------请选择服务方式:    *\n");
      printf("***************************************\n");
      printf("    1.书籍入库\n");
      printf("    2.查询书籍借阅情况\n");
      printf("    3.修改管理密码\n");
      printf("****-------------------------------****\n");
      printf("请输入数字(1~3):");
      scanf("%d",&accessnum);
      while(accessnum>3||accessnum<1)
        {printf("你输入的选择不正确!请重新输入:");
         scanf("%d",&accessnum);}        
      if(accessnum==1)
        PutBookIn();                //书籍入库
      else if(accessnum==2)
        {printBookInList();          //输出书籍借阅情况
         printf("请按\"Enter\"键退出!");
         getchar();
         getchar();}
      else if(accessnum==3)
        pwChange();                                                  //有待完善···        
   }
搜索更多相关主题的帖子: 课程 系统 麻烦 指教 
2010-08-27 20:00
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
我没完全理解楼主的意思,一般来说,你要执行完pwChange后回到printWorkersList函数,
那么只需在printWorkersList里调用pwChange函数就是了~
你不是已经这么做了吗,有问题?!
2010-08-27 22:17
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:0 
回复 2楼 erikyo
pwChange函数是没有返回值的,在调用函数里执行完了之后,直接就退出命令行界面了,我是想让程序执行完密码修改后回到调用函数print显示的那个界面
再来选择执行书籍入库或者查询书籍借阅情况
2010-08-27 23:14
大海009
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-8-24
收藏
得分:2 
要是两次输入密码错误怎么办呢   楼主不搞个循环吗
收到的鲜花
  • TGM3167504322010-08-28 12:24 送鲜花  1朵   附言:给了一个我没考虑到的方面的建议,谢了
2010-08-27 23:28
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:0 
以下是引用大海009在2010-8-27 23:28:15的发言:

要是两次输入密码错误怎么办呢   楼主不搞个循环吗
这个可以考虑下,最不好办的还是这个返回“上一步”的操作···-.-!
2010-08-27 23:51
xtfcu33
Rank: 2
等 级:论坛游民
帖 子:48
专家分:43
注 册:2010-4-26
收藏
得分:0 
void pwChange()
{
     printf("请输入新密码:(密码长度不能低于2位多于15位)\n");
     scanf("%s",admin);
     while(strlen(admin)>15||strlen(admin)<2)
       {printf("密码长度不正确!请重新输入:");
        scanf("%s",admin);}
     FILE *fp;
     if((fp=fopen("E:/AdminPassword.txt","w"))==NULL)
       {printf("Password is Lost!!!\n");
        return;}     
     fprintf(fp,"%s",admin);
     printf("密码修改成功!请按\"Enter\"键退出!");
     getchar();
     getchar();
}
其中,scanf("%s",admin)中少了“&”吧?
2010-08-28 09:42
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:0 
   printf("***************************************\n");
      printf("*   职工入口------请选择服务方式:    *\n");
      printf("***************************************\n");
      printf("    1.书籍入库\n");
      printf("    2.查询书籍借阅情况\n");
      printf("    3.修改管理密码\n");
      printf("    -1.退出\n")
      printf("****-------------------------------****\n");
      printf("请输入数字:");  
      for(scanf("%d",&accessnum);accessnum != -1; scanf("%d",&accessnum))
    {
      while(accessnum>3)
        {printf("你输入的选择不正确!请重新输入:");
         scanf("%d",&accessnum);}        
      if(accessnum==1)
        PutBookIn();                //书籍入库
      else if(accessnum==2)
        {printBookInList();          //输出书籍借阅情况
         printf("请按\"Enter\"键退出!");
         getchar();
         getchar();}
      else if(accessnum==3)
        pwChange();
   
     printf("***************************************\n");
      printf("*   职工入口------请选择服务方式:    *\n");
      printf("***************************************\n");
      printf("    1.书籍入库\n");
      printf("    2.查询书籍借阅情况\n");
      printf("    3.修改管理密码\n");
      printf("    -1.退出\n")
      printf("****-------------------------------****\n");
      printf("请输入数字:");  
    }                                   
2010-08-28 10:42
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:8 
对着贴出来的代码改的,没编译过。
主要就是想给你一个思路,做成一个大循环就可以了。
收到的鲜花
  • TGM3167504322010-08-28 12:23 送鲜花  3朵   附言:多谢指教,能做到我想要的效果了
2010-08-28 10:44
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:0 
以下是引用xtfcu33在2010-8-28 09:42:21的发言:

void pwChange()
{
     printf("请输入新密码:(密码长度不能低于2位多于15位)\n");
     scanf("%s",admin);
     while(strlen(admin)>15||strlen(admin)<2)
       {printf("密码长度不正确!请重新输入:");
        scanf("%s",admin);}
     FILE *fp;
     if((fp=fopen("E:/AdminPassword.txt","w"))==NULL)
       {printf("Password is Lost!!!\n");
        return;}     
     fprintf(fp,"%s",admin);
     printf("密码修改成功!请按\"Enter\"键退出!");
     getchar();
     getchar();
}
其中,scanf("%s",admin)中少了“&”吧?
谢谢,字符数组名前加不加“&”是一样的!
2010-08-28 12:04
feng1990
Rank: 2
等 级:论坛游民
帖 子:5
专家分:26
注 册:2010-8-28
收藏
得分:0 
直接写进主函数里面循环就是了!选择一个循环的退出口就可以了吧!调用之后要回到原先调用,那不是要构成死循环,还不就是自己写一个死循环啊!
2010-08-28 12:24
快速回复:课程设计——图书馆管理系统中的一个小麻烦 请高手指教下
数据加载中...
 
   



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

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