学生信息管理系统(C语言版本)
这是我个人写的一个学生管理系统,这是我仅仅用来练手的代码,要知道链表可是你在面试过程中最大机率会考到的,我是陆续从单向链表入门,然后采用双向链表写的代码!如有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语言版本)的更多相关文章
- 学生信息管理系统(c语言)
①注意: 程序中使用了sleep()函数.system()函数 关于 sleep() 函数 sleep() 函数的头文件和用法会因环境的不同而有所不同. 具体见-sleep()函数功能及用法 关于sy ...
- C语言练习-学生信息管理系统
题目要求: 学生信息管理系统struct studentInfo{ int id; char name[128]; int age; char sex; int c_score; int cpp_sc ...
- 【转载】C语言综合实验1—学生信息管理系统
http://www.cnblogs.com/Anker/archive/2013/05/06/3063436.html 实验题目:学生信息管理系统 实验要求:用户可以选择1-7可以分别进行学生信息的 ...
- 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 ...
- 大一C语言结课设计之《学生信息管理系统》
第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...
- 学生信息管理系统(C语言)
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct student ...
- 基于数组或链表的学生信息管理系统(小学期C语言程序实训)
1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...
- 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】
资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...
- 学生信息管理系统v1.0
昨天一个教师朋友找到我,告诉我现在学期末他工作比较忙.需要统计处理很多学生信息,想让我帮他做一个管理系统.实现的功能就是把WPS表格转化成Word文档,将每一个学生的信息都能够分开,并且要根据名字找到 ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)
上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...
随机推荐
- C#——Winform 无边框随意拖动【转载】
本篇技术内容转载自:http://www.cnblogs.com/ap0606122/archive/2012/10/23/2734964.html using System; using Syste ...
- roadflow作为工作流引擎服务中心webapi说明
将RoadFlow作为工作流引擎服务中心,其它第三方系统如OA,ERP等通过调用RoadFlow对外提供的标准WebApi接口来实现流程发送.退回.查询待办事项.已办事项.查看流转审批过程等操作.实现 ...
- SQL server 添加主外键约束
---添加主键约束 alter table 表名 add constraint 约束名 primary key (主键) - --添加唯一约束 alter table 表名 ...
- (转)Struts2返回JSON数据的具体应用范例
转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
- Mac下su命令提示su:Sorry的解决办法
用 sudo su - 输入密码,获得root权限
- DS博客作业01--日期抽象数据类型
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...
- jquery点击页面其他位置隐藏div
$("#btnAdd").on('click', function (e) { $("#setUp").toggle(); $(document).one('c ...
- MVC框架入门准备(二) - 语言包类与工厂模式
语言包类: 相关配置项 LANG_FOLDER : 语言包目录名,默认为Lang LANG_AUTO : 自动识别语言,默认为true DEFAULT_LANG : 默认语言,默认为zh-cn方法 取 ...
- php留言系统(9)
1.参照之前的(mvc框架总结)将整体框架定下来之后,那么请求默认参数将变为: //默认请求首页: //P=front //C=fIndex //A=show 1.1 找到控制器fIndexC ...
- “全栈2019”Java第九十四章:局部内部类详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...