| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:自己写的一个:个人信息管理程序《试试吧!——我很菜!》
只看楼主 加入收藏
菜豆王子
Rank: 2
等 级:论坛游民
帖 子:44
专家分:96
注 册:2009-11-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
自己写的一个:个人信息管理程序《试试吧!——我很菜!》
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
/*
注释:
本程序运行时包括:信息文件为information.c和权限文件Permissions.c
information.c文件自己建立一个空文件,然后程序中有添加人物信息的操作,按步骤操作!
Permissions.c文件自己建立,文件格式:
菜豆王子//姓名
administrator//权限//administration为管理员用户;其他的任何权限都不能操作其中的一些操作!
nihao//密码
这些可以自己添加;

程序中用了多个goto语句!是为了使用方面;平时不提倡使用goto语句;
由于知识有限做的有点粗糙,请见谅!
添加权限操作
{
   权限文件Permissions.c
   用户,密码,权限;
}
*/
FILE *f1,*f2;//信息文件指针
char pd;//判断变量
int jl;//记录密码输入次数
struct inform
{
   
    char name[20];//姓名
    char age[10];//年龄
    char birthday[20];//生日
    char idcard[30];//身份证号
    char sex[10];//性别
    char sub[100];//专业
    char qq[10];//QQ号
    char number[20];//学号
    int pdx;//数据标签:判断数据是否可用;
}inf;//个人信息;
struct people
{
    char name[20];
    char qx[200];
    char password[100];
}p;//权限

