C语言课程设计-抽奖系统

news2024/11/18 7:44:10

请勿直接引用,此内容为本人课程设计报告,上传意为记录自己的经历

题目:基于C语言的抽奖系统

摘要:

本文介绍了一种基于C语言的简易抽奖系统的设计与实现。系统通过用户输入与随机数生成技术相结合,模拟现实中的抽奖过程。首先,用户可以根据提示选择输入目前的情绪状态,系统会给予相应的反馈,这样可以增加用户的使用体验,并使人机交互的效果更加符合本程序的设计初衷。接着,用户可以自定义设定抽奖次数,然后系统利用随机数生成算法进行多次抽奖,并实时显示结果。在设计过程中,系统包括用户交互界面、随机数生成模块以及奖品输出模块。经过大量的数据测试,该系统能够正常稳定地运行,并且生成的随机数分布合理,抽奖结果符合预期。本文详细介绍了系统的设计思路、代码实现和实验结果分析。通过本次设计,不仅可以学习和巩固C语言的基本编程技巧,还可以进一步了解随机数的生成及其在实际场景应用中的实现。该系统在娱乐和教育等领域具有一定的应用前景,为进一步的功能扩展提供了基础。总的来说,本次设计在功能实现、用户体验和技术细节上都达到了预期目标,并且为后续的进一步研究和改进奠定了基础,同时本程序也有一定的兼容性,为移植至其他功能程序的抽奖系统提供了一定的思路。

关键词:抽奖系统; 交互界面; 算法分析;

目录

题目:基于C语言的抽奖系统............................................................... 6

摘要:....................................................................................................... 6

目录........................................................................................................... 7

前言:....................................................................................................... 9

1.1本课题研究的意义............................................................. 9

1.2目的..................................................................................... 9

1.3研究范围及要求达到的技术参数................................... 10

1.3.1抽奖系统的需求分析:.............................................. 11

1.3.2抽奖算法的研究:...................................................... 11

1.3.3程序设计与实现:...................................................... 11

1.3.4系统测试与用户体验研究:...................................... 11

1.4本课程要解决的问题....................................................... 11

1.4.1抽奖算法:.................................................................. 12

1.4.2奖项设置:.................................................................. 12

1.4.3用户界面:.................................................................. 12

1.4.4抽奖结果输出:............................................................ 12

正文:..................................................................................................... 13

2.1引言:............................................................................... 13

2.2设计计算的方法和内容................................................... 14

2.2.1数据库的建立................................................................ 14

2.2.2人机交互界面的建立.................................................... 14

2.3实验方法、内容及其分析............................................... 15

2.3.1实验方法:.................................................................... 15

2.3.2实验内容:.................................................................... 15

2.3.3分析:............................................................................ 16

2.4理论论证、应用、结果以及讨论................................... 16

2.4.1理论论证:.................................................................... 16

2.4.2应用:............................................................................ 17

2.4.3结果:............................................................................ 17

2.4.4讨论:............................................................................ 18

结论:..................................................................................................... 18

致谢:..................................................................................................... 18

参考文献:............................................................................................. 19

附录:..................................................................................................... 19

前言:

1.1本课题研究的意义

在当今数字化的时代,抽奖活动作为一种常见的营销和娱乐方式,已经广泛应用于各个领域。[1]并且抽奖系统的设计和实现涉及到多个方面的知识和技术,包括编程语言、算法设计、用户界面设计等。通过对抽奖系统的研究,可以深入了解并掌握这些领域的知识和技术,提高我们对于解决问题算法和实现功能的编程的能力。本文将介绍一个基于C语言的抽奖系统的设计与实现,探讨其在教育教学中的应用和意义。

1.2目的

抽奖系统作为一种计算机语言程序,是计算机科学与技术领域的重要研究方向之一。通过对抽奖系统的研究,我们可以深入了解计算机程序设计的基本原理和方法,并提升我们的编程能力与解决实际问题的能力。同时,抽奖系统的设计和实现需要考虑到用户体验、交互性、安全性、稳定性等多个方面的因素,这也为我们提供了一个锻炼和提高综合素质的机会。

