本文為大家分享C++實現簡單的信息管理系統,小編之前在學習的時候也要做一些管理系統,在網上查了許多資料,現在我把資料分享給大家,希望能夠幫助到大家。
#include <stdio.h>#include <stdlib.h>#include "file.h" void savaList(Node *head)/**把用戶錄入的數據存儲到文件里面去方便下次讀取*/{ FILE *fp=fopen("data//data.txt" ,"w") ; Node *p ; for(p=head->next;p;p=p->next) { fwrite(&(p->data),sizeof(students),1,fp) ; } fclose(fp) ; } void duquLisr(Node *head)/**讀取用戶之前所錄入的數據 */{ FILE *fp=fopen("data//data.txt" ,"r") ; students e ; while( fread(&e,sizeof(students) ,1,fp ) ) { insertList(head,e) ; } fclose(fp) ; } #include <stdio.h>#include <stdlib.h>#include <string.h>#include "goods.h" /**錄入數據,函數目的返回一個goods類型的值*/ /** char name[M] ; char phone[M] ; char street[M] ; char city[M] ; char youb[M] ; */students lurushuju(){ students e ; printf("請輸入學生的姓名 ") ; scanf("%s",e.name); printf("請輸入學生的電話 ") ; scanf("%s",e.phone) ; printf("請輸入學生的街道 ") ; scanf("%s",e.street) ; printf("請輸入學生的城市信息 ") ; scanf("%s",e.city) ; printf("請輸入學生的郵編 ") ; scanf("%s",e.youb) ; return e ; }void shuchushuju(students e)/**依次輸出數據e*/{ printf("%15s%15s%15s%15s%15s/n" , e.name ,e.phone,e.street,e.city,e.youb) ; }void xiugaishuju(students *e)/**根據地址修改數據e里面的個別數據*/ /**通過選擇序號選擇想要修改的數據*/{ int score ; int count=1 ; printf("請輸入想要修改的數據類型/n") ; do { printf("1.姓名;2.電話;3.街道信息;4.城市信息;5.郵編;6.退出/n"); scanf("%d",&score) ; switch(score) { case 1: scanf("%s",e->name); break ; case 2: scanf("%s",e->phone) ; break; case 3: scanf("%s",e->street) ; break ; case 4: scanf("%s",e->city) ; break ; case 5: scanf("%s",e->youb) ; break ; default: count=0; } }while(count); } #include <stdio.h>#include <string.h>#include "list.h"#include "goods.h" void creatList(Node *head,int n)/**創建一個長度為n的鏈表*/{ int i ; students p ; for(i=1; i<=n ; i++) { p=lurushuju() ; insertList(head,p) ; } }void insertList(Node *head,students e) /**把e中的某一個值以一定的順序插入到以head為頭節點的鏈表上面去*/{ Node *p; Node *q; q=(Node*)malloc(sizeof(Node)); q->data=e; for(p=head; p->next && strcmp( (p->next)->data.name,e.name)<0 ;p=p->next ) ; q->next=p->next; p->next=q;} int delList(Node *head,char e[])/**把鏈表姓名為e的一項刪除,先找找到刪除成功就返回1,否者返回0*/{ Node *p; for(p=head; p->next && strcmp(e,p->next->data.name) ;p=p->next) ; if(p->next ==0) { return 0 ; } else { Node *t; t=p->next; p->next=t->next; free(t); return 1 ; } } Node *searchList(Node *head,char e[])/**在鏈表中查找名字這一項找到返回這個節點的地址 否者返回null*/{ Node *p; for(p=head; p && strcmp(e,p->data.name) ; p=p->next ) ; return p ;} void disputList(Node *head)/**依次順序輸出head鏈表*/{ Node *p; for(p=head->next;p;p=p->next) shuchushuju(p->data); } void changeList(Node *head ,char e[]) /**修改鏈表中某一個節點的data值*/ /**該系統只能通過姓名查找 后續在完善*/{ Node *p ; p=searchList(head,e) ; if(!p) { printf("error/n"); } else { xiugaishuju(&(p->data)) ; } }void destroy(Node *head){ Node *p; for(p=head;p;p=p->next) free(p);} #include <stdio.h>#include <stdlib.h>#include <string.h>#include "list.h"#include "goods.h" void mainmenu(Node *head){ int scored ; int count=1 ; char e[100] ; int n; students p; do { printf("================****學生信息管理系統(公測版by李遠航)****=====/n") ; printf("==========================開始===============================/n"); printf("==1.錄入數據 2.修改數據 3.顯示數據 4.刪除數據 5.插入數據=/n") ; printf("=======7.讀取數據========6.存盤退出=======8.退出=============/n") ; printf("=======================**********============================/n") ; printf("請輸入你想要做的事/n") ; scanf("%d",&scored); switch(scored) { case 1: printf("請輸入你大約想保存的學生/n"); scanf("%d",&n); creatList(head,n); break ; case 2: printf("請輸入待改學生的姓名/n") ; scanf("%s",e); changeList(head , e) ; break ; case 3: printf(" 姓名 電話 街道信息 城市信息 郵件信息 /n") ; disputList(head) ; break ; case 4: printf("請輸入待刪學生的姓名/n"); scanf("%s",e); n=delList(head, e) ; if(n) { printf("刪除成功/n"); } else { printf("error/n") ; } break ; case 5: printf("請輸入你想插入的信息/n"); p=lurushuju(); insertList(head, p); break ; case 6: savaList(head); count=0; break ; case 7: duquLisr(head); break ; default : count=0; } system("pause") ; system("cls") ; }while(count); printf("/n/n/n/n感謝您對本系統的支持,如果您在使用過程中遇到bug,請發送郵件到1277171561@qq.com/n/n/n/n/n/n/n") ; } int main(){ Node *head=(Node*)malloc(sizeof(Node)); head->next=NULL ; mainmenu(head) ; destroy(head) ; return 0;} #ifndef FILE_H_INCLUDED#define FILE_H_INCLUDED#include "list.h" void savaList(Node *head);/**把用戶錄入的數據存儲到文件里面去方便下次讀取*/void duquLisr(Node *head);/**讀取用戶之前所錄入的數據 */ #endif // FILE_H_INCLUDED #ifndef GOODS_H_INCLUDED#define GOODS_H_INCLUDED typedef struct students /*定義學生信息*/{ char name[100] ; char phone[100] ; char street[100] ; char city[100] ; char youb[100] ; }students; students lurushuju();/**錄入數據,函數目的返回一個goods類型的值*/void shuchushuju(students e);/**依次輸出數據e*/void xiugaishuju(students *e);/**根據地址修改數據e里面的個別數據*/ #endif // GOODS_H_INCLUDED #ifndef LIST_H_INCLUDED#define LIST_H_INCLUDED#include "goods.h" typedef struct Node /**鏈表結構體*/{ students data ; struct Node *next ;}Node ; void creatList(Node *head,int n);/**創建一個長度為n的鏈表*/void insertList(Node *head,students e) ;/**把e中的某一個值以一定的順序插入到以head為頭節點的鏈表上面去*/int delList(Node *head,char e[]) ;/**把鏈表姓名為e的一項刪除,先找找到刪除成功就返回1,否者返回0*/Node *searchList(Node *head,char e[]) ; /**在鏈表中查找名字這一項*/void disputList(Node *head);/**依次順序輸出head鏈表*/void changeList(Node *head ,char e[]) ;/**修改鏈表中某一個節點的data值 */void destroy(Node *head) ;/**摧毀一起鏈表數據*/ #endif // LIST_H_INCLUDED
以上就是C++信息管理系統的關鍵代碼,供大家參考,下面再為大家分享一些其他管理系統: