这是我个人写的一个学生管理系统,这是我仅仅用来练手的代码,要知道链表可是你在面试过程中最大机率会考到的,我是陆续从单向链表入门,然后采用双向链表写的代码!如有BUG,请指正,让我们
共同进步!
1 #include<stdio.h>
#include<malloc.h>
#include<string.h>
struct student
{
int id;
char name[];
int age;
int sex;
int class_num;
struct student *next;
struct student *pr;
};
typedef struct student link;
link *head;
int insert()
{
link *newnode;
newnode = (link *)malloc(sizeof(struct student));
link *temp_head = head;
printf("请输入学生ID:\n");
scanf("%d",&newnode->id);
printf("请输入学生姓名:\n");
scanf("%s",newnode->name);
printf("请输入学生年龄:\n");
scanf("%d",&newnode->age);
printf("请输入学生性别0(代表男 1代表女):\n");
scanf("%d",&newnode->sex);
if((newnode->sex == || newnode->sex == ) == )
{
printf("input is fail!\n");
scanf("%d",&newnode->sex);
}
printf("请输入学生的班级号码:\n");
scanf("%d",&newnode->class_num);
newnode->next = NULL;
newnode->pr = NULL;
if(temp_head->next == NULL)
{
temp_head->next = newnode;
newnode->pr = temp_head;
newnode->next = NULL;
return ;
}
int flag = ;
while(temp_head->next != NULL)
{
if(newnode->id < temp_head->next->id)
{
newnode->next = temp_head->next;
newnode->pr = temp_head;
temp_head->next = newnode;
newnode->next->pr = newnode;
flag = ;
break;
}
temp_head = temp_head->next;
}
if(flag == )
{
temp_head->next = newnode;
newnode->next = NULL;
newnode->pr = temp_head;
}
return ;
}
int input()
{
char num[];
scanf("%s",num);
if(strcmp(num,"insert") == )
{
return ;
}
else if(strcmp(num,"delete") == )
{
return ;
}
else if(strcmp(num,"display") == )
{
return ;
}
else if(strcmp(num,"exit") == )
{
return ;
}
else
{
return ;
}
}
int display(int id)
{
link *temp_head = head;
int flag = ;
if(temp_head->next == NULL)
{
printf("没有输入学生信息:\n");
return ;
}
while(temp_head != NULL)
{
if(temp_head->id == id)
{
printf("id = %d\n name = %s\n age = %d\n sex = %d\n class_num = %d\n",temp_head->id,temp_head->name,temp_head->age,temp_head->sex,temp_head->class_num);
flag = ;
break;
}
temp_head = temp_head->next;
}
if(flag == )
{
printf("查无此人!\n");
}
return ;
}
int delete(int id)
{
link *temp_head = head;
int flag;
if(temp_head->next == NULL)
{
printf("学生内容为空,无法删除\n");
return ;
}
while(temp_head != NULL)
{
if(temp_head->id == id)
{
if(temp_head->next == NULL)
{
temp_head->pr->next = NULL;
flag = ;
break;
}
else
{
temp_head->pr->next = temp_head->next;
temp_head->next->pr = temp_head->pr;
flag = ;
break;
}
}
temp_head = temp_head->next; }
if(flag == )
{
printf("删除成功!\n");
}
else
{
printf("删除失败!\n");
}
return ;
}
int main()
{
int pid;
int id;
int class_num;
head = (link *)malloc(sizeof(struct student));
head->next = NULL;
head->pr = NULL;
printf("/****************************\n");
printf("\t欢迎使用学生管理系统\n");
printf("\t输入insert添加学生信息\n");
printf("\t输入delete删除学生信息\n");
printf("\t输入display查看学生信息\n");
printf("\t输入exit退出程序\n");
printf("*************************/\n");
printf("请输入命令!\n");
pid = input();
while(pid != )
{
switch(pid)
{
case :
insert();
break;
case :
printf("请输入要删除的学生ID:\n");
scanf("%d",&id);
delete(id);
break;
case :
printf("请输入要显示的学生ID:\n");
scanf("%d",&id);
display(id);
break;
case :
printf("输入的命令有误,请重新输入:\n");
break;
case :
break;
}
printf("请输入命令!\n");
pid = input();
}
printf("该程序结束!\n");
return ;
}

