冒泡排序,swich语句,while循环...基础性的一道综合题初学者可以做一个简单的测试

这道题是没有什么太大的难度,但是是比较基础性的知识点的应用!

对学习OC有一定的帮助.

1. 创建一对文件Student.h   Student.m

2. 在Student.h中,定义一个Student结构体,成员变量包括:姓名、性别、年龄、学号、分数

3. 声明一个打印Student的函数。参数是结构体指针

4. 声明一个打印数组中所有学生的函数

5. 声明一个实现学生数组排序的函数,按照姓名升序

6. 声明一个实现学生数组排序的函数,按照年龄降序

7. 声明一个实现学生数组排序的函数,按照学号升序

8. 声明一个实现学生数组排序的函数,按照分数降序

9. 声明一个输出学生数组中全部男学生的函数

10. 声明一个输出学生数组中全部女学生的函数

11、从控制台输入1~6之间的数字,分别调用上述6个函数,使用switch/case实现。

12、如果输入1~6以外的数字,输出“没有对应的数字,请重新输入”

13、使用while循环实现反复输入

14、定义枚举类型表示1~6之间的数字,switch/case使用枚举值。

//main函数部分

#import <Foundation/Foundation.h>

#import "Student.h"//注意头文件

// 声明枚举类型,描述1~6之间的数字

enum FunctionName{

SortAscendByName = 1,

SortDescendByAge,

SortAscendByNumber,

SortDescendByScore,

PrintMaleStudent,

PrintFemaleStudent

};

int main(int argc, const char * argv[]) {

Student stu1 = {"a", ‘m‘, 19, 5, 90};

Student stu2 = {"c", ‘m‘, 26, 1, 89};

Student stu3 = {"v", ‘f‘, 20, 3, 92};

Student stu4 = {"b", ‘m‘, 24, 4, 97};

Student stu5 = {"x", ‘m‘, 22, 2, 95};

Student stus[5] = {stu1, stu2, stu3, stu4, stu5};

while (YES) {

printf("\n");

printf("输入0:退出程序\n");//这里输入0退出,输入字符应该也退出.如果非要实现这个功能可以通过case选用除0~6之外数字

printf("输入1:实现按照姓名升序排列\n");

printf("输入2:实现按照年龄降序排列\n");

printf("输入3:实现按照学号升序排列\n");

printf("输入4:实现按照分数降序排列\n");

printf("输入5:实现输出所有男生\n");

printf("输入6:实现输出所有女生\n");

printf("=========================\n");

printf("请输入实现功能对应的数字:");

int functionNum = 0; // 保存输入的数字

scanf("%d", &functionNum);

getchar();

printf("\n");

if (functionNum <= 0) {

printf("退出程序");

break;

}

// 根据输入的数字,调用对应的函数

switch (functionNum) {

case SortAscendByName: {

sortAscendByName(stus, 5);

printAllStudent(stus, 5);

break;

}

case SortDescendByAge: {

sortDescendByAge(stus, 5);

printAllStudent(stus, 5);

break;

}

case SortAscendByNumber: {

sortAscendByNumber(stus, 5);

printAllStudent(stus, 5);

break;

}

case SortDescendByScore: {

sortDescendByScore(stus, 5);

printAllStudent(stus, 5);

break;

}

case PrintMaleStudent: {

printMaleStudent(stus, 5);

break;

}

case PrintFemaleStudent: {

printFemaleStudent(stus, 5);

break;

}

default: {

printf("没有对应的函数,请重新输入!\n");

break;

}

}

}

return 0;

}

//声明.h文件部分

// 声明学生结构体

struct student{

char names[20];

char sex;

int age;

int number;

float score;

};

typedef struct student Student;

// 输出结构体的所有信息。参数:结构体指针

void printStudent(Student * s);

// 输出结构体数组中所有元素的信息

void printAllStudent(Student * stus, int count);

// 按照姓名升序排列

void sortAscendByName(Student * stus, int count);

// 按照年龄降序排列

void sortDescendByAge(Student * stus, int count);

// 按照学号升序排列

void sortAscendByNumber(Student * stus, int count);

// 按照分数降序排列

void sortDescendByScore(Student * stus, int count);

// 输出全部男生

void printMaleStudent(Student * stus, int count);

//定义.m部分

// 输出结构体的所有信息。参数:结构体指针

void printStudent(Student * s){

printf("%-*s  %c  %d  %d  %.1f\n", 10, s->names, s->sex, s->age, s->number, s->score);

}

// 输出结构体数组中所有元素的信息

void printAllStudent(Student * stus, int count){

for (int i = 0; i < count; i++) {

printStudent(stus+i);

}

}

// 按照姓名升序排列

void sortAscendByName(Student * stus, int count){

for (int i = 0; i < count-1; i++) {

for (int j = 0; j < count-1-i; j++) {

if (strcmp(stus[j].names, stus[j+1].names) > 0) {

Student temp = stus[j];

stus[j] = stus[j+1];

stus[j+1] = temp;

}

}

}

}

