对与学生信息管理系统的C语言应用

这是郑州某一高校的期末设计作业。

题目具体不提供,以防查重。

//使用说明
//录入学生信息正常录入就行了(学号尽可能短) 
//显示学生信息按照提示就可以显示
//查找学生输入学生姓名就可正常查找
//修改学生信息输入姓名查找,按提示完成操作后输入2即可看到结果
//删除学生信息 按提示操作后输入2即可看到结果
//排序完成提升操作后 输入2即可看到结果
//输出不及格成绩按提示操作后即可看结果 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct node{
	char name[30];
	char num[30];
	int score1;
	int score2;
	int sum;
}p[105];

int cnt = 0;

void add(){
	printf("请输入要添加的学生姓名\n");
	scanf("%s",p[cnt].name);
	printf("请输入要添加的学生学号\n");
	scanf("%s",p[cnt].num);
	printf("请输入要添加的学生c语言成绩\n");
	scanf("%d",&p[cnt].score1);
	printf("请输入要添加的学生数据结构成绩\n");
	scanf("%d",&p[cnt].score2);
	p[cnt].sum = p[cnt].score1 + p[cnt].score2;
	cnt++;
}

void print(){
	printf("姓名     学号     C语言     数据结构\n");
	for(int i=0;i<cnt;i++){
		printf("%-9s%-9s%-11d%-11d\n",p[i].name,p[i].num,p[i].score1,p[i].score2);
	}
}

void find(){
	char str[30];
	int flag = 0;
	int pos;
	printf("请输入要查找的学生姓名\n");
	scanf("%s",&str);
	for(int i=0;i<cnt;i++){
		if(strcmp(str,p[i].name)==0){
			flag = 1;
			pos = i;
		}
	}
	if(flag){
		printf("找到信息如下:\n");
		printf("姓名     学号     C语言     数据结构\n");
		printf("%-9s%-9s%-11d%-11d\n",p[pos].name,p[pos].num,p[pos].score1,p[pos].score2);
	}else{
		printf("未找到该学生信息\n");
	}
}

void update(){
	char str[30];
	int flag = 0;
	printf("请输入要修改的学生姓名\n");
	scanf("%s",str);
	for(int i=0;i<cnt;i++){
		if(strcmp(str,p[i].name)==0){
			flag = 1;
			printf("请输入修改后的学生姓名\n");
			scanf("%s",p[i].name);
			printf("请输入修改后的学生c语言成绩\n");
			scanf("%s",p[i].score1);
			printf("请输入修改后的学生数据结构成绩\n");
			scanf("%s",p[i].score2);
		}
	}
	if(flag){
		printf("修改成功\n");
	}else{
		printf("未找到该学生信息\n");
	}
}

void del(){
	char str[30];
	int flag = 0;
	printf("请输入要删除的学生学号\n");
	scanf("%s",str);
	for(int i=0;i<cnt;i++){
		if(strcmp(str,p[i].num)==0){
			flag = 1;
			for(int j=i;j<cnt-1;j++){
				p[j] = p[j+1];
			}
			cnt--;
		}
	}
	if(flag){
		printf("删除成功\n");
	}else{
		printf("未找到该学生信息\n");
	}
}

void sort(){
	for(int i=0;i<cnt;i++){
		for(int j=i+1;j<cnt;j++){
			if(p[i].sum<p[j].sum){
				node tmp = p[i];
				p[i] = p[j];
				p[j] = tmp;
			}
		}
	}
}

void fuc(){
	printf("姓名     学号     C语言     数据结构\n");
	for(int i=0;i<cnt;i++){
		if(p[i].score1<60) printf("%-9s%-9s%-11d%-11d\n",p[i].name,p[i].num,p[i].score1,p[i].score2);
	}
}

void menu(){
	printf("1.添加学生信息\n");
	printf("2.显示学生信息\n");
	printf("3.查找学生信息\n");
	printf("4.修改学生信息\n");
	printf("5.删除学生信息\n");
	printf("6.按学生总成绩排序\n");
	printf("7.输出不及格学生信息\n");
	printf("0.退出\n");
}

int main(){
	int x;
	while(1){
		menu();
		scanf("%d",&x);
		if(x==1) add();
		if(x==2) print();
		if(x==3) find();
		if(x==4) update();
		if(x==5) del();
		if(x==6) sort();
		if(x==7) fuc();
		if(x==0) break;
	}
	return 0;
}

仅供参考,切勿抄袭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值