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

    C语言程序设计学生成绩记录簿(35页).doc

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

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

    C语言程序设计学生成绩记录簿(35页).doc

    -课程实验报告课程名称C语言程序设计班级13新能源2班实验日期2013年8月1号姓名许鑫学号130370236实验成绩实验名称学生成绩记录簿系统实验题目描述本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。 1.建立一个主界面 2.用switch语句进行分类讨论 3.分别进入录入,查询,删除,等子函数。 4.将子函数与主函数相连即可。该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能; 还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分􀁺 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 􀁺 查询(班级或个人)成绩: 􀁺 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。􀁺 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件实验环境以自己的电脑为主要的实验平台,运用Visual C+ 6.0这个软件进行反复的编写实验。实验界面截图1、开始时2、添加3、查询4、查询成绩5、写文本6、读取算法描述及实验步骤主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数 来做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉。这样完成删除。查询函数与之类似,将删除改为输出即可;求平均值函数与查询类似只是输出时只输出平均值而已。按平均值排序只要加一个排序函数即可。退出函数什么都不写,即可。程序流程图查询成绩添加成绩 添加学生成绩添加课程编号添加学生姓名添加学生学号查询班级成绩查询学生成绩查询班级成绩查询学生成绩课程编号学号查询姓名查询调试过程及实验结果总结经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C+这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。附录#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 1000 struct Lesson char LessonName100; char LessonNumber100; int LessonMark; float LessonCredit;struct Student char Name100; char Number100; int LessonCount; struct Lesson L100;struct Student SMAX;int StudentCount = 0; void PrintInterface(); int Student_Insert(); int Student_Delete(); void Student_Select();void Class_Select();void WriteFile(); void ReadFile(); int main() int n; PrintInterface(); scanf("%d", &n); void PrintInterface() int n;while (1) printf("n -欢迎使用学生成绩记录簿系统- "); printf("n| 1、添加 |n"); printf("n| 2、删除 |n"); printf("n| 3、查学生成绩 |n"); printf("n| 4、查班成绩表 |n"); printf("n| 5、写入文本文件 |n"); printf("n| 6、读取文本文件 |n"); printf("n| 0、退出 |n"); printf("n - "); printf("n选择操作:"); scanf("%d",&n); switch(n) case 1: if (Student_Insert() printf("n添加成功.回车继续n"); else printf("n添加失败.回车继续n"); break; case 2: Student_Delete(); break; case 3: Student_Select(); break; case 4: Class_Select(); break; case 5: WriteFile(); break; case 6: ReadFile(); break; case 0: exit(1); break; default: printf("无此功能,请重新选择,按回车确定n"); return 0;int Student_Insert() int i,j,n; printf("n请输入所添加的学生人数:"); scanf("%d", &n); if (StudentCount + n >= MAX) return 0; for (i = StudentCount; i < StudentCount + n; +i) printf("nt第%d个学生:n", i - StudentCount + 1); printf("nt学生学号:"); scanf("%s", &Si.Number);if(strlen(Si.Number)!=8) printf("输入错误,请重新输入"); return 0; printf("nt学生姓名:"); scanf("%s", Si.Name); printf("nt该学生所修课程数:"); scanf("%d", &Si.LessonCount); for (j = 0; j < Si.LessonCount; +j) printf("nt第%d门课:n", j + 1); printf("ntt课程编号:"); scanf("%s", Si.Lj.LessonNumber);if(strlen(Si.Lj.LessonNumber)!=5) printf("输入错误,请重新输入!"); return 0; printf("ntt课程名称:"); scanf("%s",Si.Lj.LessonName); printf("ntt课程成绩:"); scanf("%d", &Si.Lj.LessonMark); if(Si.Lj.LessonMark<0 | Si.Lj.LessonMark>100) printf("输入错误,请重新输入!"); return 0; printf("ntt课程学分:"); scanf("%f", &Si.Lj.LessonCredit);if(Si.Lj.LessonCredit<1 | Si.Lj.LessonCredit>5) printf("输入错误,请重新输入!"); return 0; if (Si.Lj.LessonMark < 60) Si.Lj.LessonCredit = 0; StudentCount += n ; return 1; int Student_Delete() char a100;char b100; int i, j; printf("n删除学生:n"); printf("n学生姓名:"); scanf("%s",a); printf("n学生学号:"); scanf("%s",b); if(strlen(b)!=8) printf("输入错误请重新输入");return 0; for (i = 0; i < StudentCount; i+) if (0=strcmp(Si.Name, a) && 0=strcmp(Si.Number, b) printf("n找到,删除n"); for (j = i + 1; j < StudentCount; j+) Sj - 1 = Sj; break; if (i = StudentCount | i > StudentCount) printf("n未找到该学生nn"); return 0; else StudentCount-; return 1; void Student_Select() int x;char y100; char a100; int i, j; printf("n输入所查学生信息(1.姓名 2.学号)选择:"); scanf("%d", &x); if (x = 1 | x = 2) if (x = 1) printf("n姓名:");fflush(stdin); gets(a); for (i = 0; i < StudentCount; i+) if (0=strcmp(Si.Name,a) printf("n学号:%st姓名:%sn", Si.Number, Si.Name); printf("n课程编号t课程名称t课程成绩t课程学分n"); printf("-n"); for (j = 0; j < Si.LessonCount; j+) printf("%stt%stt%dtt%fn", Si.Lj.LessonNumber, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj.LessonCredit); printf("-n"); printf("nn"); else printf("n学号:"); fflush(stdin);gets(y); for (i = 0; i < StudentCount; i+) if (strcmp(Si.Number,y)=0) printf("n学号:%st姓名:%sn", Si.Number, Si.Name); printf("n课程编号t课程名称t课程成绩t课程学分n"); printf("-n"); for (j = 0; j < Si.LessonCount; j+) printf("%stt%stt%dtt%fn", Si.Lj.LessonNumber,Si.Lj.LessonName,Si.Lj.LessonMark,Si.Lj.LessonCredit); printf("-n"); printf("nn"); break; printf("查找完毕.回车继续n"); getchar(); else printf("选择错误.回车继续n"); getchar(); return; void Class_Select() char a100; double x=0,y=0,z=0; int i, j; printf("n请输入课程编号:"); fflush(stdin); scanf("%s",a); printf("学号t姓名t课程名称t课程成绩t课程学分n"); printf("-n"); for (i = 0; i < StudentCount; i+) for (j = 0; j < Si.LessonCount; j+) if (strcmp(Si.Lj.LessonNumber,a)=0) printf("%st%st%stt%dtt%fn", Si.Number, Si.Name, Si.Lj.LessonName, Si.Lj.LessonMark, Si.Lj.LessonCredit); printf("-n"); z+=Si.Lj.LessonMark; x+; if (Si.Lj.LessonMark >= 60)y+; break; printf("n平均分:%ft及格率:%f%nn", z/x, y/x*100); printf("n查找完毕.回车继续n"); getchar();void WriteFile() FILE *fp; int i, j; char a100; printf("n请输入写入的文件地址:nn地址输入格式:例如d:Student.txt:"); scanf("%s",&a); printf("n写入中.n"); if (fp = fopen(a,"w") fprintf(fp,"%dn",StudentCount); for (i = 0; i < StudentCount; i+) fprintf(fp,"%st%st%dn",Si.Number, Si.Name,Si.LessonCount); for (j = 0; j < Si.LessonCount; j+) fprintf(fp,"%st%st%dt%fn", Si.Lj.LessonNumber,Si.Lj.LessonName, Si.Lj.LessonMark,Si.Lj.LessonCredit); printf("n写入完成.回车继续n"); fclose(fp); else printf("n写入失败.回车继续n"); getchar();void ReadFile() FILE *fp; int i, j; char a100; printf("n请输入读取的文件地址:nn地址输入格式:例如d:student.txt:"); scanf("%s",&a); printf("n读取中.n"); if (fp = fopen(a,"r") fscanf(fp,"%d",&StudentCount); for (i = 0; i < StudentCount; i+) fscanf(fp,"%s%s%d",&Si.Number, &Si.Name,&Si.LessonCount); for (j = 0; j < Si.LessonCount; j+) fscanf(fp,"%s%s%d%f",&Si.Lj.LessonNumber, &Si.Lj.LessonName,&Si.Lj.LessonMark, &Si.Lj.LessonCredit); printf("n读取成功.回车继续n"); fclose(fp); else printf("n读取失败.回车继续n"); getchar();第 36 页-

    注意事项

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

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




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

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

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

    收起
    展开