课程设计报告(共12页).doc
精选优质文档-倾情为你奉上数据结构课程设计报告姓名: 学号: 班级: 成绩: 教师: 2012年8月21日 报 告 题目:学生信息管理系统实现功能:程序运行时显示一个简单的菜单。建立一个包含10名学生的信息登记表,每个学生的信息包括:学号,姓名,性别、年龄和3门课的成绩(mathe,English, program design)。(1) 信息输入、删除、排序:初始状态已包含5名学生信息,在此基础上可对学生信息进行输入、删除、按学号排序等操作。(2) 成绩统计:能对学生的成绩进行统计,计算出总分和平均分,并按总分降序排列显示出来。当输入科目名称时能统计出该科的平均分,能显示出最高分和最低分。(3)查询:要求输入一个学生的学号后可显示出该学生的相关信息。 开 始功能图表: 主 菜 单选择16 否 5按总分排序6按科目查看4删除3查找2显示1增添 设计程序:#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#define N 10int max(int a,int b)return(a>b?a:b);int min(int a,int b)return(a<b?a:b);struct student long num; char name20;char sex;int age;int math;int English;int programdesign;float aver;float sum; ;struct student stuN=11,"qq",'g',20,90,90,90,90,270,12,"pp",'b',20,80,80,80,80,240,13,"mm",'g',21,90,82,71,81,243,14,"xx",'b',19,70,70,70,70,210,15,"yy",'g',19,60,60,60,60,180,;int n;int choose;void fun1();void fun2();void fun3();void fun4();void fun5(); void fun6(); void fun1()system("CLS");int i;for(i=5;i<N;i+)printf("n请输入*学号: ");scanf("%ld",&stui.num); printf("请输入姓名: ");scanf("%s",&stui.name);getchar();printf("请输入*性别: ");scanf("%c",&stui.sex);printf("请输入年龄: ");scanf("%d",&stui.age);printf("请输入*数学成绩: ");scanf("%d",&stui.math);printf("请输入英语成绩: ");scanf("%d",&stui.English);printf("请输入*课程设计成绩: ");scanf("%d",&stui.programdesign);stui.aver=(float)stui.math+(float)stui.English+(float)stui.programdesign)/3;stui.sum=stui.math+stui.English+stui.programdesign; printf("平均分:%6.2fn",stui.aver); printf("*总 分:%6.2fn",stui.sum);printf("nnttt按任意键返回主菜单!");getch();void fun2()system("CLS");int i;printf("n*");printf("n学号t姓名t性别t年龄t数学t英语t课程设计t平均分t总分n");for(i=0;i<N;i+)printf("%ldt%st%ct%dt%dt%dt%dt%13.2ft%.2fn",stui.num,stui.name,stui.sex,stui.age,stui.math,stui.English,stui.programdesign,stui.aver,stui.sum);printf("n*");printf("nnttt按任意键返回主菜单!");getch();void fun3()system("CLS");long num;int i,f=0;printf("n请输入您想查找学生的学号: ");scanf("%d",& num);for(i=0;i<N;i+)if(stui.num= num)printf("n*");printf("n学号t姓名t性别t年龄t数学t英语t课程设计t平均分t总分n");printf("%ldt%st%ct%dt%dt%dt%dt%13.2ft%.2fn",stui.num,stui.name,stui.sex,stui.age,stui.math,stui.English,stui.programdesign,stui.aver,stui.sum);f=1;if(f=0)printf("ttt未找到所要查找学生!n");printf("n*");printf("nnttt按任意键返回主菜单!");getch();void fun4()system("CLS");int k,f=0;long num;printf("n请输入您想删除学生的学号: ");scanf("%d",& num);for(k=0;k<N;k+)if(stuk.num= num) printf("n*");printf("n学号t姓名t性别t年龄t数学t英语t课程设计t平均分t总分n");printf("%ldt%st%ct%dt%dt%dt%dt%13.2ft%.2fn",stuk.num,stuk.name,stuk.sex,stuk.age,stuk.math,stuk.English,stuk.programdesign,stuk.aver,stuk.sum);printf("n*");stuk.num=stuk+1.num;strcpy(stuk.name,stuk+1.name);stuk.sex=stuk+1.sex;stuk.age=stuk+1.age;stuk.math=stuk+1.math;stuk.English=stuk+1.English;stuk.programdesign=stuk+1.programdesign;stuk.aver=stuk+1.aver;stuk.sum=stuk+1.sum; printf("n已经删除该学生信息!n");f=1; if(f=0)printf("ttt未找到该学生!"); printf("nnttt按任意键返回主菜单!");getch();void fun5() system("CLS");int i;struct student temp;for(i=0;i<N;i+) if(stui.sum<stui+1.sum) temp=stui+1; stui+1=stui; stui=temp; printf("n*"); printf("n学号t姓名t性别t年龄t数学t英语t课程设计t平均分t总分n");for(i=0;i<N;i+) printf("%ldt%st%ct%dt%dt%dt%dt%13.2ft%.2fn",stui.num,stui.name,stui.sex,stui.age,stui.math,stui.English,stui.programdesign,stui.aver,stui.sum); printf("n*"); printf("nnttt按任意键返回主菜单!");getch();void fun6() system("CLS"); int i,m=0,e=0,p=0,high,low; float aver; struct student temp; printf("n请选择您想查询的科目: 1(数学); 2(英语); 3(课程设计): "); scanf("%d",&choose); printf("n*"); for(i=0;i<N;i+) m=m+stui.math; e=e+stui.English; p=p+stui.programdesign; if(choose=1) high=stu0.math; for(i=0;i<N;i+) high=max(stui.math,high); low=stu0.math; for(i=0;i<N;i+) low=min(stui.math,low); aver=(float)m/N; printf("t数学平均分:%.2ft数学最高分:%dt数学最低分:%d",aver,high,low); if(choose=2) high=stu0.English; for(i=0;i<N;i+) high=max(stui.English,high); low=stu0.English; for(i=0;i<N;i+) low=min(stui.English,low); aver=(float)e/N; printf("t英语平均分:%.2ft英语最高分:%dt英语最低分:%d",aver,high,low); if(choose=3) high=stu0.programdesign; for(i=0;i<N;i+) high=max(stui.programdesign,high); low=stu0.programdesign; for(i=0;i<N;i+) low=min(stui.programdesign,low); aver=(float)p/N; printf(" t课程设计平均分:%.2ft课程设计最高分:%dt课程设计最低分:%d",aver,high,low); printf("n*");printf("nnttt按任意键返回主菜单!");getch();int main() system("color 1E"); while(1) system("CLS"); int choose,flag=0; printf("tttttn"); printf("* 学生成绩管理系统 *n"); printf("n"); printf("* _ * 欢迎使用 * _ *n"); printf("nttt 1*:增添n"); printf("nttt 2*:显示n"); printf("nttt 3*:查找n"); printf("nttt 4*:删除n"); printf("nttt 5*:按总分排序n"); printf("nttt 6*:按科目查看n"); printf("nttt 请输入您选择的操作: "); scanf("%d",&choose); while(choose!=1&&choose!=2&&choose!=3&&choose!=4&&choose!=5&&choose!=6) printf("ttt_ 输入错误,请重新输入! _ n"); scanf("%d",&choose); switch(choose) case 1:fun1();break; case 2:fun2();break; case 3:fun3();break; case 4:fun4();break; case 5:fun5();break; case 6:fun6();break; if(flag) break; 运行结果:专心-专注-专业