下载此文档

学生成绩管理系统c语言课程设计报告.docx


文档分类:IT计算机 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
.C语言课程设计设计报告制作人:学号:指导老师:时间:..一、设计内容和设计要求1、设计内容题目:学生成绩管理系统设计该系统包含20个学生姓名和成绩信息,可对成绩进行排序,并实现由姓名查找成绩及由成绩查找姓名。2、设计要求1)由键盘输入20个学生(姓名)的某门课程的学****成 绩60~99分。2 )将分数由低到高排序(用直接排序法和冒泡法) ,并显示学生姓名和对应的分数。3) 用线性搜索法检索某个学生的成绩 (输入姓名,显示成绩)。4)* 对分搜索法检索某个学生的成绩(输入成绩,显示姓名) 。二、设计思路首先是要建立 20个学生信息,即学生姓名和学生成绩,使用子函数 input 输入,学生成绩使用一维数组,学生姓名使用二维数组。然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。最后在主函数中来设计人机界面,用switch 函数来实现操作选择, 对应的情况中就调用之前定义的子函数来完成排序或查找。..三、程序设计流程图1 、程序总体流程开始输入学生姓名和成绩主菜单排序 退出 查找直接排序 冒泡排序 查找成绩 、直接排序法流程图子程序入口将i赋给min将i+1赋给j判断score[j]<score[min]?Yscore[j]与score[min]交换同时strcp实现name[j]与name[min]交换N判断是否交换N,继续执行Y全部比较完毕,、冒泡排序法流程图子程序入口外层i从0开始内层j从0开始判断score[j]>score[j+1]?Yscore[j]与score[j+1]交换同时strcp实现name[j]与name[j+1]交换N判断是否交换N,继续执行Y全部比较完毕,、线性搜索法子程序入口输入姓名字符chFor循环检索name[i]判断name[i]==ch?Y N输出学生姓名和成绩 、对分搜索法子程序入口n赋0值,m赋下标最大值(n+m)/2赋给i输入成绩k判断k与score[i]的大小关系k>score[i]k<score[i]k=score[i]i+1赋给n i-1赋给m找到,、程序设计中遇到的问题和解决方案最开始编程时,直接排序和冒泡排序法中都是通过 swap函数来实现成绩交换和姓名交换, 以达到排序目的,但在主函数中调用时却调用不了,程序在排序时就不能正常运行, 我的解决方案就是去掉 swap函数,因为有可能有些函数的调用有限制条件,这样改变之后,就不存在限制问题,可以正常排序。另外一个问题就是姓名数组的交换问题, 这个之前是用中间变量的方式实现交换, 结果调试时显示非法, 于是经过多次改变和尝试,发现姓名用二维数组更不容易出现问题, 于是就将姓名设置为二维数组,然后用字符串拷贝函数来实现交换, 以达到最终排序的目的。这样解决之后,一方面可以使姓名不至于限制在一个字符内,另外一个好处就是解决了排序过程中姓名交换的问题。..五、源程序(含注释)及运行界面1、源程序#include<>#include<>#include<>#defineNUM20voidinput(int a[],char b[][30]) /* 子函数input输入20个学生姓名*/{inti;for(i=0;i<NUM;i++){printf(" 请输入第%d个学生的姓名:",i+1);scanf("%s",b[i]);printf(" 请输入第%d个学生的成绩:",i+1);scanf("%d",&a[i]);if(a[i]>99||a[i]<60){printf("error!\n"); /* 成绩大于99或小于60则显示错误*/i=i-1;}}}voidzhijie(inta[],charb[][30]) /* 直接排序法*/{inti,j,min,temp;chartemp1[30];for(i=0;i<NUM-1;i++){min=i;for(j=i+1;j<NUM;j++)if(a[j]<a[min]){temp=a[j];a[j]=a[min];a[min]=temp;strcpy(temp1,b[j]); /* 字符串拷贝函数进行字符数组交换*/strcpy(b[j],b[min]);strcpy(b[min],temp1);}}..printf(" 排序后的学生姓名和成绩为 :\n");for(i=0;i<NUM;i++)printf("%s,%d\n",b[i],a[i]);}voidmaopao(in

学生成绩管理系统c语言课程设计报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人琥珀
  • 文件大小180 KB
  • 时间2020-10-23