下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1:“班级学生成绩管理系统”总体规则设计项目的整体框架设计应当充分的进行调查研究,充分与用户进行沟通,充分了解用户的需耍,在此基础上给出项目的总体规则设计方案。这里给出了“班级学生成绩管理系统”工作模块图,其目的是给ー个实例,同学们可模仿画出学校的学生成绩管理工作模块图。班级学生成绩管理系统任务2:“班级学生成绩管理系统”中相关数据设计“班级学生成绩管理系统”中的数据分常量与变量、简单类型数据和复杂类型数据。ー、常量在‘‘班级学生成绩管理系统”中我们假定本系统能处理一个班40个学生的数据。用符号常量来定义ー个班的学生人数。定义方法:^defineSTUNUM40ー变量“班级学生成绩管理系统”中的学生信息主要包括:学号、性别、年龄、三门功课成绩、总成绩和平均成绩,再加上一些与计算全班成绩有关的最高成绩、最低成绩等。这些变量是简单类型变量,还有一些复杂类型变量,如数组、结构体、共用体、指针类型等变量。.简单类型intstunum;〃整数类型的学号charstusex;〃字符类型的性别intstuage;〃整数类型的年龄floatscorel;〃单精度类型的成绩1floatscore2;〃单精度类型的成绩2floatscore3;〃单精度类型的成绩3floatavescore;〃单精度类型的平均成绩floatmaxscore;〃单精度类型的最高分floatminscore;〃单精度类型的最低分.复杂类型charnamellO];〃数组类型的姓名structstudentintstunum;〃学号charname[10];〃姓名charstusex;〃性别intstuage;〃年龄floatscore[3];〃三门成绩}stu[STUNUM];〃含有40个学生的结构体数组另外,在编程实践中还会遇到ー些这里不能一一列举出来的变量和指针变量,我们将在后续的学习逐渐认识与掌握。任务3:用输入输出函数初步设计项目封面与菜单本任务采用C语言的标准输入输出函数分别实现“班级学生成绩管理系统”的封面和主、子菜单,这些内容暂时处理成单个程序的形式,后面将介绍如何将这些封面与主、子菜单组合起来。在下述程序中使用了system函数,这个函数是ー个库函数,它能发出ー个MS-DOS命令,括号中是cis是MS-DOS的淸屏命令,通过system函数执行了一・条DOS命令。这里给出了封面、主菜单、编辑子菜单、显示子菜单、计算子菜单、排序子菜单六个程序,这六个程序是各自独立的程序。.项目封面源程序^include<stdio.h>ttinclude<stdlib.h>uoid 项目封面<systen("cls")"/执行DOS清屏命令函数printf("\n\n\n");prints。,、いt班级学生成绩管理系统、n\nつ;printf("\t\t 版本号:1.0\n\n");printf("\n\n\n\n");printf("\t\t 2GG8年5月、n\n”);printf("\t\t程序设计兴趣小组'nつ;.项目主菜单源程序Itinclude<stdio.h>•include<stdlib.h>void•include<stdlib.h>voidmain。〃项目主菜单<intn;systen("cls");printf("\n\n\n");printFCI««««・学生成绩管理系统**»**!\n")printf("I |\n")1请选择菜单序号(旷6)|\n")printf("printf("1 !\n")1统文文数数计说系开篇示^33k编显数程退---------------------------1234560|\n")printfCprintF("1|\n")printFCprintf("11|\n")|\n")printf("1|\n-)printf("1|\n")printf("1|\n")printf("1 !\n")printf(,、いt请选择序号:“);scanf(',%d",&n);printf(“您选择了第%。项,ヽn“,n);.项目编辑子菜单源程序^include<stdio.h>銀include<stdlib.h>voidmain。〃项目编辑子菜单intn;systeraC'cls");printF("\n\n\n");printf(" |»»»****编辑子菜单******!\n")printFC | !\n")printf(" |请选择菜单序号(y3)|\n")printFC | |\n")printFC |1•一一増加记录|\n")printFC |2-一一刷除记录|\n")printFC |3 修改记豪|\n")printFC |0——返回上级菜单|\n")printFC | |\n")printf(“、いt请选择序号:,,);scanFC%d,B,&n);printf(“您选择了第椒!项,ヽn“,n);
ttinclude<stdio.h>Itinclude<stdlib.h>5.项目计算子菜单源程序Itinclude<stdio.h>“include<stdlib.h>uoid5.项目计算子菜单源程序Itinclude<stdio.h>“include<stdlib.h>uoidmain。〃项目计算子菜单<intn;systen("cls");printF("\n\n\n");intn;systemC'cls");printF("\n\n\n");printfC******»查看子菜单****»*|\n")printf(".…|\n")printf("请选择菜单序号(0-4)|\n")printFC.…|\n")printf("1 查看选定记录|\n")printf("2一ー显示全部记录|\n")printf("3•一一显示排序记录|\n")printf("4一一ー显小K及格记录|\n")printFC0 返回上發菜・单|\n")printF("....!\n")printf(•ヽt't请选择序号:“);scanf("%d",&n);printf(“您选择了第・d项?\n",n)printf("|»******计算子菜单・»»***!\n")printf("I |\n")printf(“I请选择菜单序号(0-3)|\n")printf("I |\n")printFCI1ーー计票总成绩和平均成绩|\nつprintF("|2——レ篡曇商分2つprintf("|3——计算最便分|\nつprintFC|0——返回上级菜单つprintf("| |\n")printf("、いt请选择序号:,,);scanf(“%d",&n);printf(“您选择ア第スd项ハn”,n);嚣ユnclude<stdio.h>ttinclude<stdlib.h>voidmain()〃项目排序子菜单<intn;systenf'cls");printf("\n\n\n");printf("1*******排序子菜单******1\»">;printf("1 !\n");printf("! 请选择菜单序号(0-2)|\n");printf("1 !\n");printf("1 1 按升序排序|\n");printf("I 2一一一按降再度|\n");printf("I 〇——返回上级菜单|\n");printf("I !\n");printf(,、いt请选择序号:“);scanF("%d",&n);printf(•,您选择了第2d项ハn”,n);程序执行后的效果图如下:1.项目封面效果图gx[班级学生成绩管理系统版本号:1.02008年5月程序设计兴趣小组2.项目主菜单效果图-«学生成绩管理系统--请选择菜单序号〈0-5>统统文文数数计说系开常示®Its整编显数程退二请输入序号,_3.项目编辑子菜单效果图请输入序号:请选择菜单序号(0-3>*******编キ耳子菜单******EハC语言教学程序、学生成绩管理系统\Debuハstuscore.exe123与菜录录录级记记记上加除改回編修返.项目显示子菜单效果图请镯入序号:请选择菜单序号<0~3〉!*******査看子菜单******!バ"EハC语言教学程序、学生或靖管理系统\Debuハstuscore.exe录录录录记单记记记定部序姿
运全排不上
看不齐-K's
查显显显返
ーニー
ニーニ
ーニーー
12340.项目计算子菜单效果图任务4:项目封面、菜单的顺序执行设计该任务将封面和主、子菜单连接起来,实现封面、菜单的顺序执行。由于,ー个程序只有一个主函数,因此,我们将封面、主菜单、编辑子菜单、查看子菜单、计算子菜单、排序子菜单程序中的主函数分别改名为SluCover、MainMenu、EditMenu、DispMenu、CompMenu、SortMenu,并将这些函数复制到ー个C程序,另外,再建立一个主函数,分别执行这些函数。要注意的是,主函数是放在所有其他函数后面的,能不能将主函数放到所有函数前面呢?或者主函数的位置是否可以任意呢?回答是肯定的,关于如何实现这一点我们将在后续内容中讲解。该任务使用了一个getch库函数,它在这里的作用是使屏幕发生暂停,当程序执行到此函数时发生暂停,等待用户输入ー个任意字符后,程序继续向下执行。这样做的好处是,可以使用户看清封面和主、子菜单。“include<stdio.h>"include<stdlib.h>"include<conio.h>uoidStuCouer()〃项目封面(systen("cls");〃执行DOS清屏命令函数printf("\n\n\n*');printf 班级学生成绩管理系统、n\nつ;printF("\t\t 版本号:1.0\n\n");printf(■ヽn\n\n\n");printF("\t\t 2008年5月、n\n”);printfC't't程序设计兴趣ノト组\n”);uoidMainMenu()〃项目主菜单intn;system("cls");printf(,,\n\n\n,');printF("*****学生成绩管理系统*****!\n-);printFC |\n");printF("请选择菜单序号(0-6)|\n");printF(" |\n");printF("printF("printF("统文文数数计说系な编显数程退ー・ーーーーーーーーーーーーー・ーー・ーー------1234560|\n");|\n");|\n");printF("|\n");printF("|\n");printF("|\n");printF("I'n");printFC I'n");printf(•ヽt\t请选择序号:“);scanf(喋dヽ&n);printf(“您选择ア第・d项?\n",n);intn;systemC'cls");printFC'XnXnXn");printf("1*******编辑子菜单***»»»|\n")printf(" |\n“)printFCi 请选择菜单序号(o-3)|\n")printF(" |\n")printf("1 1—增加记录|\n“)printF("I 2-一ー删除记录Iヽn“)printf,'I 3 修改记录|\n")printf,'I 8 返回上级菜单|\n")printf(" !\n")printf("、いt请选择序号:“);scanfCRd'&n);printf(“您选择了第・d项,ヽn”,n);}uoidDispMenu()〃项目显示子菜单intn;system("cls");printf("\n\n\n");printf("।«■»«-***-»杳:看・子単,******!\n")printf("....!\n")printf("i 请选择菜单序号(0-4)|\n")printf("....!\n")printf("1 1 杳看1无定"I「录|\n")printf("| 2 显示全部记录|\n")printf("| 3 显不排序记录|\n")printf("printf("1 4 显不不欢格任家| 0 返回上级菜单|\n")1ヽn“)printf("...!\n")printf(“、いt请选择序号:“);scanfC^d'\&n);printf「您选择了第常d项ハnヽn);intn;systemC'cls");printFC'XnXnXn");printf("।»»»»»««编辑菜单»*«»»»|\n")printF(" |\n“)printFCi 请选择菜单序号(o-3)|\n")printF(" |\n")printf("i 1—增加记录|\n")printF("I 2-一ー删除记录Iヽn“)printf,'I 3 修改记录|\n")printF(,BI 8 返回上级菜单|\n")printFC !\n")printf("、いt请选择序号:“);scanf(喋;printer您选择ア第・d项,ヽ!T'n);uoidDispMenu()〃项目显示子菜单intn;system("cls");printf("\n\n\n");printf("।«■»«-***-»杳:看・子単,******!\n")printf("....!\n")printf("i 请选择菜单序号(广”)|\n")printf("....!\n")printfC,| 1 杳看1无定"I「录|\n")printf("| 2 显示全部记录|\n")printf("| 3 显不排序记录|\n")printf("printF("1 4 显不不欢格任家| 0 返回上级菜单|\n")1ヽn“)printf("...!\n")printf(“、いt请选择序号:“);scanf("%d",&n);printf(“您选择了第初项,ヽn“,n);任务5:用if语句实现菜单的选择执行设计顺序结构调用菜单的方法在实际应用中是很少见的。因为,这种结构的程序控制权不在用户手中,而在程序的开发人员手中。ー个实用程序,它对菜单的控制权应当在用户。C语言是用分支结构来实现对菜单的选择执行的。分支结构有两种实现方法,本任务首先用if〜else语句来实现菜单的选择执行。由于任务的需要,我们将任务4原来的菜单函数稍作修改。以主菜单为例,将MainMenu函数中的变量定义行和倒数3行全部删除,只保留子菜単显示语句,其他子菜单函数也一样操作,再重新书写主函数。该项目实现如果输入0〜6之间的整型数字,将在屏幕上打印一句话或显示相应的子菜单,由于排序子菜单是属于查看子菜单下面的子菜单,它属于三级子菜单,暂时没有显示。另外,本任务使用了函数申明,这样可以使主函数在程序中的位置变得任意。有了函数申明,就可以方便程序设计。任务5源程序如下:^include<stdio.h>ttinclude<stdlib.h>如include<conio.h>明明・^:日日日日明明・^:日日日日明单单单单明申菜菜菜菜申单子子子子面菜辑示算序封主编显计排目目目目目目项项项项项项////////////dddddd.1iiiii000000uuuuuuuoidmain()〃主函数{intnumber;〃定义变量StuCouer()ソ/调用封面函数getch();MainMenuO;〃调用主菜单函数printF(,,、いt请选择序号:“);〃此处加上提示scanf("%d",&nunber);〃此处加上输入项iF(nunber==1)printf「打开文件へnつ;〃打印一句话elseif(number==2)printf(•・保存文件八nつ;〃打印一句话elseif(nunber==3)EditMenuO;〃调用编辑子菜单函数elseif(nunber==4)DispKenu();//调用查看子菜单函数elseif(nunber==5)CompMenuO"/调用计算子菜单函数elseif(number==6)printf("程序说明八(1つ;〃打印一句话elseif(nunber==0)printf("退出程序,'!1づノ/打印一句话elseprintf("输入错,ヽnづソ/打印一句话<system("cls")"/执行DOS清屏命令函数printf("\n\n\n");printf("\t\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.0\n\n");printF("\n\n\n\n");printF("\t\t 2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示え编显一ー__ーーーー__一一ーーーー1234i\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aaprintF(aa6一—・一^^ 兄〇 退出系:|\n")|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录 I\n”)2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")systenf'cls");printf("\n\n\n");printf("printf("printf("printF("printf("printf("printf('Bprintf("printf("printf("*******查看子菜单******!\n"); |\n");请选择菜单序号|\n"); !\n");查看选定记录 Iヽn"ッ;显示全部记录 I、建);3——显示排序记录 |、ザ);4——显示不及赘记录 |\nつ;0——返回上级菜单 |\n"); |\n");uoidCompMenu()〃项目计算子菜单<systemC'cls");printf("\n\n\n");printf("|*»**««»计算子菜单»*****!\n");printf("I |\n*');Printf(“I请选择菜单序号(0-3)|\n");printf("I |\n");Printf(“I1——计复总成绩和平均成绩|\n");printf,|2——レ篡曇商分|\n");printf(“|3——せ篡最低分|\n");printf(“|0——拡回上级菜单|\n");printf("| |\n-);uoidSortMenu()〃项目排序子菜单system("cls");printf("\n\n\n");printf(" p*******排序子菜单・*****!\n");printf(" | |\n");printf(" |请选择菜单序号(0-2)|\n");printf(" I1 管小臣オ涯 !\n");printf(" I|\n");printfC, I2一ー接降序等隹|\n");printf(" I。ーー返回上级集单|\n");printf(" I |\n");任务6:用switch语句实现菜单的选择执行设计实现菜单的选择执行还可以用更为简捷的switch语句来实现。只要将任务5的主函数稍加修改就能实现用switch语句实现菜单的选择执行。任务6源程序如下:
^include<stdio.h>ttinclude<stdlib.h>“include<conio.h>单单单明申菜菜菜菜申单子子子子单单单明申菜菜菜菜申单子子子子面菜辑示算序封主编显计排目目目目目目项项项项项项//////dddii.1ooouuuuoidmain。〃主函数(intnumber;〃定义变量StuCouer();〃调用音面函数getch();MainMenu();〃调用主菜单函数printf(,、いt请选择序号:")"/此处加上提示scanf("%d",&number);〃此处加上输入项switch(nunber)<case1:printチ('・打开文,二,ヽn");break;case2:printチ("葆存文セニ?\n");break;case3:EditMenu();break;case4:DispHenu();break;case5:CompMenu();break;case6iprintf程序说明?'n");break;case0邛ピはチ(“退出程序?;break;default:printf("输入糖八n”);systemC,cls");〃执行DOS清屏命令函数printf("\n\n\n");printf(,ヽt\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.8\n\n");printF("\n\n\n\n,');printF("\t\t2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示3编显一ー__ーーーー__一一ーーーー1234Innni^ii\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aa6一—・一^^ 兄0 退出系|\n")printF(aa|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单<system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")任务7:用循环语句实现项目主菜单的选择执行设计任务5和任务6实现了菜单的选择执行,虽然实现了用户选择执行菜单功能,但每执行ー个菜单后,程序就结束了,这还是不能满足用户的需要。用户往往需要程序在没有被用户结束之前都能被操作,即程序的控制权应当掌握在用户手中。要实现上述功能,必须使用循环结构。由于实现循环选择执行项目菜单是ー种比较复杂结构,为了便于学习,我们首先用三种方法实现主菜单的循环选择执行,即主菜单实现循环选择,而子菜单暂时不实现循环选择。.用for循环实现已知循环次数的循环。该循环规定了循环执行的次数,当循环达到规定的次数后将会退出循环。学习者不要理解成for循环只能实现己知循环次数的循环,实际上for循环也能够实现未知循环次数的循环。源程序如下:Itinclude<stdio.h>^include<stdlib.h>ttinclude<conio.h>uoidStuCouer();〃项目封面申明uoidMainMenu();〃项目主菜单申明uoidEditMenu();〃頑目编辑キ菜单甲uoidDispMenu();〃项目显示子菜单EヨuoidCompMenu();〃项目计算子菜単臼uoidSortMenu();〃项目小F用手菜单申uoidnain()inti;〃定义循环变量intchoose;system("cls");StuCouer();getch();チ0rび=。ズく8;バ+)〃1:0「循环开始(MainMenuO;〃调用主菜单函数printf(•、いt请输入序号:“);scanf('^d'\ftchoose);$witch(choose)〃主菜单的switch<case1:printチ(,・打开文’ニハn");getch();break;case2邛rintf("葆存文]2ニハn");getch();break;case3:EditMenu();getch();break;case4:DispMenu();getch();break;case5:CompMenu();getch();break;case6:printf程序说明パn");getch();break;caseOzprintfCxR ;getch();break;default:printf("输入辖,ヽn“);getch();)〃for循环结束<system("cls")"/执行DOS清屏命令函数printf("\n\n\n");printf("\t\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.0\n\n");printF("\n\n\n\n");printF("\t\t 2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示え编显一ー__ーーーー__一一ーーーー1234i\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aaprintF(aa6一—・一^^ 兄〇 退出系:|\n")|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录 I\n”)2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")systenf'cls");printf("\n\n\n");printf("printf("printf("printF("printf("printf("printf('Bprintf("printf("printf("*******查看子菜单******!\n"); |\n");请选择菜单序号|\n"); !\n");查看选定记录 Iヽn"ッ;显示全部记录 I、建);3——显示排序记录 |、ザ);4——显示不及赘记录 |\nつ;0——返回上级菜单 |\n"); |\n");uoidCompMenu()〃项目计算子菜单<systemC'cls");printf("\n\n\n");printf("|*»**««»计算子菜单»*****!\n");printf("I |\n*');Printf(“I请选择菜单序号(0-3)|\n");printf("I |\n");Printf(“I1——计复总成绩和平均成绩|\n");printf,|2——レ篡曇商分|\n");printf(“|3——せ篡最低分|\n");printf(“|0——拡回上级菜单|\n");printf("| |\n-);uoidSortMenu()〃项目排序子菜单system("cls");printf("\n\n\n");printf(" p*******排序子菜单・*****!\n");printf(" | |\n");printf(" |请选择菜单序号(0-2)|\n");printf(" I1 管小臣オ涯 !\n");printf(" I|\n");printfC, I2一ー接降序等隹|\n");printf(" I。ーー返回上级集单|\n");printf(" I |\n");任务7:用循环语句实现项目主菜单的选择执行设计.用while循环实现未知循环次数的循环。该循环只有输入了。オ会退出循环,但不能显示“退出程序!”,即当输入。后,循环再不执行,从而退出循环。源程序如下:
ttinclude<stdio.h>Itinclude<stdlib.h>料include<conio.h>由一由由rh^.>3-4Hー由一由由rh^.>3-4Hー自ー自ー明申菜菜菜菜申单子子子子面菜辑示算序封主编显计排目目目目目目项项项项项项
//////dddddd.1.1iiiioooooouuuuuuuoidn)ain()(intchoose;systenC'cls");StuCouer();getch();MainMenuOソ/调用主菜单函数printf(,、いt请输入序号:“);scanf(,,%di,,&choose);while(choose?=G)〃while循环开始<switch(choose)〃主菜单的switch<case1:printf(“打开文‘二,'n");getch();break;case2:printf("保存文件,、n");getch();break;case3:EditMenu();getch();break;case4:DispMenu();getch();break;case5:ConpMenu();getch();break;case6:printF("程序说明,'n");getch();break;caseO:printf("iR ;getch();break;default二printf("输入错,'nつ;getch();)MainMemH);〃调用主菜单函数printf(“ヽt\t请输入序号:“);scanF("%d",&choose);)〃v)hile循环结束<system("cls")"/执行DOS清屏命令函数printf("\n\n\n");printf("\t\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.0\n\n");printF("\n\n\n\n");printF("\t\t 2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示え编显一ー__ーーーー__一一ーーーー1234i\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aaprintF(aa6一—・一^^ 兄〇 退出系:|\n")|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录 I\n”)2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")^include<stdio.h>^include<stdlib.h>ttinclude<conio.h>uoiduoiduoiduoiduoiduoidStuCouer();〃项目封面申明MainMenu();〃项目主菜単申明EditMenuO;〃项目编辑キ菜单中呼DispMenu();〃项目显示辛菜单Eヨ,ConpMenu();〃项目计算子菜車E海SortMenuO;〃项目麟序子菜单申明uoiduoiduoiduoiduoiduoiduoidnain()(intchoose;system("cls");StuCouer();getch();do〃do~MhiletJ§环开始<MainMenuO;〃调用主菜单函数printF(•、いt请输入序号:");scanf(<a%d(a,&choose);switch(choose)〃主菜单的switch<case1:printf('・打开文’rヽn");getch();break;case2:printチ("葆存文ヤ二!ヽn");getch();break;case3:EditMenu();getch();break;case4:DispMenu();getch();break;case5:ConpMenu();getch();break;case6:printチ("程序说明,W);getch();break;caseG:printf("退出程序ハn”);getch();break;default:printf("输入错ハnつ;getch();While(choose”。);〃d〇〜while循环结束<system("cls")"/执行DOS清屏命令函数printf("\n\n\n");printf("\t\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.0\n\n");printF("\n\n\n\n");printF("\t\t 2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示え编显一ー__ーーーー__一一ーーーー1234i\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aaprintF(aa6一—・一^^ 兄〇 退出系:|\n")|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录 I\n”)2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")systenf'cls");printf("\n\n\n");printf("printf("printf("printF("printf("printf("printf('Bprintf("printf("printf("*******查看子菜单******!\n"); |\n");请选择菜单序号|\n"); !\n");查看选定记录 Iヽn"ッ;显示全部记录 I、建);3——显示排序记录 |、ザ);4——显示不及赘记录 |\nつ;0——返回上级菜单 |\n"); |\n");uoidCompMenu()〃项目计算子菜单<systemC'cls");printf("\n\n\n");printf("|*»**««»计算子菜单»*****!\n");printf("I |\n*');Printf(“I请选择菜单序号(0-3)|\n");printf("I |\n");Printf(“I1——计复总成绩和平均成绩|\n");printf,|2——レ篡曇商分|\n");printf(“|3——せ篡最低分|\n");printf(“|0——拡回上级菜单|\n");printf("| |\n-);uoidSortMenu()〃项目排序子菜单system("cls");printf("\n\n\n");printf(" p*******排序子菜单・*****!\n");printf(" | |\n");printf(" |请选择菜单序号(0-2)|\n");printf(" I1 管小臣オ涯 !\n");printf(" I|\n");printfC, I2一ー接降用駐|\n");printf(" I。ーー返回上级案单|\n");printf(" I |\n");任务8:用循环语句实现项目主、子菜单的选择执行设计本任务不但要实现主菜单的循环选择执行,而且还要实现主、子菜单的循环选择执行。下面用while循环、d〇〜while循环的嵌套和switch语句来实现项目主、子菜单的循环选择执行。为了降低学习难点,本任务除执行五个菜单函数外,其他要执行的函数都用输出一句话来实现。另外,为了使任务8更为合理,增加了退出函数Quit。的定义和相关使用。源程序如下:ttinclude<stdio.h>^include<stdlib.h>ttinclude<conio.h>二I/TTTU-L'l^"n7・、ョ,ヨ/Bノ0/uoidStuCouer();〃项目封面申明uoidMainMenu();〃琬目主菜単申明uoidEditMenu();〃项目编辑キ菜单uoidDispMenu();〃二I/TTTU-L'l^"n7・、ョ,ヨ/Bノ0/uoidmain()(一intchoose,“江1)1111":1"的(1,。0叩ハ口(1950/t:!!U叫〃定义5个输入变量systenC'cls");StuCouer();getch();while。)〃外循环开始<MainMenu();〃调用主菜单函数printf("、いt请输入序号:“);scanFC^d",&choose);5witch(choosR)〃主菜单的switch开始<case1:printF("打开文件ハn");getch();break;case2:printf("原特文やニハn");getch();break;do〃内循环1开始<EditMenu()"/调用编辑子菜单函数请输入序号:");scanf("%d",&editnun);switch(editnum)〃编辑子菜单switch开始<case1邛rintf("增加记录?ヽn");getch();break;case2:printf("删除记亲,ヽn");getch();break;case3:printf("修改记录ハn");getch();break;case0:Quit(0);break;”/编辑学菜单switch结束>while(editnun?=0);〃内循环1结束break;do〃内循环2开始DispMenu()"/调用查看子菜单函数printf(•、いt请输入序号:“);scanf("%d",&dispnun);switch(dispnum)〃显示子菜单switch开始<case1:printF(“查看选定记录ハn");getch();break;:printF("显示全部记录,'n");getch();break;do〃内循环3开始<SortMenu()"/调用/時子菜单函数prints”、いt请输入序号:“);scanf(,,%d,,,&sortnun);switch(sortnum)〃排序子菜单switch开始<case1邛rintf(叱安升匠排序,'n");getch();break;case2:printF(":安降用徘用:'n");getch();break;case0:Quit(0);break;“/排序キ菜单switch结束}while(sortnum?=0);〃内循环3结束break;case4:printf,显示不及格记录?'nつ;getch();break;case'O':Quit(0);break;”/显示子菜单switch结束case5:“mile(dispnum,=0);〃内循环2结束breakcase5:do〃内循环4开始(CompMenu();〃调用计算子菜单函数printf(“\t\t请输入序号:“);scanf("%d",&compnun);switch(compnum)〃计算子菜单switch开始case1:printf(“甘要总成绩和平均成绩へn“);getch();break;case2:printf(“曾篡曇商分,'n“);getch();break;case3:printF(“计算最低分,'n“);getch();break;case0:Quit(0);break;)〃计真子菜单switch结束break;case6:printf("程序说明break;case6:printf("程序说明ハn");getch();break;〃程序说明case0:Quit(1);break;ソ/主菜单的switch结束““卜循环结束uoidQuit(intflag)〃退出函数if(flag==1)<system("cls");printf(“\n\nヽn\n\n\n、いt\t操作结束,退出系统,”);getch();systemC'cls");exit(Q);〃退出程序,返回到操作系统库函数>elseif(flag==0)〃返回上级菜单<systen("cls");printf(,ヽn\nヽn\n\n\n\t\t\t操作结束,返回上级菜单,つ;getch();system("cls");systemC,cls");〃执行DOS清屏命令函数printf("\n\n\n");printf(,ヽt\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.8\n\n");printF("\n\n\n\n,');printF("\t\t2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示3编显一ー__ーーーー__一一ーーーー1234Innni^ii\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aa6一—・一^^ 兄0 退出系|\n")printF(aa|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system(,aclsaa);printF(,a\n\n\n");printF(aa |»******编辑子菜单・**»**!\naa)printF(aa |. !\n")printF(aa |请选择菜单序号(y3)|\n")printF(" |.. |\n")printF(aa |1ーー増加记录|\n")printF(aa |2--ー蒯除记录|\n")printF(aa |3 修改记录|\n")printF(aa |G一ー返回上级菜单|\n")printF(,a |.. !\n")任务9:项目整体框架设计项目的整体框架设计是程序开发中关系重大的ー环。整体框架是程序的总体结构,是程序设计中非常重要的部分。整体框架设计的好处是为项目搭好一个骨架,这个骨架包含了项口的各种功能模块,后面的工作就是如何完成这些功能模块,当这些功能模块全部实现后,整个项目也就完成了。该任务是对任务8作进ー步完善,实现的目标是:.主函数的位置可以任意放置;.将原来显示一句话的语句和getchO函数调用语句放置到相应函数中:.增加光标定位函数;.完善程序说明函数。程序运行结果与任务8相似。明声声声声
声明数数数数,明明戶エ声^!!尸声声声!^数成数数薮数妒妒函总函明函函蔡蔡華绩绩严:录器海记和成成数明光ー记记步描函声〃任务9源程序如下:Itinclude<stdio.h>燧include<conio.h>林include<windows.h>“include<stdlib.h>数声函函函函制妒妒函数单单单星尸声破破SISSON僅管自藝矗跖・猬瞿.//////于る口殳修ノ/////;;//X•,•,•,•,•,•,丁呆カ悅Z//-»-»//))//))))))/•»•»));;((•»>*t((((((//iffl-»))(())xn))nruuuuu////)((tt((8i(t.lennnnn-*-»//(elrr9mMMnn(p--r\UdiadeSADpPsS.1.1DDuoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoidnain()intchoose,n江ハ1111,(11.印ハ1J叫(:〇叩ハ・嶋5〇ピ!I口加;〃定义5个输入变量systen("cls");StuCouer();getch();while(1)〃外循环开始<MainMenuO"/调用主菜单函数printf(•、いt请输入序号:“);scanf("%d<,,&choose);switch(choose)〃主菜单的switch开始case1:0pen();break;case2:Saue();break;case3:do〃内循环1开始EditMenuO;〃调用编犍子菜单函数printf(“\t\t请输入序号:“);scanf("%d((9&editnum);switch(editnum)〃编辑子菜单switch开始case1:Add();break;case2:Del();break;case3:Modify();break;case0:Quit(0);break;〃ノ编辑学菜单switch结束>while(editnum?=O);〃内循环1结束break;do〃内循环2开始<DispMenuO;〃调用查看子菜单函数printf(“ヽt\t请输入序号:“);scanF(t(%dl(9&dispnun);switch(dispnum)〃显小子菜单switch开始<case1:Disp0ne();break;case2:DispAll();break;case3:d。〃内循环3开始printf(•,ヽt\t请输入序号:“);scanfRsortnum);$加,“1)(50ぺ!I口m)〃排序子菜单5成<:(:h开始<case1:AsceSort();break;case2:DropSort();break;case0:Quit(0);break;)〃排序子菜单sEtch结束>while(sortnun?=0);〃内循环3结束break;case4:NotElig();break;case'0':Quit(0);break;”/显示子菜单switch结束}while(dispnum?°O);〃内储环2结束break;case5:do〃内循环4开始<CompMenuO"/调用计算子菜单函数printf("\t\t请输入序号:“);scanF(<>%d>a9&conpnuin);switch(compnum)〃计算子菜单sviitch开始<case1:ConpSun();break;case2:SearchMax();break;case3:SearchMin();break;case0:Quit(0);break;〉〃计覧子菜单switch结束}while(conpnum!=0);〃内循环/吉東break;case6:Explain();break;〃程序说明case0:Quit(1);break;>〃主菜单的switch结束”,外循环结束voidOpen。〃打开文件函数(printf("打开文件?\nつ;getch。:>voidSaue。〃保存文件函数(printf(“保存文件,'n");getch();)voidAdd。〃增加学生记录函数{printF(,・增加记录,ヽn”);getch();>voidDel。〃删除学生记录函数(printf(,,删除记录,ヽn");getch();>voidModifリ。〃修改学生记录函数(printf("修改记录,ヽn“);getch。;>voidDispOne。〃查看ー个记录函数(printF(“查看选定记录,ヽn");getch();>voidDi5PAi1。〃显示全部记录函数(printf("显示全部记录,ヽn");getch();}voidAsceSort。〃按升序排列函数(printf(“按升序排序,ヽnつ;getch。;>voidDropsort。〃按降序排列函数(printf("按降序排序ハnつ:getch();voidNotElig()〃显示不及格记录函数<printf(”显示不及格记录[ヽn");getch();)uoidCompSum()〃计算总成绩和平均成绩函数printf(“计算总成绩和平均成绩ハn“);getch();>uoidSearchMax()〃查找最高成绩函数<printf(“计算最高分,'n“);getch();)voidSearchMin()〃查找最低成绩函数printf(”计算最低分,ヽn");getch();>uoidgotoxy(intx,inty)〃光标定位函数{COORDc;C.X=x-1;c.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT__HANDLE),c);voidExplain。〃程序说明<system("cls");gotoxリ(10,3);〃光标定位函数printFCt 这是ー个教学程序。它以开发班级学生成绩管理系统为主要项目,“);gotoxy(10,5);printf(•・旨在通过简单学生成绩管理系统软件的开发,使读者了解并掌握用C语つ;gotoxy(10,7);printf(“言开发程序的方法与技巧。”);gotoxy(10,9);printFC 该项目由15个任务来完成,将C语言基本知识与理论熔入到任务中,つ;gotoxy(10,11);printf(•・完成15个任务后就完成整个项目的设计。通过任务驱动和项目导向教学,“);gotoxy(10,13);printf(“最终实现教学目的,达到培养目标。つ;gotoxy(10,15);printf(“ 该项目实施贯穿在整个教学过程中,它将重点与难点分散在各个任务つ;gotoxy(10,17);printf(“中,达到循序渐逬,逐个突破的目的,教学最后将安排一定的时间归纳汇つ;gotoxy(10,19);printf(“总。»);getch。;uoidQuit(intflag)〃退出函数if(flag==1)<system("cls");printf(“\n\nヽn\n\n\n、いt\t操作结束,退出系统,”);getch();systemC'cls");exit(Q);〃退出程序,返回到操作系统库函数>elseif(flag==0)〃返回上级菜单<systen("cls");printf(,ヽn\nヽn\n\n\n\t\t\t操作结束,返回上级菜单,つ;getch();system("cls");uoidStuCouer()〃项目封面<system("cls")"/执行DOS清屏命令函数printf("\n\n\n");printf("\t\t班级学生成绩管理系统\n\n");printF("\t\t 版本号:1.0\n\n");printF("\n\n\n\n");printF("\t\t 2GG8年5月\n\n");printf("\t\t程序设计兴趣小组'n”);uoidMainMenu()〃项目主菜单system(aaclsaa);printF(,a\n\n\n,a);printF(aa*****学生成绩管理系统*****!\n-)printF(" |\n")printF(aa请选择菜单序号(0-6)|\n")printF(,a |\n,a)文文数数开盘示え编显一ー__ーーーー__一一ーーーー1234i\n")printF("printF(,a|\n")printF(aaprintF(aa|\n")|\n")printF(aaprintF(aa6一—・一^^ 兄〇 退出系:|\n")|\n")printF(aa|\n")printF(aa> !\n")uoidEditMenu()〃项目编辑子菜单system("cls");printF(,a\n\n\naa);printF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aaprintF(aa*******编辑子菜单******!\n") !\n")请选择菜单序号(8-3) |\n-) !\n")1-一一壻加记录 I\n”)2——麟记爱 |\n")3——修改记录 |\ぺ)〇——返回上级菜单 |ヽぺ) !\n")uoidDispMenu()〃项目显示子菜单<systen("cls");printf(ハ、n\n'n");printf(" I******»查看子菜单»*****!\n");printf(" | |\n");printFC I 请选择菜单序号(r") |\n");printF(" | |\n");printf(" I 1 查看选定记录 |\n");printf(" I 2 显示全部记亲 |\n");printf('B I 3 显丞排序记录 |\n,e);printf「 | 4——显示ホ及赘记录 |\n'e);printf(" | 0 返回上级菜单 |\n");printF(" | |\n-);uoidCompMenu()〃项目计算子菜单<systemC'cls");printF("\n\n\n");printF("|*******计算子菜单»***»*|\n");printF("| |\n*');printH-I请选择菜单序号(0-3)|\n");printFC| |\n-);printF("|1——计篡总成绩和平均成绩|\n");printF("|2——レ篡曇商分|\n");printF("|3——せ篡最低分|\n");printF("|0——拡回上级菜单|\n");printF("| |\n-);uoidSortMenu()〃项目排序子菜单(spstemC'cls");printF("\n\n\n");printF("ド******排序子菜单・*・善**|\n");printF(" | |\n");printFC| 请选择菜单序号(0-2) |\n");printF(" | |\n-);Printf(" | 1-一一越升层推生 I\n");Printf(" | 2一ー按降序排底 |\n");printFC | 0——返向上级菜单 !\n");printFC | |\n");任务10:初步实现学生成绩排序要完成上述任务,在主函数中,我们设计ー个包含10个学生成绩的实型ー维数组。定义数组的整型常量表达式用符号常量表示,然后完善相应函数。在编写函数的过程中要十分注意函数的形参与实参的设计。本任务初步实现按升序排列学生成绩函数AsceSortO和按降序排列学生成绩函数DropSort(),排序方法采用"冒泡法排序”。在排序函数中,创建并生成了一个新的成绩数组(temp.score),其目的是在排序的过程中,不影响原成绩数组的排列。在任务9的基础上实现任务10,并对任务9做如下修改:.在项目的文件包含行的下面增加
^defineSTUSIZE10.主函数稍做修改voidmain()intchoose,editnum,dispnum,compnum,sortnum;〃定义5个输入变量floatstuscore[STUSIZE]={65.5,80,97.5,55,85,77.5,89,95,68.5,88};〃定义学生成绩数组).函数声明修改为:voidAsceSort(floatscored,intstusize);//按升序排列学生成绩函数声明voidDropSort(floatscore[],intstusize);〃按降序排列学生成绩函数声明4.函数调用语句修改为:AsceSort(stuscore,STUSIZE);DropSort(stuscore,STUSIZE);AsceSort()和DropSort()定义的修改见源程序。任务10源程序如下:“include"include"include"include<stdio.h>“include"include"include"include<conio.h><windows.h><stdlib.h>ttdefineSTUSIZE10uoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoiduoidStuCouer();〃项目封面函数声明MainMenuO;〃主菜单函数声明EditMenu。;〃编程子菜单函数声ゆDispMenuO;〃显小孕菜单函数声明CompMenuO;〃计算キ菜单函数声,SortMenuOセ排序子菜集函数声明函数尸!明Open。;〃打开Saue。;〃保存,函数声目AddO;〃増加学生记录函数声明Del。;〃痢除学生记录函数声明Modifリ。;〃修改学生记录函数声明DispOne。;〃查看ー个记录函数声明DispAll。;〃显示全部记录函数声明AsceSort(Floatscore[],intstusize)DropSort(Floatscore[],intstusize)NotElig();〃査找CompSum();〃计算SearchMaxO;//$数声明声声数数函函绩绩成威生生澤列列^^升降SearchMin。;〃查找最低成绩函数声号Explain。;〃程序反明函数甫明Quit(int);〃退出函数声明gotoxy(ソ);〃光标定位函数声明uoidmain()(一ー、intchoose,editnum,dispnum,compnum,sortnu阳;〃定义5个输入变量Floatstuscore[STUSIZE]=<65.5,80,97.5,55,85,77.5,89,95,68j5,88>;systemC'cls");StuCouer();getch();外循环开始<MainMenuO;〃调用主菜单函数printf(•、いt请输入序号:“);scanf:((a%da(,&choose);switch(choose)〃主菜单的switch开始<case1:0pen();break;case2:Saue();break;d。〃内循环1开始<EditMenuO"/调用编辑子菜单函数printf(,・ヽt\t请输入序号:");scanf(aa%daa,&editnuR);switch(editnum)〃编辑子菜单switch开始(case1:Add();break;case2:Del();break;case3:Modify();break;case0:Quit(0);break;)〃编辑?菜单switch结束}while(editnum?=G);〃内循环1结束break;d。〃内循环2开始<DispMenuO"/调用查看子菜单函数printf(“、いt请输入序号:“);scanf(aa%d**9&dispnun);switch(dispnum)〃显示子菜单switch开始<case1:Disp0ne();break;case2:DispAll();break;case3:do〃内循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专业饭馆业务承接协议规范文本版
- 2024借款居间合同模板
- 2024年专用废纸采购销售协议版B版
- 上海市建平实验中学2024-2025学年九年级上学期期中英语试题(解析版)
- 佳木斯大学《专业创新创业拓展》2021-2022学年第一学期期末试卷
- 二零二四年度版权使用与授权协议2篇
- 2024年云计算数据中心建设和运营合同
- 2024专项工程项目设备供应协议版B版
- 佳木斯大学《大美劳动》2021-2022学年第一学期期末试卷
- 暨南大学《思想道德与法治》2021-2022学年第一学期期末试卷
- 2024年上海电工操作证考试题库低压电工证考试题(全国通用)
- 作业现场化学品安全告知卡
- 脑脊液常规检查课件
- 0-3岁健康知识讲座
- 小学生主题班会通用版《我和手机有个约定》课件
- 输尿管支架取出后的护理查房
- 【小学心理健康教育分析国内外文献综述4100字】
- 《餐具我来摆》 课件
- “职业健康达人”基本标准
- 2025年日历日程表含农历可打印
- 电脑供货方案、售后服务方案
评论
0/150
提交评论