中軟國際實訓項目

我們組的合作之下,坐了筆記本管理系統,希望多提意見

#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);

}

  

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章