课程设计--学生信息管理系统
2017-01-01 13:17
609 查看
/***********************************************************
* 版权所有 (C)2016,test
*
* 文件名称: main.cpp
* 文件标识:main
* 内容摘要:函数文件
* 其它说明:主函数
* 当前版本: V8.0
* 作 者:陈晓琳
* 完成日期: 2017.1.1
* /*********************************************************
源文件 :
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include "ccc.h"
int Initlist(Linklist *L)//初始化线性表
{
(*L)=(Linklist)malloc(sizeof(LNode));
if(!(*L))
return (0);
(*L)->next=NULL;
return true;
}
/***************************************************************************************
*功能描述:运用头插法建立单链表
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Creatlist(Linklist L)//头插法生成单链表
{
Linklist s,r;
s=(Linklist )malloc(sizeof(LNode));
if(!s)
{
return 0;
}
else
{
printf("请输入学生的个人信息\n");
printf("学号: \n");
scanf(" %s",s->data.Num);
printf("姓名: \n");
scanf(" %s",s->data.Name);
printf("班级: \n");
scanf(" %s",s->data.className);
printf("手机号: \n");
scanf(" %s",s->data.telNumber);
printf("邮箱: \n");
scanf(" %s",s->data.email);
printf("专业课程: \n");
scanf(" %s",s->data.course);
printf("成绩: \n");
scanf(" %d",&s->data.score);
}
s->next=L->next;
L->next=s;
return true;
}
/***************************************************************************************
*功能描述:显示学生的信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void Display(Linklist L)//显示学生信息
{
Linklist p;
char flat=0;
while(p)
{
printf("学号\t姓名\t班级\t手机号\t邮箱\t专业课程\t成绩\n");
for(p=L->next;p;p=p->next)
{
printf("%s\t%s\t%s\t%s\t\t%s\t %s\t%d\n",p->data.Num,p->data.Name,p->data.className,p->data.telNumber,p->data.email,p->data.course,p->data.score);
flat=1;
}
}
if(!flat)
{
printf("无法显示学生的信息,请进入其他功能区 \n");
}
}
/***************************************************************************************
*功能描述:按学号进行查询
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int SearchNum(Linklist L,char Num[20])//学号查询
{
LNode *p;
char flat=0;
p=L;
while(p)
{
if(p!=NULL)
{
if(strcmp(p->data.Num,Num)==0)
{
printf("学号: %s\n",p->data.Num);
printf("姓名: %s\n",p->data.Name);
printf("班级: %s\n",p->data.className);
printf("手机号: %s\n",p->data.telNumber);
printf("邮箱: %s\n",p->data.email);
printf("专业课程: %s\n",p->data.course);
printf("加权成绩: %d\n",p->data.score);
flat=1;
}
}
p=p->next;
}
if(!flat)
{
printf("对不起输入学号错误或该同学已被删除,请重新输入进行查询 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按姓名进行查询
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int SearchName(Linklist L,char Name[10])//姓名查询
{
LNode *p;
char flat=0;
p=L;
while(p)
{
if(p!=NULL)
{
if(strcmp(p->data.Name,Name)==0)
{
printf("学号: %s\n",p->data.Num);
printf("姓名: %s\n",p->data.Name);
printf("班级: %s\n",p->data.className);
printf("手机号: %s\n",p->data.telNumber);
printf("邮箱: %s\n",p->data.email);
printf("专业课程: %s\n",p->data.course);
printf("成绩: %d\n",p->data.score);
flat=1;
}
}
p=p->next;
}
if(!flat)
{
printf("输入姓名错误或该同学已被删除,请重新输入进行查询 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按学号进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortNum(Linklist L)//学号排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if(strcmp(p->data.Num,q->data.Num)>0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:按姓名进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortName(Linklist L)//姓名排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if(strcmp(p->data.Name,q->data.Name)>0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:按学生成绩进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortScore(Linklist L)//成绩排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if((p->data.score,q->data.score)<0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:实现学生的插入信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Insert(Linklist L, char Num[20])//插入信息
{
LNode *p=L,*s;
char flat=0;
while (p)
{
if((strcmp(p->data.Num,Num))!=0)
{
s=(LNode *)malloc(sizeof(LNode));
printf("请输入学生的个人信息\n");
printf("学号:");
scanf("%s",s->data.Num);
printf("姓名:");
scanf("%s",s->data.Name);
printf("班级:");
scanf("%s",s->data.className);
printf("手机号:");
scanf("%s",s->data.telNumber);
printf("邮箱:");
scanf("%s",s->data.email);
printf("专业课程:");
scanf("%s",s->data.course);
printf("成绩:");
scanf("%d",&s->data.score);
s->next=p->next;
p->next=s;
printf("插入新的学生信息成功\n");
flat=1;
}
p=p->next;
}
if(!flat)
{
printf("插入新同学失败,请重新输入 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按学生学号进行删除
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Del(Linklist L, char Num[100])//按学号进行删除
{
LNode *p;
LNode *q;
char flag=0;
p=L;
q=L->next;
while(q)
{
if(strcmp(q->data.Num,Num)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("对不起,该学号的学生不存在 \n");
return true;
}
printf("删除成功\n");
}
/***************************************************************************************
*功能描述:修改学生的个人信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Alter(Linklist L,char Num[100])//修改学生的个人信息
{
LNode *p;
p=L;
int s;
while(p)
{
if(strcmp(p->data.Num,Num)==0)
{
printf("请输入你要修改的学生的信息:1.修改学号 2.修改姓名 3.修改手机号 4.修改邮箱 5.修改班级 6.修改专业课程 7.修改成绩\n");
printf("请选择操作序号:");
scanf("%d",&s);
switch(s)
{
case 1:
{
printf("请输入要修改的学生的学号: ",p->data.Num);
scanf("%s",p->data.Num);
printf("该学生的信息修改成功\n");
break;
}
case 2:
{
printf("请输入要修改的学生的姓名: ",p->data.Name);
scanf("%s",p->data.Name);
printf("该学生的信息修改成功\n");
break;
}
case 3:
{
printf("请输入要修改的学生的手机号: ",p->data.telNumber);
scanf("%s",p->data.telNumber);
printf("该学生的信息修改成功\n");
break;
}
case 4:
{
printf("请输入要修改的学生的邮箱号: ",p->data.email);
scanf("%s",p->data.email);
printf("该学生的信息修改成功\n");
break;
}
case 5:
{
printf("请输入要修改的学生的班级: ",p->data.className);
scanf("%s",p->data.className);
printf("该学生的信息修改成功\n");
break;
}
case 6:
{
printf("请输入要修改的学生的专业课程: ",p->data.course);
scanf("%s",p->data.course);
printf("该学生的信息修改成功\n");
break;
}
case 7:
{
printf("请输入要修改的学生的成绩: ",p->data.score);
scanf("%d",&p->data.score);
printf("该学生的信息修改成功\n");
break;
default:
break;
}
}
}
p=p->next;
}
return true;
}
main函数:
#include <stdio.h>
#include <stdlib.h>//清屏头文件
#include "ccc.h"
int main()
{
int s;
int n;
char m;
char Name[100];
char Num[100];
Linklist L;
Initlist(&L);//初始化单链表
int x=1;
while(x)
{
printf("******************************************************\n");
printf(" 欢迎使用学生个人信息管理系统 \n");
printf(" 【菜单】 \n");
printf(" 1.录入学生的个人信息 \n");
printf(" 2.查询学生的个人信息 \n");
printf(" 3.学生的信息进行排序 \n");
printf(" 4.插入学生的个人信息 \n");
printf(" 5.浏览全部学生信息 \n");
printf(" 6.修改学生的个人信息 \n");
printf(" 7.删除学生的个人信息 \n");
printf(" 【0】退出个人信息管理系统 \n");
printf("******************************************************\n");
printf(" 请选择操作序号:");
scanf("%d",&s);
switch(s)
{
case 1:
{
Creatlist(L);//头插法生成单链表
do
{
system("cls");
printf("是否继续输入?(Y/N):");
getchar();
scanf("%s",&m);
if(m=='Y')
{
Creatlist(L);//显示学生信息
}
}
while(m!='N');
break;
}
case 2:
{
system("cls");
printf("**************欢迎进入到学生信息查询系统******\n");
printf("1:按姓名查询\n");
printf("2:按学号查询\n");
scanf("%d",&n);
if(n==1)
{
printf("请输入要查找人的姓名: \n");
scanf("%s",&Name);
SearchName(L,Name);//查询姓名
}
if(n==2)
{
printf("请输入要查找人的学号: \n");
scanf("%s",&Num);
SearchNum(L, Num);//学号查询
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 3:
{
system("cls");
printf("**************欢迎进入到学生信息显示系统******\n");
printf("显示班级中所有学生的信息\n");
printf("*********************************\n");
printf("\n\t\t 1.按姓名显示");
printf("\n\t\t 2.按学号大小显示");
printf("\n\t\t 3.按成绩显示\n");
scanf("%d",&n);
if(n==1)
{
printf("系统中所有学生的信息如下: \n");
SortName(L);//按姓名进行排序
Display(L);
}
if(n==2)
{
printf("系统中所有学生的信息如下: \n");
SortNum(L);//按学号进行排序
Display(L);
}
if(n==3)
{
printf("系统中所有学生的信息如下: \n");
SortScore(L);//按成绩进行排序
Display(L);
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 4:
{
system("cls");
printf("**************欢迎进入到学生信息查询系统******\n");
printf("请输入你所要插入的学生的学号: \n");
getchar();
scanf("%s",&Num);
Insert(L, Num);
printf("*************欢迎下次进入*******************\n");
break;
}
case 5:
{
system("cls");
printf("**************欢迎进入到学生信息查看功能区******\n");
printf("1:管理员\n");
printf("2:学生\n");
scanf("%d",&m);
if(m==1)
{
printf("查看本系统所有学生信息 \n");
Display(L);
}
if(m==2)
{
printf("1:按姓名查询\n");
printf("2:按学号查询\n");
int x;
scanf("%d",&x);
if(x==1)
{
printf("请输入要查找人的姓名: \n");
scanf("%s",&Name);
SearchName(L,Name);//查询姓名
}
if(n==x)
{
printf("请输入要查找人的学号: \n");
scanf("%s",&Num);
SearchNum(L, Num);//学号查询
}
printf("*************欢迎下次进入*******************\n");
}
break;
}
case 6:
{ system("cls");
printf("**************欢迎进入到班级信息修改功能区******\n");
printf("请输入要修改该学生信息的学号: \n");
getchar();
scanf("%s",&Num);
Alter(L,Num);
printf("*************欢迎下次进入*******************\n");
break;
}
case 7:
{
system("cls");
printf("**************欢迎进入到学生信息的删除功能区******\n");
printf("请输入所要删除的学生的学号: \n");
getchar();
scanf("%s",&Num);
printf("是否确定删除该同学:(Y/N)");
scanf("%s",&m);
if(m=='Y')
{
Del(L, Num);
}
else
{
printf("输入错误,请重新输入Y/N");
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 0:
{
x=0;
printf("欢迎你下次进入学生管理系统 \n");
break;
default:
break;
}
}
}
return 0;
}
头文件:
#include <stdio.h>
struct STUDENT
{
char Num[30];/*学生学号*/
char Name[30];/*学生姓名*/
char className[30];/*班级名称*/
char telNumber[30];/*学生手机号*/
char email[30];/*学生邮箱*/
char course[30];/*课程信息*/
int score;/*成绩*/
};
typedef struct LNode
{
struct STUDENT data;
struct LNode* next;
}LNode,*Linklist;
int Initlist(Linklist *L);//初始化单链表
int Creatlist(Linklist L);//头插法生成单链表
void Display(Linklist L);//显示学生信息
int SearchNum(Linklist L,char Num[30]);//学号查询
int SearchName(Linklist L,char Name[30]);//姓名查询
void SortNum(Linklist L);//编号排序
void SortName(Linklist L);//姓名排序
void SortScore(Linklist L);//成绩排序
int Insert(Linklist L,char Num[30]);//插入信息
int Del(Linklist L,char Num[30]);//按学号删除
int Alter(Linklist L,char Num[30]);//更改信息
运算截图:
主界面:
录入信息:
按姓名查询:
按学号查询:
排序:
插入:
管理员浏览:
学生浏览:
修改信息:
删除信息:
* 版权所有 (C)2016,test
*
* 文件名称: main.cpp
* 文件标识:main
* 内容摘要:函数文件
* 其它说明:主函数
* 当前版本: V8.0
* 作 者:陈晓琳
* 完成日期: 2017.1.1
* /*********************************************************
源文件 :
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include "ccc.h"
int Initlist(Linklist *L)//初始化线性表
{
(*L)=(Linklist)malloc(sizeof(LNode));
if(!(*L))
return (0);
(*L)->next=NULL;
return true;
}
/***************************************************************************************
*功能描述:运用头插法建立单链表
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Creatlist(Linklist L)//头插法生成单链表
{
Linklist s,r;
s=(Linklist )malloc(sizeof(LNode));
if(!s)
{
return 0;
}
else
{
printf("请输入学生的个人信息\n");
printf("学号: \n");
scanf(" %s",s->data.Num);
printf("姓名: \n");
scanf(" %s",s->data.Name);
printf("班级: \n");
scanf(" %s",s->data.className);
printf("手机号: \n");
scanf(" %s",s->data.telNumber);
printf("邮箱: \n");
scanf(" %s",s->data.email);
printf("专业课程: \n");
scanf(" %s",s->data.course);
printf("成绩: \n");
scanf(" %d",&s->data.score);
}
s->next=L->next;
L->next=s;
return true;
}
/***************************************************************************************
*功能描述:显示学生的信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void Display(Linklist L)//显示学生信息
{
Linklist p;
char flat=0;
while(p)
{
printf("学号\t姓名\t班级\t手机号\t邮箱\t专业课程\t成绩\n");
for(p=L->next;p;p=p->next)
{
printf("%s\t%s\t%s\t%s\t\t%s\t %s\t%d\n",p->data.Num,p->data.Name,p->data.className,p->data.telNumber,p->data.email,p->data.course,p->data.score);
flat=1;
}
}
if(!flat)
{
printf("无法显示学生的信息,请进入其他功能区 \n");
}
}
/***************************************************************************************
*功能描述:按学号进行查询
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int SearchNum(Linklist L,char Num[20])//学号查询
{
LNode *p;
char flat=0;
p=L;
while(p)
{
if(p!=NULL)
{
if(strcmp(p->data.Num,Num)==0)
{
printf("学号: %s\n",p->data.Num);
printf("姓名: %s\n",p->data.Name);
printf("班级: %s\n",p->data.className);
printf("手机号: %s\n",p->data.telNumber);
printf("邮箱: %s\n",p->data.email);
printf("专业课程: %s\n",p->data.course);
printf("加权成绩: %d\n",p->data.score);
flat=1;
}
}
p=p->next;
}
if(!flat)
{
printf("对不起输入学号错误或该同学已被删除,请重新输入进行查询 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按姓名进行查询
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int SearchName(Linklist L,char Name[10])//姓名查询
{
LNode *p;
char flat=0;
p=L;
while(p)
{
if(p!=NULL)
{
if(strcmp(p->data.Name,Name)==0)
{
printf("学号: %s\n",p->data.Num);
printf("姓名: %s\n",p->data.Name);
printf("班级: %s\n",p->data.className);
printf("手机号: %s\n",p->data.telNumber);
printf("邮箱: %s\n",p->data.email);
printf("专业课程: %s\n",p->data.course);
printf("成绩: %d\n",p->data.score);
flat=1;
}
}
p=p->next;
}
if(!flat)
{
printf("输入姓名错误或该同学已被删除,请重新输入进行查询 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按学号进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortNum(Linklist L)//学号排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if(strcmp(p->data.Num,q->data.Num)>0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:按姓名进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortName(Linklist L)//姓名排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if(strcmp(p->data.Name,q->data.Name)>0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:按学生成绩进行排序
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
void SortScore(Linklist L)//成绩排序
{
Linklist p,q;
struct STUDENT temp;
for(p=L->next;p!=NULL;p=p->next)
{
for(q=p->next;q!=NULL;q=q->next)
{
if((p->data.score,q->data.score)<0)
{
temp=q->data;
q->data=p->data;
p->data=temp;
}
}
}
}
/***************************************************************************************
*功能描述:实现学生的插入信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Insert(Linklist L, char Num[20])//插入信息
{
LNode *p=L,*s;
char flat=0;
while (p)
{
if((strcmp(p->data.Num,Num))!=0)
{
s=(LNode *)malloc(sizeof(LNode));
printf("请输入学生的个人信息\n");
printf("学号:");
scanf("%s",s->data.Num);
printf("姓名:");
scanf("%s",s->data.Name);
printf("班级:");
scanf("%s",s->data.className);
printf("手机号:");
scanf("%s",s->data.telNumber);
printf("邮箱:");
scanf("%s",s->data.email);
printf("专业课程:");
scanf("%s",s->data.course);
printf("成绩:");
scanf("%d",&s->data.score);
s->next=p->next;
p->next=s;
printf("插入新的学生信息成功\n");
flat=1;
}
p=p->next;
}
if(!flat)
{
printf("插入新同学失败,请重新输入 \n");
}
return true;
}
/***************************************************************************************
*功能描述:按学生学号进行删除
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Del(Linklist L, char Num[100])//按学号进行删除
{
LNode *p;
LNode *q;
char flag=0;
p=L;
q=L->next;
while(q)
{
if(strcmp(q->data.Num,Num)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("对不起,该学号的学生不存在 \n");
return true;
}
printf("删除成功\n");
}
/***************************************************************************************
*功能描述:修改学生的个人信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:消息字段之间用分号(;)隔离
***************************************************************************************/
int Alter(Linklist L,char Num[100])//修改学生的个人信息
{
LNode *p;
p=L;
int s;
while(p)
{
if(strcmp(p->data.Num,Num)==0)
{
printf("请输入你要修改的学生的信息:1.修改学号 2.修改姓名 3.修改手机号 4.修改邮箱 5.修改班级 6.修改专业课程 7.修改成绩\n");
printf("请选择操作序号:");
scanf("%d",&s);
switch(s)
{
case 1:
{
printf("请输入要修改的学生的学号: ",p->data.Num);
scanf("%s",p->data.Num);
printf("该学生的信息修改成功\n");
break;
}
case 2:
{
printf("请输入要修改的学生的姓名: ",p->data.Name);
scanf("%s",p->data.Name);
printf("该学生的信息修改成功\n");
break;
}
case 3:
{
printf("请输入要修改的学生的手机号: ",p->data.telNumber);
scanf("%s",p->data.telNumber);
printf("该学生的信息修改成功\n");
break;
}
case 4:
{
printf("请输入要修改的学生的邮箱号: ",p->data.email);
scanf("%s",p->data.email);
printf("该学生的信息修改成功\n");
break;
}
case 5:
{
printf("请输入要修改的学生的班级: ",p->data.className);
scanf("%s",p->data.className);
printf("该学生的信息修改成功\n");
break;
}
case 6:
{
printf("请输入要修改的学生的专业课程: ",p->data.course);
scanf("%s",p->data.course);
printf("该学生的信息修改成功\n");
break;
}
case 7:
{
printf("请输入要修改的学生的成绩: ",p->data.score);
scanf("%d",&p->data.score);
printf("该学生的信息修改成功\n");
break;
default:
break;
}
}
}
p=p->next;
}
return true;
}
main函数:
#include <stdio.h>
#include <stdlib.h>//清屏头文件
#include "ccc.h"
int main()
{
int s;
int n;
char m;
char Name[100];
char Num[100];
Linklist L;
Initlist(&L);//初始化单链表
int x=1;
while(x)
{
printf("******************************************************\n");
printf(" 欢迎使用学生个人信息管理系统 \n");
printf(" 【菜单】 \n");
printf(" 1.录入学生的个人信息 \n");
printf(" 2.查询学生的个人信息 \n");
printf(" 3.学生的信息进行排序 \n");
printf(" 4.插入学生的个人信息 \n");
printf(" 5.浏览全部学生信息 \n");
printf(" 6.修改学生的个人信息 \n");
printf(" 7.删除学生的个人信息 \n");
printf(" 【0】退出个人信息管理系统 \n");
printf("******************************************************\n");
printf(" 请选择操作序号:");
scanf("%d",&s);
switch(s)
{
case 1:
{
Creatlist(L);//头插法生成单链表
do
{
system("cls");
printf("是否继续输入?(Y/N):");
getchar();
scanf("%s",&m);
if(m=='Y')
{
Creatlist(L);//显示学生信息
}
}
while(m!='N');
break;
}
case 2:
{
system("cls");
printf("**************欢迎进入到学生信息查询系统******\n");
printf("1:按姓名查询\n");
printf("2:按学号查询\n");
scanf("%d",&n);
if(n==1)
{
printf("请输入要查找人的姓名: \n");
scanf("%s",&Name);
SearchName(L,Name);//查询姓名
}
if(n==2)
{
printf("请输入要查找人的学号: \n");
scanf("%s",&Num);
SearchNum(L, Num);//学号查询
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 3:
{
system("cls");
printf("**************欢迎进入到学生信息显示系统******\n");
printf("显示班级中所有学生的信息\n");
printf("*********************************\n");
printf("\n\t\t 1.按姓名显示");
printf("\n\t\t 2.按学号大小显示");
printf("\n\t\t 3.按成绩显示\n");
scanf("%d",&n);
if(n==1)
{
printf("系统中所有学生的信息如下: \n");
SortName(L);//按姓名进行排序
Display(L);
}
if(n==2)
{
printf("系统中所有学生的信息如下: \n");
SortNum(L);//按学号进行排序
Display(L);
}
if(n==3)
{
printf("系统中所有学生的信息如下: \n");
SortScore(L);//按成绩进行排序
Display(L);
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 4:
{
system("cls");
printf("**************欢迎进入到学生信息查询系统******\n");
printf("请输入你所要插入的学生的学号: \n");
getchar();
scanf("%s",&Num);
Insert(L, Num);
printf("*************欢迎下次进入*******************\n");
break;
}
case 5:
{
system("cls");
printf("**************欢迎进入到学生信息查看功能区******\n");
printf("1:管理员\n");
printf("2:学生\n");
scanf("%d",&m);
if(m==1)
{
printf("查看本系统所有学生信息 \n");
Display(L);
}
if(m==2)
{
printf("1:按姓名查询\n");
printf("2:按学号查询\n");
int x;
scanf("%d",&x);
if(x==1)
{
printf("请输入要查找人的姓名: \n");
scanf("%s",&Name);
SearchName(L,Name);//查询姓名
}
if(n==x)
{
printf("请输入要查找人的学号: \n");
scanf("%s",&Num);
SearchNum(L, Num);//学号查询
}
printf("*************欢迎下次进入*******************\n");
}
break;
}
case 6:
{ system("cls");
printf("**************欢迎进入到班级信息修改功能区******\n");
printf("请输入要修改该学生信息的学号: \n");
getchar();
scanf("%s",&Num);
Alter(L,Num);
printf("*************欢迎下次进入*******************\n");
break;
}
case 7:
{
system("cls");
printf("**************欢迎进入到学生信息的删除功能区******\n");
printf("请输入所要删除的学生的学号: \n");
getchar();
scanf("%s",&Num);
printf("是否确定删除该同学:(Y/N)");
scanf("%s",&m);
if(m=='Y')
{
Del(L, Num);
}
else
{
printf("输入错误,请重新输入Y/N");
}
printf("*************欢迎下次进入*******************\n");
break;
}
case 0:
{
x=0;
printf("欢迎你下次进入学生管理系统 \n");
break;
default:
break;
}
}
}
return 0;
}
头文件:
#include <stdio.h>
struct STUDENT
{
char Num[30];/*学生学号*/
char Name[30];/*学生姓名*/
char className[30];/*班级名称*/
char telNumber[30];/*学生手机号*/
char email[30];/*学生邮箱*/
char course[30];/*课程信息*/
int score;/*成绩*/
};
typedef struct LNode
{
struct STUDENT data;
struct LNode* next;
}LNode,*Linklist;
int Initlist(Linklist *L);//初始化单链表
int Creatlist(Linklist L);//头插法生成单链表
void Display(Linklist L);//显示学生信息
int SearchNum(Linklist L,char Num[30]);//学号查询
int SearchName(Linklist L,char Name[30]);//姓名查询
void SortNum(Linklist L);//编号排序
void SortName(Linklist L);//姓名排序
void SortScore(Linklist L);//成绩排序
int Insert(Linklist L,char Num[30]);//插入信息
int Del(Linklist L,char Num[30]);//按学号删除
int Alter(Linklist L,char Num[30]);//更改信息
运算截图:
主界面:
录入信息:
按姓名查询:
按学号查询:
排序:
插入:
管理员浏览:
学生浏览:
修改信息:
删除信息:
相关文章推荐
- 课程设计~学生信息管理系统代码
- 课程设计:学生信息管理系统设计
- C语言课程设计——学生信息管理系统(BUG挺多,敬请指正)
- 课程设计---学生信息管理系统
- 数据结构课程设计---学生信息管理系统
- C语言学生成绩信息管理系统课程设计报告
- 课程设计-学生信息管理系统
- 数据结构课程设计——学生信息管理系统
- 课程设计--学生信息管理系统
- 学生信息管理系统(课程设计)
- 数据结构课程设计论文--学生信息管理系统
- 学生信息综合管理系统开发记录(数据库课程设计)
- 课程设计: 学生信息管理系统
- 数据结构课程设计---学生信息管理系统
- 数据结构课程设计—学生信息管理系统
- C语言课程设计-学生信息管理系统
- 数据结构课程设计-学生信息管理系统
- C语言课程设计之学生信息管理系统
- 学生信息管理系统-数据结构课程设计
- 关于c++ 课程设计(学生信息管理系统)