抽奖系统的研究也具有一定的教育教学意义。在计算机科学与技术、软件工程等相关专业的教学中,抽奖系统可以作为一个综合性的实验项目,让学生在实践中掌握编程语言、算法设计、数据库管理等多个方面的知识和技能,并可以在无形中提升自己的问题建模能力。通过参与抽奖系统的开发过程,学生可以提高自己的动手能力与创新能力,培养团队合作精神和解决实际问题的能力,并真正地将从课堂里学到的知识施以应用,提升我们自己的成就满足感。而且抽奖活动作为一种营销和娱乐方式,已经成为了商业活动和社交活动的重要组成部分。通过对抽奖系统的研究,可以开发出更加安全、公正、高效并且互动性高的抽奖系统,这可以为商业活动和社交活动提供更好的服务和支持。总而言之,我们研究抽奖系统的目的是为了更好地提升我们自己的能力以及最大限度地将抽奖系统应用于我们的日常生活里,也可以作为一个娱乐工具真正地满足人们的精神世界。对于当今世界的发展来说,计算科学技术等新技术的开发应用是非常关键的。计算机科学与技术所产生的影响是十分巨大的、非常广泛的,而这也为商业活动提供更多的便利。信息时代的快速发展,使各种信息的传播速度变得更加迅速,传播的方式也更加多样。通过抽奖系统的程序设计的商业实现,这可以为商业活动的开展节省出很多的时间成本,节省更多的人力成本,使各种商业活动的开展过程更加便利快捷。[2]

1.3研究范围及要求达到的技术参数

本课程的研究范围是基于C语言进行的程序设计,旨在将本学期所学的知识应用于实际之中。其中研究范围包括以下四个方面(1.3.1~1.3.4),并且本课程要达到的技术参数包括:系统结果的准确性、抽奖数据的随机性、抽奖程序的可移植性。

1.3.1抽奖系统的需求分析:

确定系统的功能需求、用户需求和性能需求。

1.3.2抽奖算法的研究:

分析和比较不同的抽奖算法,选择适合的算法用于实现抽奖功能。

1.3.3程序设计与实现:

使用C语言进行程序语言设计,包括简单的界面设计与简易的奖品数据的设置等。

1.3.4系统测试与用户体验研究:

进行充分的测试,确保系统的正确性和稳定性,并根据测试结果进行优化。同时也要考虑用户在使用抽奖系统时的体验,优化界面友好性和操作便捷性。

1.4本课程要解决的问题

以下过程顺序按照程序代码先后顺序进行排序:

1.4.1抽奖算法:

不同的算法有不同的运行效率。差的算法需要循环100多万次,好的算法只需要循环10次。学生通过本案例能够直观地体会到算法的价值——“算法是程序设计的灵魂”。[3]算法解释是编程的核心和关键,它能够帮助学生深入理解编程的本质,提高编程能力和解决问题的能力。由此我们可以知道一个程序算法的重要性,而在本课程里应设计一个合理的抽奖算法,确保每次抽奖的概率都是相同的。使本程序的功能更方便、高效。

1.4.2奖项设置:

设置不同的奖项,并设置奖品的总数(奖品数据库)从而确定每个奖项的中奖概率

1.4.3用户界面:

这是为了更好地实现人机交互功能,使用户有一个较好的使用体验,操作是设计一个友好的用户界面,方便用户参与抽奖,并且在程序运行的初期本程序使用简单的界面增加用户的娱乐性。

1.4.4抽奖结果输出:

将抽奖结果以清晰明了的方式输出给用户。并在最后输出一些增强本程序娱乐性的语句,与程序运行的开始形成对照。

正文:

2.1引言:

