欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生成绩管理系统程序设计c语言(共19页).doc

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

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

    学生成绩管理系统程序设计c语言(共19页).doc

    精选优质文档-倾情为你奉上课程设计报告书学生成绩管理系统班 级学 号:姓 名:指导老师:目录1、 题目要求-12、 设计思想-33、 系统完成功能及框图-34、 界面设计-45、 核心算法及说明-76、 结论-167、 参考资料-168、 后记-16摘要:学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.1、题目要求题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作 2、设计思想我们设计的学生成绩管理系统共有7个功能,所涉及到的函数有按回车返回主菜单、查询、保存、输入、修改、输出、统计等等。这是一个关于学生成绩的管理系统,所以就会涉及到一系列问题,例如:去各科成绩的总和、平均值、不几个学生的科目及对应的成绩。这个程序的整个思路就是按照要求写出相应的程序并使之能够运行。首先,写出所有能够用到的库函数,并设计出能够显示主菜单的程序。其次按照主菜单设计出所有的有关程序。再次,由于这个程序会用到结构体所以会涉及到“将数据从结构体数组保存到文件中” 、“将数据从文件读到结构体数组中”这两个程序。为了使程序更完美还涉及了主函数的显示。最后,就可以按照主菜单进行一系列的操作。其实,这些程序的设计都是根据以前学过的只是进行的简单的程序的叠加。没有什么可以害怕或是担心的。3、系统完成功能及框图退出程序查看所有同学信息输入学生记录修改学生记录按班级查询成绩查询不及格同学成绩统计4、界面设计主菜单运行1后界面运行4后界面运行5后界面5、核心算法及说明#include <stdio.h>#include <io.h>#include <stdlib.h>#include <string.h>#define MAX 300struct student char cla10; /班级 char term10; /学期 char name10; / 姓名 char no10; / 学号 float ch; /语文 float ma; /数学 float en; /英语 float com; /计算机;struct data int count; / 当前学生数组中学生的个数 struct student stuMAX; / 学生数组 dd; / 显示主菜单void menu() system("cls"); printf("n"); printf("ttt*n"); printf("ttt* *n"); printf("ttt* 学生成绩管理系统 *n"); printf("ttt* *n"); printf("ttt* 0 退出 *n"); printf("ttt* 1 查看所有学生信息 *n"); printf("ttt* 2 输入学生记录 *n"); printf("ttt* 3 修改学生记录 *n"); printf("ttt* 4 查询(班级) *n"); printf("ttt* 5 查询(不及格记录) *n"); printf("ttt* 6 成绩统计 *n"); printf("ttt* *n"); printf("ttt*n"); / 等待用户按回车后回到主菜单void to_menu() char c1,c2; printf("nnn按回车键返回主菜单."); scanf("%c%c",&c1,&c2); menu(); / 查看所有学生信息void view_data() int i; printf("班级t学期t姓名t学号t语文t数学t英语t计算机"); printf("n-n"); for(i=0;i<dd.count;i+) printf("%st%st%st%st%.1ft%.1ft%.1ft%.1fn",dd.stui.cla,dd.stui.term,dd.stui.name,dd.stui.no,dd.stui.ch,dd.stui.ma,dd.stui.en,dd.stui.com); / 将数据从结构体数组保存到文件中void save_data() FILE *fp; int i,k; k=dd.count; fp=fopen("c:/dada.txt","w"); fwrite(&k,sizeof(int),1,fp); for(i=0;i<k;i+) fwrite(&dd.stui,sizeof(struct student),1,fp); fclose(fp); / 输入学生记录(按班级和学期)void add_data() struct student st; int b; int i,k,j; char term10,cla10; printf("请输入所要录入的学生的班级:"); scanf("%s",cla); printf("请输入所要录入的学期:"); scanf("%s",term); while(1) j=0; printf("n请输入学生信息:"); printf("n姓名t学号t语文t数学t英语t计算机"); printf("n-n"); scanf("%s%s%f%f%f%f",st.name,st.no,&st.ch,&st.ma,&st.en,&); for(i=0;i<dd.count;i+) if(strcmp(dd.stui.no,st.no)=0&&strcmp(dd.stui.term,term)=0) if(strcmp(dd.stui.no,st.no)=0) printf("n信息已存在,请重新输入!n"); j=1; break; if(j=1) continue; if(j=0) k = dd.count; strcpy(dd.stuk.cla,cla);strcpy(dd.stuk.term,term); strcpy(dd.stuk.name,st.name); strcpy(dd.stuk.no,st.no); dd.stuk.ch=st.ch; dd.stuk.ma=st.ma; dd.stuk.en=st.en; dd.stuk.com=; dd.count+; printf("nn继续添加学生信息1-yes 0-no:"); scanf("%d",&b); if(b=0) break; save_data();/ 将数据从文件读到结构体数组中void read_data()FILE *fp;int i,k;struct student st;k=0;if(access("c:/dada.txt",0)=-1)/ 如果文件不存在fp=fopen("c:/dada.txt","w");fwrite(&k,sizeof(int),1,fp);fclose(fp);fp=fopen("c:/dada.txt","r");fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;i<k;i+)fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.cla,st.cla); strcpy(dd.stui.term,st.term);strcpy(dd.stui.name,st.name);strcpy(dd.stui.no,st.no);dd.stui.ch=st.ch; dd.stui.ma=st.ma; dd.stui.en=st.en; dd.stui.com=;fclose(fp);/ 修改学生成绩记录(按班级和学期)void edit_data()char cla10,term10; int i;float ch,ma,en,com; printf("请输入所要修改记录的班级:"); scanf("%s",cla); printf("请输入所要修改记录的学期:"); scanf("%s",term);for(i=0;i<dd.count;i+)if(strcmp(dd.stui.cla,cla)=0&&strcmp(dd.stui.term,term)=0) printf("n姓名:%s,学号:%s",dd.stui.name,dd.stui.no);printf("n请修改学生数据:"); printf("n语文成绩:"); scanf("%f",&ch); dd.stui.ch=ch; printf("n数学成绩:"); scanf("%f",&ma); dd.stui.ma=ma; printf("n英语成绩:"); scanf("%f",&en); dd.stui.en=en; printf("n计算机成绩:"); scanf("%f",&com); dd.stui.com=com;printf("nn编辑学生记录成功!"); save_data();/ 按班级输出成绩单void query_data_cla()int i;char cla10;printf("n请输入要查询成绩的班级:");scanf("%s",cla);for(i=0;i<dd.count;i+)if(strcmp(dd.stui.cla,cla)=0) printf("班级t学期t姓名t学号t语文t数学t英语t计算机"); printf("n-n"); printf("%st%st%st%st%.1ft%.1ft%.1ft%.1fn",dd.stui.cla,dd.stui.term,dd.stui.name,dd.stui.no,dd.stui.ch,dd.stui.ma,dd.stui.en,dd.stui.com); /查询不及格科目的学生名单void query_data_pass() int i,s=0; char cla10,term10; printf("请输入所要查询的班级:"); scanf("%s",cla); printf("请输入所要查询的学期:"); scanf("%s",term); for(i=0;i<dd.count;i+) if(strcmp(dd.stui.term,term)=0&&strcmp(dd.stui.cla,cla)=0) printf("n姓名:%s,学号:%s 的不及格科目有:",dd.stui.name,dd.stui.no); if(dd.stui.ch<60)printf("语文t");s+; s=0; if(dd.stui.ma<60)printf("数学t");s+; s=0; if(dd.stui.en<60)printf("英语t");s+;s=0; if(dd.stui.com<60)printf("计算机t");s+;s=0; if(s=0)printf("0科"); /成绩统计(按班级和学期)求总分和平均分void count_data()char cla10,term10; int i,k=0;float sum4=0.0,average4; printf("请输入所要统计记录的班级:"); scanf("%s",cla); printf("请输入所要统计记录的学期:"); scanf("%s",term); for(i=0;i<dd.count;i+) if(strcmp(dd.stui.cla,cla)=0&&strcmp(dd.stui.term,term)=0) k+; sum0+=dd.stui.ch; sum1+=dd.stui.ma; sum2+=dd.stui.en; sum3+=dd.stui.com; average0=sum0/k; average1=sum1/k; average2=sum2/k; average3=sum3/k; printf("n所查询%s班级%s学期的各科总分为:n",cla,term); printf("语文t数学t英语t计算机"); printf("n-n"); printf("%.1ft%.1ft%.1ft%.1ft",sum0,sum1,sum2,sum3); printf("n所查询%s班级%s学期的各科平均分为:n",cla,term); printf("语文t数学t英语t计算机"); printf("n-n"); printf("%.1ft%.1ft%.1ft%.1ft",average0,average1,average2,average3);/ 主函数void main()int fun;read_data();menu();while(1)printf("请输入功能号0-8:",&fun);scanf("%d",&fun);switch(fun)case 0:/ 退出break;case 1:/ 查看所有学生信息view_data();break;case 2:/按班级和学期输入学生记录add_data();break;case 3:/ 按班级和学期修改学生记录edit_data();break;case 4:/ 查询(按班级)query_data_cla();break; case 5: /查询不及格学生及科目(按照班级和学期) query_data_pass(); break; case 6:/ 成绩统计(按班级和学期求平均分和总分)count_data(); break;if(fun=0) break;to_menu();相关程序分析1、查看所有学生信息 先定义相关变量,然后设计输入输出程序。输出所要查询的东西,并设计好输出的形式,这是很重要的一点。这样就可以查看到所有已存的学生信息了2、按班级查询 同样先定义变量,然后按照要求设计所要输出的文字。主要应用for循环对已存的所有的学生信息进行输出。3、查询不及格的记录 同样还是先定义变量,设计出要按照班级和学期查询不几个同学的记录。对于每一科又要进行验证所以涉及到了S+,最后还要有S=0的设计,是因为每一个同学都有四科成绩,S+后就改变了运来的值,因此没计算完一个同学后都要归零。6、结论 通过这次小组亲自编写较大的程序,使我更好的掌握了一些函数的应用是自己更彻底的懂了这些函数的作用,这对以后再编一些其他的程序奠定了良好的基础。同时也是自己对这些程序有了一定的记忆和一定的编程能力。好处有很多,中途会遇到一些困难,例如:不知用那一个函数、怎样将信息保存到结构体变量中等等。有了问题就要解决所以就去问同学或是老师,是自己能够弄懂并能够正确的编写出程序。同时这也证明了团队的力量是无穷的。还可以学到一些课本学不到的东西。总之这次的编程使我收获很大。7、参考资料C程序设计 谭浩强 第三版 2005年7月 清华大学出版社TURBO C实用大全 徐金梧 2001年8月 机械工业出版社C语言程序设计 王声决 2003年8月 中国铁道出版社C程序设计题解与上机指导 谭浩强 第三版 2005年7月 清华大学出版社C语言程序设计应用教程 刘玲 2006年1月 西南师范大学出版社 8、后记在与同组同学反复研究改编和老师的耐心提示下,这段时间的功夫终于没有白费。不仅巩固了这半年来所学的关于c语言的知识点,把他们系统化,融会贯通,而且让我再次学会了很多东西,知识面也得到拓展。理论结合实际,把所学综合应用到实际问题中,极大提高了我们对这门课的兴趣。在指导老师康亚男的耐心教导和细心提示下,我们的程序有了更进一步的完善,让我们在枯燥的学习生活的同时有感受到了老师的责任心。这更让我们有信心把这份工作做好。专心-专注-专业

    注意事项

    本文(学生成绩管理系统程序设计c语言(共19页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开