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

    学生成绩管理系统报告.doc

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

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

    学生成绩管理系统报告.doc

    校公共选修课课程名称:C语言程序设计 题目名称:学生成绩管理系统 学生学院:物理与光电工程学院 专业班级:电子科学与技术(3)班学 号:3108009205 学生姓名:陈 浩 实验题目:学生成绩管理系统一、 实验目的1. 熟悉c语言的编译连接和运行过程。2. 掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3. 掌握if语句及switch语句的运用方法及嵌套应用方法。4. 掌握实现循环结构的三种语句while、 do-while.、for 的使用。5. 掌握函数的定义方法和调用方法。6. 能够采用模块化思想调试程序。二实验内容1. 编写程序并进行调试运行。2. 输入学生资料,并保存于文件。每个学生包含信息如:学号、姓名、性别.成绩信息等。3. 对已存入的学生信息进行更新操作,包括添加一个学生信息、删除某个学生信息和修改某个学生信息。4. 通过输入姓名、学号的方式查询学生信息。5. 最后输出学生信息。二、 需求分析1. 该程序可用于对学生的宿舍情况基本信息的存储、更新、查询、输出等操作,以实现对学生成绩的管理。2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个学生信息,也可对个别学生信息进行适当的删除或修改。以便随时更新学生信息。3. 程序中设计的查询功能可根据需要从若干数据中查询某个学生信息,并且可根据两种不同的方法查询:按学号查询和按姓名查询。以满足不同的需要。四、概要设计1、方案设计对系统进行分析,给出结构图 分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计 结构图如下:学生成绩管理系统查询模块输出模块更新模块退出系统排序模块添加模块按总成绩排序按计算机成绩排序按物理成绩排序按体育成绩排序按英语成绩排序按数学成绩排序按学号查寻按姓名查询退出系统修改学生信息删除学生信息退出系统2.模块功能说明对各个模块进行功能的描述(1).输出模块:可以对所有的学生信息进行输出。(2)添加模块:可添加一个或多个学生信息,并将所添加学生信息保存,方便查找。(4)修改模块:可根据需要对多个学生信息进行修改,也可随时对个别项进行修改,还可以删除学生的信息。(5)查询模块:可对已建立的学生信息进行查询,并且可根据需要选择按姓名查询或按学号查询。 (6)保存模块:用于对信息进行保存。(7)退出系统:选择该项,自动退出该系统。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。开 始输入i的值判断i的值退出系统输出模块添加模块更新模块排序模块查询模块输入选择项所对应的值输入选择项所对应的值输入选择项所对应的值判断choose的值判断choose的值判断choose的值修改信息退出系统删除信息按总成绩排序按计算机成绩排序按物理成绩排序按体育成绩排序按英语成绩排序按数学成绩排序按学号查询退出系统按姓名查询结 束保存模块 六 调试情况1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可着毕竟是第一次独立完成这样的大程序,结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足需要,但如果还有更多的功能程序就会更加完美。2、在设计过程中的感受。 本次C 语言的课程设计让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,这次课程设计让我这种实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次课程设计中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次课程设计,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。七参考文献C语言程序设计 王曙燕 曹锰 科学出版社 2005年2月C语言程序设计 谭浩强 清华大学出版社 1999年12月八 .源程序 #include <conio.h>#include <stdio.h>#include <string.h>#define N 35#define START1 printf("*n")#define START2 printf("n-学号-姓名-性别-高数-英语-体育-物理-计算机-总成绩-平均成绩n")#define START3 printf("%4d %2s %6s %6d %6d %6d %6d %6d %6d %6dn",Si.num,Si.name,Si.sex,Si.math,Si.English,Si.sport,Si.physic,Si.computer,Si.total,Si.aver) /*学生结构体类型*/struct student_typeint num; char name 20; char sex4; int math; int English; int sport; int physic; int computer; int total; int aver; SN; /*存放N个学生数据的结构体数组*/ int sum; /*保存数据单元*/ save_message(int sum)FILE *fp; int i=0; if (fp=fopen("chengji.txt","wb")=NULL) printf("读取文件错误! ! !"); return; do if(fwrite(&Si,sizeof(struct student_type),1,fp)!=1) printf("写文件错误 ! ! !n"); i+; while(Si.num!=0&&Si.num!=Si-1.num); fclose(fp); /*读取数据单元*/ read_message() FILE *fp;int i=0;if(fp=fopen("chengji.txt","rb")=NULL)printf("nn*系统暂时没有信息,请按任意键进入主菜单选择基本信息的输入!*nn");while(feof(fp)!=1) fread(&Si,sizeof(struct student_type),1,fp); if(Si.num=0|Si.num=Si+1.num) break ; else i+; fclose(fp); return(i) ; /*输出学生数据模块*/ output_message()int i=0; clrscr(); do printf("n-学生成绩信息单-n"); START2 ; START3 ; i+; while(Si.num!=0&&Si-1.num!=Si.num); printf("n-随你所按,返回主菜单-n"); bioskey(0); /*修改学生数据(更新区)*/ revise_message() int i=0,choose,revise_num; char did; do clrscr(); printf("n 输入要修改的学生的学号:n"); scanf("%d",&revise_num); for(i=0;i<sum;i+) if(Si.num=revise_num) printf("n-该学生信息如下-n"); START2; START3; printf("n*需要修改哪一项:*n"); printf(" 1.学号?n"); printf(" 2.姓名?n"); printf(" 3.性别?n"); printf(" 4.高数? n"); printf(" 5.英语?n"); printf(" 6.体育?n"); printf(" 7.物理?n"); printf(" 8.计算机?n"); printf("n*请选择(1-8),按回车键结束:*n"); scanf("%d",&choose); while (choose<1|choose>8) printf("输入错误,请重新输入:"); scanf("%d",&choose); switch (choose) case 1:printf(" 输入修改后的学号:"); scanf("%d",&Si.num); break; case 2:printf(" 输入修改后的姓名:"); scanf("%s",&Si.name); break; case 3:printf(" 输入修改后的性别:"); scanf("%s",&Si.sex); break; case 4:printf(" 输入修改后的高数成绩:"); scanf("%d",&Si.math); while (Si.math<0|Si.math>100) printf(" 输入错误,请重新输入:"); scanf("%d",&Si.math); ; break; case 5:printf(" 输入修改后的英语成绩:"); scanf("%d",&Si.English) ; while (Si.English<0|Si.English>100) printf("输入错误,请重新输入"); scanf("%d",&Si.English); ;break; case 6:printf(" 输入修改后的体育成绩:"); scanf("%d",&Si.sport) ; while (Si.sport<0|Si.sport>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.sport); ;break; case 7:printf(" 输入修改后的物理成绩:"); scanf("%d",&Si.physic) ; while (Si.physic<0|Si.physic>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.physic); ;break ; case 8:printf(" 输入修改后的计算机成绩:"); scanf("%d",&Si.computer) ; while (Si.computer<0|Si.computer>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.computer); ;break ; Si.total=Si.math+Si.sport+Si.English+Si.physic+Si.computer; Si.aver=Si.total/5; printf("n-修改后的信息如下:-n"); START2; START3; printf("n 是否继续修改(y/n)? n"); scanf("%c",&did); while(did='y'); printf("n-按任意键返回-n"); getchar(); bioskey(0); /*删除学生数据(更新区)*/ del_message() int del_num; int i,j,k=0; char choose; printf("n 输入要删除的同学的序号:"); scanf("%d",&del_num); for(i=0;i<sum;i+) if(Si.num=del_num&&Si.num!=0) printf("n-同学信息-n"); START2; START3; printf("n*确定要删除吗?(Y/N)*n"); choose=getch(); if(choose='y') for(j=i;j<sum;j+) Sj=Sj+1; sum-; printf("n*已成功删除!*n"); printf("n*按任意键返回主菜单!*n"); else k+; if(k=sum) printf("n*该同学不存在!*n"); bioskey(0); /* 更新学生数据模块 */ renew_message()int choose; do clrscr(); printf("n*更新学生数据*n"); printf("n 1.修改学生信息n"); printf("n 2.删除学生信息n"); printf("n 0.返回主菜单n"); printf("n 请选择(0-2)按回车确定:n"); printf("n*n"); scanf("%d",&choose); switch(choose) case 1:revise_message();break; case 2:del_message() ; break; case 0: break; while(choose!=0); /*添加学生信息模块*/input_message() int i; char choose; clrscr();for(i=sum;i<sum+1;i+) printf("*n"); printf(" 添加学生信息 n"); printf("n*n"); printf("n 学号:"); scanf("%d",&Si.num); printf ("n 姓名:"); scanf("%s",Si.name); printf("n 性别:"); scanf("%s", Si.sex); printf ("n 高数:"); scanf("%d",&Si.math);while (Si.math<0|Si.math>100) printf(" 输入错误,请重新输入:"); scanf("%d",&Si.math); printf("n 英语:"); scanf("%d",&Si.English);while (Si.English<0|Si.English>100) printf("输入错误,请重新输入"); scanf("%d",&Si.English); printf("n 体育:"); scanf("%d",&Si.sport);while (Si.sport<0|Si.sport>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.sport); printf("n 物理:"); scanf("%d",&Si.physic);while (Si.physic<0|Si.physic>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.physic); printf("n 计算机:"); scanf("%d",&Si.computer);while (Si.computer<0|Si.computer>100) printf("输入错误,请重新输入:"); scanf("%d",&Si.computer); Si.total=Si.math+Si.English+Si.sport+Si.physic+Si.computer ; Si.aver=Si.total/5; printf("n 是否继续(y/n)? n"); getchar(); scanf( "%c",&choose);if(choose='y') printf ("n this thing will continue n"); sum+; sum=sum+1; printf(" n*随你所按,返回上一菜单*n"); bioskey(0); /*按姓名查询*/ require_name()int i, j=0 ; char fund_name20; clrscr(); printf("n 输入需要查找的学生姓名:n"); scanf("%s",fund_name); for(i=0;i<sum+1;i+) if(strcmp(Si.name,fund_name)=0) printf("n 该学生成绩如下:n"); START2; START3; else j+; if(j=(sum+1) printf("n 该学生不存在!n"); printf(" n-随你所按,返回上一 菜单-n"); bioskey(0); /*按学号查询*/ require_num()int i, j=0 ; int fund_num; clrscr(); printf("n 输入需要查找的学生学号:n"); scanf("%d",&fund_num); for(i=0;i<sum+1;i+) if(Si.num=fund_num) printf("n 该学生成绩如下:n"); START2; START3; else j+; if(j=(sum+1) printf("n 该学生不存在!n"); printf(" n-随你所按,返回上一 菜单-n"); bioskey(0); /*查询信息模块*/ require_message() int choose ; do clrscr(); printf("*查询学生信息*n"); printf(" 1.按姓名查找n"); printf(" 2.按学号查找n"); printf(" 0.返回主菜单n"); printf("n*请选择(0-2)按回车确定*n"); getchar(); scanf("%d",&choose); while (choose<0|choose>2) printf("输入错误,请重新输入:"); scanf("%d",&choose); switch(choose) case 1:require_name(); break; case 2:require_num(); break; case 0: break; while(choose!=0); /*按高数成绩排行(排行区)*/ sort_math() struct student_type score, QN; int i,j; clrscr(); printf("n 按高数成绩排名:n"); START2; START3; for(i=0;i<sum;i+) Qi=Si; for(i=0;i<sum-1;i+) score=Si; for(j=i+1;j<sum;j+) if(Qi.math<Qj.math) score=Qj; Qj=Qi; Qi=score; printf("n 学号 姓名 高数成绩n"); for(i=0;i<sum;i+) printf("n %5d %10s %5dn",Qi.num,Qi.name,Qi.math); printf("n 按任意键返回上一菜单!"); bioskey(0); /*按英语成绩排行(排行区)*/ sort_English() struct student_type score, QN; int i,j; clrscr(); printf("n 按英语成绩排名:n"); START2; START3; for(i=0;i<sum;i+) Qi=Si; for(i=0;i<sum-1;i+) score=Si; for(j=i+1;j<sum;j+) if(Qi.English<Qj.English) score=Qj; Qj=Qi; Qi=score; printf("n 学号 姓名 英语成绩n"); for(i=0;i<sum;i+) printf("n %5d %10s %5dn",Qi.num,Qi.name,Qi.English); printf("n 按任意键返回上一菜单!"); bioskey(0); /*按物理成绩排行(排行区)*/ sort_physic() struct student_type score, QN; int i,j; clrscr(); printf("n 按物理成绩排名:n"); START2; START3; for(i=0;i<sum;i+) Qi=Si; for(i=0;i<sum-1;i+) score=Si; for(j=i+1;j<sum;j+) if(Qi.physic<Qj.physic) score=Qj; Qj=Qi; Qi=score; printf("n 学号 姓名 物理成绩n"); for(i=0;i<sum;i+) printf("n %5d %10s %5dn",Qi.num,Qi.name,Qi.physic); printf("n 按任意键返回上一菜单!"); bioskey(0); /*按体育成绩排行(排行区)*/ sort_sport() struct student_type score, QN; int i,j; clrscr(); printf("n 按体育成绩排名:n"); START2; START3; for(i=0;i<sum;i+) Qi=Si; for(i=0;i<sum-1;i+) score=Si; for(j=i+1;j<sum;j+) if(Qi.sport<Qj.sport) score=Qj; Qj=Qi; Qi=score; printf("n 学号 姓名 体育成绩n"); for(i=0;i<sum;i+) printf("n %5d %10s %5dn",Qi.num,Qi.name,Qi.sport); printf("n 按任意键返回上一菜单!"); bioskey(0); /*按计算机成绩排行(排行区)*/ sort_computer() struct student_type score, QN; int i,j; clrscr(); printf("n 按计算机成绩排名:n"); START2; START3; for(i=0;i<sum;i+) Qi=Si; for(i=0;i<sum-1;i+) score=Si; for(j=i+1;j<sum;j+) if(Qi.computer<Qj.computer) score=Qj; Qj=Qi; Qi=score; printf("n 学号 姓名 计算机成绩n"); for(i=0;i<sum;i+) printf("n %5d %10s %5dn",Qi.num,Qi.name,Qi.computer); printf("n 按任意键返回上一菜单!"); bioskey(0); /*按总成绩排序(排行区)*/ sort_all() struct student_type score, QN; int i,j; clrscr(); printf("n 按总分排名:n"); START2

    注意事项

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

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




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

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

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

    收起
    展开