欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    学生成绩管理系统设计1.docx

    • 资源ID:13672141       资源大小:165.77KB        全文页数:16页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生成绩管理系统设计1.docx

    1、学生成绩管理系统设计1学生信息管理系统设计1、 设计目的设计该程序是为了实现更简洁的学生信息管理, 满足管理学生学号、姓名和成绩等信息的要求。2、 总体设计(程序设计组成框图、流程图)图1.系统程序功能组成框图图2系统总流程图开始按成绩排序N=3N=0输入N3、详细设计(模块功能说明(如函数功能、入口及出口参 数说明,函数调用关系描述等)1.程序结构该系统首先定义了包含: 学生学号、 姓名、 成绩的结构体。 然后定义了菜单函数供用户选择, 紧接着定义了实现以上各功能的子函数。最后是主函数,主函数通过 switch 语句实现对各 子函数的调用。2.数据描述结构体类型定义说明说明:该程序定义了一个

    2、结构体,结构体变量名为 student,结构体数组包含:(char型)学号、( char 型)学生姓名以及( int 型)学生成绩。该结构体如下:typedef struct /* 定义结构体数组 */char num10; /* 学号 */char name20; /* 姓名 */int score; /* 成绩 */Student;Student stu80; /* 结构体数组变量 */3.函数功能说明程序包含 11 个函数,除主函数外,还有:菜单函数 int menu_select() 、输入记录函数 int input ( student stud,int n )、显示所有记录函数 v

    3、oid Display(student stud,int n) 、排序 函数一void sort_by_score(student stud ,int n)、插入记录函数一 int Insert_a_record(student stud int n)、删除记录函数一 int Delete_a_record(student stud,int n)、查询函数一 voidQuery_a_record(student stud ,int n) 、统计系统信息函数一 void Statistic(student stud,int n) 、 读取信息函数一 int AddfromText(stuent

    4、stud,int n) 、存储信息函数一 void WritetoText(student stud,int n) 等 10个辅助系统完成各项功能函数。各函数详细说明如下:( 1)主函数 一一 void main ()算法描述:利用无限次循环 for(;)和switch()实现对各函数的调用,系统根据输入的数字选项来调用相应的函数,实现相应的功能。( 2)菜单函数 一一 int menu_select()函数功能: 使用者通过输入数字选项实现对各功能的使用。 当运行完任一功能, 返 回运行界面时,也要用到该函数。算法描述:使用 do-while循环进行菜单选择,在循环内用getchar()读如

    5、所选择的序 号,并且每次运行都运用 system(cls) 进行清屏。(3) 输入记录函数 int in put (stude nt stud,i nt n )函数功能:输入学生学号、姓名和成绩,输入后有一个提示语句一一是否继续输 入。根据需要选择 Y :继续输入记录;选择 N :停止输入。算法描述:使用 while 循环和标准输入函数进行数据的输入。(4) 显示所有记录函数 void Display(stude nt stud,i nt n)函数功能: 将输入的所有记录显示在运行界面, 或将按成绩排序后的记录显示在界 面。算法描述:使用for循环进行循环输出,循环内运用if语句使十条数据可以

    6、实现暂 停功能。其中还包含了一些辅助的使界面更简洁、清晰的语句(5) 排序函数 void sort_by_score(stude nt stud ,int n)函数功能:按学生成绩由高到底的顺序进行排序。 算法描述:运用简单冒泡法排序,排序后通过显示记录功能将排序后的记录显示在界 面。(6)插入记录函数 一一 int Insert_a_record(student stud int n)函数功能:插入学生信息,包括学生学号、姓名和成绩,插入同时按成绩进行排 序,并显示“添加成功” 。算法描述:使用标准的输入函数输入一条学生记录,带到返回值中,并调用排序 函数将该学生记录插入到排好序的记录中。(

    7、 7)删除记录函数 int Delete_a_record(student stud,int n) 函数功能:按学号将需要删除的记录删除。首先输入学号,判断是否存在该学生 记录:如果存在,回车后,显示“删除成功” ;如果不存在,显示“无法找到该信息” 。算法描述: 运用标准输入函数输入需要删除记录的学生的学号, 通过用 while 循环 查找该学生信息,再运用 if 语句看是否存在该学生,无则返回“无法找到该信息” ,有 则运用 for 循环进行删除操作, 即找到记录后用后面记录覆盖前面的记录。 这种方法虽 不是直接将记录删除,只是将后边的学生记录复制到要删除的学生记录,但实现的功 能是相同的

    8、。执行完删除命令后返回“删除成功” 。( 8)查询函数 void Query_a_record(student stud ,int n) 函数功能:定义该函数为无返回值的的有参函数,根据输入的姓名查找并显示学 生的学号、姓名和成绩。算法描述: 运用标准的输入函数输入要查找的学生姓名, 然后进行 while 循环, 用 if 语句进行判断是否存在该学生信息,无则显示“无法找到该信息” ,有则将该学生信 息运用标准输出函数输出。( 9)统计系统信息函数 void Statistic(student stud,int n) 函数功能:统计输入的学生信息,包括记录总数,成绩最低和最高学生的学号、 姓名

    9、和成绩,以及所有学生的平均成绩和挂科学生(即成绩小于 60 分)的信息。算法描述:首先统计记录的条数输出总共的记录条数,然后对所有成绩求和,存 入 sum 变量中,再求平均值并将平均值输出。用两条 if 语句找到最高分和最低分,并 分别将他们的信息输出。 最后运用 for 循环并定义 flag 作为标记挂科的变量, 即当 flag=1 时,该学生挂科,输出他的信息。若没有学生挂科,则输出“无学生挂科” 。( 10)读取信息函数 int AddfromText(stuent stud,int n) 函数功能:定义该函数为一个有返回值的有参函数,根据输入的文件名进行读取 记录。算法描述:运用标准输

    10、入函数输入文件名,通过 if 语句判断,如果有该文件则打 开,并使用 fscanf 进行操作,无该文件则显示“打开失败” 。( 11)存储信息函数 void WritetoText(student stud,int n) 函数功能:该函数定义为无返回值的有参函数,可以把学生记录保存自己命名的 文件中。算法描述:运用 while 循环进行存储,并使用 fprintf ,存储完成之后显示“操作成 功”,可以使用读取功能读取此文件的内容。4、调试与测试:调试方法,测试结果的分析与讨论,测试 过程中遇到的主要问题及采取的解决措施( 1) 设计难点设计难点包括: 数组的调用、 按成绩运用冒泡法进行排序、

    11、 查找挂科学生信息和文件的 使用以及怎样将记录存储到指定文件等。( 2) 解决方法通过看书以及请教同学或者XX相关知识将难点一一解决。5、源程序清单执行结果#include /* 引用库函数 */#include#include#include typedef struct /* 定义结构体数组 */ char num10; /* 学号 */char name20; /* 姓名 */int score; /* 成绩 */Student;Student stu80; /* 结构体数组变量 */ int menu_select() /* 菜单函数 */ char c;dosystem(color

    12、1A); /* 设置界面颜色 */system(cls); /*运行前清屏 */printf(tt欢迎使用学生信息管理系统n);printf(tt学生管理信息系统 *n); /*printf(tt* 1.请输入学生的信息n);printf(tt* 2.显示所有学生记录n);printf(tt* 3.所有学生成绩排序n);printf(tt* 4.添加学生管理信息n);printf(tt* 5.删除学生错误记录n);printf(tt* 6.查询学生成绩信息n);printf(tt* 7.统计系统学生信息n);printf(tt* 8.从正文中添加记录n);printf(tt* 9.将记录存储到

    13、文件中n);printf(tt* 0.退出学生管理信息系统n)printf(tt请选择使用选项: (0-9):);c=getchar(); /*读入选择 */菜单选择 */while(c9); return(c-0); /* 返回选择 */int Input(Student stud,int n) /* 输入若干条记录 */ int i=0;char sign,x10; /*x10 为清除多余的数据所用 */ while(sign!=n&sign!=N) /* 判断 */ printf(ttt 请输入学生证号 :); /* 交互输入 */ scanf(ttt%s,studn+i.num);pr

    14、intf(ttt 请输入学生姓名 :);scanf(ttt%s,studn+i.name);printf(ttt 请输入学生成绩 :);scanf(ttt%d,&studn+i.score);gets(x); /* 清除多余的输入 */printf(ttt 是否继续输入记录 ?(Y/N);scanf(ttt%c,&sign); /* 输入判断 */i+;return(n+i);void Display(Student stud,int n) /* 显示所有记录 */int i;格式头 */printf(ttt n); /*printf(ttt 学生证号 姓名 成绩 n); printf(ttt

    15、 n);for(i=1;in+1;i+) /* 循环输入 */ printf(ttt%-16s%-15s%dn,studi-1.num,studi-1.name,studi-1.score)Jsystem(pause);void Sort_by_score(Student stud,int n) /* 按成绩排序 */int i,j,*p,*q,s;char t10;for(i=0;in-1;i+) /* 冒泡法排序 */for(j=0;jn-1-i;j+)if(studj.scorestudj+1.score)strcpy(t,studj+1.num); strcpy(studj+1.num

    16、,studj.num); strcpy(studj.num,t);strcpy(t,studj+1.name); strcpy(studj+1.name,studj.name); strcpy(studj.name,t);p=&studj+1.score; q=&studj.score; s=*p; *p=*q; *q=s;int Insert_a_record(Student stud,int n) /* 插入一条记录 */char x10; /* 清除多余输入所用 */printf(ttt 学生证号 :); /* 交互式输入 */ scanf(ttt%s,studn.num);printf

    17、(ttt 学生姓名 :);scanf(ttt%s,studn.name);printf(ttt 学生成绩 :);scanf(ttt%d,&studn.score);gets(x);n+;Sort_by_score(stud,n);return(n);按姓名查找,删除一条记录 */int Delete_a_record(Student stud,int n) /* char s20;int i=0,j;printf(ttt 请输入该学生姓名 :); /* 交互式问寻 */ scanf(%s,s);while(strcmp(studi.name,s)!=0&in) i+; /* 查找判断 */ i

    18、f(i=n)printf(ttt 无法找到该信息 !n); /* 返回失败信息 */ return(n);for(j=i;jn-1;j+) /* 删除操作 */strcpy(studj.num,studj+1.num);strcpy(studj.name,studj+1.name); studj.score=studj+1.score;返回成功信息 */查找并显示一个记录 */printf(ttt 删除学生记录成功 !n); /*return(n-1);void Query_a_record(Student stud,int n) /*char s20;int i=0;printf(ttt 请

    19、输入要查询的学生学号 :); /* 交互式输入 */ scanf(ttt%s,s);while(strcmp(studi.name,s)!=0&in) i+; /* 查找判断 */ if(i=n)return;int i=0,num;FILE *fp; /* 定义文件指针 */char filename20; /* 定义文件名 */ printf(ttt 请输入文件名 :); scanf(ttt%s,filename); /* 输入文件名 */ if(fp=fopen(filename,rb)=NULL) /* 打开文件 */printf(ttt 无法打开文件 !n); /* 打开失败信息 *

    20、/ system(pause); return(n); fscanf(fp,%d,&num); /* 读入总记录量 */while(inum) /* 循环读入数据 */ fscanf(fp,%s%s%d,studn+i.num,studn+i.name,&studn+i.score); i+;n+=num;fclose(fp); /* 关闭文件 */ printf(ttt 成功 !n);printf(ttt); system(pause);return(n);void WritetoText(Student stud,int n) /* 将所有记录写入文件 */ int i=0;FILE *f

    21、p; /* 定义文件指针 */char filename20; /* 定义文件名 */ printf(ttt 从正文中添加记录: n); /* 输入文件名 */ printf(ttt 请输入文件名 :);scanf(ttt%s,filename); if(fp=fopen(filename,w)=NULL) /* 打开文件 */ printf(ttt 无法打开文件 !n); system(pause);return; fprintf(fp,%dn,n); /* 循环写入数据 */ while(in) fprintf(fp,%-16s%-15s%dn,studi.num,studi.name,s

    22、tudi.score); i+; fclose(fp); /* 关闭文件 */printf( 成功 !n); /* 返回成功信息 */void main() /* 主函数 */int n=0;for(;)switch(menu_select() /* 选择判断 */case 1: printf(ttt 请输入学生信息记录: n); /* 输入若干条记录 */ n=Input(stu,n);break;case 2:printf(ttt 显示所有学生信息记录: n); /* 显示所有记录 */ Display(stu,n);break;case 3: printf(ttt 学生信息排序 n);S

    23、ort_by_score(stu,n); /* 按学号排序 */ printf(ttt 学生信息排序成功 !n);printf(ttt); system(pause); break;case 4: printf(ttt 添加学生管理记录 n); n=Insert_a_record(stu,n); /* 插入一条记录 */ printf(ttt);system(pause); break;case 5: printf(ttt 删除错误学生信息记录 n); n=Delete_a_record(stu,n); /* 按姓名查找,删除一条记录 */ printf(ttt);system(pause);

    24、 break;case 6: printf(ttt 查询学生成绩信息 n); Query_a_record(stu,n); /* 查找并显示一个记录 */printf(ttt);system(pause); break;case 7: printf(nttt 统计系统学生信息 :n);Statistic(stu, n); /* 新增功能,输出统计信息 */prin tf(ttt);system(pause);break;case 8:prin tf(ttt 从正文中添加记录:n);n=AddfromText(stu, n); /* 新增功能,输出统计信息 */break;case 9:prin tf(ttt 将所有记录存储到文件中 n ”);WritetoText(stu, n); /* 循环写入数据 */prin tf(ttt);system(pause);break;case 0:printf(ttt 已退出学生信息管理系统,谢谢使用 !n); /* 结束程序*/exit(0);6.执行结果 记普记信信记文信0- 息息的生绩理9葬生加到理 信信生譲学需管凤 至理書生生生生统&4暫 4-1$審计正记岀烈 便学请显所添册查S 0 瓦 * 1234567890


    注意事项

    本文(学生成绩管理系统设计1.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开