c语言学生信息管理系统代码

作者&投稿:枝尹 (若有异议请与网页底部的电邮联系)
~

代码如下:

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct examinee //考生信息结构
{   char examno[20]; //准考证号
char name[10]; //姓名
char sex[4]; //性别
short age; //年龄
char examtype[10]; //报考科目
}ElemType;

typedef struct Node //定义链表结点
{
ElemType data; //数据域
struct Node *next; //指针域
}Node,*List,*position;

List make_empty( List L ); //创建一个带头结点的空表
int is_empty( List L ); //测试链表是否是空表
int is_last( position p, List L ); //测试当前位置是否是表尾
position make_node( position p,int n ); //创建结点并输入考生信息
void put_information( position p ); //是否输出该考生信息
void put_name_information( List L ); //输出姓名为xx的考生信息
int put_pos_information( position p ); //输出该地址考生信息
void link_to_tail( List L, position p ); //将结点连接到表尾
int ciculation_make(); //循环创建考生信息
int judge_put_all(); //是否输出所有考生信息
void put_all(List L); //输出所有考生信息。
position find( List L ); //查找第一个姓名为xx的元素并返回位置
position find_previous( List L ); //查找第一个姓名为xx的元素并返回该元素直接前驱的位置
//int judge_delete_val(); //询问是否删除考生数据
int delete_val( List L ); //删除指定考生信息并输出其信息
void menu(List L); //菜单函数
List L;
//position p;