抽奖活动作为一种常见的营销和娱乐方式,在现代社会中扮演着重要的角色。随着科技的发展,抽奖系统的设计和实现也变得越来越复杂。一个公平、高效、可靠的抽奖系统不仅能够为用户带来良好的体验,还能够提升活动所带来的最终效果。本文将介绍一个基于C语言的抽奖系统的设计与实现,探讨其在学习和生活中的应用和意义。通过对抽奖系统的研究和实现,我们可以深入了解计算机程序设计的基本原理和方法,提高我们的编程能力和解决实际问题的能力。同时,抽奖系统的设计和实现也需要考虑到用户体验、安全性、稳定性等多个方面的因素,这为我们提供了一个锻炼和提高综合素质的机会。在教育教学中,抽奖系统可以作为一个综合性的实验项目,让学生在实践中掌握编程语言、算法设计、数据库的建立等多个方面的知识和技能。通过参与抽奖系统的开发过程,也可以提高我们自己的动手能力和创新能力,培养团队合作精神和解决实际问题的能力。同时,抽奖系统经过一定的修改也可以作为一种教学工具,用于辅助课堂教学和实验教学,帮助学生更好地理解和掌握相关的知识和技能。

2.2设计计算的方法和内容

2.2.1数据库的建立

在本次课程设计里,我们的奖品数据内容分别为“一等奖”、“二等奖”、“三等奖”、“特等奖”、“再来一次”、“未中奖”,总数据基数为100,其抽到的概率分别为2%、3%、4%、1%、2%、88%,而每个奖项被抽到的概率也和日常生活里超市购物抽奖等场景相符合,从而论证我们基础数据库建立和抽奖概率的合理性。

2.2.2人机交互界面的建立

为了保证用户的高体验感,所以我们在程序运行的开端建立了一个简单人机交互界面,通过简单的情绪分享价值,就有可能获得最大化收益,因为情绪价值的范围的其实是非常宽泛的,情绪价值包括了正向情绪价值和负向的,而大家所说的情绪价值,都是正向的情绪价值,也就是给人带来一切美好感受的能力,能引起正面情绪的能力。在人与人之间提供情绪价值十分重要,这也是亲密度的相关体现。[4]而当我们情绪服务被用户认可时,更多的用户才会使用我们的抽奖系统,从而收益最大化/宗旨是为了更好地提升用户的体验感与满足感,而具体的过程实施在本处我们只简单地提及,而在下面的代码(附录)解释里我会详细地介绍。

2.3实验方法、内容及其分析

2.3.1实验方法:

在抽奖系统做好以后,通过大量实验数据来证明抽奖系统的稳定性、准确性、交互性,并且将本系统推荐给同学使用,并记录每次的抽奖结果,重复抽奖过程多次,以获取足够的数据进行分析。防止系统会准确无误按照程序运行。下图为程序运行结果部分实验图:

2.3.2实验内容:

观察多次抽奖结果是否呈现出无规律的分布,以确保抽奖的公平性,以达到验证抽奖系统的随机性的目的。并分析不同奖品的出现频率,对比设定的概率与实际出现的频率是否相符。考察抽奖时间对结果的影响,看是否存在特定时间段抽奖更容易获得特定奖品的情况(此过程在代码附录里实现)。在我们的实验过程中,每一次的抽奖过程都不是同一个人,且并无影响实验结果的特征,此过程能说明研究参与者特征(如性别、年龄等)与抽奖结果并无关联,只和奖品获得概率有关,这样更能说明我们抽奖系统的公平性,并提高抽奖系统的可信度。

2.3.3分析:

通过对大量抽奖结果的统计分析以及上述附表结果可说明抽奖系统的随机性良好。并且各奖品的实际出现频率与设定概率接近,表明概率设置合理并无偏差较大的情况,同时根据代码实现过程,可表明抽奖时间对结果无明显影响,说明系统较为公平,并且参与者特征与抽奖结果无显著关联,可进一步说明抽奖系统的公正性和可信度。综上几点并分析可得:本次的课程设计抽奖系统符合预期标准,且概率设计合理,可满足大多数人的抽奖要求,系统较为完善。

2.4理论论证、应用、结果以及讨论

2.4.1理论论证:

通过调用rand()函数结合时间种子来产生随机数,以确保每次运行抽奖结果的随机性,这符合抽奖的基本原理。并使用字符数组来存储不同类型的奖品,这种数据结构简单直接,能够有效管理和展示奖品信息。

