ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c语言学生信息管理系统

2019-05-15 14:50:57  阅读:292  来源: 互联网

标签:语言 学生 break next num student printf 信息管理系统 t%


列表内容
1、系统以菜单的方式工作
2、学生信息的录入功能—输入
3、学生信息的操作(增、删、查、改)基本操作
3、学生信息的存储、读取、显示操作
4、系统的退出
5、用链表的方式实现

#include"stdio.h"
#include"stdlib.h"
#include"string.h"

typedef struct student
{
char num[10];//学号
char name[20];//姓名
char sex[5];//性别
int age;//年龄
int score;//成绩
struct student *next;
}student;

static int count=1;//全局变量,统计学生个数。
void menu()//菜单
{
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");
}
int length(student *p)//链表长度
{
int i=0;
while§
{
i++;
p=p->next;
}
return i;
}

void Add(student *L)//添加学生
{
student *p,*q;
q=L;
int n;
printf(“输入你想添加的学生个数”);
scanf("%d",&n);

for(int i=0;i<n;i++)
{
	p=(student*)malloc(sizeof(student));
	printf("请输入第%d个学生的学号:",count);
	scanf("%s",p->num);
	printf("请输入第%d个学生的姓名:",count);
	scanf("%s",p->name);
	printf("请输入第%d个学生的性别:",count);
	scanf("%s",p->sex);
	printf("请输入第%d个学生的年龄:",count);
	scanf("%d",&p->age);
	printf("请输入第%d个学生的成绩:",count);
	scanf("%d",&p->score);
	count++;
	q->next=p;
	q=p;
}
if(L->next)
	q->next=NULL;
q=L->next;
printf("学号 \t姓名 \t性别 \t年龄 \t成绩\n");
while(q)
{
	printf("%s\t%s\t%s\t%d\t%d\n",q->num,q->name,q->sex,q->age,q->score);
	q=q->next;
}
system("pause");
system("cls");

}
void Find(student *L)//查找学生(学号 姓名)
{
student *p;
p=L;
int i;
int a;char s[20];
printf(“1 按学号查找 2 按姓名查找 \n”);
scanf("%d",&a);
switch(a)
{
case 1:
printf(“请输入要查找的学号:”);
scanf("%s",&s);
for(i=0;i<length(L);i++)
{
if(strcmp(p->num,s)==0)
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
p=p->next;
}
break;
case 2:
printf(“请输入要查找的姓名:”);
scanf("%s",&s);
for(i=0;i<length(L);i++)
{
if(strcmp(p->name,s)==0)
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
p=p->next;
}
break;

	default :printf("输入错误..");break;
}
system("pause");

}
void Delete(student *L)//删除
{
student *q;
student *p,*x;
x=L;
p=L->next;
char s[10];
printf(“请输入你想删除的学生学号:”);
scanf("%s",s);
while§
{
if(strcmp(s,p->num)0)
{
x->next=p->next;
free§;
p=x->next;
printf(“删除成功…\n”);
break;
}
p=p->next;
x=x->next;
}
system(“pause”);
}
void Change(student *L)//修改
{
int choose;
student *p;
p=L;
char s[10];
printf(“请输入想修改学生的学号:”);
scanf("%s",s);
for(int i=0;i<length(L);i++)
{
if(strcmp(s,p->num)0)
{
printf(“选择你想修改的部分:(1 姓名 2 性别 3年龄 4 分数)”);
scanf("%d",&choose);
if(choose
1)
{
printf(“输入新的姓名:”);
scanf("%s",p->name);
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
break;
}
if(choose
2)
{
printf(“输入新性别:”);
scanf("%s",p->sex);
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
break;
}
if(choose3)
{
printf(“输入新年龄:”);
scanf("%d",&p->age);
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
break;
}
if(choose
4)
{
printf(“输入新分数:”);
scanf("%d",&p->score);
printf("%s\t%s\t%s\t%d\t%d",p->num,p->name,p->sex,p->age,p->score);
break;
}
}

	p=p->next;
}	 
system("pause");
system("cls");

}
void Show(student *L)//显示
{
student *p=L ->next;
printf(“学号\t姓名\t性别\t年龄\t分数\t\n”);
while§
{
printf("%s\t%s\t%s\t%d\t%d\n",p->num,p->name,p->sex,p->age,p->score);
p=p->next;
}
system(“pause”);
system(“cls”);
}

void Save(student *L)//保存
{
student *p;
p=L->next;
FILE *fp;
fp=fopen(“D:\student.txt”,“w”);
if(!fp)
{
printf(“文件打开失败!”);
return ;
}
printf(“学号\t姓名\t性别\t年龄\t分数\n”);
while§
{
if(p->num!=0)
{
printf("%s\t%s\t%s\t%d\t%d\n",p->num,p->name,p->sex,p->age,p->score);
fwrite(p,sizeof(student),1,fp);
}
p=p->next;
}
fclose(fp);
printf(“保存成功…”);
system(“pause”);
system(“cls”);
}

void Duqu(student *L)//读取
{
student *p,*q=L;
FILE fp;
fp=fopen(“D:\student.txt”,"r ");
if(fp==NULL)
{
printf(“文件打开失败!”);
return;
}
printf(“学号\t姓名\t性别\t年龄\t分数\n”);
while(!feof(fp) )
{
p=(student
)malloc(sizeof(student));
if(fread(p,sizeof(student),1,fp)==1)
{
q->next=p;
q=p;
printf("%s\t%s\t%s\t%d\t%d\n",p->num,p->name,p->sex,p->age,p->score);
}
}
fclose(fp);
printf(“读取成功…”);
system(“pause”);
system(“cls”);
}
void opearte()//操作选择功能
{
student *L=(student *)malloc(sizeof(student));
L->next=NULL;
while(1)
{
menu();
fflush(stdin);
int num;
scanf("%d",&num);
switch(num)
{
case 1:Add(L);break;
case 2:Find(L);break;
case 3:Delete(L);break;
case 4:Change(L);break;
case 5:Save(L);break;
case 6:Show(L);break;
case 7:Duqu(L);break;
case 0:return;break;
default:
break;
}

}

}
int main()//主函数
{
opearte();
return 0;
}

标签:语言,学生,break,next,num,student,printf,信息管理系统,t%
来源: https://blog.csdn.net/qq_44922497/article/details/90236290

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有