C++링크 는 주소록 관리 시스템 을 실현 합 니 다.

13706 단어 C++통신 록
데이터 구조 안의 선형 구조의 링크 로 실현 되 므 로 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
파일 작업
로그 인 작업 이 있 습 니 다.원본 코드 를 복사 하려 면 로그 인 모듈 의 암호 파일 저장 위 치 를 변경 해 야 합 니 다.
VS 2017 컴 파 일 러 를 사용 하려 면 시작 을 유지 해 야 합 니 다:\#defineCRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS
#include "iostream"
#include "cstdio"
#include "fstream"
#include "stdlib.h"
#include "String"
#include "iomanip"
#include "windows.h"
#define LEN 100
using namespace std;
 
 
using std::cin;
using std::cout;
using std::endl;
using std::ifstream;
using std::ofstream;
using std::ios;
using std::cerr;
using std::string;
using std::setw;
 
typedef struct LNode {
 char num[10];
 char name[20];
 char telNum[12];
 char qq[10];
 struct LNode *next;
}LNode,*LinkList;
 
int n = 0;
 
void InitList(LinkList &L);//    
void InsertLNode(LinkList &L,LNode *s);//        
LinkList SearchName(LinkList L);//     
LinkList SearchNum(LinkList L);//     
void DelLNode(LinkList &L,LinkList p);//  p  
void PrintLNode(LinkList p);//    
void PrintList(LinkList L);//   
/*----------------    ----------------*/
void CreateLinkList(LinkList &L);//    
void DelName(LinkList &L);//          
void DelNum(LinkList &L);//          
void saveRecord(LinkList L);//    
void loadRecord(LinkList &L);//    
/*--------------------------------------*/
void Secret();
void fun();
void ver();
void yanshi(char *p);
void clear();
void header();
 
