双非普通一本大一学生学期末课设——运动会比赛计分系统
双非普通一本大一学生学期末课设——运动会比赛计分系统
并没有做文件系统…只能将就的看一下,也没有结构体
做的很粗糙,很烂,就是发出来纪念一下。
感觉有点像堆出来的一坨屎,但是好歹是自己儿子,为我的代码自豪
题目要求:初始化输入: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上学到了那么多东西,无以为报,只希望通过把平时做的一些微不足道的小东西发上来,也许哪怕就对只能一个人能有那么一点点的帮助,那我也很开心了
双非普通一本大一学生学期末课设——运动会比赛计分系统相关推荐
- 双非末流一本面霸,十面阿里,七面头条,4个月斩获六个Offer!
今天的主人公是一个双非末流一本,大三,CS专业,有百度实习经历 前言 先解释一下十面阿里,总共分为阿里云四面,蚂蚁两面,菜鸟四面:七面头条分为金融三面,抖音一面,效率工程三面:六个Offer分别是阿里 ...
- 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!
期末课设题目亮像,朝野震惊!学霸直呼刺激,学渣大喊:救救我!!! 江老师机灵,一把抓住了端午节的小尾巴,还送来了一个端午节安康大礼包,人送绰号-江湖十八铜人,就是下面的十八个题目! 有的同学还在看我的 ...
- 地大c语言课程设计题目,中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选.doc...
中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选 数据结构 上机实习报告 实验题目:全国铁路运输网最佳经由问题 班级: 姓名: 学号: 完成日期:2017年4月25日 目录 课程设 ...
- web音乐系统 javaweb音乐网站 低仿网易云音乐网站项目 期末课设 课设项目
在一筹莫展的搞期末课设时,看到了这个up主的项目,简直是神仙下凡!!! 视频链接:https://www.bilibili.com/video/BV1i4411K7g4/?spm_id_from=33 ...
- 来自一位双非本科大二学生的?自我救赎:堕落——蜕变
回望2022:获得?:失去:开心?:难过:伤心?:释怀 先提一句,总结2022,有后悔.不甘:有开心.感动:2022结束,更多的是释怀.对未来充满憧憬!下边的文章自己的感悟占多数,大家谨慎观看哈哈哈 ...
- 我的未来该何去何从?双非院校计科院学嵌入式的大四小菜鸡的自我反思...
这篇文章其实挺早之前就想写的,而且当时就想好了两种心态来写.第一种是小有成就,拿到心满意足的offer来分享一下往昔踩过的坑:第二种就是庸庸碌碌,任重道远.很不幸现在的是第二种心态! 近来看到曾经的同 ...
- C语言期末课设:从头开始设计一个简单的学生成绩管理系统
整个可以运行的源代码在文章最后!!! 首先我们先创建一个结构体,用来抽象一个学生的信息,包含该学生的学号,姓名,成绩(这里我们为了程序简单,只包含了一个成绩.也可以自行添加,其他成绩信息,以及性别,年 ...
- c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...
C语言课设报告(学生考试成绩查询程序)[荐].doc 学生考试成绩查询程序 学号:******** 姓名:***** 完成日期:****年月 通过键盘输入学生的考试信息,包括:学号.姓名.课程名称.学 ...
- 华北电力大学计算机控制课设,华北电力大学过程计算机控制课设ddc串级回路pid闭环...
1.课程设计报告课程设计报告名称:过程计算机控制题目: DDC 串级回路 PID 闭环控制系统的设计及实时仿真院系:控计班级: 学号: 学生姓名: 同组人: 指导教师:李明扬设计周数:一周一.设计目的 ...
最新文章
- 超市购物打印小票的简单程序 记录下来
- 使用vux+ajax,Vue 应用中结合vux使用微信 jssdk的方法
- .NET大型Web站点StackOverflow架构分析
- android开发rn插件,在Android原生应用中嵌入React Native
- 记录webscraper的使用过程
- 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.
- 中国茶叶行业投资策略分析预测及发展发展规划咨询报告2022年版
- mac 安装node_node 服务端部署
- GDI+有Bitmap类。
- 2款在线FM音乐聚合播放PHP源码 带搜索
- slf4j与logback的结合使用
- 解析超大文件_MySQL物理文件结构和SQL执行流程
- 性能测试--jmeter中的函数助手【15】
- 快速下载TUM数据集
- AMS分析 -- 启动过程
- 【SCM】基于报童模型的MAPE与Profit仿真
- 【洛谷4920】[WC2015] 未来程序(提答题)
- 法学专业能从事计算机工作吗,未来20年,这5个专业都是“香饽饽”,毕业生工作好找前途大好!...
- 阿里巴巴-新加坡南洋理工大学成立联合研究院 开展全方位AI合作
- 浏览器有哪些进程?浏览器进程,渲染进程,网络进程,渲染进程有哪些线程?