问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言课程设计作业

发布网友 发布时间:2022-08-29 01:02

我来回答

1个回答

热心网友 时间:2024-12-15 04:15

/*******************************************************************
* 名 称:学生成绩管理系统1.0 *
* 创建日期:2007-4-3 *
* 最后修改:2007-4-18 *
* 版 权:东软SE教研室C课程小组 *
* 版 本 号:1.0 *
*******************************************************************/

#include "stdio.h"
#include <stdlib.h>
#include <conio.h>
#include <string.h>

#define N 20 //数组的长度

/*******************************************************
功能:显示菜单
参数:无
返回值:无
*******************************************************/
void displayMenu()
{

printf("\n++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("+ 学生成绩管理系统 +\n");
printf("+ +\n");
printf("+ 1. 录入 +\n");
printf("+ 2. 输出 +\n");
printf("+ 3. 查询 +\n");
printf("+ 4. 排序 +\n");
printf("+ 5. 结束 +\n");
printf("+ +\n");
printf("++++++++++++++++++++++++++++++++++++++++++++++++++++\n");

}

/*******************************************************
功能:登陆函数,验证口令
参数:
参数1:n
类型:char []
说明:用户输入口令
返回值:1或0
类型:int
说明:1表示通过验证;0表示没有通过
*******************************************************/
int login(char password[])
{
static char key[10]="123";

if(strcmp(password,key)==0)
return 1;
else
return 0;
}

/*******************************************************
功能:输入学生成绩到数组中
参数:
参数1:score[]
类型:int []
说明:学生成绩数组
参数2:length
类型:int
说明:要输入的学生成绩数组的长度
返回值:i
类型:int
说明:实际成绩数组的有效值个数
*******************************************************/
int inputScore(int score[],int length)
{
int i=0;
int tmp;

printf("请输入学生的成绩(以-1结束输入):\n");
do{
printf("第%d个学生:",i+1);
scanf("%d",&tmp);
if(tmp>=0&&tmp<=100)
{
score[i]=tmp;
i++;
}
}while(tmp!=-1 && i<length);

return i;
}
/*******************************************************
功能:输出数组中的学生成绩
参数:
参数1:score[]
类型:int []
说明:学生成绩数组
参数2:length
类型:int
说明:要输出的成绩数组的长度
返回值:无
类型:void
说明:
*******************************************************/
void outputScore(int score[],int length)
{
int i=0;

printf("学生成绩如下:\n");
for(i=0;i<length;i++)
printf("%d %-3d\n",i+1,score[i]);
printf("\n");
}
/*******************************************************
功能:查找某个学生成绩是否在数组中,如果找到,则输出下标,
否则,显示没有找到。
参数:
参数1:score[]
类型:int []
说明:学生成绩数组
参数2:length
类型:int
说明:要输入的学生成绩数组的长度
参数2:xScore
类型:int
说明:要查找的学生成绩
返回值:无
类型:void
说明:
*******************************************************/
void queryScore(int score[],int length,int xScore)
{
int i=0;

for(i=0;i<length;i++)
{
if(xScore==score[i])
{
printf("它在数组中的下标是 :%d\n", i);
break;
}
}
if(i>=length)
printf("没有找到!\n");
}
/*******************************************************
功能:排序学生的成绩,按照从大到小排序。
参数:
参数1:score[]
类型:int []
说明:学生成绩数组
参数2:length
类型:int
说明:要输入的学生成绩数组的长度
返回值:无
类型:void
说明:
*******************************************************/
void sortScore(int score[],int length)
{
int i=0,j=0,k=0,t;

printf("成绩排序如下:\n");
for(i=0;i<length-1;i++)
{
k=i;
for(j=i+1;j<length;j++)
if(score[j]>score[k])
k=j;
t=score[i];
score[i]=score[k];
score[k]=t;
}
for(i=0;i<length;i++)
printf("%4d",score[i]);
printf("\n");

}

/*******************************************************
功能:主函数
参数:无
返回值:无
*******************************************************/
main()
{
int choice = 0; /*代表用户选择的操作数字 */
int s=0,datalen=0,x;
int score[N]={-1};/*初始化数组的元素为-1*/
char password[10];/*用户输入的口令*/

/*====验证用户的口令,直到正确为止====*/
do{
printf("请输入口令:");
scanf("%s",password);

s=login(password);
}while(s==0);

/*====根据用户的选择,执行相应的操作.====*/
while(1)
{

displayMenu();

printf("\n 请选择您的操作(1,2,3,4,5):\n");
scanf("%d",&choice);

//system("cls");

switch(choice)
{
case 1:
datalen=inputScore(score,N);
break;
case 2:
outputScore(score,datalen);
break;
case 3:
printf("\n 请输入要查找的成绩:");
scanf("%d",&x);
queryScore(score,datalen,x);
break;
case 4:
sortScore(score,datalen);
break;
case 5:
exit(0);
break;

}
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
白色T 恤如何搭配才能穿出优雅的韵味? 白色T 恤衫怎样搭配才能显得时髦又好看? 白色紧身正肩T 恤想要穿出休闲感,该如何搭配? 手机怎么连接笔记本电脑的wifi上网 电热水器为什么用着用着就没压力了 用什么拖地最干净又耐脏 爱奇艺会员的等级是怎么划分的? 爱奇艺星钻会员怎么开通 怎样才是正确的接吻呢 网页上鼠标点住右键拖动后出的蓝色线条是什么?干什么用的?为什么一松开... 液晶电视逻辑版MT8227AAKU芯片为什么烫手是不是坏了 mt8227aaku按键输入是哪两个脚? 最近看到微星MSI出笔记本电脑了,想知道这本子怎么样? 演张起灵手指头怎么办 在很多人看完了电影红海行动之后都心潮澎湃了如何改病句 我在电影里经常看见道士使用法术的时候把手指咬出血,他是怎么做到的_百... 电视剧中,角色断臂一般都是怎么处理的? 有什么方法可以使一个管理多个公众号? 欧洲第二大港口是什么 所爱隔山海山海不可平出于哪里? 所爱隔山海山海皆可平出自哪里 怎样注册俩个 如何申请两个 教你注册第二个 一个手机号怎么注册两个? 怎样用一个手机号注册两个? 怎样注册多个 怎么申请第二个 与的繁体字 与的含义 与繁体字偏旁部首 请大神帮忙,写一下C语言课程作业。 通过定义函数实现冒泡排序过程,拜谢... C语言作业,定义结构体Course(课程),包含课程名、学分、成绩三个成员... c语言作业! m个学生分别学n门课,计算每名学生n门课平均分,并输出第i... 数学题24的3分之2是多少怎么解题? 一个数是24,它的三分之二是多少? 急急急急!!满意答案!! 24的三分之二等于20的几分之几 243分之2等于多少 24点的三分之二是多少 24米的三分之二是多少千克的四分之三是27千克 甲数是24的三分之二,乙数的三分之二是24,那么甲数是乙数的几分之几? 24的3分之2是() 24*3分之2 表示什么意思 24除以3分之2 表示什么意思? win8的任务栏一个M是怎么回事 完美国际把鼠标放任务后面出现的M是什么意思? 为什么我的HTC G7的手机QQ不能截图? 肠胃不好的人怎样去除口臭? 孕期梦见大侄子说自己怀的是男孩? 西红柿可以做哪些菜 昭通市永善县马楠苗族彝族乡 云南永善县有哪些景点