C++实现简单的信息管理系统
更新时间:2020年4月25日 17:35 点击:1384
本文为大家分享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++信息管理系统的关键代码,供大家参考,下面再为大家分享一些其他管理系统:
C++实现简单的图书管理系统
C++实现简单的职工信息管理系统
C++基础学生管理系统
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助。
上一篇: 实例讲解C语言编程中的结构体对齐
下一篇: 解析C语言中结构体struct的对齐问题
相关文章
- vector是表示可以改变大小的数组的序列容器,本文主要介绍了C++STL标准库std::vector的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2022-03-06
- 这篇文章主要介绍了C++中取余运算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 本篇文章主要介绍了C++中四种加密算法之AES源代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...2020-04-25
- 整数拆分,指把一个整数分解成若干个整数的和。本文重点给大家介绍C++ 整数拆分方法详解,非常不错,感兴趣的朋友一起学习吧...2020-04-25
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- 这篇文章主要为大家详细介绍了java控制台实现学生信息管理系统的集合版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-28
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
- 这篇文章主要介绍了C++ bitset用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 这篇文章主要为大家详细介绍了C++ Eigen库计算矩阵特征值及特征向量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 本篇文章小编并不是为大家讲解string类型的用法,而是讲解我个人比较好奇的问题,就是string 类型占几个字节...2020-04-25
- 这篇文章主要介绍了C++ pair的用法实例详解的相关资料,需要的朋友可以参考下...2020-04-25
- 护卫神·主机管理系统该版本支持在Windows Server 200320082012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手。但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档...2016-01-27
- 在本篇内容里小编给大家分享了关于C++实现递归函数的教学步骤,需要的朋友跟着参考下。...2020-04-25
- 这篇文章主要介绍了VSCode C++多文件编译的简单使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
- 这篇文章主要给大家介绍了关于C++随机点名生成器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 虽然C++11引入了智能指针的,但是开发人员在与内存的斗争问题上并没有解放,如果我门实用不当仍然有内存泄漏问题,其中智能指针的循环引用缺陷是最大的问题。下面通过实例代码给大家介绍c++中的循环引用,一起看看吧...2020-04-25
- 这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25