双非普通一本大一学生学期末课设——运动会比赛计分系统

并没有做文件系统…只能将就的看一下,也没有结构体

做的很粗糙,很烂,就是发出来纪念一下。
感觉有点像堆出来的一坨屎,但是好歹是自己儿子,为我的代码自豪

题目要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数
各项目名次取法有如下几种:
取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;
功能要求:
(1)系统以菜单方式工作
(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩。
(4)查看参赛学校信息和比赛项目信息等。

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<stdlib.h>int MainMenu();             //主菜单显示与选择函数
int sca();                  //输入函数 返回输入的值int N, M, W, choice;int YoN=0;char name[100][20];     //学校名称int i=1,j,k,q;           //一些常用的无关的变量char* p;                //定义关于name[100][20]的指针变量int *pp,*on,*tw,*th,*fo,*fi;        //定义获奖数量指针变量,对应12345名int points[100]={0};           //纪录积分int one[100]={0};                //第一名获奖数量int two[100]={0};             //第二名获奖数量int three[100]={0};               //第三名获奖数量int four[100]={0};                //第四名获奖数量int five[100]={0};                //第五名获奖数量char projectM[100][20]={0};       //男子项目名称 char projectW[100][20]={0};       //女子项目名称 int projectM_school[100][5]={0};      //男子项目获奖学校记录 int projectW_school[100][5]={0};      //女子项目名称学校记录 char *pM;                      //男子项目名称指针char *pW;                     //女子项目名称指针int modeM[100];                   //男子项目计分模式纪录  0为取前三名,1为取前5名int modeW[100];                   //女子项目计分模式纪录int main() {                //***********主函数************system("mode con cols=150 lines=50");   //调整控制台的长款 宽度150 高度30p = name[0];pp=points,on=one,tw=two,th=three,fo=four,fi=five;   //定义指针变量方便修改数组内的值pM=projectM[0];pW=projectW[0];printf("欢迎进入运动会比赛计分系统\n");       //欢迎界面标题system("pause");      //按任意键继续do{system("cls");     //清屏printf("请先分别输入参赛学校总数,男子竞赛项目数,女子竞赛项目数:");N = sca();          //输入参赛学校总数M = sca();           //输入男子竞赛项目数W = sca();          //输入女子竞赛项目数printf("输入后便不可更改,确定要继续吗?\n按1选择继续,按其他数字键选择重新输入:");scanf("%d",&YoN);}while(YoN!=1);choice = MainMenu();  //主菜单显示与选择函数while (choice <=3||choice>=1) {             //根据在主菜单里选择的数字进入相应的选项switch (choice) {//↓↓↓学校名称输入↓↓↓case 1: {system("cls");                   //清屏printf("请依次输入学校名称\n");for (i = 0; i < N; i++) {     //依次输入学校名称printf("%d:", i + 1);      //学校名称前的序号gets(name[i]);                //通过循环依次输入学校的名字fflush(stdin);               //清除缓冲区剩余的内容,防止多输入}break;}//↑↑↑学校名称输入↑↑↑//↓↓↓男子项目获奖输入↓↓↓case 2: {system("cls");for(i=0;i<M;i++){if(i==0)printf("请依次输入男子项目奖项获得的学校\n");            //只在第一行输出这段话printf("男子第%d个项目:\n",i+1);        //项目显示编号比实际编号大1printf("请输入排名方式(1.三名制2.五名制):\n");int mode=1;          //定义控制三名制or五名制的变量scanf("%d",&mode);if(mode>2||mode<1){          //防止输入错误    printf("输入有误,请重新输入:\n");scanf("%d",&mode);}printf("请输入男子第%d个项目的名称:",i+1);fflush(stdin);               //清除缓冲区剩余的内容,防止多输入gets(projectM[i]);         //输入男子第i+1个项目的名称fflush(stdin);switch (mode) {case 1: {     //取前三名次制modeM[i]=0;for(j=0;j<3;j++){for (k = 0; k < N; k++) {          //依次显示学校名称printf("%-2d:",k+1);printf("%-20s", p + k * 20);    //+字符长度20即显示下一个名称if((k+1)%5==0)                 //每行5个学校名字printf("\n");if((k+1)==N&&(k+1)%5==0)     //输出到最后一个学校换行,除了5的倍数printf("\n");}printf("请选择获得第%d名的学校是:",j+1);scanf("%d",&q); //输入提示学校名称的头部编号int mlgb;mlgb=q-1;      //mlgb为实际的学校编号while(q>N||q<1){        //输错纠错printf("这也能输错?请输入正确的数");scanf("%d",&q);}if(j==0){                //第一名*(pp+mlgb)+=5;      //修改数组中的值-累加积分*(on+mlgb)+=1;     //累加获奖数量projectM_school[i][j]=mlgb;        //纪录获奖学校,重申:i为男子项目号,j为男子项目获奖名次,mlgb为选中的实际学校编号}else if(j==1){         //第二名*(pp+mlgb)+=3;*(tw+mlgb)+=1;projectM_school[i][j]=mlgb; }else{                  //第三名*(pp+mlgb)+=2;*(th+mlgb)+=1;projectM_school[i][j]=mlgb; }}break;}case 2:{               //取前五名次制  和取前三名制的区别只有多输入2名modeM[i]=1;for(j=0;j<5;j++){for (k = 0; k < N; k++) {printf("%-2d:",k+1);printf("%-20s", p + k * 20);if((k+1)%4==0)printf("\n");if((k+1)==N)printf("\n");    }printf("请选择获得第%d名的学校是:",j+1);scanf("%d",&q);int mlgb;mlgb=q-1;while(q>N||q<1){printf("这也能输错?请输入正确的数");scanf("%d",&q);}if(j==0){                //可优化  但是这样简单直白*(pp+mlgb)+=7;*(on+mlgb)+=1;projectM_school[i][j]=mlgb;}else if(j==1){*(pp+mlgb)+=5;*(tw+mlgb)+=1;projectM_school[i][j]=mlgb;}else if(j==2){*(pp+mlgb)+=3;*(th+mlgb)+=1;projectM_school[i][j]=mlgb;}else if(j==3){*(pp+mlgb)+=2;*(fo+mlgb)+=1;projectM_school[i][j]=mlgb;}else if(j==4){*(pp+mlgb)+=1;*(fi+mlgb)+=1;projectM_school[i][j]=mlgb;}}}break;}}system("cls");break;}//↑↑↑男子项目获奖输入↑↑↑//↓↓↓女子项目获奖输入↓↓↓case 3: {            //和男子项目获奖输入的区别只有把所有M改成W----本项所有注释参照男子项目获奖输入system("cls");for(i=0;i<W;i++){if(i==0)printf("请依次输入女子项目奖项获得的学校\n");printf("女子第%d个项目:\n",i+1);printf("请输入排名方式(1.三名制2.五名制):");int mode=1;scanf("%d",&mode);if(mode>2||mode<1){printf("输入有误,请重新输入:\n");scanf("%d",&mode);}printf("请输入女子第%d个项目的名称:",i+1);fflush(stdin);gets(projectW[i]);fflush(stdin);switch (mode) {case 1: {          //取前三名次制modeW[i]=0;for(j=0;j<3;j++){         for (k = 0; k < N; k++) {     printf("%-2d:",k+1);printf("%-20s", p + k * 20);if((k+1)%4==0)printf("\n");if((k+1)==N)printf("\n");}printf("请选择获得第%d名的学校是:",j+1);scanf("%d",&q);int mlgb;mlgb=q-1;                while(q>N||q<1){printf("这也能输错?请输入正确的数");scanf("%d",&q);}if(j==0){                *(pp+mlgb)+=5;       *(on+mlgb)+=1;projectW_school[i][j]=mlgb;}else if(j==1){*(pp+mlgb)+=3;*(tw+mlgb)+=1;projectW_school[i][j]=mlgb;}else{*(pp+mlgb)+=2;*(th+mlgb)+=1;projectW_school[i][j]=mlgb;}}break;}case 2:{           //取前五名次制modeW[i]=1;for(j=0;j<5;j++){         for (k = 0; k < N; k++) {printf("%-2d:",k+1);printf("%-20s", p + k * 20);if((k+1)%4==0)printf("\n");if((k+1)==N)printf("\n");}printf("请选择获得第%d名的学校是:",j+1);scanf("%d",&q);int mlgb;mlgb=q-1;while(q>N||q<1){printf("这也能输错?请输入正确的数");scanf("%d",&q);}if(j==0){             *(pp+mlgb)+=7;*(on+mlgb)+=1;projectW_school[i][j]=mlgb;}else if(j==1){*(pp+mlgb)+=5;*(tw+mlgb)+=1;projectW_school[i][j]=mlgb;}else if(j==2){*(pp+mlgb)+=3;*(th+mlgb)+=1;projectW_school[i][j]=mlgb;}else if(j==3){*(pp+mlgb)+=2;*(fo+mlgb)+=1;projectW_school[i][j]=mlgb;}else if(j==4){*(pp+mlgb)+=1;*(fi+mlgb)+=1;projectW_school[i][j]=mlgb;}}}break;}}system("cls");break;}//↑↑↑女子项目获奖输入↑↑↑//↓↓↓学校积分榜↓↓↓case 4: {for (i = 0; i < N; i++) {   //依次显示学校名称if(i==0)printf("学校名称            积分  第一名  第二名  第三名  第三名  第五名\n");printf("%d:",i+1);     //字符串的长度为10printf("%-20s", p + i * 20);          //学校名称  字符长度20printf("%-6d",points[i]);               //积分printf("%-8d",one[i]);                    //第一名数量printf("%-8d",two[i]);                 //第二名数量printf("%-8d",three[i]);               //同上...printf("%-8d",four[i]);printf("%-8d",five[i]);printf("\n");}system("pause");break;}//↑↑↑学校积分榜↑↑↑//↓↓↓各学校获奖项目及获奖名次↓↓↓case 5: {        //查看各学校获奖项目及获奖名次system("cls");printf("请输入要查看学校的序号");for (k = 0; k < N; k++) {         //依次显示学校名称printf("%-2d:",k+1);printf("%-20s", p + k * 20);    //+字符长度20即显示下一个名称if((k+1)%5==0)                 //每行5个学校名字printf("\n");if((k+1)==N&&(k+1)%5==0)     //输出到最后一个学校换行,除了5的倍数printf("\n");}scanf("%d",&q);int mlgb;mlgb=q-1;printf("男子项目:\n");for(i=0;i<M;i++){for(j=0;j<5;j++){if(projectM_school[i][j]==mlgb){      //i为项目号,j为名次编号,此为男子项目printf("%-20s",projectM[i]);printf("第%d名",j+1);}}}printf("女子项目:\n");for(i=0;i<W;i++){for(j=0;j<5;j++){if(projectW_school[i][j]==mlgb){       //i为项目号,j为名次编号,此为女子项目printf("%-20s",projectW[i]);printf("第%d名\n",j+1);}}}system("pause");break;}//↑↑↑各学校获奖项目及获奖名次↑↑↑//↓↓↓各项目获奖学校名次↓↓↓case 6: {     //查看各项目获奖学校名次--输入男子/女子项目编号来查看system("cls");printf("要查看男子或女子项目-男子请输入1,女子请输入2\n");scanf("%d",&q);            if(q>2||q<1){         //错误纠正printf("请输入正确的数:");scanf("%d",&q);}switch (q) {case 1:{for(q=0;q<M;q++){     //反正switch中的q用完就扔掉,懒得想了,重复利用,环保printf("%d:",q+1);printf("%-20s", pM + q * 20);       //输出男子项目的名称}printf("请输入要查看的项目编号\n");scanf("%d",&i);if(i>M||i<1){      //此处的i为项目真正编号+1printf("请输入正确的数:");scanf("%d",&i);}int mlgb;     //此变量为懒得想专属工具变量mlgb=i-1;//*********输出部分*********system("cls");if(modeM[mlgb]==0){printf("%s获奖情况\n", pM + mlgb * 20);printf("第一名:%s\n",name[projectM_school[mlgb][0]]);printf("第二名:%s\n",name[projectM_school[mlgb][1]]);printf("第三名:%s\n",name[projectM_school[mlgb][2]]);}else{printf("%s获奖情况\n", pM + mlgb * 20);printf("第一名:%s\n",name[projectM_school[mlgb][0]]);printf("第二名:%s\n",name[projectM_school[mlgb][1]]);printf("第三名:%s\n",name[projectM_school[mlgb][2]]);printf("第四名:%s\n",name[projectM_school[mlgb][3]]);printf("第五名:%s\n",name[projectM_school[mlgb][4]]);}system("pause");//*********输出部分*********break;}case 2:{      //和男子的区别只有把M改成Wfor(q=0;q<W;q++){      //输出女子项目的标号及名称printf("%d:",q+1);printf("%-20s", pW + q * 20);     }printf("请输入要查看的项目编号\n");scanf("%d",&i);if(i>W||i<1){printf("请输入正确的数:");scanf("%d",&i);}int mlgb;mlgb=i-1;system("cls");if(modeW[mlgb]==0){printf("%s获奖情况\n", pW + mlgb * 20);printf("第一名:%s\n",name[projectW_school[mlgb][0]]);printf("第二名:%s\n",name[projectW_school[mlgb][1]]);printf("第三名:%s\n",name[projectW_school[mlgb][2]]);}else{printf("%s获奖情况\n", pW + mlgb * 20);printf("第一名:%s\n",name[projectW_school[mlgb][0]]);printf("第二名:%s\n",name[projectW_school[mlgb][1]]);printf("第三名:%s\n",name[projectW_school[mlgb][2]]);printf("第四名:%s\n",name[projectW_school[mlgb][3]]);printf("第五名:%s\n",name[projectW_school[mlgb][4]]);}system("pause");break;}}break;}//↑↑↑各项目获奖学校名次↑↑↑case 7: {     //退出程序return 0; }}choice = MainMenu();}return 0;
}int MainMenu() {       //主菜单显示与选择int choice;system("cls");printf("                   运动会比赛计分系统\n");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("************************************************************\n");printf("选择相应数字进入>>>>");scanf("%d", &choice);        //输入选择的标号fflush(stdin);while (choice < 1 || choice > 7) {printf("错误,请输入正确的数\n");scanf("%d", &choice);fflush(stdin);}return choice;     //返回选择值后输入switch函数进去下一菜单
}int sca() {                //输入数的函数(其实并没有省掉很多工作量或者空间)int n;scanf("%d", &n);if(n<0){printf("输入有误,请重新输入");scanf("%d", &n);}return n;
}//先保留备用,看的清楚,一目了然//printf("%d\n",projectM_school[0][0]);//printf("%d\n",projectM_school[0][1]);//printf("%d\n",projectM_school[0][2]);//printf("%s\n",name[projectM_school[i][0]]);          //[projectM_school[i][j]]为纪录的项目排名的学校号//printf("%s\n",name[projectM_school[i][1]]);//printf("%s\n",name[projectM_school[i][2]]);//printf("%-20s", pM + i * 20);       //控制i来进一步控制projectM[100][20](男子项目名称)的输出//scanf("%d",&i);//printf("%-20s", pM + i * 20);

