IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 编程考核---文件与链表的操作应用 -> 正文阅读

[数据结构与算法]编程考核---文件与链表的操作应用

? 编程考核—文件与链表的操作应用

#include<stdio.h>
#include<string.h>
#include<stdlib.h> 
char n[20][20],x[20][20],f[20][20],p[20][20];
typedef struct student{
	char name[20];
	char xuehao[20];
	char fangxiang[20];
	char phone[20];
	struct student*next;
}*linklist;
void menu(){
	printf("*********************************************\n");
	printf("        软件科技协会成员信息      \n");
	printf("                                  \n");
	printf("           [0]退出程序            \n");
	printf("           [1]输出成员信息        \n");
	printf("           [2]找到成员并删除      \n");
	printf("           [3]添加新成员          \n");
	printf("           [4]更改联系方式        \n");
}
linklist Init()
{
	linklist head=(linklist)malloc(sizeof(struct student));
    head->next=NULL;
    return head;
}
void insert(linklist head,char n[],char x[],char f[],char p[]){
	linklist h=(linklist)malloc(sizeof(struct student));//开辟节点很重要啊啊啊啊啊啊 
	if(head->next==NULL){
	strcpy(h->name,n);
	strcpy(h->xuehao,x);
	strcpy(h->fangxiang,f);
	strcpy(h->phone,p);
    head->next=h;
    h->next=NULL;
	}
	else{
	strcpy(h->name,n);
	strcpy(h->xuehao,x);
	strcpy(h->fangxiang,f);
	strcpy(h->phone,p);
	h->next=head->next;
	head->next=h; 
}
}
void deletestu(linklist head){
	int flag=0;
	printf("请输入要删除的人名\n");
	char Name[20];
	linklist p=head->next;
	linklist cur=head;
	scanf("%s",&Name);
	while(p){
		if(strcmp(p->name,Name)==0){  //要是strcmp,不能是p->name==Name 
			cur->next=p->next;
			free(p);
			flag=1;
			break;
		}
		cur=cur->next;
		p=p->next;
	}
	if(flag==1)
	printf("操作成功\n");
	else{
		printf("操作失败\n");
	} 
}
linklist add(linklist head){
	linklist newmem=(linklist)malloc(sizeof(struct student));
	printf("请输入该成员的相关信息\n"); 
	printf("请输入该成员的姓名\n");
	printf("请输入该成员的学号\n");
	printf("请输入该成员的学习方向\n");
	printf("请输入该成员的联系方式\n"); 
	scanf("%s %s %s %s",&newmem->name,&newmem->xuehao,&newmem->fangxiang,&newmem->phone);
	newmem->next=head->next;
	head->next=newmem;
	printf("操作成功\n"); 
	return newmem; 
}

void alter(linklist head){
	int flag=0; 
	char Name[20];
	printf("输入要更改的尘缘的名字\n");
	scanf("%s",&Name);
	linklist cur=head;
	linklist p=head->next;
	while(p){
		if(strcmp(p->name,Name)==0){
			flag=1;
			break;
		}
		p=p->next;
		cur=cur->next;
	}
	if(flag==1){
		printf("查找成功\n");
		printf("请输入要更改的联系方式\n");
		char Phone[20];
		scanf("%s",&Phone);
		strcpy(p->phone,Phone);
		printf("操作成功\n"); 
	}
	else{
		printf("不好意思,没有这个人\n");
	}
}
void paixu(linklist head){
	linklist p,q;
	char arr[20];
	if( head==NULL){
		return ;
	}
	if( head->next==NULL){
		return ;
	}
    for(p=head->next;p!=NULL;p=p->next){
    	for(q=p->next;q!=NULL;q=q->next){
    		if(strcmp(p->xuehao,q->xuehao)>0){
//    			arr=p->xuehao;
//    			p->xuehao=q->xuehao;
//    			q->xuehao=arr;
      strcpy(arr,p->xuehao);
      strcpy(p->xuehao,q->xuehao);
      strcpy(q->xuehao,arr);
			}
		}
	}

} 
void print(linklist head){
	printf("姓名\t   学号\t   方向\t   联系方式\t\n");
	linklist p=head->next;
	while(p!=NULL){
		printf("%s\t   %s\t   %s\t   %s\t\n",p->name,p->xuehao,p->fangxiang,p->phone);
		p=p->next;
	}
}
int main()
{
	linklist head=Init();
	FILE* pf=fopen("D:\\members.txt","r");
	if(pf==NULL){
		printf("读取文件失败\n");
	}
	else{
		printf("读取成功\n");
	}
	for(int i=0;i<5;i++){
		fscanf(pf,"%s %s %s %s",&n[i],&x[i],&f[i],&p[i]);
	}
	fclose(pf);
	for(int i=1;i<5;i++){
	insert(head,n[i],x[i],f[i],p[i]);
	}
	int n;
	menu();
	while(scanf("%d",&n)!=-1){
		switch (n){
			case 0:
				printf("退出程序\n");
				return 0; 
				break;
			case 1:
			    paixu(head);
				print(head);
				break;
			case 2:
			deletestu(head);
			print(head);
			break;
			case 3:
			add(head);
			print(head);
			break;
			case 4:
			alter(head);
			print(head);
			break;
			defalt :
			break;	
		}
	}

}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 16:14:34  更:2021-12-18 16:17:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:38:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码