//***********************************************************保存操作********************************************
void save()
{
    printf("请输入您所要添加的人物信息\n");
    f1=fopen("information.c","a+");
    printf("姓名:");
    scanf("%s",&inf.name);
    printf("年龄:");
    scanf("%s",&inf.age);
    printf("生日:");
    scanf("%s",&inf.birthday);
    printf("身份证号:");
    scanf("%s",&inf.idcard);
    printf("性别:");
    scanf("%s",&inf.sex);
    printf("专业:");
    scanf("%s",&inf.sub);
    printf("QQ号:");
    scanf("%s",&inf.qq);
    printf("学号:");
    scanf("%s",&inf.number);

    printf("输入完毕!");
gc5:
    printf("是否保存?Y/N:");
    fflush(stdin);
    pd=getchar();
    if (pd=='Y')
    {
        inf.pdx=1;
        fprintf(f1,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%d\n",inf.name,inf.age,inf.birthday,inf.idcard,inf.sex,inf.sub,inf.qq,inf.number,inf.pdx);
        printf("保存完毕!\n");
    }
    else if (pd=='N') printf("文本没有保存!\n");
         else
         {
             printf("输入有误,返回重新选择!");
             goto gc5;
         }
   
    fclose(f1);
}

//********************************************查找操作************************************************
void find()
{
   
    f1=fopen("information.c","r+");
    if (f1==NULL)           //判断information.c文件是否存在。或信息文件是否能打开!
    {
        printf("文件无法打开,可能是因为缺少information.c文件!\n");
        exit(0);
    }
    char chname[20];
gc3://错误输出时重新输入时的跳转
    printf("请输入您所要查找的人的姓名:");
    rewind(f1);//文件指针返回文件首位置
    fflush(stdin);
    scanf("%s",&chname);//输入要查找的人的姓名
    printf("-------------------------------------------------------------------------------\n");
gc4://用于循环查找人物信息
    fscanf(f1,"%s%s%s%s%s%s%s%s%d",&inf.name,&inf.age,&inf.birthday,&inf.idcard,&inf.sex,&inf.sub,&inf.qq,&inf.number,&inf.pdx);//文件中的信息
    if (inf.pdx==1)
      if (strcmp(chname,inf.name)==0)//判断姓名是否相符
         {
                printf("-------------------------------------------------------------------------------\n");
                printf("姓名:%s\n",inf.name);
                printf("年龄:%s\n",inf.age);
                printf("生日:%s\n",inf.birthday);
                printf("身份证号:%s\n",inf.idcard);
                printf("性别:%s\n",inf.sex);
                printf("专业:%s\n",inf.sub);
                printf("QQ号:%s\n",inf.qq);
                printf("学号:%s\n",inf.number);
                printf("-------------------------------------------------------------------------------\n");
        }
      else
        if (feof(f1))
        {
            
            printf("找不到您所要找的对象!\n是否重新输入您所要的查找的姓名:Y/N:");   
gc6:            
            fflush(stdin);
            pd=getchar();
            printf("-------------------------------------------------------------------------------\n");
            switch(pd)
            {
               case 'Y':goto gc3;break;
               case 'N':break;
               default:printf("警告:输入错误!请重新输入:Y/N:");goto gc6;
            }
        }
        else goto gc4;
    else
        if (feof(f1))
        {
            
            printf("找不到您所要找的对象!\n是否重新输入您所要的查找的姓名:Y/N:");   
            fflush(stdin);
            pd=getchar();
            printf("-------------------------------------------------------------------------------\n");
            switch(pd)
            {
               case 'Y':goto gc3;break;
               case 'N':break;
               default:printf("警告:输入错误!请重新输入:Y/N:");goto gc6;
            }
        }
        else goto gc4;
        
    fclose(f1);

}

//***********************************************删除操作*********************************
void del()
{
    f1=fopen("information.c","r+");
    char delname[100];
gc8:
    printf("-------------------------------------------------------------------------------\n");
    printf("请输入您所要删除的人的姓名:");
    rewind(f1);//文件指针返回文件首位置
    fflush(stdin);//清空缓存
    scanf("%s",&delname);
    //k=0;//记录所查找的数据
gc9:
     fscanf(f1,"%s%s%s%s%s%s%s%s%d",&inf.name,&inf.age,&inf.birthday,&inf.idcard,&inf.sex,&inf.sub,&inf.number,&inf.qq,&inf.pdx);//文件中的信息
    if (inf.pdx==1)
    {
      if (strcmp(delname,inf.name)==0)//判断姓名是否相符
      {//********************必须先判断标签:inf.pdx是否为零;
gc7:
             printf("是否执行删除操作:Y/N:");
             fflush(stdin);
             pd=getchar();
             int x=0;
             switch(pd)
             {
                case 'Y':fseek(f1,-1,1);fprintf(f1,"%d",x);//用0覆盖原来的1                           
                         printf("已经删除了%s的信息!\n",delname);break;
                case 'N':break;
                default:printf("警告:输入错误!请重新输入:\n");
                        printf("-------------------------------------------------------------------------------\n");goto gc7;
             }
      }
      else
        if (feof(f1))
        {
            printf("-------------------------------------------------------------------------------\n");
            printf("找不到您所要找的对象!\n");
gc10:
            printf("是否重新输入您所要的查找的姓名:Y/N:");   
            fflush(stdin);
            pd=getchar();
            printf("-------------------------------------------------------------------------------\n");
            switch(pd)
            {
               case 'Y':goto gc8;break;
               case 'N':break;
               default:printf("警告:输入错误!请重新输入:\n");
                       printf("-------------------------------------------------------------------------------\n");goto gc10;
            }
        }
        else goto gc9;//循环查找
    }
    else
        if (feof(f1))
        {
            printf("-------------------------------------------------------------------------------\n");
            printf("找不到您所要找的对象!\n");
gc11:
            printf("是否重新输入您所要的查找的姓名:Y/N:");   
            fflush(stdin);
            pd=getchar();
            printf("-------------------------------------------------------------------------------\n");
            switch(pd)
            {
               case 'Y':goto gc8;break;
               case 'N':break;
               default:printf("警告:输入错误!请重新输入:Y/N:");goto gc11;
            }
        }
        else goto gc9;

    fclose(f1);
}
//******************************************权限操作******************************************
void per1()//读出文件中的权限信息函数;
{
    printf("有以下用户已注册:\n");
    printf("********************************************************************************");
    f2=fopen("Permissions.c","r+");
    for (int i=0;!feof(f2);i++)
    {
        fscanf(f2,"%s%s%s\n",p.name,p.qx,p.password);//用户名:p.name;权限:p.qx;
        printf("用户名:%s\n权限:%s\n",p.name,p.qx);
    }
    printf("********************************************************************************");
    fclose(f2);

}
//******************************************用户注册操作************************************************
void login()
{
    char password[100];
    f1=fopen("information.c","a+");
    f2=fopen("Permissions.c","a+");
    printf("-------------------------------------------------------------------------------\n");
    printf("请输入注册信息\n");
//注册输入的信息;并保存到文件“information.c”中;
    printf("姓名:");
    scanf("%s",&inf.name);
    printf("密码:");
    scanf("%s",&password);
    printf("年龄:");
    scanf("%s",&inf.age);
    printf("生日:");
    scanf("%s",&inf.birthday);
    printf("身份证号:");
    scanf("%s",&inf.idcard);
    printf("性别:");
    scanf("%s",&inf.sex);
    printf("专业:");
    scanf("%s",&inf.sub);
    printf("QQ号:");
    scanf("%s",&inf.qq);
    printf("学号:");
    scanf("%s",&inf.number);
    inf.pdx=1;
    fprintf(f1,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%d\n",inf.name,inf.age,inf.birthday,inf.idcard,inf.sex,inf.sub,inf.qq,inf.number,inf.pdx);
    char s[]="user";//新用户权限初始化为user
    fprintf(f2,"%s\n%s\n%s\n",inf.name,s,password);
    printf("已成功注册!\n请选择您所需要的服务!\n");
    fclose(f1);
    fclose(f2);
}


int per2()//权限操作函数;
{
    char db[]="administrator";//用于与文件中的权限名作对比
    f2=fopen("Permissions.c","r+");
    char na[20],pw[100];
    printf("请输入您的用户名及密码\n");
    printf("用户名:");scanf("%s",&na);//  na 输入的用户名
    jl=1;
gc12:
    //if (jl<=3)
    //{
        printf("密码:");scanf("%s",&pw);//  pw  输入的密码
gc16:      
        fscanf(f2,"%s%s%s\n",p.name,p.qx,p.password);//查找用户
gc17:   if (strcmp(na,p.name)==0)
            if (strcmp(pw,p.password)==0)
                if (strcmp(p.qx,db)==0) return (2);
                else return(1);
            else
            {
                if (jl<3)
                {
                    printf("密码错误!请重新输入!:");
                    jl++;
                    scanf("%s",&pw);goto gc17;
                }
                else
                {
                    printf("-------------------------------------------------------------------------------\n");
                    printf("密码输入超过三次!\n您无权操作!\n");
                    printf("-------------------------------------------------------------------------------\n");
                    return(0);
                }
            }
        else
        {
            if (feof(f2))
            {
                printf("该用户还未注册,是否注册新用户:Y/N:");
gc13:           
                fflush(stdin);
                pd=getchar();
                switch(pd)
                {
                   case 'Y':login();return(-1);break;//注册用户;
                   case 'N':printf("退出系统!\n");return(0);break;
gc14:                default:
                    {
                       printf("输入错误,请重新输入:Y/N:");pd=getchar();
                       switch(pd)
                       {
                          case 'Y':goto gc13;break;
                          case 'N':return(0);break;
                          default:goto gc14;
                       }
                    }
                }
            }
            else goto gc16;
        }

}

//****************************************程序主体****************************************************
void main()
{
    char choose;

    printf("-------------------------------------------------------------------------------\n\n");
    printf("                            你好我是菜豆:欢迎使用!\n\n");
    printf("-------------------------------------------------------------------------------\n\n");
    per1();//输出用户名及权限的处理函数
   
    int xx;//xx就是一判断
    xx=per2();//用户权限操作
    if (xx==0)
    {
        printf("                            ######################\n");
        printf("############################# 谢谢使用!呵呵…… ##############################\n");
        printf("                            ######################\n");
        exit(0);
    }
    else if (xx==-1) xx=1;
gc1:    //当用户输入错误时返回重新选择并输入。
    printf("-------------------------------------------------------------------------------\n");
    printf("1:录入个人身份信息;\n2:查找个人身份信息;\n3:删除个人身份信息;\n4:退出。\n");
    printf("-------------------------------------------------------------------------------\n");
   
    printf("请选择你所需要的服务:");
    fflush(stdin);
    choose=getchar();
    printf("-------------------------------------------------------------------------------\n");
    switch(choose)
    {
        case '1':if (xx==2) save();
                 else
                 {
                     printf("权限不足!\n重新选择服务\n");
                     goto gc1;
                 }
                 break;
        case '2':find();break;
        case '3':if (xx==2) del();
                 else
                 {
                     printf("权限不足!\n重新选择服务\n");
                     goto gc1;
                 }
                 break;
        case '4':printf("                            ######################\n");
                 printf("############################# 谢谢使用!呵呵…… ##############################\n");
                 printf("                            ######################\n");exit(0);break;
        default :printf("警告:输入错误!\n请重新输入\n");goto gc1;
    }
   
gc2:
    printf("-------------------------------------------------------------------------------\n");
    printf("是否继续操作:Y/N:");
    fflush(stdin);//****清空缓存
    scanf("%c",&pd);//pd是判断是否继续操作的变量
    printf("-------------------------------------------------------------------------------\n");
        switch(pd)
        {
        case 'Y':goto gc1;break;
        case 'N':printf("                            ######################\n");
                 printf("############################# 谢谢使用!呵呵…… ##############################\n");
                 printf("                            ######################\n");exit(0);break;
        default:printf("警告:输入错误!\n请重新输入\n");goto gc2;
        }
        fclose(f2);
}
   

//**************知识有限,做得有点粗糙,请见谅!***********************

   
搜索更多相关主题的帖子: 信息管理 
2009-11-22 16:34
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:2 
顶一下
2009-11-22 16:48
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:2 
顶两下

我可好玩啦...不信你玩玩^_^
2009-11-22 17:25
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
我顶几下啊
2009-11-22 17:47
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:2 
支持一下
2009-11-22 18:58
tjp1984
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:137
专家分:39
注 册:2009-5-13
收藏
得分:2 
猛啊!!!

粗体文字 憨豆先生[/b]
2009-11-22 20:26
亚小南
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:136
注 册:2009-11-19
收藏
得分:2 
我也顶一个
2009-11-22 20:44
爱得心好累
Rank: 2
等 级:论坛游民
帖 子:60
专家分:24
注 册:2009-11-22
收藏
得分:2 
我看到了高人了吗厉害,本人有待练习。呵呵

[url]http://shishangxiaowu277.[/url]出售时尚女装,话费、QQ、以及游戏充值。价格实惠
2009-11-22 23:22
快速回复:自己写的一个:个人信息管理程序《试试吧!——我很菜!》
数据加载中...
 
   



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

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