学生信息管理系统(C语言版本)的更多相关文章

  1. 学生信息管理系统(c语言)

    ①注意: 程序中使用了sleep()函数.system()函数 关于 sleep() 函数 sleep() 函数的头文件和用法会因环境的不同而有所不同. 具体见-sleep()函数功能及用法 关于sy ...

  2. C语言练习-学生信息管理系统

    题目要求: 学生信息管理系统struct studentInfo{ int id; char name[128]; int age; char sex; int c_score; int cpp_sc ...

  3. 【转载】C语言综合实验1—学生信息管理系统

    http://www.cnblogs.com/Anker/archive/2013/05/06/3063436.html 实验题目:学生信息管理系统 实验要求:用户可以选择1-7可以分别进行学生信息的 ...

  4. C语言小练习之学生信息管理系统

    C语言小练习之学生信息管理系统 main.c文件   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...

  5. 大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...

  6. 学生信息管理系统(C语言)

    #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct student ...

  7. 基于数组或链表的学生信息管理系统(小学期C语言程序实训)

    1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...

  8. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  9. 学生信息管理系统v1.0

    昨天一个教师朋友找到我,告诉我现在学期末他工作比较忙.需要统计处理很多学生信息,想让我帮他做一个管理系统.实现的功能就是把WPS表格转化成Word文档,将每一个学生的信息都能够分开,并且要根据名字找到 ...

  10. 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)

    上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...

随机推荐

  1. c# 检查报错详细

    catch (DbEntityValidationException error) { string test = string.Empty; foreach (var validationError ...

  2. 自己从0开始学习Unity的笔记 VII (C#中类继承练习)

    好久都没有写了.今天做了类继承的练习,做了一个小队,进行简单的判定. namespace 兵团建立练习 { class ServantBasics { public string name; //pr ...

  3. composer 学习与推荐资料

    今天看了一下composer,前几天开始用包依赖,以前一直都是自己手动配.今天用了composer,要学习的话可以按照以下链接学习: 1 官方文档: http://docs.phpcomposer.c ...

  4. 20165219 Exp1 PC平台逆向破解

    20165219 Exp1 PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串 ...

  5. 深入了解java虚拟机(JVM) 第八章 常见的jvm调优策略

    一般来说,jvm的调优策略是没有一种固定的方法,只有依靠我们的知识和经验来对项目中出现的问题进行分析,正如吉德林法则那样当你已经把问题清楚写出来,就已经解决了一半.虽然JVM调优中没有固定的策略,但是 ...

  6. “全栈2019”Java异常第一章:什么是异常?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  7. luoguP5074 Eat the Trees

    https://www.luogu.org/problemnew/show/P5074 插头 $ dp $ 入门题 如果你还不会插头 $ dp $ 请右转 洛谷插头dp题解 虽然是入门题但还是逃不过分 ...

  8. DESTOON从CSRF到GETSHELL

    本文作者:薄荷糖微微凉 Destoon B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案.系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放.模型化的开发思路,可 ...

  9. eclipse的classpath(build path)和classpaht几种设置的方式

    1,默认eclipse有自己的classpath的路径并不是环境变量中配置的classpah. 2,eclipse的classpath每个项目不同,一般是在工作区的当前项目的class下. 2.1,可 ...

  10. 个人KPI制定

    1.工作量 1.1 能独立完成工作优先级 1.2 能独立预估工作时间 2.工作质量 2.1 项目按时完成没有延期 2.2 交付件质量 2.2.1 测试用例设计没有明显遗漏 2.2.2 测试bug符合规 ...