[align=center]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//為程式設定一個選單
//1.增加資料
//2.洗掉資料
//3.查看一條資料
//4.查看所有資料
//5.修改一條資料
//6.退出程式
//創建一個結構體,成員有站點,賬號,密碼
//在創建一個全域的結構體陣列
//AddData DeleteData CheckData ViewAllData ModData Exit SaveData InitData
#define 增加資料 1
#define 洗掉資料 2
#define 查看一條資料 3
#define 查看所有資料 4
#define 修改一條資料 5
#define 退出程式 6
void AddData();
void ViewAllData();
void Exit();
void DeleteData();
void CheckData();
void ModData();
void SaveData();
void InitData();
typedef struct _PWDINFO
{
char szWedsite[20];
char szUseName[20];
char szPassword[20];
}INFO,*PINFO;
INFO g_info[100] = {};
int g_count = 0;
int g_nFind = 1;
void AddData()
{
printf("請輸入要存盤的站點:\n");
scanf_s("%s",g_info[g_count].szWedsite,20);
printf("請輸入要存盤的賬號:\n");
scanf_s("%s", g_info[g_count].szUseName, 20);
printf("請輸入要存盤的密碼:\n");
scanf_s("%s", g_info[g_count].szPassword, 20);
g_count++;
SaveData();
system("pause");
system("cls");
}
void ViewAllData()
{
for(int i=0;i<g_count;i++)
{
printf("查看的網站:%s\n",g_info[i].szWedsite );
printf("查看的賬號:%s\n", g_info[i].szUseName);
printf("查看的密碼:%s\n", g_info[i].szPassword);
}
system("pause");
system("cls");
}
void Exit()
{
printf("退出成功");
g_nFind = 0;
}
void DeleteData()
{
char cCh[20] = {};
int nFind = 0;
int i = 0;
printf("請輸入需要洗掉的站點:");
scanf_s("%s",&cCh,20);
for (; i < g_count; i++)
{
if (strcmp(cCh, g_info[i].szWedsite) == 0)
{
nFind = 1;
break;
}
}
if (nFind == 1)
{
for (int nIndex = i; nIndex < g_count; nIndex++)
{
strcpy_s(g_info[i].szWedsite,20, g_info[i+1].szWedsite);
strcpy_s(g_info[i].szUseName, 20,g_info[i + 1].szUseName);
strcpy_s(g_info[i].szPassword,20, g_info[i + 1].szPassword);
}
g_count--;
SaveData();
}
else
{
printf("無存盤站點");
}
system("pause");
system("cls");
}
void CheckData()
{
char cCh[20] = {};
int i = 0;
printf("請輸入需要查看的站點:");
scanf_s("%s", &cCh, 20);
if (g_count == 0)
{
printf("賬號不存在\n");
}
for (; i < g_count; i++)
{
if (strcmp(cCh, g_info[i].szWedsite) == 0)
{
printf("查看一條資料的站點:%s\n", g_info[i].szWedsite);
printf("查看一條資料的賬號:%s\n", g_info[i].szUseName);
printf("查看一條資料的密碼:%s\n", g_info[i].szPassword);
}
}
system("pause");
system("cls");
}
void ModData()
{
char cCh[20] = {};
int i = 0;
int nFind = 0;
printf("請輸入需要修改的站點:");
scanf_s("%s", &cCh, 20);
if (g_count == 0)
{
printf("賬號不存在\n");
}
for (; i < g_count; i++)
{
if (strcmp(cCh, g_info[i].szWedsite) == 0)
{
nFind = 1;
break;
}
}
if (nFind == 1)
{
printf("請輸入賬號:\n");
scanf_s("%s", g_info[i].szUseName, 20);
printf("請輸入密碼:\n");
scanf_s("%s", g_info[i].szPassword, 20);
SaveData();
}
else
{
printf("賬號不存在\n");
}
system("pause");
system("cls");
}
void SaveData()
{
FILE* pFile = NULL;
fopen_s(&pFile,"123.txt","wb+");
if (pFile != 0)
{
fwrite(&g_count,4,1,pFile);
fwrite(&g_info,sizeof(INFO), g_count,pFile);
}
fclose(pFile);
}
void InitData()
{
FILE* pFile = NULL;
errno_t Errno=fopen_s(&pFile,"123.txt","rb+");
if (Errno != 0 || pFile == 0)
{
g_count = 0;
}
else
{
fread(&g_count, 4, 1, pFile);
fread(&g_info, sizeof(INFO), g_count, pFile);
fclose(pFile);
}
}
int main()
{
int nSelect = 1;
InitData();
while (g_nFind)
{
printf("\n1.增加資料\n");
printf("2.洗掉資料\n");
printf("3.查看一條資料\n");
printf("4.查看所有資料\n");
printf("5.修改一條資料\n");
printf("6.退出程式\n");
printf("請選擇一個功能:");
scanf_s("%d", &nSelect);
if(nSelect>=1&& nSelect<=6)
{
switch (nSelect)
{
case 增加資料: { AddData(); }break;
case 洗掉資料: {DeleteData(); }break;
case 查看一條資料: {CheckData(); }break;
case 查看所有資料: { ViewAllData(); }break;
case 修改一條資料: {ModData(); }break;
case 退出程式: {Exit(); }break;
default: { }break;
}
}
else
{
printf("輸入錯誤,請重新選擇");
}
}
return 0;
}[align=center]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165185.html
標籤:C語言
上一篇:求指點迷津,我快吐了。
下一篇:新手求解c++簡單問題