在交互界面利用switch语句根据用户输入的不同情绪代码进行相应反馈,体现了程序与用户的交互性,从理论上满足了与用户沟通和互动的需求。在算法上我们使用php算法来进行设置抽奖系统的概率设计,这能生成更符合本系统抽奖概率,而关于概率统计相关的知识和原理实际上,它是人类社会在发展过程中总结出的数学规律。高中数学概率知识相对较为笼统,所以我们应当加深概率统计在生活中的应用范围,对于生活中的问题做出正确和科学的决策。在当今社会,利用好概率知识并加以理解应用,能够使我们的生活更加便利。在现实生活中研究概率统计的意义:概率统计与实际生活密切相关,人们能够利用概率统计的方式也有很多种。比如在商场经常举办的抽奖活动当中,或者在聚会的游戏项目当中,都有概率统计的身影。[5]由此可知概率设计的重要性。同样在一个程序系统里重要的不仅仅只有算法,还有程序设计,程序设计是计算机语言教学中点,同时也是教学中的难点,循环结构是三种基本程序设计结构之一,是程序设计的基础。[6]在代码里我们使用了while循环语句,而它具有灵活性、简洁性、适用广泛性等优点,并且while循环可以根据条件的持续满足而多次执行循环体。这对于处理需要重复执行某些操作的情况非常有用,例如遍历数组、读取文件内容,而它的这种特性确保只有在满足特定条件时才执行循环体,避免不必要的计算和操作。

2.4.2应用:

此程序适用于一些小型娱乐活动或简单的互动场景。用户可以在轻松的氛围中体验抽奖的乐趣,并通过情绪反馈环节增强与程序的互动性。它可以用于个人娱乐,也可以在一些特定的聚会或活动中增加趣味性。

2.4.3结果:

程序启动后,会显示欢迎信息和情绪输入等提示,用户输入情绪代码后会得到相应的回应。然后在抽奖环节,根据设定的抽奖次数随机输出奖品。每次抽奖结果会明确显示,最后还会有抽奖结束的提示信息。

2.4.4讨论:

在本课程设计里优点是实现了抽奖和交互功能的结合,增加了程序的趣味性和用户参与度。并给用户提供情绪价值,用于满足用户的体验感,当然缺点也是明显的,在程序设计的过程中还做不到足够尽善尽美,比如说在欢迎用户界面做的太过简单以及代码结构相对较于简单且整体系统没有太多功能。但这份程序设计的答卷相对于我自己的编程水平还是比较满意的。

结论:

本课程设计是基于C语言进行设计的抽奖系统,通过大量实际数据测试,证明该系统能够满足抽奖的需求,具有较好的稳定性和可靠性,并可以提供给用户较好的使用体验。在未来的学习中,如果有机会我们将继续完善系统功能,提高系统性能,为用户提供更好的服务。

致谢:

行文至此,落笔之处,本次课程设计将画上句号。在这一周的学习里,我收获了知识,也收获了成长,也真正地将课堂上学到的知识应用于实践。在此我想向所有给予我帮助和支持的人表达我最诚挚的感谢。

我要感谢我的指导导师侯守明老师,在论文的写作过程中,导师给予了我悉心的指导和耐心的解答。还要特别感谢本次课程设计的负责人周书强老师,感谢您不厌其烦地回答我的问题,给了我很多帮助。最后,我要感谢所有参与我本次课程设计研究的人员,感谢你们的付出和贡献为我的本次课程设计提供了很重要的支持。在未来的日子里,我将带着这份感恩之心,继续努力,不断追求卓越,为社会做出自己的贡献。

参考文献:

[1] 李自成.基于LabVIEW的简易抽奖系统的设计与实现[J].安徽电子信息职业技术学院学报,2020,19(4):31-34,38

[2]刘林.计算机科学与技术的发展与展望[J].集成电路应用,2023,40(03):338-339

[3]黄振永.用案例教学展示算法是程序设计的灵魂[J].福建电脑,2019,35(4):157-15

[4] 李歆萌.浅析如何提供情绪价值[J].情感读本,2023(26):46-48

[5] 李文龙.浅谈抽奖活动中的概率问题[J].中国高新区,2019(2):284-285

[6] 姜妍.C++中while循环语句教学设计探讨[J].科技创新导报,2012(5):205-205

附录:

代码如下:

//

// Created by huqinyun on 2024/5/21.

//

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include <conio.h>

#include <string.h>

//定义奖品类型

