`

c语言链表实现学生管理

c 
阅读更多
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

printf(); 最后要加\n 否则有可能看不见输出的对象
typedef struct{

int id;
char name[100];
char tel[100];
} student;

typedef struct Node {

student * student;
        struct Node * next ; // 要这样,否则在后期转化有问题 node *tmp = (*nodes)-         >next;

} node;


void priinfo(){

printf("**********************************************\n");
printf("--->>>  1: addi\n");
printf("--->>>  2: del\n");
printf("--->>>  3: query\n");
printf("--->>>  4: print\n");
printf("**********************************************\n");
}

int pda(node *node){
printf("id:%d,   name: %s,    tel: %s\n", node->student->id, node->student->name,node->student->tel);
}
int pridata(node **nodes){

if (*nodes == NULL){
printf(" db is empty\n");
return 1;
}
pda(*nodes);

node *tmp = (*nodes)->next;
while(tmp != NULL){
pda(tmp);
tmp = tmp->next;
}

return 1;
}

int del(node **nodes){

if(*nodes == NULL){

return 1;
}

int id =-1;
scanf("%d",&id);

if((*nodes) ->student->id == id){

node * ft = *nodes;
*nodes = (*nodes) ->next;
student * sf = ft->student;
free(sf);
free(ft);
return 1;

}
node *tmp = *nodes;
node *btmp = *nodes;

while( tmp !=NULL && (tmp->student->id) !=id){
btmp = tmp;
tmp = tmp->next;
}
if(tmp == NULL){
printf("del not find \n");
return 1;
}
btmp->next = tmp->next;
student *s = tmp->student;
free(s);
free(tmp);
printf ("del success\n");
return 1;
}
int  add(node **nodes){

         student *st =(student *)malloc(sizeof(student));
printf("id:");
scanf("%d",&(st->id));
printf("name:");
scanf("%s",(st->name));
printf("tel:");
scanf("%s",(st->tel));
if(*nodes == NULL){
*nodes = (node*)(malloc(sizeof(node)));
(*nodes)->student = st;
(*nodes)->next = NULL;

}
else{

node *tmp =  (*nodes) ;
while(tmp->next != NULL){

tmp = tmp->next;
}
node* tmpnode = (malloc(sizeof(node)));
tmpnode ->student = st;
tmpnode -> next = NULL;
tmp->next = (node *)tmpnode;


}
return 1;
}
int query(node **nodes){

if(*nodes == NULL){

return 1;
}
int id =-1;
scanf("%d",&id);

if((*nodes) ->student->id == id){

pda(*nodes);
return 1;

}
node *tmp = *nodes;

while( tmp !=NULL && (tmp->student->id) !=id){
tmp = tmp->next;
}
if(tmp !=NULL){

pda(tmp);
}
return 1;


}
int  wf(int c , node **node){

switch(c){

case 1:printf(" add a student\n enter id  name  tel\n"); add(node); return 1;
case 2:printf(" del a student\n enter id will delte  \n"); del(node); return 1;
case 3:printf(" query a student\n enter id will query  \n"); query(node); return 1;
case 4:printf(" print all student:\n"); pridata(node); return 1;

default :printf(" error, \n"); return 0 ;

}

}

       
int main(){
node *node = NULL;
int c = 0;
while(1){
priinfo();
printf("Enter you kind:\n");
scanf("%d",&c);
if(!wf(c, &node)){
return 1;
}

}


}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    C语言链表实现学生信息管理

    ### 题目:C语言链表实现学生信息管理 #### 描述: 这是一个用C语言编写的简单程序,通过链表技术实现了学生信息的管理功能。用户可以通过简单的命令行界面执行各种操作,如添加、删除、修改、查询学生信息以及保存...

    数据结构c语言链表实现学生管理系统.cpp

    这个是利用C语言实现学生管理系统,主要是应用了链表,结构体知识,经过调试并作为课程设计作业,如果您正在学习这部分内容,或许对你有用。

    学生成绩管理系统课设报告(C语言链表实现)

    该项目主要目的是让学生掌握C语言编程、链表数据结构以及软件开发的基本流程。本报告将详细介绍如何使用C语言通过链表来实现这样一个系统。 1. **问题描述** - 项目链接:此处应给出项目的源代码仓库或在线平台的...

    C语言链表实现学生信息管理系统demo

    利用C语言双向链表实现的学生信息管理系统Demo

    C语言链表实现学生管理系统

    C语言链表实现学生管理系统 本文主要介绍了使用C语言实现链表学生管理系统的详细过程,涵盖了学生信息的录入、增加、修改和删除等操作。 链表数据结构 链表是一种常用的数据结构,通过指针将多个节点连接起来,每...

    C语言链表实现的学生成绩管理系统

    本项目“C语言链表实现的学生成绩管理系统”便是一个很好的实例,展示了如何利用C语言来构建一个实用的管理工具。下面将详细介绍这个系统及其相关知识点。 首先,链表是一种动态数据结构,与数组不同,它不必预先...

    图书管理系统(C语言链表实现)含实验报告

    大学期间用C语言链表实现的一个图书管理系统,主要功能有 a. 设备申请。由专业人员填写“申请表”送交领导批准购买。 b. 设备入库。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、...

    C语言链表学生管理系统

    本项目"链表学生管理系统"是用C语言实现的一个典型应用,它展示了如何利用链表这一数据结构来管理学生信息。链表是计算机科学中重要的数据结构之一,它在内存中动态存储数据,具有灵活的增删改查能力。 首先,让...

    【C语言链表实现】学生成绩管理系统(课设报告+代码,功能全面,通俗易懂)

    内容概要:学生成绩管理系统的课设报告,报告包括程序由C语言链表实现,包含界面菜单,密码登录,录入、增加、删除、修改、显示、保存、读取学生信息,查询单科成绩排名,查询学生成绩,查询不及格超过2科学生的名单...

    学生成绩管理用C语言链表实现

    学生成绩管理用C语言链表实现 本文将详细介绍一个使用C语言和链表实现的学生成绩管理系统,该系统包括查询模块、更新模块、输入输出模块、统计模块、文件读写模块和主程序。 链表数据结构 在该系统中,我们使用...

    C语言链表课程设计——仓库管理系统.rar

    在本项目中,"C语言链表课程设计——仓库管理系统.rar"是一个基于C语言实现的仓库管理系统的源代码压缩包。这个系统利用了链表数据结构来存储和管理仓库中的物品信息,包括入库、出库、查询等操作。链表是计算机科学...

    c语言链表实现简单的学生信息管理系统

    c语言实现, 链表初学使用, 文件读写, 已通过测试

    C语言链表学生成绩管理系统代码

    本项目“C语言链表学生成绩管理系统代码”是基于C语言实现的一个学生成绩管理的简易系统,利用了链表数据结构来存储和操作学生信息及成绩。链表是一种动态数据结构,相对于数组,它更加灵活,能方便地进行插入、删除...

    c语言基于链表的学生成绩管理系统

    本资源是一个基于链表的学生成绩管理系统,使用C语言...本资源基于链表实现了学生成绩管理系统,展示了链表的创建、显示、清除、查找、修改、删除、排序和文件保存和读取等功能,旨在提高学生对链表的理解和应用能力。

    学生信息管理系统C语言链表版.rar

    本项目"学生信息管理系统C语言链表版"就是一个很好的实践案例,它利用链表这一数据结构来存储和操作学生信息,具有较高的学习价值。 链表是一种线性数据结构,与数组不同,它不连续存储元素,而是通过指针将各个...

    C语言链表 简单学生成绩管理系统含注释

    根据给定的文件标题、描述、以及部分内容,我们可以总结出以下关键知识点: ### C语言中的链表基础 ...通过学习这些知识点,不仅可以了解如何使用C语言实现链表,还可以掌握如何构建一个简单的学生成绩管理系统。

    C语言使用链表实现学生信息管理系统

    C语言使用链表实现学生信息管理系统 该资源主要介绍了使用C语言和链表实现学生信息管理系统的方法,文中提供了详细的示例代码,展示了学生信息管理系统的实现过程。下面是该资源的知识点总结: 1.链表的基本概念:...

    C语言链表实现学生成绩管理系统

    1.建立一张学生成绩表,每个学生包含 ...4.能够实现某学生的成绩插入和删除。 5.实现文件操作,程序退出时将学生成绩保存在studen_grad.txt文件中;程序开始时,能够从student_grad.txt文件中加载已有的学生成绩信息。

    C语言学生成绩链表.rar

    学生成绩管理系统,C语言链表方式实现,功能齐全

Global site tag (gtag.js) - Google Analytics