// 按照年龄降序排列

void sortDescendByAge(Student * stus, int count){

for (int i = 0; i < count-1; i++) {

for (int j = 0; j < count-1-i; j++) {

if (stus[j].age < stus[j+1].age) {

Student temp = stus[j];

stus[j] = stus[j+1];

stus[j+1] = temp;

}

}

}

}

// 按照学号升序排列

void sortAscendByNumber(Student * stus, int count){

for (int i = 0; i < count-1; i++) {

for (int j = 0; j < count-1-i; j++) {

if (stus[j].number > stus[j+1].number) {

Student temp = stus[j];

stus[j] = stus[j+1];

stus[j+1] = temp;

}

}

}

}

// 按照分数降序排列

void sortDescendByScore(Student * stus, int count){

for (int i = 0; i < count-1; i++) {

for (int j = 0; j < count-1-i; j++) {

if (stus[j].score < stus[j+1].score) {

Student temp = stus[j];

stus[j] = stus[j+1];

stus[j+1] = temp;

}

}

}

}

// 输出全部男生

void printMaleStudent(Student * stus, int count){

for (int i = 0; i < count; i++) {

if (stus[i].sex == ‘m‘) {

printStudent(stus+i);

}

}

}

// 输出全部女生

void printFemaleStudent(Student * stus, int count){

for (int i = 0; i < count; i++) {

if (stus[i].sex == ‘f‘) {

printStudent(stus+i);

}

}

}

// 输出全部女生

void printFemaleStudent(Student * stus, int count);

时间: 2024-11-06 13:47:43

冒泡排序,swich语句,while循环...基础性的一道综合题初学者可以做一个简单的测试的相关文章

一道算法题-不用加减乘除做加法

题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 解析①: 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果. 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12. 同样我们可以用三步走的方式计算二进制值相加: 5-101,7-111 第一步:相加各位的值,不算进位,得到010,二进制每位相加就相当于各位做

Java--分支语句、循环、数组、控制台输入语句、常用数学函数

**-----本章节-----** 1.分支语句 2.循环 3.数组 4.控制台输入语句 5.部分常用的数学函数 ============================================================== 一分支语句 1.概念 (1)分支语句又称条件语句条件语句使部分程序可根据某些表达式的值被有选择地执行. (2)Java编程语言支持双路 if和多路 switch 分支语句. ===========================================

Java-条件语句、循环语句练习

题目一:一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)? double height=0.08; for(int i=1;i>0;i++) { height*=2; if(height>=(8848.13*1000)) { System.out.println("折叠次数="+i); break; } } 题目二:计算5的阶乘 5!的结果是? int sum=1; for(int i=1;i<=5;i++) { sum*=i;

Python 的条件语句和循环语句

一.顺序结构 顺序结构是最简单的一种程序结构,程序按照语句的书写次序自上而下顺序执行. 二.分支控制语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 1.if 语句 Python中if语句的一般形式如下所示: if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3 如果 "condition_1" 为

Java使用条件语句和循环结构确定控制流

与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句.块确定了变量的作用域. 比如: 1 public class Code { 2 static 3 { 4 System.out.println("1"); 5 } 6 { 7 System.out.println("2"); 8 } 9 public Code() 1

C# 循环语句 for循环

循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变.for(初始条件;循环条件;状态改变){ 循环体} 给出初始条件,先判断是否满足循环条件,如果不满足条件则跳过for语句,如果满足则进入for语句执行,for语句内的代码执行完毕后,将按照状态改变,改变变量,然后判断是否否和循环条件,符合则继续执行for语句内的代码,直到变量i不符合循环条件则终止循环,或者碰到break命令,直接跳出当前的for循环. break ——中断循环,跳出循环continue——停止本次循环,

[Python学习] 专题二.条件语句和循环语句的基础知识

        前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括: 1.条件语句:包括单分支.双分支和多分支语句,if-elif-else 2.循环语句:while的使用及简单网络刷博器爬虫 3.循环语句:for的使用及遍历列表.元组.文件和字符串 前言: 语句块         在讲诉条件语句.循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过) 语句块并非一种语句,它是在条件为真(条件语句)时执行或执行

SQL基本编程,分支语句,循环语句,存储过程,触发器

基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消息框 分支语句if @a>@bbegin 语句....endelsebeginend 循环语句注意循环四要素:初始条件,循环条件,循环体,状态改变 declare @a int;select @a = 1; while 循环条件 @a<=10begin 循环体end 存储过程: 存储过程是集中存储

VB的判断语句和循环语句

判断语句 •If语句 if语句共有4种写法: 第一种语法: If 条件判断语句 then 程序代码 第二种语法:If 条件判断语句 then 程序代码 else 程式代码 第三种语法: If 条件判断语句 then 程式代码 Else 程式代码 End if 第四种语法 If 条件判断语句 then Elseif 条件判断语句 then 程式代码 Elseif 条件判断语句 then 程式代码 …… Else 程式代码 End if •Select语句 Select语句的语法是: Select