char ch[100][15]={"一等奖","一等奖","二等奖","二等奖","二等奖", "三等奖","三等奖",

                  "三等奖","三等奖","特等奖","再来一次","再来一次","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",

                  "未中奖","未中奖",};

/*

void initialize_prizes() {

       for (int i = 0; i < 2; i++) ch[i] = "一等奖";

       for (int i = 2; i < 5; i++) ch[i] = "二等奖";

       for (int i = 5; i < 9; i++) ch[i] = "三等奖";

       ch[9] = "特等奖";

       for (int i = 10; i < 12; i++) ch[i] = "再来一次";

       for (int i = 12; i < PRIZE_COUNT; i++) ch[i] = "未中奖";

//在设置奖品类型的时候我们可以二维数组计入奖品或者我们也可以重新做一个自定义循环函数,更简洁方便地将每个奖品内容计入数组之中

}

 */

void jiaohu(){//交互界面为了给用户更好的体验感

    while(1){

        printf("欢迎来到抽奖系统!\n");

        printf("本程序仅供娱乐,本环节是为了和您进行互动!\n");

        printf("请根据下面的提示选择现在您的指令!\n");

        printf("*******************************************************\n");

        printf("如果您现在的心情很好请输入10\n");

        printf("如果您现在感觉烦躁请输入11\n");

        printf("如果您现在感到疲惫请输入12\n");

        printf("如果您现在感到平静请输入13\n");

        printf("如果您有其他不同的心情表现请输入14\n");

        printf("*******************************************************\n");

        break;

    }

    int emotion;

    scanf("%d",&emotion);

    switch (emotion) {

        case 10:

            printf("太棒了!希望您每天都这么开心~\n");

            break;

        case 11:

            printf("要不要尝试一些放松的活动,比如散步、听音乐或做一些您比较喜欢的运动~\n");

            break;

        case 12:

            printf("记得要照顾好自己,给自己一些时间来恢复精力,身体才是第一位哦~\n");

            break;

        case 13:

            printf("那很好啊,希望您的生活里处处充满平静和喜悦,没有烦恼和忧虑~\n");

            break;

        case 14:

            printf("我很在乎您的感受,如果您想倾诉,我随时都在这里。尽管我只是一串代码,但我希望您可以一直开心~\n");

            break;

        default:

            printf("您输入的字符串无效哦~\n");

            break;

    }

}

void ag(){//再来一次的环节

    while(1){

        int k = rand() % 99;  // 随机一位生成 0~99 的整数

        if(strcmp(ch[k],"再来一次")==0){

            printf("再来一次\n");

            continue;}//如果抽到再来一次,则重新进行循环

        else{

            printf("%s\n",ch[k]);

            break;//否则直接跳出while循环

        }

    }

}

int main()

{

    jiaohu();

//设置抽奖次数

    int n;

    printf("请输入你想要抽奖的次数(比如说您想抽5次就输入5):");

    srand((unsigned) time(NULL));  // 以当前时间定义随机数种子

    scanf("%d",&n);

    //开始抽奖

    printf("按任意键开始抽奖(按0退出)\n");//只有最后输入0然后才会结束程序运行

    while (1) {

        char c;

        int i;

        c = getch();//读取输入的字符<conio.h>

        if (c == '0') break;

        else {

            for(i=0;i<n;i++)

            {

                ag();

            }

printf("*******************************************************\n");

            printf("本次抽奖环节已结束!\n");

            printf("希望在这短暂的时间里您可以收获一份快乐!\n");

            printf("很高兴期待和您的下次相逢~\n");

            printf("结束程序运行请输入0\n");

printf("*******************************************************\n");

        }

    }

    return 0;

}

不同时间下相同试验次数的对比(部分):

图1

文本  描述已自动生成

图2

文本  描述已自动生成

此过程是为了测试是否存在特定时间段抽奖更容易获得特定奖品的情况(此过程在代码附录里实现),保持其他变量一致。

相同指令实验对比测试:

图3

电脑屏幕截图  描述已自动生成

图4

电脑屏幕截图  描述已自动生成

图5

电脑萤幕画面  中度可信度描述已自动生成

不同情绪相同抽奖次数对比:

图6

