| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 354 人关注过本帖
标题:程序有误,麻烦高手看一下
只看楼主 加入收藏
猎豹
Rank: 1
来 自:河南
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-4-10
结帖率:0
收藏
 问题点数:0 回复次数:0 
程序有误,麻烦高手看一下
#include<fstream>
#include<iomanip>
#include<iostream>
#include<cstdlib>
#include<conio.h>
bool namepanduan(char n[20]);
bool coderight(char cd[20]);
void denlu(char name[20],char code[20]);
int wenjian();
using namespace std;

struct yuangon
{
   char name[20];
   char code[20];
};
yuangon y;
void read(yuangon y[],int size)
{  
      ifstream file;
      file.setf(ios::fixed);
      file.setf(ios::showpoint);
      file.precision(2);
      file.open("yuangon.dat",ios::in|ios::binary);
      if(!file)
      {
         cout<<"文件打开失败!\n";
         system ("pause");
         exit(1);
         //xit(1)是指整个程序的退出
         //return是指一个函数的退出
      }
      for(int m=0;m<size;m++)
      {
             file.read((char*)&y[m],sizeof(y[m]));
      }
      file.close();
}/**/
bool namepanduan(char n[20])
//判断该账户是否重复
{
   int renshu=2;  
   int xiangtong=0;
   yuangon y[renshu];
   read(y,renshu);
   //将所有账户资料读入数组s[renshu]中
   for(int i=0;i<renshu;i++)
   {
      if(strcmp(y[i].name,n)==0)
      //如果y[i].name等于n返回0
      {
         xiangtong=1;
         break;
      }   
   }
   return xiangtong;   
}
bool coderight(char cd[20])
//判断密码是否正确
{
    int zongshu=2;
    yuangon y[zongshu];
    read(y,zongshu);
    //将所有账户资料读入数组y[zongshu]中
    for(int i=0;i<zongshu;i++)
    {
        if(strcmp(y[i].code,cd)!=0)
        //密码不相同,返回假  
          return 0;
        else
          return 1;
        break;         
    }
}
int wenjian()
{

yuangon y[2]={{"wanglin","874034509"},
              {"liming","9745669963"}};
  ofstream file("yuangon.dat",ios::out|ios::binary);
  //将数据写入文件
  for(int i=0;i<2;i++)               
  {
     file.write((char*)&y[i],sizeof(y[i]));
  }
  file.close();  
  return 0;   
void denlu(char name[20],char code[20])
{  
  cout<<"请输入你的姓名和密码开始工作\n" ;
  cout<<"姓名:";
  cin>>name;
  while(!namepanduan(name))
  //有无该账户
  {
      cout<<"账户中无此姓名,请核对后重新输入\n";
      cin>>name;
  }
  cout<<"请输入你的密码:\n";
  int i=-1;
  do
  {
     i++;
     code[i]=getch();
     putch('*');
  }while(code[i]!=13);
  //13表示回车
  code[i]=0;
  //字符串结束标  
  while(strcmp(code,"q")!=0&&coderight(code)==0)
  //密码正确返回真
  {
      cout<<"你的密码不正确,请重新输入密码或键入“q”:\n";
      int i=-1;
      do
      {
         i++;
         code[i]=getch();
         putch('*');
      }while(code[i]!=13);
      code[i]=0;
      //字符串结束标
  }//密码正确或者输入"q"时退出while循环,否则继续密码验证               
  if(coderight(code)==1)
  // 密码正确进入并进入二级菜单
     cout<<"输入正确进入二级菜单 \n";
  if(strcmp(code,"q")==0)  
  {
     system ("cls");  
     cout<<"输入“退出”放弃登录\n";
     return;
  }
}
int main()
{
    wenjian();
       denlu();
       system("pause");
       return 0;
}
搜索更多相关主题的帖子: 有误 麻烦 
2010-05-17 22:24
快速回复:程序有误,麻烦高手看一下
数据加载中...
 
   



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

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