• 大小: 8KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: C语言  

资源简介

【附源代码】 现在最低分只能设置2分,想0分分享给大家的,官方取消了0分分享,连1分都没有了,很无奈!!!! 很简单的链表了,包含有新建学生信息、查看学生信息、删除、修改、清空等功能。 说实话,不值2分。代码也分享在我博客上面了,可以直接查看: http://blog.csdn.net/wu9797/article/details/77606258

资源截图

代码片段和文件信息

/*====学生信息管理系统--基于单向链表结构============*/

/* 
*版本1.3-20170826:========单链表========
*在上一个版本基础上,增加了查找、修改、清空、删除功能
*发现的未解决的小BUG:
*/

#include 
#include 
#include 
#include 

//0.设计节点
typedef struct student
{
char id[20];   //学号
char name[20]; //姓名
int age;   //年龄
char nu[13];  //电话
float score;  //成绩
struct student *next;  //指针
}list_stu *ptr_stu;

//函数的声明
ptr_stu init_list(void); //初始化
ptr_stu creat_node(void); //创建节点
void interface(void); //主界面
void insert_node(ptr_stu head ptr_stu new); //插入新结点
void display_node(ptr_stu head); //显示链表
void choice(ptr_stu head); //选择相应的功能
void delete_node(ptr_stu head char id_input[]); //删除节点
void modify_node(ptr_stu head char id_input[]); //更改信息
bool is_empty(ptr_stu head); //判断空表
void clear_list(ptr_stu head); //清空链表
void find_node(ptr_stu head char id_input[]); //查找节点 

int main(int argc char *argv[])
{
printf(“\n\t\t\033[1;32m学生信息管理系统\033[0;0m\n“);
ptr_stu head = init_list(); //链表初始化,创建无数据的头结点

choice(head); //调用选择函数

return 0;
}

//1.初始化创建头结点
ptr_stu init_list(void)
{
ptr_stu head = malloc(sizeof(list_stu));
if(head != NULL)
{
head->next = NULL;
}
return head;
}

//2.创建一个节点
ptr_stu creat_node(void)  
{
ptr_stu new = malloc(sizeof(list_stu));
if (new != NULL)
{
printf(“请输入学号:“);
scanf(“%s“ new->id);

printf(“请输入姓名:“);
scanf(“%s“ new->name);

printf(“请输入年龄:“);
scanf(“%d“ &new->age);

printf(“请输入电话:“);
scanf(“%s“ new->nu);

printf(“请输入分数:“);
scanf(“%f“ &new->score);

new->next = NULL;
}
return new;
}

//3.插入结点
void insert_node(ptr_stu head ptr_stu new)
{
if(new == NULL || head == NULL)
return;

ptr_stu p = head;

while(p->next != NULL)
{
if(strcmp(p->next->id new->id) == 0) //判断学号是否有冲突
{
printf(“\033[41m学号重复!录入失败!\033[0m\n“);
return;
}
p = p->next;
}

p->next = new;
}

//4.遍历显示·
void display_node(ptr_stu head)
{
if(head->next == NULL)
{
printf(“\033[41m系统为空,无学生信息!\033[0m\n“);
return;
}
printf(“\033[34m*********\033[0m \033[44m学生信息:\033[0m \033[34m*************\033[0m\n“);
printf(“\033[40m学号\t     姓名\t  年龄\t电话\t     成绩\033[0m\n“);
ptr_stu p = head;

while(p->next != NULL)
{
p = p->next;

printf(“\033[31;40m%-12s\033[0m\033[40m %-12s %-4d  %-12s %-4.1f\033[0m\n“ p->id p->name p->age p->nu p->score);
}

printf(“\033[34m*********\033[0m \033[44m可爱的分割线!\033[0m \033[34m*********\033[0m\n“);
}

//主界面
void interface(void)
{
printf(“\n===============\033[42m请选择功能(0-6):\033[0m===============\n“);
printf(“\t \033[40;31m 1. \033[0m \033[33m新建一个学生的信息。\033[0m\n“);
printf(“\t \033[40;31m 2. \033[0m \033[36m删除某个学生的信息。\033[0m\n“);
printf(“\t \033[40;31m 3. \033[0m \033[32m显示全部学生的信息。\033[0m\n“);
printf(“\t \033[40;31m 4. \033[0m \033[34m查找某个学生的信息。\033[0m\n“);
printf(“\t \033[40;31m 5. \033[0m \033[35m修改某个学生的信息。\033[0m\n“);
printf(“

评论

共有 条评论