电脑萤幕画面  中度可信度描述已自动生成

图7

文本  描述已自动生成

程序结束循环演示(在结束抽奖环节后按下输入0便可以退出程序运行):

图8

文本  描述已自动生成

部分交互界面演示(交互界面分为两部分一部分是程序运行开始,一本分是结束):

图9

文本  中度可信度描述已自动生成

图10

文本  描述已自动生成

 

[1][1] 李自成.基于LabVIEW的简易抽奖系统的设计与实现[J].安徽电子信息职业技术学院学报,2020,19(4):31-34,38

[2] 刘林.计算机科学与技术的发展与展望[J].集成电路应用, 2023, 40(03): 338-339

[3] 黄振永.用案例教学展示算法是程序设计的灵魂[J].福建电脑,2019,35(4):157-159

[4] 李歆萌.浅析如何提供情绪价值[J].情感读本,2023(26):46-48

[5] 李文龙.浅谈抽奖活动中的概率问题[J].中国高新区,2019(2):284-285.

[6] 姜妍.C++中while循环语句教学设计探讨[J].科技创新导报,2012(5):205-205

//
// Created by huqinyun on 2024/5/21.
//
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <conio.h>
#include <string.h>
//定义奖品类型
char ch[100][15]={"一等奖","一等奖","二等奖","二等奖","二等奖", "三等奖","三等奖",
                  "三等奖","三等奖","特等奖","再来一次","再来一次","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖","未中奖","未中奖","未中奖","未中奖","未中奖",
                  "未中奖","未中奖",};
/*
void initialize_prizes() {
	for (int i = 0; i < 2; i++) ch[i] = "一等奖";
	for (int i = 2; i < 5; i++) ch[i] = "二等奖";
	for (int i = 5; i < 9; i++) ch[i] = "三等奖";
	ch[9] = "特等奖";
	for (int i = 10; i < 12; i++) ch[i] = "再来一次";
	for (int i = 12; i < PRIZE_COUNT; i++) ch[i] = "未中奖";
//在设置奖品类型的时候我们可以二维数组计入奖品或者我们也可以重新做一个自定义循环函数,更简洁方便地将每个奖品内容计入数组之中
}
 */
void jiaohu(){
    while(1){
        printf("欢迎来到抽奖系统!\n");
        printf("本程序仅供娱乐,本环节是为了和您进行互动!\n");
        printf("请根据下面的提示选择现在您的指令!\n");
        printf("*******************************************************\n");
        printf("如果您现在的心情很好请输入10\n");
        printf("如果您现在感觉烦躁请输入11\n");
        printf("如果您现在感到疲惫请输入12\n");
        printf("如果您现在感到平静请输入13\n");
        printf("如果您有其他不同的心情表现请输入14\n");
        printf("*******************************************************\n");
        break;
    }
    int emotion;
    scanf("%d",&emotion);
    switch (emotion) {
        case 10:
            printf("太棒了!希望您每天都这么开心~\n");
            break;
        case 11:
            printf("要不要尝试一些放松的活动,比如散步、听音乐或做一些您比较喜欢的运动~\n");
            break;
        case 12:
            printf("记得要照顾好自己,给自己一些时间来恢复精力,身体才是第一位哦~\n");
            break;
        case 13:
            printf("那很好啊,希望您的生活里处处充满平静和喜悦,没有烦恼和忧虑~\n");
            break;
        case 14:
            printf("我很在乎您的感受,如果您想倾诉,我随时都在这里。尽管我只是一串代码,但我希望您可以一直开心~\n");
            break;
        default:
            printf("您输入的字符串无效哦~\n");
            break;
    }

}
void ag(){
    while(1){
        int k = rand() % 99;  // 随机一位生成 0~99 的整数
        if(strcmp(ch[k],"再来一次")==0){
            printf("再来一次\n");
            continue;}//如果抽到再来一次,则重新进行循环
        else{
            printf("%s\n",ch[k]);
            break;//否则直接跳出while循环

        }

    }
}