int
main( void ) 
{
List L = NULL; //定义头结点指针
position p = NULL; //定义表工作指针
L = make_empty( L ); //创建空表
printf("★★考生报名管理程序★★
----------------------------------------
");
menu(L);
return 0;
}

//创建一个带头结点的空表
List
make_empty( List L)
{
L = ( List ) malloc (sizeof( Node ));
if(NULL == L)
{
printf("内存分配失败");
exit( 1 );
}
L->next = NULL;
//printf("空表创建成功。
");
return L;
}

//创建结点并输入考生信息
position
make_node( position p ,int n)
{
if(n) //n为1是创建结点并输入,n为0是修改
{
p = ( position ) malloc ( sizeof ( Node ));
p->next = NULL ;
}
printf("请输入考生准考证号:");
gets(p->data.examno);
printf("请输入考生姓名:");
gets(p->data.name);
do
{
printf("请输入考生性别,只能输入“男”或者“女”:");
gets(p->data.sex);
}
while( 0 != strcmp( p->data.sex, "男" ) && 0 != strcmp( p->data.sex, "女" )); //判断性别是否有误
printf("请输入考生年龄:");
scanf("%hd",&p->data.age);
getchar();  //如果把这句删掉,就“无法执行”下面的报考类别
/*下面的do while用来判断报考类别是否输入有误*/
do
{
printf("请输入报考类别,只能输入“数学”或“英语”或者“数据结构”:");
gets(p->data.examtype);
}
while( 0 != strcmp( "英语", p->data.examtype ) && 0 != strcmp( "数学", p->data.examtype ) && 0 != strcmp( "数据结构", p->data.examtype ));
if(n)
{
printf("报名成功
");
}
else
{
printf("修改成功
");
}
return p;
}

//前插法;
void
link_to_tail( List L, position p)
{
p->next = L->next;
L->next = p;
}

//查找第一个姓名为xx的元素并返回位置
position
find( List L )
{
position p = L->next;
char name[10];
printf("请输入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
p=p->next;
}
return p;
}

//测试链表是否是空表
int
is_empty( List L )
{
return L->next == NULL;
}

//测试当前位置是否是表尾
int
is_last( position p, List L )
{
return p->next == NULL;
}

//输出姓名为xx的考生信息
void
put_name_information( List L )
{
position p = find(L);
if(p!=NULL)
{
printf("您要查找的考生信息:
");
printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s

",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
else
{
printf("没有您要找的学生。
");
}

}

//循环创建考生信息
int
ciculation_make()
{
int n = 2;
do
{
printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//是否输出考生信息
void
put_information( position p )
{
int n=2;
do
{
printf("是否输出该考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
if(n)
{
printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
}


//是否输出所有考生信息
int
judge_put_all()
{
int n = 2;
do
{
printf("是否输出所有考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//输出所有考生信息
void
put_all(List L)
{
if(L->next == NULL)
{
printf("现无考生报名!
");
}
else
{
position p=L->next;
while( p != NULL )
{
printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
p=p->next;
}
}
//getchar();

}

//询问是否删除考生数据
int
judge_delete_val()
{
int n = 2;

do
{
printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//查找第一个姓名为xx的元素并返回其直接前驱的位置
position
find_previous( List L )
{
position q = L;
position p = L->next;
char name[10];
printf("请输入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
q=p;
p=p->next;
}
if( p != NULL )
{
return q;
}
else
return p;
}

//删除指定考生信息并输出其信息
int
delete_val(List L)
{
int n=2;
position q=NULL;
position p=find_previous( L ); //返回考生信息地址
if( NULL == p )
{
printf("你要删除的考生不存在
");
return 0;
}
else
{
q = p->next;
p->next = q->next;
printf("删除成功。
删除的考生信息为:
");
printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",q->data.examno,q->data.name,q->data.sex,q->data.age,q->data.examtype);
free(q);
return 1;
}

}

//输出该地址考试信息
int
put_pos_information( position p )
{
if(p != NULL )
{
printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s

",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
return 1;
}
else
{
printf("没有您要查找的学生。");
return 0;
}
}
//菜单函数
void
menu(List L)
{
printf("   a. 考生报名入口
");
printf("   b. 查询考生信息
");
printf("   c. 修改考生信息
");
printf("   d. 删除考生信息
");
printf("   e. 全部考生信息
");
printf("   f. 程序作者信息
");
printf("   g.   退出程序
");
char n='h';

while(n != 'g')
{
do  //确定正确输入
{
printf("请通过字母序号选择功能:");
n = getchar();
getchar();
putchar('
');
if( n < 'a' || n > 'g')
{
printf("错误的字母序号。
");
}
}
while( n < 'a' || n > 'g' );
switch (n)
{
case 'a':
{
printf("请输入报名考生信息:
");
position p = make_node( p, 1 ); //创建新结点
link_to_tail( L, p ); //将新结点连接到表上
put_information( p );   //是否输出该考生信息
putchar('
');
}
break;

case 'b':
{
put_name_information( L );
putchar('
');
}
break;

case 'c':
{
int n=0;
position p = NULL;
printf("您正在进行修改操作。
");
p = find(L);
n = put_pos_information( p );
if(n)
{
make_node( p , 0 );
put_information( p );   //是否输出该考生信息
}
putchar('
');
}
break;

case 'd':
{
printf("您正在进行删除操作。
");
delete_val( L );
putchar('
');
}
break;

case 'e':
{
put_all( L );
putchar('
');
}
break;

case 'f':
{
printf("              修改日期    版本号      修改人      修改内容   
");
printf("        --------------------------------------------------------
");
printf("              2018.6.19    v2.0       陈百川     增加主菜单
");
printf("              2018.6.23    v3.0       陈百川   增加生成文件功能

");
printf("            该版本号为v2.0
");
putchar('
');
}
break;

default:
break;
}
}
printf("                     感谢本次使用,祝您生活愉快。");
getch();
}

学生信息管理系统最简单源代码。
5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。方法二:1、新建一个学生实体类,用于存放学生的各项信息。2、新建一个链表节点类,每个节点存放一个学生...

跪求C语言大作业学生管理系统的程序
include<stdio.h> include<malloc.h> include<string.h> include<stdlib.h> define NULL 0 define LEN sizeof(struct student)struct student { int num;char name[10];int score;struct student *next;};int n;struct student *creat(){ struct student *head;struct student *p1,*p2;p1=p2=...

用C语言写学生成绩管理系统基本功能:1、 输入一个班级的学生基本信息...
printf("| 欢迎使用教务信息管理系统 |\\n");printf("+---+\\n");printf("\\n\\t\\t---\\n");printf("\\t\\t+ 主菜单 +\\n");printf("\\t\\t---\\n");printf("\\t\\t

c语言学生管理系统中的增加学生信息
cout<<setw(53)<<"欢迎进入学生管理系统!"<<endl;cout<<setw(55)<<"1 添加学生信息 2 查询学生信息"<<endl<<endl;cout<<setw(55)<<"3 删除学生信息 4 修改学生信息"<<endl<<endl;cout<<setw(55)<<"5 比较学生信息 6 显示学生信息"<<endl<<endl;cout<<setw(45)<<"0 推出系统"<...

急求C语言源代码 题目:学生学籍管理系统 用数据文件存放学生的学籍,可...
include <malloc.h> struct student { int num;char name[20];char tel[20];struct student *next;};struct student *head,*tmp1,*tmp2;int n;void Load(){ FILE *fp1;int i;fp1=fopen("file.txt","rb");struct student *tmp;struct student *q;printf("开始读取学生信息 \\n");head...

c语言学生管理系统成绩排序后,如何输出前三名的学生信息
c语言学生管理系统成绩排序后,输出前三名的学生信息,可以按字符串的形式接受该整数,在依次输出字符数组的前3位即可。

C语言程序设计学生成绩管理系统
\/*插入学生信息*\/ void Student_Insert(){ while(1){ printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入成绩:");scanf("%f",&students[num].Mark1);getchar();printf("请输入成绩:...

学生信息管理系统(C语言)
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文... 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式...

C++课程设计:学生基本信息管理系统
);Create(the_one);the_one->next = NULL;end = last; \/\/end指向倒数第二个结点last->next = the_one;\/\/将the_one放在链表的 最后last = the_one; \/\/last指向倒数第一个结点\/\/输入学号printf("输入学生信息:\\n学号:");while (!Four)...

c语言学生信息系统管理中,输入男女用m和f表示时,输入错误则提示重新输入...
完全错误,gender 是该函数中的局部变量,是程序中的形参,将数据存在形参里面没有意义。改成这样 char inputgender(){ \/\/累赘定义不要,删掉 char gender;printf("\\n(3)请输入学生性别,‘m’代表女生,‘f’代表男生:");scanf("%c",&gender); \/\/gender 是 char 变量不是数组,不能用字...

阿图什市18687321264: 用C语言编写一个学生信息管理系统
革到替勃: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" jiemian();struct student { char name[50]; char sex[5]; int age; char num[50]; float score1; float score2; float score3; float sum; float ave;}stu[50],del; void gn1() {int...

阿图什市18687321264: C语言编写一个学生信息管理系统,求原代码谢谢
革到替勃: #include <iostream> #include "conio.h" #include "malloc.h" #include "windows.h" using namespace std; typedef struct { char name[20]; int stunum; int score; }StuElem;class StuList { private: StuElem *StuElem1; int Length; int MaxContine; ...

阿图什市18687321264: 学生信息管理系统 程序C语言
革到替勃: #include<stdio.h> #include<string.h> #include<ctype.h> #define YN {do {yes_no=getch();printf("%c",yes_no);}while(yes_no!='y'&&yes_no!='Y'&&yes_no!='n'&&yes_no!='N');} /*判断学号是否为空*/ #define XH {do {gets(temp.xh);}while(strcmp(...

阿图什市18687321264: c语言编写学生信息管理系统 -
革到替勃: #include"stdio.h" #define SIZE 100000 #include"string.h" #include"stdlib.h" #include"conio.h" struct student {int n; int num; char name[10]; int C; int Maths; int En; float ave; }stu[SIZE]; /*录入数据*/ void finput() { FILE *fp; int i,p; fp=fopen(...

阿图什市18687321264: 求一个c语言编写的学生管理系统 -
革到替勃: #include #include #include #include typedef struct stud{ char name[15]; int num; float...

阿图什市18687321264: 用C语言编一个简单的学生管理系统 -
革到替勃: #include <iostream.h> #include <stdio.h>typedef struct student {char name[20];char sex;int num;int score;int age; }STUDENT;struct student st_stu[29]; int i = 0; int num;void Create() {int j;//clrscr();do{printf("\n\n\t\tenter his\hers name:...

阿图什市18687321264: 如何用C语言编写学生信息管理系统 -
革到替勃: 参考如下学生信息管理系统的C源代码吧.#include <stdio.h>#include <string.h>/*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average; };/*声明学生数组及学生数量*/ struct Student ...

阿图什市18687321264: 学生信息管理系统C语言编程 -
革到替勃: 原发布者:xuekunlun666 用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作.在主函数里能实现以下功能.运行后出现一个选择提示.可选择的功能有1)创建新的学生信息...

阿图什市18687321264: c语言学生信息管理系统 -
革到替勃: #include #include struct student{int no;char name[20];float score[2];float avg;};struct student input(); //单个学员信息录入void display(struct student [],int); //显示所有学员信息void sort(struct student [],int); //排序int find(struct student[],int,int); ...

阿图什市18687321264: 用c语言编写学生管理系统, -
革到替勃: 原发布者:沃流域滔#include"stdio.h"#include"stdlib.h"/*标准库函数*/#include"string.h"/*字符串操作函数*/#defineMAX5#definePAGE2#definePRINT1printf("--------------------------------------------------------------\n");#definePRINT2printf("...

你可能想看的相关专题

  • c++入门程序代码
  • c++多久能入门
  • 学校代码一键查询网站
  • python学生管理系统gui版
  • c++编程动态爱心代码
  • python学生信息管理系统tk
  • c语言入门自学网站
  • python学生通讯录管理系统
  • 怎么知道自己的学科代码
  • python学生信息管理系统代码
  • 学生管理系统c语言简单版
  • 本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
    相关事宜请发邮件给我们
    © 星空见康网