主要的功能是1.学校名称的输入2.按学校的比赛成绩录入3.比赛成绩的查看(包含按项目和按学校查看)

如果哪位大佬或者同样是要做这种课设同学看到了这篇文章,我会十分感动的。
哈哈哈哈哈哈感觉我这个代码也许蛮好懂的?
希望能为大家做出一点微薄的贡献,在CSDN上学到了那么多东西,无以为报,只希望通过把平时做的一些微不足道的小东西发上来,也许哪怕就对只能一个人能有那么一点点的帮助,那我也很开心了

双非普通一本大一学生学期末课设——运动会比赛计分系统相关推荐

  1. 双非末流一本面霸,十面阿里,七面头条,4个月斩获六个Offer!

    今天的主人公是一个双非末流一本,大三,CS专业,有百度实习经历 前言 先解释一下十面阿里,总共分为阿里云四面,蚂蚁两面,菜鸟四面:七面头条分为金融三面,抖音一面,效率工程三面:六个Offer分别是阿里 ...

  2. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!

    期末课设题目亮像,朝野震惊!学霸直呼刺激,学渣大喊:救救我!!! 江老师机灵,一把抓住了端午节的小尾巴,还送来了一个端午节安康大礼包,人送绰号-江湖十八铜人,就是下面的十八个题目! 有的同学还在看我的 ...

  3. 地大c语言课程设计题目,中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选.doc...

    中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选 数据结构 上机实习报告 实验题目:全国铁路运输网最佳经由问题 班级: 姓名: 学号: 完成日期:2017年4月25日 目录 课程设 ...

  4. web音乐系统 javaweb音乐网站 低仿网易云音乐网站项目 期末课设 课设项目

    在一筹莫展的搞期末课设时,看到了这个up主的项目,简直是神仙下凡!!! 视频链接:https://www.bilibili.com/video/BV1i4411K7g4/?spm_id_from=33 ...

  5. 来自一位双非本科大二学生的?自我救赎:堕落——蜕变

    回望2022:获得?:失去:开心?:难过:伤心?:释怀  先提一句,总结2022,有后悔.不甘:有开心.感动:2022结束,更多的是释怀.对未来充满憧憬!下边的文章自己的感悟占多数,大家谨慎观看哈哈哈 ...

  6. 我的未来该何去何从?双非院校计科院学嵌入式的大四小菜鸡的自我反思...

    这篇文章其实挺早之前就想写的,而且当时就想好了两种心态来写.第一种是小有成就,拿到心满意足的offer来分享一下往昔踩过的坑:第二种就是庸庸碌碌,任重道远.很不幸现在的是第二种心态! 近来看到曾经的同 ...

  7. C语言期末课设:从头开始设计一个简单的学生成绩管理系统

    整个可以运行的源代码在文章最后!!! 首先我们先创建一个结构体,用来抽象一个学生的信息,包含该学生的学号,姓名,成绩(这里我们为了程序简单,只包含了一个成绩.也可以自行添加,其他成绩信息,以及性别,年 ...

  8. c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...

    C语言课设报告(学生考试成绩查询程序)[荐].doc 学生考试成绩查询程序 学号:******** 姓名:***** 完成日期:****年月 通过键盘输入学生的考试信息,包括:学号.姓名.课程名称.学 ...

  9. 华北电力大学计算机控制课设,华北电力大学过程计算机控制课设ddc串级回路pid闭环...

    1.课程设计报告课程设计报告名称:过程计算机控制题目: DDC 串级回路 PID 闭环控制系统的设计及实时仿真院系:控计班级: 学号: 学生姓名: 同组人: 指导教师:李明扬设计周数:一周一.设计目的 ...

最新文章

  1. 超市购物打印小票的简单程序 记录下来
  2. 使用vux+ajax,Vue 应用中结合vux使用微信 jssdk的方法
  3. .NET大型Web站点StackOverflow架构分析
  4. android开发rn插件,在Android原生应用中嵌入React Native
  5. 记录webscraper的使用过程
  6. 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.
  7. 中国茶叶行业投资策略分析预测及发展发展规划咨询报告2022年版
  8. mac 安装node_node 服务端部署
  9. GDI+有Bitmap类。
  10. 2款在线FM音乐聚合播放PHP源码 带搜索
  11. slf4j与logback的结合使用
  12. 解析超大文件_MySQL物理文件结构和SQL执行流程
  13. 性能测试--jmeter中的函数助手【15】
  14. 快速下载TUM数据集
  15. AMS分析 -- 启动过程
  16. 【SCM】基于报童模型的MAPE与Profit仿真
  17. 【洛谷4920】[WC2015] 未来程序(提答题)
  18. 法学专业能从事计算机工作吗,未来20年,这5个专业都是“香饽饽”,毕业生工作好找前途大好!...
  19. 阿里巴巴-新加坡南洋理工大学成立联合研究院 开展全方位AI合作
  20. 浏览器有哪些进程?浏览器进程,渲染进程,网络进程,渲染进程有哪些线程?

热门文章

  1. Android 中的卡顿丢帧原因概述 - 低内存篇
  2. 软考-高项-论文-信息系统项目的人力资源管理
  3. 非对称加密(RSA)详解
  4. 十大超极本:联想U系列上榜
  5. 我的求带之路(已成功
  6. python抓取视频中的人物动作,并生成3D的bvh
  7. 使用FreeMarker导出固定格式word文档
  8. 瑞尔IPO:一桩资本逼宫的上市计划
  9. Sorry, you have been blocked !vultr 又被 openai 屏蔽了,只能换个 vps 了
  10. 蓝桥杯C/C++程序设计 往届真题汇总(基础篇)