int main()
{
    jiaohu();
//设置抽奖次数
    int n;
    printf("请输入你想要抽奖的次数(比如说您想抽5次就输入5):");
    srand((unsigned) time(NULL));  // 以当前时间定义随机数种子
    scanf("%d",&n);
    //开始抽奖
    printf("按任意键开始抽奖(按0退出)\n");//只有最后输入0然后才会结束程序运行
    while (1) {
        char c;
        int i;
        c = getch();//读取输入的字符<conio.h>
        if (c == '0') break;
        else {
            for(i=0;i<n;i++)
            {
                ag();
            }
            printf("*******************************************************\n");
            printf("本次抽奖环节已结束!\n");
            printf("希望在这短暂的时间里您可以收获一份快乐!\n");
            printf("很高兴期待和您的下次相逢~\n");
            printf("结束程序运行请输入0\n");
            printf("*******************************************************\n");



        }
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【渗透测试】DC-1靶机实战(下)SSH爆破提权

【渗透测试】DC-1靶机实战&#xff08;上&#xff09;漏洞扫描获取反弹shell-CSDN博客 7.SSH爆破 hydra ssh://172.20.10.4 -l flag4 -P /usr/share/john/password.lst -t 64 -f -vV -o /tmp/hydra.sshssh://10.10.10.31&#xff1a;指定了要攻击的 SSH 服务的地址。 -l flag…

Windows开启远程桌面

搜索并进入【远程桌面设置】 ​​ 开启远程桌面 ​​​ ipconfig​命令查看ip地址&#xff0c;并使用地址在另一台电脑远程登录此电脑 选择其他账户登录&#xff0c;输入用户和密码 ​​ ​​ 成功登录 ​​

基于Django+MySQL的智慧校园系统

此项目基于Django MySQL HTML CSS JS jQuery bootstrap实现的功能有 学生管理部门管理代办清单管理校园论坛校园医疗服务校园看点校园生活助手常用功能入口 1. 一些注意点 1. 页面body会自动有一些边界距&#xff0c;处理方法&#xff1a; <head><style>b…

C++ | Leetcode C++题解之第134题加油站

题目&#xff1a; 题解&#xff1a; class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int n gas.size();int i 0;while (i < n) {int sumOfGas 0, sumOfCost 0;int cnt 0;while (cnt < n) {int j (i …

C++ | Leetcode C++题解之第133题克隆图

题目&#xff1a; 题解&#xff1a; class Solution { public:Node* cloneGraph(Node* node) {if (node nullptr) {return node;}unordered_map<Node*, Node*> visited;// 将题目给定的节点添加到队列queue<Node*> Q;Q.push(node);// 克隆第一个节点并存储到哈希…

Nginx漏洞解析及复现

Nginx漏洞 Nginx能做到正向代理、反向代理、负载均衡、HTTP服务器等&#xff0c;强大的功能不言而喻&#xff0c;但也伴随着使用 上的风险&#xff0c;深入理解Nginx的漏洞有助于创建安全的业务系统。 Nginx解析漏洞 漏洞原理 Nginx的解析漏洞的出现和Nginx的版本没有关系&…

数据库(24)——外键约束

概念 外键用来让两张表的数据之间建立连接&#xff0c;从而保证数据的一致性和完整性。 具有外键的表称为子表&#xff0c;关联的表称为父表。 语法 添加外键 CREATE TABLE 表名( 字段名 数据类型, .. [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主…

升级HarmonyOS 4.2,开启健康生活篇章

夏日来临&#xff0c;华为智能手表携 HarmonyOS 4.2 版本邀您体验&#xff0c;它不仅可以作为时尚单品搭配夏日绚丽服饰&#xff0c;还能充当你的健康管家&#xff0c;从而更了解自己的身体&#xff0c;开启智能健康生活篇章。 高血糖风险评估优化&#xff0c;健康监测更精准 …

2024首发!会声会影2024旗舰版,专业编辑新体验!

会声会影2024最新旗舰版是一款专业的视频编辑软件&#xff0c;它集成了多种高级功能&#xff0c;为用户带来极致的视频编辑体验。在这篇文章中&#xff0c;我们将详细介绍该软件的功能和特色&#xff0c;帮助用户更好地了解和使用它。 会声会影全版本绿色安装包获取链接&#…

在 LLM 架构中应用多专家模型

本文转载自&#xff1a;在 LLM 架构中应用多专家模型 2024年 3月 14日 By Kyle Kranen and Vinh Nguyen https://developer.nvidia.cn/zh-cn/blog/applying-mixture-of-experts-in-llm-architectures/ 文章目录 一、概述二、LLM 架构领域的专家齐聚一堂1、模型容量2、MoE 在降低…

Nginx源码编译安装

Nginx NginxNginx的特点Nginx的使用场景Nginx 有哪些进程root 和 alias 指定路径的区别root&#xff08;根目录&#xff09;alias&#xff08;别名目录、虚拟目录&#xff09; 使用源码编译安装Nginx准备工作安装依赖包编译安装Nginx检查、启动、重启、停止 nginx服务配置 Ngin…

【JavaEE】留言板与图书管理系统

目录 留言板1. 准备工作2. 约定前后端交互接口lombok3. 服务器代码4. 调整前端页面代码 图书管理系统1. 准备工作2. 约定前后端交互接口3. 服务器代码4. 调整前端页面代码 留言板 需求: 界⾯如下图所⽰ 输⼊留⾔信息, 点击提交. 后端把数据存储起来.⻚⾯展⽰输⼊的表⽩墙的信…

用单链表实现集合

一、实验题目 &#xff08;1&#xff09;实验题目 用单链表实现集合 &#xff08;2&#xff09;问题描述 用有序单链表实现集合的判等、交、并和差等基本运算。 二、实验内容 &#xff08;1&#xff09;采用有序单链表存储集合&#xff1b; &#xff08;2&#xff09;实现交…

vue实现pdf下载——html2canvas

html2canvas 官方文档https://html2canvas.hertzen.com/getting-started html2canvas 的原理是通过遍历DOM树,将每一个HTML元素转化为Canvas对象,并叠加到一起形成一张完整的图片或者PDF文件。 1. 安装插件 npm install html2canvas jspdf --save 2.使用&#xff08;页面已经…

PVE安装虚拟主机

本文记录PVE安装其他虚拟主机的步骤&#xff0c;以安装win-server为例。裸机安装PVE则不是本文主题。 准备文件 获取Windows系统镜像 win server镜像可以从官网获取普通Windows镜像可从MSDN获取此外&#xff0c;安装Windows系统还需要从PVE下载特殊驱动 获取Windows必要驱动 …

网络安全形势与WAF技术分享

我一个朋友的网站&#xff0c;5月份时候被攻击了&#xff0c;然后他找我帮忙看看&#xff0c;我看他的网站、网上查资料&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;最近几年这网络安全形势真是不容乐观&#xff0c;在网上查了一下资料&#xff0c;1、中国信息通…

【网络安全的神秘世界】web应用程序安全与风险

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 第一章&#xff1a;web应用程序安全与风险 web攻击基础知识 1、什么是web应用攻击 web攻击的本质&#xff0c;就是通过http协议篡改应用程序&#xff0…

手撸 串口交互命令行 及 AT应用层协议解析框架

在嵌入式系统开发中&#xff0c;命令行接口&#xff08;CLI&#xff09;和AT命令解析是常见的需求。CLI提供了方便的调试接口&#xff0c;而AT命令则常用于模块间的通信控制。本文将介绍如何手动实现一个串口交互的命令行及AT应用层协议解析框架&#xff0c;适用于FreeRTOS系统…

机器学习多场景实战

机器学习已不再局限于理论探讨&#xff0c;而是广泛渗透到我们生活的方方面面&#xff0c;成为解决复杂问题、优化决策过程的强有力工具。从智能推荐系统个性化推送你可能喜爱的电影和商品&#xff0c;到金融风控领域精准识别欺诈交易&#xff1b;每一个应用场景都是机器学习技…

Spring Boot项目中,如何在yml配置文件中读取maven pom.xml文件中的properties标签下的属性值

一、前言 在最近的项目开发过程中&#xff0c;有一个需求&#xff0c;需要在Spring Boot项目的yml配置文件中读取到mave的 pom.xml文件中的properties标签下的属性值&#xff0c;这个要怎么实现呢&#xff1f; 二、技术实践 pom.xml文件中增加测试属性 <properties><…