C++实现简单的信息管理系统

640?wx_fmt=gif

本文为大家分享C++实现简单的信息管理系统,小编之前在学习的时候也要做一些管理系统,在网上查了许多资料,现在我把资料分享给大家,希望能够帮助到大家。

640?wx_fmt=jpeg

#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

640?wx_fmt=png

640?wx_fmt=png

它,

不仅仅是一个码

扫码关注

C++资源免费送

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 面向对象三大特性:封装、继承、多态

面向对象有封装、继承、多态这三个特性,面向对象编程按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成任务。这种编程方法提供了非常强大的多样性,大大增加了代码的…

行车记录仪设置php,行车记录仪怎么调设置

行车记录仪设置方法如下;1、视频分辨率视频分辨率一直是厂家着力宣传的卖点,从最初的高清720P、全高清1080P到现在的超高清2K,车主朋友们也都耳熟能详。一般行车记录仪的分辨率提供以下几个选项:1080FHD、720P、WVGA、VGA。视频分…

C++面试常见问题整理汇总(面试者必看哦!)

1. 继承方式public   父类的访问级别不变#include <iostream> using namespace std; class base { public: void printa() { cout <<"base"<< endl; } protected: void printhello() { cout <<"helo"<< endl; } p…

C++ vector使用的一些注意事项

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;1. 初始化c 11以后新增了大括号{}的初始化方式&#xff0c;需要注意与()的区别,如&#xff1a;std::vector<int> vecTest1(5); //初始化5个元素&#xff0c;每个都是0std::vector<int> vecTest2{ 5…

最全的C++面试题来啦!(来自各大一线互联网)

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;此面试题全部由成功就业学员提供&#xff0c;来自各大一线互联网企业&#xff0c;在此谢谢他们的贡献&#xff01;1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存&#xff0c;n…

基于C++实现五子棋AI算法思想

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;今天我想要分享一下我做五子棋AI的思路。因为在做这个之前&#xff0c;我没有接触过任何像这种类似的东西。通过这一次&#xff0c;我也算是有所了解&#xff0c;我的思路也是来自很多网络上的博客&#xff0c;看了很多…

java代码初体验_第一次Java 8体验

java代码初体验像世界其他地方一样&#xff0c;我深深地爱上了Slack。 为什么&#xff1f; 原因很多&#xff0c;但主要的原因是它提供了一种围绕通讯而非工具真正构建SDLC流程的新方法。 您认为这些天哪个更常见&#xff0c;杂乱无章的机智团队在荒野中四处徘徊&#xff0c;尽…

C++学习 | 面试官:我们只想要这样的C++工程师

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;最近好多同学来找就就说&#xff0c;我想找 xxx 方向的工作&#xff0c;我怎么学习呀&#xff1f;我也不知道这个岗位的招聘要求是啥&#xff1f;这个很正常哈&#xff0c;主要是咱们平时很少去关注企业的招聘要求&…

C语言开发推箱子游戏项目实战

C语言能做什么&#xff1f;相信学过C语言的各位都会有一个疑问&#xff0c;我们学了C语言到底可以做什么&#xff1f;或许有人会说做系统开发、驱动开发等等&#xff0c;但是这个感觉离我们好远&#xff0c;甚至于我们学C语言都仅仅是为了用程序做数学题&#xff0c;要不就是用…

dw php如何传递id参数6,[php] 我的微型论坛的简单教程[已完成]第6/8页

现在数据库中还没有数据&#xff0c;所以&#xff0c;我们运行首页&#xff0c;只显示“对不起&#xff0c;论坛尚在建设中……”。既然我们很希望看到结果&#xff0c;就往数据库中加几条数据吧&#xff01;&#xff01;当然&#xff0c;直接在MySQL客户端运行查询语句"i…

尺度不变性是指什么不变_不变性如何提供帮助

