![]() |
#2
佐封2012-12-11 20:12
|

/*功能要求:
(1)显示一个数组操作主菜单,要求有如下操作选项:
1.能够通过菜单选项选择,输入1,建立一个班的学生计算机成绩一维数组,数组元素只含计算机成绩,
数组长度最长30个元素,数组元素个数通过键盘输入。
2.能够通过菜单选项选择,输入2,显示该班的全部学生计算机成绩。
3.能够通过菜单选项选择,输入3,给定一个成绩,查找该数组中有否该成绩,有,则显示成绩存在,并显
示该成绩的顺序号,没有则显示无此成绩。
4.能够通过菜单选项选择,输入4,键盘给定顺序号,判断该顺序号是否小于等于最大顺序号,不是,显示
显不存在;是,则显示该顺序号及该顺序号对应的成绩。
5.能够通过菜单选项选择,输入5,对数组中实际有的成绩进行从高到低排序并输出(注意:不得改变原成
绩数组中的成绩顺序,可把原数组复制到另一个数组中完成排序操作)。
6.能够通过菜单选项选择,输入6,对数组中实际有的成绩进行从低到高的排序并输出(注意:不得改变原
成绩数组中的成绩顺序,可把原数组复制到另一个数组中完成排序操作)。
7.能够通过菜单选项选择,输入7,输入顺序号,判断该顺序号是否小于等于或大于最大顺序号+1,不是,
显示顺序号超限不能插入,是,插入一个学生的计算机成绩,修改元素个数值,并按顺序号输
出全部的成绩。
8.能够通过菜单选项选择,输入8,输入顺序号,判断顺序号是否小于等于最大顺序号,不是,显示顺序号超
限,不能删除,是,删除该顺序号的计算机成绩,修改元素个数值,并按顺序号输出全部的成绩。
9.能够通过菜单选项选择,输入9,输入顺序号,判断顺序号是否小于等于·最大顺序号,不是,显示顺序号
超限,不能修改,是,修改该顺序号的计算机成绩并按顺序号输出全部的成绩。
10.能够通过菜单选项选择,输入10,退出该程序,返回操作系统。
(2)要求:
1.一个班的学生成绩个数,以30个为限,但实际个数需通过键盘输入(1-30人之间)。
2.应当记住实际元素个数的最大值(用全局变量n存放),除插入、删除操作外,成绩数组中的成绩
顺序不得更改。
2.输入的计算机成绩可通过键盘或文件输入(通过文件输入的,本次实训成绩按2次计算)。
3.菜单响应后用switch进行分支处理,每一种情形用一个case来处理。
default:用来处理意外输入的处理。
4.对功能菜单要求中的4、7、8、9项,应当在case子句中对输入的顺序号进行有效性判断,在范
围内,才能进行要求的处理过程。
5.无论进行什么操作,数组中的成绩原始顺序不得改变。
6.所有涉及的功能均采用自定义函数实现,函数中需要有判断操作是否成功的处理过程并有相应的
显示。
5.所有操作过程完毕后应有“按任意键继续...”的暂停,以方便观察操作效果。
6.要求菜单显示在正中。
7.在调试过程中,应分步进行,一个函数一个函数的调试,在调试的过程中,可屏蔽其它无关项,
全部功能项·完成后,再打开所有的功能。
*/
//程序大致结构如下,仅供参考,根据需要调整或修改。
#include <stdio.h>
#include <stdlib.h>
#define NUM 30
int student[NUM]; //数组个数最大30
int n=0; //记录元素的实际个数,也是最大的顺序号
int flag=0; //记录是否已建立过成绩数组,flag=0,为未建立过成绩数组;
//若已建立,则不能再次建立成绩数组,
//被调用函数集中声明; 如:int create();
//程序主入口
void main(void)
{
int menuchoice;
int cj,sxh; //输入成绩和顺序号变量;
system("color f0");
/*设置默认的控制台前景和背景颜色。
COLOR [attr],attr指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定。第一个为背景,第二个为前景。
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色
8=灰色 9=淡蓝色 a=淡绿色 b=淡浅绿色 c=淡红色 d=淡紫色 e=淡黄色 f=亮白色
*/
do{
printf("\n\n\n\n");
printf("\t\t\t\t数组基本功能菜单 \n");
printf("\t\t\t\t 作者:* * * \n");
printf("\t\t\t\t ============ \n");
printf("\t\t\t\t 1.建立成绩数组 \n");
printf("\t\t\t\t 2.显示成绩数组 \n");
printf("\t\t\t\t 3.按给定成绩查找 \n");
printf("\t\t\t\t 4.按顺序号查找 \n");
printf("\t\t\t\t 5.从高到低排序输出 \n");
printf("\t\t\t\t 6.从低到高排序输出 \n");
printf("\t\t\t\t 7.给定顺序号插入成绩\n");
printf("\t\t\t\t 8.给定顺序号删除成绩\n");
printf("\t\t\t\t 9.给定顺序号修改成绩\n");
printf("\t\t\t\t 10.结束程序 \n");
printf("\t\t\t\t ============ \n");
printf("\t\t\t\t请输入您的选择: \n");
scanf("%d",&menuchoice);
switch(menuchoice) //根据用户的选择进行相应的操作
{
case 1:
//若已经执行过该功能,flag=1,则不能继续执行该功能;
//若flag=0,输入建立成绩数组元素个数,调用显示成绩函数;
system("pause");
system("cls");
break;
/* case 2:
//若flag=0,显示数据库为空,否则,调用显示成绩函数;
system("pause");
system("cls");
break;
case 3:
//若flag=0,显示数据库为空,否则,输入要查询的成成绩,调用按成绩查询对应成绩函数;
system("pause");
system("cls");
break;
case 4:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用按顺序号查询对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 5:
//若flag=0,显示数据库为空,否则,调用从高到低排序函数;
system("pause");
system("cls");
break;
case 6:
//若flag=0,显示数据库为空,否则,调用从低到高排序函数;
system("pause");
system("cls");
break;
case 7:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用插入顺序号对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 8:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用删除顺序号对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 9:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用成绩修改函数修改成绩;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 10:
printf("\n欢迎使用本成绩管理系统,再见!\n");
system("pause");
system("cls");
exit(0);
default:
printf("\n对不起,您输入的功能编号有错!请重新输入!!!\n");
system("pause");
system("cls");
break;*/
}
}while(1);
}
//以下为各功能函数
int create()
{
//建立成绩数组;
}
int traverse()
{
//显示成绩数组;
}
int find1(int cj)
{
//按给定成绩查找,无此成绩则显示数据库中无此成绩,有则把顺序号输出,并输出对应成绩;
}
int find1(int sxh)
{
//按给定顺序号查找;
}
int Sort_display()
{
//按从高到低的顺序排序并输出;
}
Reverse_order_display()
{
//按从低到高的顺序排序并输出;
}
int insert(int sxh)
{
//给定顺序号插入成绩;
}
int remove(int sxh)
{
//给定顺序号删除成绩;
}
int replace(int sxh )
{
//按给定顺序号修改成绩
}
(1)显示一个数组操作主菜单,要求有如下操作选项:
1.能够通过菜单选项选择,输入1,建立一个班的学生计算机成绩一维数组,数组元素只含计算机成绩,
数组长度最长30个元素,数组元素个数通过键盘输入。
2.能够通过菜单选项选择,输入2,显示该班的全部学生计算机成绩。
3.能够通过菜单选项选择,输入3,给定一个成绩,查找该数组中有否该成绩,有,则显示成绩存在,并显
示该成绩的顺序号,没有则显示无此成绩。
4.能够通过菜单选项选择,输入4,键盘给定顺序号,判断该顺序号是否小于等于最大顺序号,不是,显示
显不存在;是,则显示该顺序号及该顺序号对应的成绩。
5.能够通过菜单选项选择,输入5,对数组中实际有的成绩进行从高到低排序并输出(注意:不得改变原成
绩数组中的成绩顺序,可把原数组复制到另一个数组中完成排序操作)。
6.能够通过菜单选项选择,输入6,对数组中实际有的成绩进行从低到高的排序并输出(注意:不得改变原
成绩数组中的成绩顺序,可把原数组复制到另一个数组中完成排序操作)。
7.能够通过菜单选项选择,输入7,输入顺序号,判断该顺序号是否小于等于或大于最大顺序号+1,不是,
显示顺序号超限不能插入,是,插入一个学生的计算机成绩,修改元素个数值,并按顺序号输
出全部的成绩。
8.能够通过菜单选项选择,输入8,输入顺序号,判断顺序号是否小于等于最大顺序号,不是,显示顺序号超
限,不能删除,是,删除该顺序号的计算机成绩,修改元素个数值,并按顺序号输出全部的成绩。
9.能够通过菜单选项选择,输入9,输入顺序号,判断顺序号是否小于等于·最大顺序号,不是,显示顺序号
超限,不能修改,是,修改该顺序号的计算机成绩并按顺序号输出全部的成绩。
10.能够通过菜单选项选择,输入10,退出该程序,返回操作系统。
(2)要求:
1.一个班的学生成绩个数,以30个为限,但实际个数需通过键盘输入(1-30人之间)。
2.应当记住实际元素个数的最大值(用全局变量n存放),除插入、删除操作外,成绩数组中的成绩
顺序不得更改。
2.输入的计算机成绩可通过键盘或文件输入(通过文件输入的,本次实训成绩按2次计算)。
3.菜单响应后用switch进行分支处理,每一种情形用一个case来处理。
default:用来处理意外输入的处理。
4.对功能菜单要求中的4、7、8、9项,应当在case子句中对输入的顺序号进行有效性判断,在范
围内,才能进行要求的处理过程。
5.无论进行什么操作,数组中的成绩原始顺序不得改变。
6.所有涉及的功能均采用自定义函数实现,函数中需要有判断操作是否成功的处理过程并有相应的
显示。
5.所有操作过程完毕后应有“按任意键继续...”的暂停,以方便观察操作效果。
6.要求菜单显示在正中。
7.在调试过程中,应分步进行,一个函数一个函数的调试,在调试的过程中,可屏蔽其它无关项,
全部功能项·完成后,再打开所有的功能。
*/
//程序大致结构如下,仅供参考,根据需要调整或修改。
#include <stdio.h>
#include <stdlib.h>
#define NUM 30
int student[NUM]; //数组个数最大30
int n=0; //记录元素的实际个数,也是最大的顺序号
int flag=0; //记录是否已建立过成绩数组,flag=0,为未建立过成绩数组;
//若已建立,则不能再次建立成绩数组,
//被调用函数集中声明; 如:int create();
//程序主入口
void main(void)
{
int menuchoice;
int cj,sxh; //输入成绩和顺序号变量;
system("color f0");
/*设置默认的控制台前景和背景颜色。
COLOR [attr],attr指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定。第一个为背景,第二个为前景。
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色
8=灰色 9=淡蓝色 a=淡绿色 b=淡浅绿色 c=淡红色 d=淡紫色 e=淡黄色 f=亮白色
*/
do{
printf("\n\n\n\n");
printf("\t\t\t\t数组基本功能菜单 \n");
printf("\t\t\t\t 作者:* * * \n");
printf("\t\t\t\t ============ \n");
printf("\t\t\t\t 1.建立成绩数组 \n");
printf("\t\t\t\t 2.显示成绩数组 \n");
printf("\t\t\t\t 3.按给定成绩查找 \n");
printf("\t\t\t\t 4.按顺序号查找 \n");
printf("\t\t\t\t 5.从高到低排序输出 \n");
printf("\t\t\t\t 6.从低到高排序输出 \n");
printf("\t\t\t\t 7.给定顺序号插入成绩\n");
printf("\t\t\t\t 8.给定顺序号删除成绩\n");
printf("\t\t\t\t 9.给定顺序号修改成绩\n");
printf("\t\t\t\t 10.结束程序 \n");
printf("\t\t\t\t ============ \n");
printf("\t\t\t\t请输入您的选择: \n");
scanf("%d",&menuchoice);
switch(menuchoice) //根据用户的选择进行相应的操作
{
case 1:
//若已经执行过该功能,flag=1,则不能继续执行该功能;
//若flag=0,输入建立成绩数组元素个数,调用显示成绩函数;
system("pause");
system("cls");
break;
/* case 2:
//若flag=0,显示数据库为空,否则,调用显示成绩函数;
system("pause");
system("cls");
break;
case 3:
//若flag=0,显示数据库为空,否则,输入要查询的成成绩,调用按成绩查询对应成绩函数;
system("pause");
system("cls");
break;
case 4:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用按顺序号查询对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 5:
//若flag=0,显示数据库为空,否则,调用从高到低排序函数;
system("pause");
system("cls");
break;
case 6:
//若flag=0,显示数据库为空,否则,调用从低到高排序函数;
system("pause");
system("cls");
break;
case 7:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用插入顺序号对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 8:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用删除顺序号对应成绩函数;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 9:
//若flag=0,显示数据库为空,否则,判断顺序号是否有效,有效,则调用成绩修改函数修改成绩;
//顺序号无效,则显示顺序号超出范围,不能操作,
system("pause");
system("cls");
break;
case 10:
printf("\n欢迎使用本成绩管理系统,再见!\n");
system("pause");
system("cls");
exit(0);
default:
printf("\n对不起,您输入的功能编号有错!请重新输入!!!\n");
system("pause");
system("cls");
break;*/
}
}while(1);
}
//以下为各功能函数
int create()
{
//建立成绩数组;
}
int traverse()
{
//显示成绩数组;
}
int find1(int cj)
{
//按给定成绩查找,无此成绩则显示数据库中无此成绩,有则把顺序号输出,并输出对应成绩;
}
int find1(int sxh)
{
//按给定顺序号查找;
}
int Sort_display()
{
//按从高到低的顺序排序并输出;
}
Reverse_order_display()
{
//按从低到高的顺序排序并输出;
}
int insert(int sxh)
{
//给定顺序号插入成绩;
}
int remove(int sxh)
{
//给定顺序号删除成绩;
}
int replace(int sxh )
{
//按给定顺序号修改成绩
}