C语言课程设计方案-学生成绩管理系统_第1页
C语言课程设计方案-学生成绩管理系统_第2页
C语言课程设计方案-学生成绩管理系统_第3页
C语言课程设计方案-学生成绩管理系统_第4页
C语言课程设计方案-学生成绩管理系统_第5页
已阅读5页,还剩12页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1安徽师范大学物理与电子信息学院CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity《C语言》课程设计报告标题:同学成果管理系统学号:姓名:班级专业:09电子信息工程指导老师:完成日期:2010/6/28ﻬ目录课题要求课题分析与设计程序介绍源程序代码与调试设计NS图心得与体会参考书目

一、课题要求有N个同学,每个同学的数据包含学号(不重复)、姓名、三门课的成果及平均成果,试设计一同学成果管理系统,使之能供应以下功能:(1)主菜单同学成果管理系统1、成果录入2、成果查询3、成果统计4、成果排名5、退出(2)各菜单项功能①成果录入:输入同学的学号、姓名及三门课的成果;②成果查询:查询不及格同学的记录。③成果统计:l计算同学的平均分;2依据同学的平均分凹凸,对同学的数据进行排序后输出;(3)设计要求1、用C语言实现系统;2、利用结构体数组实现同学成果统计管理的数据结构设计;3、系统具有增加,查询,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;二、课题分析与设计程序是数值计算型算法设计,设计出了同学成果管理系统的基本功能,并设计了简洁的界面.本程序主要考察对自定义函数的熟识程度,本程序主要使用的是结构体的相关操作,包括结构体数组的输入、输出、查找、删除、修改、计算等。这个同学成果管理系统也初步实现了同学成果信息的显示、删除、查找、添加、修改等必要的功能。三、程序介绍同学成果管理系统由8个函数组成,包括main函数、input函数、display函数、look函数、delete函数,其中change函数又包括一个sumandave子函数,paixu函数。main函数主要是打印选择界面,选择并调用其他几个函数.input函数是输入同学信息函数(包括姓名、学号、性别、5门学科的成果)。完成后调用display函数并返回界面选择。。display函数的功能是对输入同学的信息进行界面输出。完成后返回main函数进行下一个功能的选择。并返回界面选择。look函数的功能是查找。按提示信息输入学号和姓名两种方式可实现查找.完成后调用display函数输出结果。并返回界面选择。delete函数的功能是删除同学的信息,依据想删除的学号进行删除功能,删除的结果会显示在屏幕上。然后再调用display函数显示结果。并返回界面选择。Change函数功能是实现同学成果的修改,其中对于每个想修改的项目(学号、性别、名字、分数)都有是否修改的提示。选择并完成后再调用display函数输出修改后的结果。Sumandave函数是计算每个同学成果的总分、平均分。完成后调用display函数输出所求结果.并返回界面选择.Paixu函数是将全部同学成果的总分降序排列,再是调用display函数。并返回界面选择。四、源程序代码与调试1.程序代码#include〈stdio。h>#include〈string.h>#include<conio.h>structstudent{charnum[10];charname[20];charsex[5];intgrade[5];floatv;intsum;}stu[50];intk=0;voidinput();voiddisplay();voidlook();voidchange();voiddelete();voidsumandave();voidpaixu();voidmain(){inta;do{printf(”\n\n******************************************************************\n");printf(”*");printf("\t\twelcomeenterthestudentmanagementsystem”);printf("\t*");printf("\n******************************************************************\n");printf(”*");printf("\t1.Accessstudentinformation”);printf("\t\t\t\t*\n");printf("*”);printf("\t2.lookstudentinformation”);printf(”\t\t\t\t*\n");printf("*”);printf(”\t3。Changestudentinformation");printf("\t\t\t\t*\n”);printf(”*");printf("\t4.deletestudentinformation");printf("\t\t\t\t*\n");printf(”*");printf("\t5.BysumSortstudentinformationandoutput");printf("\t\t*\n");printf(”*”);printf("\t6.exit”);printf("\t\t\t\t\t\t*\n”);printf("******************************************************************\n");printf(”Enteryouchoice:");scanf(”%d",&a);switch(a){case1:printf(”\n");input();break;case2:printf("\n");look();break;case3:printf("\n");change();break;case4:printf(”\n");delete();break;ﻩcase5:printf("\n");paixu();break;case6:printf("\n");exit(0);break;default:printf("\nThechoiceisbetween1to6.\n");}}while(a!=0);}voidinput(){intj;charch[20];printf(”\nenterstudentinformation:\n");do{printf("\nnum:”);scanf("%s”,stu[k].num);printf("\nname:");scanf("%s",stu[k]。name);printf("\nsex:");scanf("%s",stu[k].sex);for(j=0;j<5;j++){printf("\ngrade%d:",j+1);scanf(”%d”,&stu[k].grade[j]);}k++;printf("\nifwantcontinueinputstudentinformation(y/n):”);scanf(”%s”,ch);}while(strcmp(ch,"y")==0||strcmp(ch,”Y”)==0);sumandave();display();}voiddisplay(){inti;printf("thestudentinformationis:\n");for(i=0;i<k;i++){printf("%-10s%—10s%—5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i]。num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i]。sum,stu[i].v);printf(”\n");}}voidsumandave(){inti,j;for(i=0;i〈k;i++){stu[i].sum=0;for(j=0;j<5;j++)stu[i].sum=stu[i].sum+stu[i].grade[j];stu[i].v=stu[i].sum/5.0;}}voidlook(){{inti;chara[20];printf(”\nenteryouwantlookstudentnum:”);scanf(”%s",a);for(i=0;i<k;i++)if(strcmp(stu[i]。num,a)==0)printf("%-10s%—10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i]。name,stu[i]。sex,stu[i].grade[0],stu[i].grade[1],stu[i]。grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v);printf("\nenteryouwantlookstudentname:");scanf(”%s",a);for(i=0;i<k;i++)if(strcmp(stu[i].name,a)==0)printf("%-10s%—10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v);}display();}voidchange(){inti,j;chara[20],ch[10];printf("\nenteryouwantchangestudentnum:”);scanf("%s",a);for(i=0;i<k;i++){if(strcmp(stu[i]。num,a)==0){printf("\nyousurewantchangestudentnum(y/n):");scanf("%s",ch);if(strcmp(ch,”y”)==0||strcmp(ch,"Y")==0){printf("\nnum:");scanf("%s",stu[i]。num);}printf(”\nyousurewantchangestudentname(y/n):");scanf(”%s",ch);if(strcmp(ch,”y")==0||strcmp(ch,”Y”)==0){printf(”\nname:");scanf(”%s”,stu[i].name);}printf(”\nyousurewantchangestudentsex(y/n):");scanf(”%s",ch);if(strcmp(ch,"y”)==0||strcmp(ch,”Y")==0){printf("\nsex:”);scanf("%s”,stu[i].sex);}printf("\nyousurewantchangestudentgrade(y/n):");scanf("%s",ch);if(strcmp(ch,”y")==0||strcmp(ch,"Y”)==0){for(j=0;j〈5;j++){printf(”\ngrade%d:”,j+1);scanf(”%d”,&stu[i].grade[j]);}stu[i].sum=0;for(j=0;j〈5;j++)stu[i].sum=stu[i].sum+stu[i].grade[j];stu[i].v=stu[i].sum/5。0;}}display();}}voiddelete(){inti,j;charch[10],c[20];printf(”\nyousurewantdeletestudentinformation(y/n):");scanf(”%s",ch);if(strcmp(ch,”y”)==0||strcmp(ch,"Y")==0){printf(”\nenteryouwantdeletenum:\n");printf(”num:");scanf("%s”,&c);for(i=0;i<k;i++)if(strcmp(c,stu[i].num)==0)break;for(j=i;j<=2;j++)stu[j]=stu[j+1];printf("\t\t\tyouhaddelete%s\n”,c);k——;}display();}voidpaixu(){structstudentT;inti,j;for(i=0;i<k-1;i++){for(j=i+1;j<k;j++){if(stu[i].sum〈stu[j]。sum){T=stu[i];stu[i]=stu[j];stu[j]=T;}}}display();}2.程序调试以下是程序运行时主要部分截屏图主菜单界面(1-6选项分别对应6个功能)进行同学信息输入查找同学信息(两种方式)修改同学信息(每步都有是否确定修改)按平均分进行排序删除同学信息(显示删除后结果)五、程序设计NS图同学信息的输入Main函数调用input函数()For(i=0;i<5;i++)依次输入同学5门课成果输入多个同学信息(学号、姓名、性别)完成后返回display()函数输出结果2。同学信息的输出调用display函数()For(i=0;i〈5;i++)输出同学信息(学号、姓名、性别、成果、总分、平均分)同学成果的求和与排序调用sumandave()函数For(i=0;i<k;i++)for(j=0;j〈5;j++)累计同学5门课成果并求平均完成后返回display()函数输出结果4。查找同学信息调用look()函数按学号查找按姓名查找for(i=0;i<k;i++)比较字符串if(strcmp(stu[i].num,a)==0)if(strcmp(stu[i].name,a)==0)输出所查同学信息调用change()函数输入需要修改的同学学号For(i=0;i<k;i++)if(strcmp(stu[i].num,a)==0)输入想修改的学号、姓名、性别、分数、并在每步修改之前确认修改,并输入相应信息。完成后调用display()函数输出修改结果5。修改同学信息6。删除同学信息调用delete()函数确认修改比较字符串scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y”)==0)输入需要删除的同学学号For(i=0;i〈k;i++)if(strcmp(c,st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论