void menu() {
 LinkList L=NULL;
 int select;
 do {
 system("cls");
 printf("\t\t\t Welcome to the address book information management system!


"); printf("\t\t\t\t***************************************************
"); printf("\t\t\t\t * │1.InitList 2.Add Message │ *
"); printf("\t\t\t\t * │ │ *
"); printf("\t\t\t\t * │3.Search Message 4.Save File │ *
"); printf("\t\t\t\t * │ │ *
"); printf("\t\t\t\t * │5.Sort Static 6.Load Message │ *
"); printf("\t\t\t\t * │ │ *
"); printf("\t\t\t\t * │7.Display Message 8.Delete Message│ *
"); printf("\t\t\t\t * │ │ *
"); printf("\t\t\t\t * │9.Save Message 0.Exit System │ *
"); printf("\t\t\t\t***************************************************
"); cout << endl; yanshi((char *)"\t\tPlease choose the mode of operation(1~8):
"); /* cout << "\t\tPlease choose the mode of operation(1~8):" << endl;*/ cin >> select; switch (select) { case 8: cout << "Please select the deletion method:
1.Delete by student number 2.Delete by name
" << endl; int x; cin >> x; switch (x) { case 1: DelNum(L); break; case 2: DelName(L); break; } case 6: loadRecord(L); break; case 5: break; case 4: saveRecord(L); break; case 3: clear(); cout << "Please select a search method:
1.Find by student number 2.Find by name
" << endl; int a; cin >> a; switch (a) { case 1: clear(); { LinkList aa = SearchNum(L); header(); PrintLNode(aa); cout << "


!" << endl; system("pause"); menu(); } break; case 2: clear(); { LinkList b = SearchName(L); header(); PrintLNode(b); cout << "


!" << endl; system("pause"); menu(); break; } } break; case 1: InitList(L); break; case 9: break; case 7: PrintList(L); break; case 2: CreateLinkList(L); break; case 0: cout << endl << endl << endl; cout << "The programe is over!" << endl << endl << endl; Sleep(2000); exit(0); break; } } while (select != 8); } int main() { fun(); ver();// Secret();// menu(); return 0; } // void InitList(LinkList & L) { L = new LNode;// L->next= NULL; } // void InsertLNode(LinkList & L, LNode *s) { s->next = L->next; L->next = s; } // LinkList SearchName(LinkList L) { char name[20]; cout << " :" << endl; cin >> name; LinkList p = L->next; while (p) { // , , p if (strcmp(p->name, name) == 0) break; else p = p->next; } return p; } // LinkList SearchNum(LinkList L) { char num[10]; cout << " :" << endl; cin >> num; LinkList p = L->next; while (p) { // , , p if (strcmp(p->num, num) == 0) break; else p = p->next; } return p; } // void DelLNode(LinkList &L,LinkList p) { LinkList s=NULL, q; q = L->next; // s p while (q&&q!=p) { s = q; q = q->next; } s->next = q->next; delete q; } // void PrintLNode(LinkList p) { printf("%15s", p->num); printf("%15s", p->name); printf("%15s", p->telNum); printf("%15s
",p->qq); } // void PrintList(LinkList L) { clear(); header(); LinkList p = L->next; while (p) { PrintLNode(p); p = p->next; } system("pause"); } // void CreateLinkList(LinkList & L) { char ans = 'y'; n = 0; while (ans=='y'||ans=='Y') { system("cls"); LNode *p = new LNode; cout << " :" << endl; cin >> p->num; cout << " :" << endl; cin >> p->name; cout << " :" << endl; cin >> p->telNum; cout << " QQ :" << endl; cin >> p->qq; InsertLNode(L,p); n++; cout<<" ?(Y/N)"<<endl; getchar(); ans=getchar(); } system("pause"); } // void DelName(LinkList &L) { char name[20]; LinkList p; cout << " :" << endl; cin >> name; p = SearchName(L); if (p) { DelLNode(L,p); } system("pause"); } // void DelNum(LinkList & L) { char num[20]; LinkList p; cout << " :" << endl; cin >> num; p = SearchName(L); if (p) { DelLNode(L, p); } system("pause"); } // void saveRecord(LinkList L) { FILE *fp=NULL; int count = 0; if ((fp=(fopen("student.dat","wb")))==NULL) { cout << "Can't open this file!" << endl; Sleep(3000); } LinkList q = L->next; while (q) { fwrite(q, sizeof(LNode), 1, fp); count ++; q = q->next; } fclose(fp); cout << "Save the file successfully!" << endl; getchar(); } // void loadRecord(LinkList & L) { FILE *fp=NULL; int count = 0; if ((fp=(fopen("student.dat", "rb"))) == NULL) { cout << "Can't open this file!" << endl; Sleep(3000); } LinkList p=NULL; while(1){ p = new LNode; if (fread(p, sizeof(LNode), 1, fp) > 0) { InsertLNode(L,p); count++; } else { break; } } fclose(fp); cout << endl << endl << "Load "<<count<<"messages!" << endl; Sleep(2200); } // void fun() { system("color 2a"); system("title "); } // void ver() { yanshi((char*)"\t \3\3\3\3\3\3\3 \3\3\3\3\3\3\3



"); cout << "\t




"; cout << "\t\t version 1.0




"; cout << "\t\t xxxxxxxxx




"; cout << "\t\t Loading......

" << endl; Sleep(3000); system("cls"); } // void yanshi(char *p) { while (1) { if (*p != 0) cout << *p++; else break; Sleep(50); } } // void clear() { system("cls"); } // void header() { printf("%15s%15s%15s%15s
"," "," "," ","QQ"); } /*-------------------------------- ----------------------------------*/ /*-------------------------------- ----------------------------------*/ /*-------------------------------- ----------------------------------*/ struct UsrInfo// { char UsrName[20]; char Psword[20]; }; /* , 。 , , i , i 2 , i 2 。 。 */ int regest(struct UsrInfo* usr) {// char usrname[20]; char psword[20]; strcpy_s(usrname, usr->UsrName); strcpy_s(psword, usr->Psword); string temp; int flag = 0; int i = 0; ifstream fin("E:\\Love-Study\\ \\static.dat", ios::in);// ofstream fout("E:\\Love-Study\\ \\static.dat", ios::app);// , while (std::getline(fin, temp))// temp 。 { i++; if (i % 2 == 0) continue;// , 。 if (!strcmp(usrname, temp.c_str())) flag = 1;//flag=1 } fin.close(); if (flag) { return 0;// } else {// fout << usrname << endl;// , fout << psword << endl;// , fout.close(); return 1;// } } int login(struct UsrInfo* usr) { char usrname[20]; char psword[20]; strcpy_s(usrname, usr->UsrName); strcpy_s(psword, usr->Psword); string temp1; string temp2; int existname = 0; int match = 0; int i = 0; ifstream fin("E:\\Love-Study\\ \\static.dat", ios::in); while (std::getline(fin, temp1)) { std::getline(fin, temp2);// , if (!strcmp(usrname, temp1.c_str())) {// , existname = 1; if (!strcmp(psword, temp2.c_str())) {// match = 1; break; } } } fin.close(); if (!existname) { return 2;// } else { if (match) return 1; else return 3;// } } void Secret() { clear(); cout << "1. 2. " << endl; int c; cin >> c; switch (c) { case 1: { clear(); UsrInfo test1;// 。 char urr[20], prr[20]; cout << " :" << endl; cin >> urr; cout << " :" << endl; cin >> prr; strcpy(test1.UsrName, urr); strcpy(test1.Psword, prr); switch (regest(&test1)) { case 1: cout << " " << endl; system("pause"); Secret(); break; case 0: cout << " , " << endl; system("pause"); Secret(); break; default: break; } break; } case 2: { clear(); UsrInfo test2;// 。 char ur[20], pr[20]; cout << " :" << endl; cin >> ur; cout << " :" << endl; cin >> pr; strcpy(test2.UsrName, ur); strcpy(test2.Psword, pr); switch (login(&test2)) { case 1: cout << " " << endl; system("pause"); menu(); break; case 3: cout << " " << endl; system("pause"); Secret(); break; case 2: cout << " , " << endl; system("pause"); Secret(); break; default: break; } } } }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기