2022081班李亚楠20220913
完成简单学生管理系统
1> 定义班级类型(存储学生的数组、班级现有人数)、定义学生类型(学号、姓名、分数)
2> 定义一个班级,完成初始化
3> 完成学生信息的添加
4> 定义函数完成输出所有学生信息
5> 定义函数完成输出最高成绩学生的信息
6> 定义函数完成按成绩排序功能
7> 定义函数完成,要求用户输入一个名字,查找是否是该班级的学生,如果是输出“该学生在该班级”,如果不是输出“查 找失败”
头文件:
#ifndef __H1_H__
#define __H1_H__#define MAX 20typedef struct
{int num;char name[20];int score;
}stu;typedef struct
{stu s[MAX];int len;
}class;class *create();void add(class* c);void output(class* s);// 最值
void max(class* s);//排序
void sort(class* s);//查找
void serch(class* c, char mz[]);#endif
源文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "h1.h"// 创建
class* create()
{class* s = (class* )malloc(sizeof(class));if(NULL == s){printf("创建失败\n");s = NULL;}s->len =0;printf("创建成功\n");return s;
}// 添加
void add(class *c) // 添加 学生结构体 函数
{stu k;printf("请输入学生学号:\n");scanf("%d",&k.num);printf("请输入学生姓名:\n");scanf("%s",k.name);printf("请输入学生分数:\n");scanf("%d",&k.score);if(NULL==c || c->len >= MAX){printf("添加失败\n");return;}c->s[c->len] = k;c->len ++;printf("添加成功!\n");
}// 输出
void output(class *c)
{printf("学生信息如下:\n");printf("学号\t姓名\t成绩\n");for(int i = 0; i < c->len; i++){printf("%d\t%s\t%d\n",c->s[i].num,c->s[i].name,c->s[i].score);}
}// 最值
void max(class* c)
{printf("学生成绩最高者信息如下:\n");printf("学号\t姓名\t成绩\n");stu max = c->s[0];for(int i = 0; i < c->len; i++){if(max.score < c->s[i].score){max.score = c->s[i].score;max.num = c->s[i].num;strcpy(max.name, c->s[i].name);}}printf("%d\t%s\t%d\n",max.num,max.name,max.score);
}// 排序
void sort(class* c)
{for(int i=1; i<c->len; i++){for(int j=0; j<c->len-i; j++){if(c->s[j].score<c->s[j+1].score){stu t= c->s[j];c->s[j] = c->s[j+1];c->s[j+1] = t;}}}
printf("排序后的信息:\n");
output(c);
}//查找
void serch(class* c, char mz[])
{int count = 0;for(int i=0; i<c->len; i++){if(strcmp(c->s[i].name,mz) == 0){count++;}}if(count){printf("该学生在该班级\n");}else{printf("查找失败\n");}
}
主函数测试:
#include <stdio.h>
#include "h1.h"int main(int argc, const char *argv[])
{class *s = create();// 添加add(s);add(s);add(s);// 输出output(s);//最值max(s);// 排序sort(s);serch(s, "ss");free(s);s=NULL;return 0;
}
测试结果:
ubuntu@ubuntu:1$ ./a.out
创建成功
请输入学生学号:
1
请输入学生姓名:
a
请输入学生分数:
88
添加成功!
请输入学生学号:
2
请输入学生姓名:
ss
请输入学生分数:
66
添加成功!
请输入学生学号:
3
请输入学生姓名:
v
请输入学生分数:
77
添加成功!
学生信息如下:
学号 姓名 成绩
1 a 88
2 ss 66
3 v 77
学生成绩最高者信息如下:
学号 姓名 成绩
1 a 88
排序后的信息:
学生信息如下:
学号 姓名 成绩
1 a 88
3 v 77
2 ss 66
该学生在该班级
2022081班李亚楠20220913相关推荐
- 2022081班李亚楠20220905
1.使用指针实现 strcpy.strcat 函数的功能 #include <stdio.h>int main(int argc, const char *argv[]) {/***使用指 ...
- 2022081班李亚楠20220914
//选择排序(作业) void list_select_sort(seqlist *S);//按位置查找,输出数据(作业) void list_search_pos(seqlist *S, int p ...
- 2022081班李亚楠20220920
1.中序遍历:ADEFGHMZ 后序遍历:AEFDHZMG 2.前序遍历: GDAFEMHZ 中序遍历: ADEFGHMZ 1.前序遍历: GDAFEMHZ 2.后序遍历:AE ...
- 2022081班李亚楠20220926
1.通过命令行传参给shell脚本文件传入两个字符串,把数值分别赋值给两个变量,实现两个变量的数值交换,然后输出两个变量的数值. #!/bin/bash #交换两个变量的值#从外部传参给变量 var1 ...
- 2022081班李亚楠20220901
1.通过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩 #include <stdio.h>int main(int argc, const ...
- 2022081班李亚楠20220902
1.从终端中输入一串字符,求出空格的个数: ab_cd_e_\n --->遇到\n表示输入结束 ---->数组中存储ab_cd_e ----->求出空格个数 #inc ...
- 2022081班李亚楠20220829
1.从终端输入一个字符:如果是大写的 转换成小写,如果是小写的 转换成大写,如果是 0-9 按照 %d 输出对应整型的 0-9,其他字符 转换成 #并输出. #include <stdi ...
- 2022081班李亚楠20220927
1.复习今日内容 2.在终端输入一个文件名,判断文件是否为空,如果不为空,判断文件是否是普通文件,如果是普通文件,就判断是否具有写权限,没有写权限,就加上写权限,并在文件最后追加一行"hel ...
- 2022081班李亚楠20220915
//尾删 (作业) int list_delete_tail(LinkList L); //尾删 (作业) int list_delete_tail(LinkList L) {if(NULL==L | ...
最新文章
- 赠书 | 2021年中国数字政府发展指数排名出炉!你的家乡名列第几?
- Linux内存映射mmap原理分析
- python的相对路径导入问题
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
- Visual Studio Code 玩MS SQL
- Hadoop ecosystem
- 02 unix文件系统和命令
- 六级词汇打卡第一天(一)
- 兰州网络教育计算机基础考试,2017年兰州事业单位公共基础备考:计算机基础知识...
- HTML页面跳转及传递参数
- 统计学习方法详解之第十三章 无监督学习概论
- css文字抖动解决办法
- H5分享页面(1)——web端二次分享配置内容
- Python爬虫(二十二)_selenium案例:模拟登陆豆瓣
- 2022 CSP-J1 CSP-S1 第1轮 初赛 攻略 总结 心得体会 注意事项 游记
- GO TO SHEN ZHEN
- 当代最值得收藏的画家作品_名人名画推荐,值得收藏的当代画家作品
- 五、Zabbix — 监控报警那点事儿
- y4m格式和yuv、bmp格式互转
- JAVA从入门到入土(引入篇)