中软国际实训项目

我们组的合作之下,坐了笔记本管理系统,希望多提意见

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
void backup();
void backuptxt();
void import();
void importtxt();
void shenqing();
void denglu();
void txt();
void key();
int   number=0;//记录已申请的人数
int   a[1000],b[1000]= {0},m1; //随机数
int i,j,k,n;
//用结构体定义用户
struct user
{
    int   name;      //用户名
    char  mingzi[20]; //用户真实姓名
    char  mima[20];  //密码
};
struct no
{
 int id;//记录第几个用户
 int num;//记录第i个用户有几条记录
 char biji[50][50];
};//记录第i个用户的笔记信息
struct user   userinfor[1000],userinfor2[1000],user1;
struct no note[1000],note1[1000];
int main()//主函数
{
 system("color 5F");
 FILE *fp;
 if((fp=fopen("userinfo.txt","r"))==0)
 {
 }
 else import();
 if((fp=fopen("biji.txt","r"))==0)
 {
 }
 else
    importtxt();
    key();
    return 0;

}
//函数名 key
//功能主函数
//需要参数 不
//需要返回值 不
void key()
{
    /*
 printf("记事本欢迎您\n");
    printf("现已有%d人注册\n",number);
    printf("1-----申请账号\n");
    printf("2-----登录账号\n");
    printf("0-----退出系统\n");
    printf("请按相应的数字键:");*/
 printf("     .--.  .--.\n");
 printf("   ._'   |/   :.-,\n");
 printf("  |  `'.-;-.;`  .'\n");
 printf("  _:._/.'.'.'\.`-.\n");
 printf(" /    \.'.'.'/    /\n");
 printf(" '-._.;`'-'-';---'\n");
 printf("     /   /|   \'-.        记   事   本   欢   迎    您!!\n");
 printf("     `--' `-.-' ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n\n\n");
 
    printf("                               『现已有%d人注册!!』\n\n",number);
 printf("                                  ※主菜单※\n");
 printf("                             ☆┉┉┉┉┉┉┉┉┉┉\n");
    printf("                            ┋★1~~~~~申请账号┋\n");
    printf("                            ┋★2~~~~~登录账号┋\n");
    printf("                            ┋★0~~~~~退出系统┋\n");
 printf("                             ┉┉┉┉┉┉┉┉┉┉☆\n");
    printf("                              ◆请按相应的数字键:");
    /*int n;
    scanf("%d",&n);
    switch(n)
    {
    case 1:
        shenqing();
        break;
    case 2:
        denglu();
        break;
    case 0:
        exit(0);
        break;
    }*/
 char st[100];
 scanf("%s",st);
 if(st[0]=='1') shenqing();
 else if(st[0]=='2') denglu();
 else if(st[0]=='0')  exit(0);
 else { printf("请按正确的数字\n");Sleep(1000);system("cls"); key();}
}
//函数名  shengqing
//功能   用户申请账号
//需要参数 不
//需要返回值 不需要
void shenqing()
{

    char st1[20],st2[20],c;//检测用户密码的
    int i;
    srand(time(NULL));
    system("cls");
    m1=rand()%999+1;
    do
    {
        m1=rand()%999+1;
    }
    while(b[m1]!=0);
    userinfor[m1].name=m1;
    b[m1]=1;
     printf("\n\n\n\n\n                            §☆请输入您的姓名:");
    scanf("%s",userinfor[m1].mingzi);
 printf("\n\n                            §☆您的账号是:%d\n",m1);
    printf("\n\n                            §☆请输入您的密码:");

    for(i=0; c=getch(); i++)
    {

        if(c==13) break;
        else if(c=='\b')
        {
            i--;
            printf("%c %c",c,c);
            continue;
        }
        else
        {
            st1[i]=(c+m1)%128+1;//加密
            printf("*");
        }
    }
    st1[i]='\0';
    printf("\n");
  printf("\n\n                            §☆请再次输入您的密码:");
    for(i=0; c=getch(); i++)
    {
        if(c==13) break;
  else if(c=='\b')
  {
   i--;
   printf("%c %c",c,c);
   continue;
  }
        else
        {
            st2[i]=(c+m1)%128+1;//加密
            printf("*");
        }
    }
    st2[i]='\0';
    if(strcmp(st1,st2)==0)
    {
   number++;
  printf("\n");
        strcpy(userinfor[m1].mima,st1);
  //printf("%d %s %s",userinfor[m1].name,userinfor[m1].mingzi,userinfor[m1].mima);
  backup();
        system("cls");
        printf("\n\n\n\n\n\n\n\n                         §☆现在正为您转到登陆页面....\n");
        Sleep(1000);
        denglu();
    }
    else
    {
        printf("\n");
        printf(" \n\n                     §☆您的密码两次输入不一样,请重新申请!!\n");
        Sleep(1000);
        shenqing();
     
    }

}
//函数名   denglu
//功能    登陆页面
//需要参数 不
//需要返回值 不
void denglu()
{
    int i;
    char c,st[100];
    system("cls");
    printf("\n\n\n\n\n\n\n                           §☆请输入用户名:");
    scanf("%d",&user1.name);
    printf("\n\n                           §☆请输入密码:");
    for(i=0; c=getch(); i++)
    {
        if(c==13) break;
    else if(c=='\b')
  {
   i--;
   printf("%c %c",c,c);
   continue;
  }
        else
        {
            st[i]=(c+user1.name)%128+1;//加密
            printf("*");
        }
    }
    st[i]='\0';
    strcpy(user1.mima,st);
    if(strcmp(user1.mima,userinfor[user1.name].mima)==0&&st[0]!='\0')
    {
  n = user1.name;
        txt();
    }
    else
    {
        printf("\n");
        printf("\n\n                        §☆用户名或密码错误,请正确输入!!\n");
        Sleep(2000);
        system("cls");
        key();
    }
}
//函数名 txt
//功能 对笔记的增删改查
//需要参数吗 不
//需要返回值吗 不
void txt()//进入笔记函数
{
 int ca;
    for(;;)
    {
        system("cls");
     ca = n;
      note[ca].id = ca;
      printf("\n");
  printf("                     ╭⌒╮ 记事本~~   ¤      ╭⌒╮ ╭⌒╮\n");
        printf("                     ╭⌒╭⌒╮   ╭⌒╮~  ╭⌒╮ ︶︶, ︶︶\n");
        printf("            ,         ︶︶︶︶   ,""︶~~ ,""~︶︶  ,     ""\n\n\n");
        printf("                             『您现在有%d条记录!!』\n\n\n\n",note[ca].num);
  printf("                                ※查询功能※\n");
  printf("                       ☆┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉\n");
        printf("                      ┋★1~~~~~~新的笔记       ┋\n");
        printf("                      ┋★2~~~~~~查看以往的笔记 ┋\n");
        printf("                      ┋★3~~~~~~修改笔记       ┋\n");
        printf("                      ┋★4~~~~~~删除笔记       ┋\n");
        printf("                      ┋★0~~~~~~返回主菜单     ┋\n");
  printf("                        ┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉☆\n");
        printf("                        ◆请按相应数字键:");
  char st[100];
  scanf("%s",st);
        if(st[0]=='1')//输入新的记录
        {
            system("cls");
           printf(" §☆请输入您的笔记:");
            scanf("%s",note[ca].biji[note[ca].num]);
            note[ca].num++;
        }
        else if(st[0]=='2')//查询
        {
            system("cls");
            printf("                        §☆请输入您要查看第几条记录:\n");
            scanf("%d",&j);
            if(j > note[ca].num)
              printf("\n\n                   §☆对不起你查询的记录不存在!!\n");
            else
               printf("※第%d条记录为:%s\n",j,note[ca].biji[j-1]);
        }
        else if(st[0]=='3')//修改
        {
            system("cls");
            printf("                    §☆请输入您要修改第几条记录:");
            scanf("%d%*c",&j);
            if(j > note[ca].num)
                printf("\n\n                      §☆对不起你查询的记录不存在!!\n");
            else
            {
              printf("§☆请输入您要修改的内容:");
                scanf("%s",note[ca].biji[j-1]);
            }
        }
        else if(st[0]=='4')
        {
            printf("\n\n\n\n\n\n                     §☆请输入您要删除第几条记录:");
            scanf("%d",&j);
            for(k = j+1; k <= note[ca].num; k ++)
            {
                strcpy(note[ca].biji[k-1],note[ca].biji[k]);
            }
            note[ca].num--;
        }
        else if(st[0]=='0')//退出
        {
   backuptxt();
            system("cls");
            key() ;
        }
        else
          printf("              ◆请输入正确的数字键:\n");
        system("pause");
    }
}
//备份全部数据函数backup()
//函数名  backu()
//功能   备份文件
//需要参数 不
//需要返回值 不
void backup()
{
 FILE *fp,*count;
 struct user *u1=userinfor+m1;
 count=fopen("personcount.txt","w");
 if(number==1)
 {
 fp=fopen("userinfo.txt","wb+");
 fwrite(u1,sizeof(struct user),1,fp);
    fclose(fp);
 }
 else
 {
 fp=fopen("userinfo.txt","ab+");
 fwrite(u1,sizeof(struct user),1,fp);
 fclose(fp);
 }
    //备份人数
 fprintf(count,"%d",number);
 fclose(count);
 //printf("\n已备份所有记录,即将返回菜单\n\n");
}
//导入文件中数据函数import()
//函数名  import()
//需要参数 不
//需要返回值 不
void import()
{
 FILE *fp,*count;
 int i11,mm;
 struct user *u1=userinfor2;
 fp=fopen("userinfo.txt","rb");
 count=fopen("personcount.txt","r");
 //导入人数
 fscanf(count,"%d",&number);
 fclose(count);
 //导入所有记录,利用上面导入的人数
 fread(u1,sizeof(struct user),100,fp);
 for(i11=0;i11<=100-1;i11++)
 {
  mm=userinfor2[i11].name;
  userinfor[mm].name=userinfor2[i11].name;
  strcpy(userinfor[mm].mingzi,userinfor2[i11].mingzi);
  strcpy(userinfor[mm].mima,userinfor2[i11].mima);
 }
 fclose(fp);
 //printf("\n已导入所有记录,%d/%d即将返回菜单\n\n");


}
void backuptxt()
{
 FILE *fp;
 struct no *u1= note+n;
    fp=fopen("biji.txt","ab+");
 //备份记录
 fwrite(u1,sizeof(struct no),1,fp);
 fclose(fp);
 //备份人数
 //fprintf(count,"%d",note[m1].num);
 printf("\n已备份所有记录,即将返回菜单\n\n");
 system("pause");
}
//导入文件中数据函数import()
void importtxt()
{
 FILE *fp;
 int mm,i11;
 struct no *u1=note1;
 fp=fopen("biji.txt","rb");
 //count=fopen("personcount.txt","r");
 //导入人数
 //fscanf(count,"%d",&n);
 //fclose(count);
 //导入所有记录,利用上面导入的人数
 fread(u1,sizeof(struct no),1000,fp);
    for(i11=0;i11<=1000;i11++)
 {
  mm=u1[i11].id;
  note[mm].id = u1[i11].id;
  note[mm].num = u1[i11].num;
  for(i = 0;i <= 49;i ++)
  strcpy(note[mm].biji[i],u1[i11].biji[i]);
 }
 fclose(fp);

}

  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值