弄了段程序,不知怎么写,求大神帮忙!急急急!!!
程序代码:
/*功能要求: (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 ) { //按给定顺序号修改成绩 }