尺度不变性是指什么不变在最近的几篇文章中&#xff0c;包括“ Getters / Setters。 邪恶。 期。” &#xff0c; “对象应该是不可变的”和“依赖注入容器是代码污染者” &#xff0c;我普遍将所有可变对象标记为“ setter”&#xff08;以set开头的对象方法&#xff09;。 我…

java prototype是什么,java设计模式-原型模式(Prototype)

定义原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型&#xff0c;然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意原型模式的结构原型模式要求对象实现同一个可以“克隆”自身的接口&#xff0c;遮掩个就可以通过赋值…

Windows 动态链接库 DLL 浅析

一、概念DLL&#xff1a;Dynamic Link Library&#xff0c;即动态链接库&#xff0c;这种库包含了可由多个程序同时使用的代码和数据。它是microsoft在windows操作系统中实现共享函数库概念的一种实现方式。其中windows中 一些作为DLL实现的文件有&#xff1a;ActiveX控件&…

图片大小 媒体大小自适应_自适应堆大小

图片大小 媒体大小自适应在改进测试平台以改进Plumbr GC问题检测器的同时 &#xff0c;我最终编写了一个小型测试用例&#xff0c;我认为这对于更广泛的读者来说可能很有趣。 我追求的目标是测试JVM在eden&#xff0c;survivor和Tenured空间之间如何分割堆方面的自适应性。 测…

如何优雅的激怒C/C++程序员

一、想知道怎么激怒C/C程序员及爱好者吗&#xff1f;那就来一起看看吧&#xff1a;C是一个编译很快&#xff0c;但运行很慢的语言。对此我不接受反驳&#xff0c;C我早就精通了。你问我需要多久才能精通&#xff0c;只要14天。前13天学C&#xff0c;最后1天看看面向对象就行。C…

java xml格式打包,maven项目打包xml没有被打包解决办法 ,mybatis的xml打包

在打maven包是遇见一个问题&#xff1a;打完包发现src/main/java中的的mapping没有被打包进去&#xff1b;原因主要是mapping目录里面的文件都是xml文件并不是.java文件&#xff0c;而maven打包默认的src/main/java的是Java文件&#xff0c;它不会打包里面的xml文件&#xff0c…

老司机找BUG指南,赶紧拿走。。

一.码畜&#xff1a;靠编译器帮自己查语法错误消灭笔误:编写适合程序员的键盘练习if (常量变量或表达式)使用goto接力超长的if,switch连续的if还是if elseif多个条件的组合:精心的排版多重括号的匹配条件编译各种const:不要纠结各种常量了&#xff0c;这个世界上唯一不变的就是…

红帽 jboss_红帽JBoss BRMS和BPMS富客户端框架展示了与GWT / Errai / UberFire和AngularJS的多语言集成...

红帽 jboss上周&#xff0c;我发布了一个博客&#xff0c;重点介绍了我的演示文稿&#xff0c;该演示文稿展示了我们在BRMS和BPMS平台内完成的工作&#xff0c;Drools和jBPM项目的产品化版本所产生的丰富客户端平台。 该演示文稿是所有屏幕截图和视频&#xff0c;您可以在此处找…

你知道自己适合做程序员吗?

哪有什么适不适合?编码本来就不是一件复杂的事情&#xff0c;日常工作不就是敲码、找Bug、 跟产品经理吵架、终于下班了、回家改BUG吗?今天看到了最奇葩的辞职理由&#xff1a;我觉得我数学不好&#xff0c;我不想做编程 我坐不住&#xff0c;我不想做编程 我性格太活泼&…

C/C++冷门知识点你知道多少呢?

在学习C语言的过程中&#xff0c;我们都自己总结了一些重要的知识点&#xff0c;但是有些不常用的冷门知识点可能就被我们选择性忘记了&#xff0c;你要不要来回一下呢&#xff1f;1&#xff1a;int跟signed int是一回事&#xff0c;short、long亦然&#xff0c;但char不是。ch…