学生信息管理系统 输入和输出 链表
来源:互联网 发布:北京110网络报警平台 编辑:程序博客网 时间:2024/06/06 01:01
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
char name [4];
char number[20];
int sex;
int year;
int major;
int uclass;
};
typedef struct student STUDENT;
struct listNode
{
STUDENT data;
struct listNode* next;
};
typedef struct listNode LISTNODE;
typedef struct listNode* LISTNODEPTR;
void build(LISTNODEPTR*);
void insert(LISTNODEPTR*,STUDENT);
void print(LISTNODEPTR);
int main()
{//case1:
int option,pass;
LISTNODEPTR myPtr = NULL;
STUDENT item;
//判断是否建立新表
printf("是否建立新表?是请输入1,否请输入2\n");
scanf("%d",&option);
if(option == 1)
{
//建立新表
build(&myPtr);
//输入信息
printf("\n请输入一名学生信息\n\n包括姓名、学号、性别、出生年份、专业、班级,用空格隔开\n\n性别--男1-女2\n专业--计算机1-软件2-网络3-物联网4\n\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
//判断是否继续输入
while(pass == 0)
{
insert(&myPtr,item);
printf("请输入下一名学生信息:\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
}
printf("\n信息录入完成!\n");
printf("新的学生信息表是:\n");
print(myPtr);
}
else
{
//直接插入信息
printf("\n请输入一名学生信息\n\n包括姓名、学号、性别、出生年份、专业、班级,用空格隔开\n\n性别--男1-女2\n专业--计算机1-软件2-网络3-物联网4\n\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
//判断是否继续输入
while(pass == 0)
{
insert(&myPtr,item);
printf("请输入下一名学生信息:\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
}
printf("\n信息录入完成!\n");
printf("新的学生信息表是:\n");
print(myPtr);
}
return 0;
}
void build(LISTNODEPTR * myPtr)
{
(*myPtr) = (LISTNODEPTR)malloc(sizeof(LISTNODE));
(*myPtr)->next = NULL;
}
void insert(LISTNODEPTR* myPtr,STUDENT item)
{
LISTNODEPTR ne;
ne = (LISTNODEPTR)malloc(sizeof(LISTNODE));
//在结点的数据域中存储数据
strcpy(ne->data.name , item.name);
strcpy(ne->data.number , item.number);
ne->data.sex = item.sex;
ne->data.year = item.year;
ne->data.major = item.major;
ne->data.uclass = item.uclass;
//插入新结点-头插法
ne->next = (*myPtr)->next;
(*myPtr)->next = ne;
}
void print(LISTNODEPTR myPtr)
{
int i = 1;
if(myPtr->next == NULL)
printf("学生信息表中没有数据!请输入数据后再打印\n\n");
else
{
while(myPtr->next!= NULL)
{
myPtr = myPtr->next;
printf("[%d]-%s %s %d %d %d %d\n",i,myPtr->data.name,myPtr->data.number,myPtr->data.sex,myPtr->data.year,myPtr->data.major,myPtr->data.uclass);
i++;
}
}
}
#include <stdlib.h>
#include <string.h>
struct student
{
char name [4];
char number[20];
int sex;
int year;
int major;
int uclass;
};
typedef struct student STUDENT;
struct listNode
{
STUDENT data;
struct listNode* next;
};
typedef struct listNode LISTNODE;
typedef struct listNode* LISTNODEPTR;
void build(LISTNODEPTR*);
void insert(LISTNODEPTR*,STUDENT);
void print(LISTNODEPTR);
int main()
{//case1:
int option,pass;
LISTNODEPTR myPtr = NULL;
STUDENT item;
//判断是否建立新表
printf("是否建立新表?是请输入1,否请输入2\n");
scanf("%d",&option);
if(option == 1)
{
//建立新表
build(&myPtr);
//输入信息
printf("\n请输入一名学生信息\n\n包括姓名、学号、性别、出生年份、专业、班级,用空格隔开\n\n性别--男1-女2\n专业--计算机1-软件2-网络3-物联网4\n\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
//判断是否继续输入
while(pass == 0)
{
insert(&myPtr,item);
printf("请输入下一名学生信息:\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
}
printf("\n信息录入完成!\n");
printf("新的学生信息表是:\n");
print(myPtr);
}
else
{
//直接插入信息
printf("\n请输入一名学生信息\n\n包括姓名、学号、性别、出生年份、专业、班级,用空格隔开\n\n性别--男1-女2\n专业--计算机1-软件2-网络3-物联网4\n\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
//判断是否继续输入
while(pass == 0)
{
insert(&myPtr,item);
printf("请输入下一名学生信息:\n");
scanf("%s%s%d%d%d%d",item.name,item.number,&item.sex,&item.year,&item.major,&item.uclass);
printf("是否继续输入?输入0继续,输入其他数字退出\n");
scanf("%d",&pass);
}
printf("\n信息录入完成!\n");
printf("新的学生信息表是:\n");
print(myPtr);
}
return 0;
}
void build(LISTNODEPTR * myPtr)
{
(*myPtr) = (LISTNODEPTR)malloc(sizeof(LISTNODE));
(*myPtr)->next = NULL;
}
void insert(LISTNODEPTR* myPtr,STUDENT item)
{
LISTNODEPTR ne;
ne = (LISTNODEPTR)malloc(sizeof(LISTNODE));
//在结点的数据域中存储数据
strcpy(ne->data.name , item.name);
strcpy(ne->data.number , item.number);
ne->data.sex = item.sex;
ne->data.year = item.year;
ne->data.major = item.major;
ne->data.uclass = item.uclass;
//插入新结点-头插法
ne->next = (*myPtr)->next;
(*myPtr)->next = ne;
}
void print(LISTNODEPTR myPtr)
{
int i = 1;
if(myPtr->next == NULL)
printf("学生信息表中没有数据!请输入数据后再打印\n\n");
else
{
while(myPtr->next!= NULL)
{
myPtr = myPtr->next;
printf("[%d]-%s %s %d %d %d %d\n",i,myPtr->data.name,myPtr->data.number,myPtr->data.sex,myPtr->data.year,myPtr->data.major,myPtr->data.uclass);
i++;
}
}
}
0 0
- 学生信息管理系统 输入和输出 链表
- C语言标准输出和学生信息管理系统设计分享
- 学生信息管理系统目标和范围说明书
- 学生信息管理系统:功能和数据库设计图
- 【学生信息管理系统】BOF和EOF
- 【学生信息管理系统】EOF 和 BOF
- 学生信息管理系统源代码和视频文件,视频教程!
- 学生成绩输入和输出
- 【学生信息管理系统】对输入框-TextBox的限制
- C 语言 学生信息管理系统 指针 链表
- 学生信息管理系统
- 学生学籍信息管理系统
- 学生信息管理系统
- 学生信息管理系统
- 学生成绩信息管理系统
- 学生信息管理系统
- 【学生信息管理系统 总结】
- 学生信息管理系统--毕业论文
- jquery实现人物简单走动
- 关于数组
- course3 二分
- UVA-442数据结构调用栈,注意括号的处理
- android canvas drawText \r\n 换行
- 学生信息管理系统 输入和输出 链表
- 设置窗口客户区大小的方法
- java 大数运算 BinInteger
- android 禁止横竖屏切换时activity重新启动
- 对ExecuteNonQuery,ExecuteScalar,DataSet 进行封装(params可变参数的用法)Sqlparameter
- ubuntu 下串口调试安装(gtkterm)
- 【c++系列】typeid操作符(判断类型是否相同)
- Back to Underworld
- Tplink 上网设置