- 浏览: 153391 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
#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;
}
}
}
#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;
}
}
}
发表评论
文章已被作者锁定,不允许评论。
-
简单的linux -c http-client
2013-10-23 15:35 4725#include<stdio.h> #includ ... -
毗连“"aa"”和“"bb"”不能给出一个有效的预处理标识符,gcc编译错误表
2013-10-01 18:54 2995gcc bug : ##’ cannot appear at ... -
负数转化为整数
2013-10-01 12:02 1354负数转化为整数 int a = -1321313; 12 ... -
STDIN_FILENO的作用及与stdin 的区别
2013-09-08 14:48 906if(NULL == fgets(msg,100,stdi ... -
c++ 动态内存分配
2013-08-28 22:35 843先看一段代码: [cpp] view plaincopy ... -
文件结束符EOF,system("stty raw")
2013-08-14 10:47 1555>> 关于文件结束符EOF EOF 是 End O ... -
c 专家编程
2013-08-13 17:06 688总结: -2> int * a = NUL ... -
c语言api
2013-07-31 21:06 676原型:extern int isalnum(int c); 用 ... -
c 语言无符号类型使用注意,类型升级
2013-07-30 14:37 624#define SS sizeof(int) 5 int ... -
判断两个一个链表是否存在循环(C专家编程中的问题)
2013-06-24 15:35 912判断两个一个链表是否存在循环(C专家编程中的问题) #incl ... -
atoi源码
2013-05-14 19:32 1260原文: http://blog.csdn.net/eroswa ... -
c语言特殊字符串复制
2013-05-06 01:59 8632.strcpy和memcpy主要有以下3方面的区别。 2.1 ... -
《APUE》:线程和fork(父子进程锁)
2013-04-29 21:07 1168《Unix环境高级编程》这本书附带了许多短小精美的小程序,我在 ... -
Linux多线程同步的几种方式
2013-04-22 22:49 775Linux多线程同步的几种方式 线程的最大特点是资 ... -
sphinx 安装
2013-04-10 19:54 535[@zw-76-80 soft]$ rpm -ivh MySQ ... -
防止pause和alrm产生竞争
2013-04-08 22:51 8311 #include<stdio.h> 2 ... -
关于linux环境下信号SIGCHLD的排队机制
2013-04-07 22:13 1541下面是关于在SIGCHLD的一遍网上的摘要,但是在linux中 ... -
alarm与pause
2013-04-07 20:12 7631 #include<stdio.h> 2 ... -
Linux下的定时器
2013-04-07 20:05 647Linux下的定时器有两种,以下分别介绍: 1、 ... -
linux 信号量
2013-04-04 22:24 666目录 SIGCHLD 描述 编辑本段SIG ...
相关推荐
### 题目:C语言链表实现学生信息管理 #### 描述: 这是一个用C语言编写的简单程序,通过链表技术实现了学生信息的管理功能。用户可以通过简单的命令行界面执行各种操作,如添加、删除、修改、查询学生信息以及保存...
这个是利用C语言实现学生管理系统,主要是应用了链表,结构体知识,经过调试并作为课程设计作业,如果您正在学习这部分内容,或许对你有用。
该项目主要目的是让学生掌握C语言编程、链表数据结构以及软件开发的基本流程。本报告将详细介绍如何使用C语言通过链表来实现这样一个系统。 1. **问题描述** - 项目链接:此处应给出项目的源代码仓库或在线平台的...
利用C语言双向链表实现的学生信息管理系统Demo
C语言链表实现学生管理系统 本文主要介绍了使用C语言实现链表学生管理系统的详细过程,涵盖了学生信息的录入、增加、修改和删除等操作。 链表数据结构 链表是一种常用的数据结构,通过指针将多个节点连接起来,每...
本项目“C语言链表实现的学生成绩管理系统”便是一个很好的实例,展示了如何利用C语言来构建一个实用的管理工具。下面将详细介绍这个系统及其相关知识点。 首先,链表是一种动态数据结构,与数组不同,它不必预先...
大学期间用C语言链表实现的一个图书管理系统,主要功能有 a. 设备申请。由专业人员填写“申请表”送交领导批准购买。 b. 设备入库。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、...
本项目"链表学生管理系统"是用C语言实现的一个典型应用,它展示了如何利用链表这一数据结构来管理学生信息。链表是计算机科学中重要的数据结构之一,它在内存中动态存储数据,具有灵活的增删改查能力。 首先,让...
内容概要:学生成绩管理系统的课设报告,报告包括程序由C语言链表实现,包含界面菜单,密码登录,录入、增加、删除、修改、显示、保存、读取学生信息,查询单科成绩排名,查询学生成绩,查询不及格超过2科学生的名单...
学生成绩管理用C语言链表实现 本文将详细介绍一个使用C语言和链表实现的学生成绩管理系统,该系统包括查询模块、更新模块、输入输出模块、统计模块、文件读写模块和主程序。 链表数据结构 在该系统中,我们使用...
在本项目中,"C语言链表课程设计——仓库管理系统.rar"是一个基于C语言实现的仓库管理系统的源代码压缩包。这个系统利用了链表数据结构来存储和管理仓库中的物品信息,包括入库、出库、查询等操作。链表是计算机科学...
c语言实现, 链表初学使用, 文件读写, 已通过测试
本项目“C语言链表学生成绩管理系统代码”是基于C语言实现的一个学生成绩管理的简易系统,利用了链表数据结构来存储和操作学生信息及成绩。链表是一种动态数据结构,相对于数组,它更加灵活,能方便地进行插入、删除...
本资源是一个基于链表的学生成绩管理系统,使用C语言...本资源基于链表实现了学生成绩管理系统,展示了链表的创建、显示、清除、查找、修改、删除、排序和文件保存和读取等功能,旨在提高学生对链表的理解和应用能力。
本项目"学生信息管理系统C语言链表版"就是一个很好的实践案例,它利用链表这一数据结构来存储和操作学生信息,具有较高的学习价值。 链表是一种线性数据结构,与数组不同,它不连续存储元素,而是通过指针将各个...
根据给定的文件标题、描述、以及部分内容,我们可以总结出以下关键知识点: ### C语言中的链表基础 ...通过学习这些知识点,不仅可以了解如何使用C语言实现链表,还可以掌握如何构建一个简单的学生成绩管理系统。
C语言使用链表实现学生信息管理系统 该资源主要介绍了使用C语言和链表实现学生信息管理系统的方法,文中提供了详细的示例代码,展示了学生信息管理系统的实现过程。下面是该资源的知识点总结: 1.链表的基本概念:...
1.建立一张学生成绩表,每个学生包含 ...4.能够实现某学生的成绩插入和删除。 5.实现文件操作,程序退出时将学生成绩保存在studen_grad.txt文件中;程序开始时,能够从student_grad.txt文件中加载已有的学生成绩信息。
学生成绩管理系统,C语言链表方式实现,功能齐全