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,一经查实,立即删除!

相关文章

php 多图上传编辑器,ThinkPHP5整合LayUI编辑器图片上传

一、创建上传方法public function uploadimg(){$image $_FILES[file];$filebase file_get_contents($image[tmp_name]);$upimg $this->uploadImage($filebase);$upfile[code] 0;$upfile[msg] 上传成功;$upfile[data][src] $upimg;$upfile[data][title] $image[name];…

jaxb_JAXB众所周知的秘密

jaxb介绍 我重新发现了Java向大众提供的库。 当我第一次阅读该规范时,我很困惑,以为我需要所有这些特殊工具来实现。 我最近发现,只需要一些注释和一个POJO。 杰克斯 JAXB代表XML绑定的Java体系结构。 这种体系结构允许开发人员将来自类的数…

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

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

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

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

gtest 测试部分_全部关于测试–第2部分

gtest 测试部分这是有关测试的系列文章的第二篇。 在第一部分中,我解释了在开发测试时需要具备的心态。 或者,换句话说,开发可测试的代码。 在这一部分中,我将介绍一些测试方法的技术。 我将描述的技术可以看作是如何将思维定势转…

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

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

java servlet applet,详解Java Servlet与Applet比较

Java Servlet与Applet相似之处&#xff1a;◆它们不是独立的应用程序&#xff0c;没有main()方法。◆它们不是由用户或程序员调用&#xff0c;而是由另外一个应用程序(容器)调用。◆它们都有一个生存周期&#xff0c;包含init()和destroy()方法。Java Servlet与Applet不同之处&…

gtest 测试部分_全部关于测试–第1部分

gtest 测试部分这是三个系列文章中的第一篇。 测试思路 技巧 工具和提示 心态 测试代码是需要学习的东西。 吸收如何做好需要花费时间。 这是一种应该始终练习和改进的技巧。 过去&#xff0c;开发人员没有进行测试&#xff0c;而是检查了他们的代码。 这是一个很好的技巧…

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

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

java改文字乱码快捷键,java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码...

转自http://blog.csdn.net/zhangzikui/article/details/7708827碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件&#xff0c;发生中文乱码的现象&#xff0c;Java代码Properties propnewProperties();prop.load(Client.class.getClassLoader().getResourceAsSt…

什么是jsf_为什么应该避免JSF

什么是jsf长期以来&#xff0c;对我而言&#xff0c;JSF只是另一个我不太在乎的Web框架。 这改变了。 在被迫使用了几个月之后&#xff0c;我认为几乎在所有情况下这都是主要的项目风险。 在这里&#xff0c;我介绍作出这一裁决的理由。 UI和处理逻辑的纠缠不清。 官方教程声称…

matlab 英语怎么读,MATLAB SPTooL

Image:114994698204558.jpgmatlabmatlab是矩阵实验室(matrix laboratory)之意。除具备卓越的数值计算能力外&#xff0c;它还提供了专业水平的符号计算&#xff0c;文字处理&#xff0c;可视化建模仿真和实时控制等功能。matlab的基本数据单位是矩阵&#xff0c;它的指令表达式…

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

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

drools。drools_使用Drools跟踪输出

drools。droolsDrools 6包含一个跟踪输出&#xff0c;可以帮助您了解系统中正在发生的事情&#xff0c;事物执行的频率以及多少数据。 这也有助于理解Drools 6现在是基于目标的算法&#xff0c;它使用链接机制链接评估规则。 有关此的更多详细信息&#xff1a; http://www.ja…

matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...

matlab时钟万年历所属分类&#xff1a;图形图像处理开发工具&#xff1a;matlab文件大小&#xff1a;54KB下载次数&#xff1a;6上传日期&#xff1a;2018-08-24 21:54:23上 传 者&#xff1a;小小葡萄123说明&#xff1a; matlab时钟万年历(附word说明文档)&#xff1a;程序主…

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

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

php通知多有人,PHP通知抑制;只有某些情况/方法

tl; dr – 在非常严格的环境中工作时,是否有一种有效的方法来管理PHP的错误报告级别,因为某些流程在不太严格的级别下会变得更容易&#xff1f;好的;首先,我不相信“错误抑制”是一个解决方案.我(有理由确定我)从未使用过 error suppress运算符,并且无意这样做.我利用set_error…

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

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

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

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

matlab serial 38400,这个程序的波特率能帮我改到38400吗?

#include #include unsigned char tmp;unsigned int c0;sbit led1P2^0; //指示灯0sbit led2P2^1; //指示灯1sbit led3P2^3; //指示灯3void init(); //串口初始化void send(unsigned char a); //单字…