ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:361.04KB ,
资源ID:6578531      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6578531.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计学生成绩记录簿.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计学生成绩记录簿.docx

1、C语言程序设计学生成绩记录簿课程实验报告课程名称C语言程序设计班级13新能源2班实验日期2013年8月1号姓名许鑫学号130370236实验成绩实验名称学生成绩记录簿系统实验题目描述本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。 1.建立一个主界面 2.用switch语句进行分类讨论 3.分别进入录入,查询,删除,等子函数。 4.将子函数与主函数

2、相连即可。该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能; 还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分􀁺 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 􀁺 查询(班级或个人)成绩: 􀁺 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。􀁺 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:

3、 a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件实验环境以自己的电脑为主要的实验平台,运用Visual C+ 6.0这个软件进行反复的编写实验。实验界面截图1、开始时2、添加3、查询4、查询成绩5、写文本6、读取算法描述及实验步骤主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数 来做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉。这样完成

4、删除。查询函数与之类似,将删除改为输出即可;求平均值函数与查询类似只是输出时只输出平均值而已。按平均值排序只要加一个排序函数即可。退出函数什么都不写,即可。程序流程图调试过程及实验结果总结经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理

5、解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C+这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好

6、的程序,有时候需要多次的更正才能达到所要的运行结果。附录#include #include #include #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 PrintInte

7、rface(); 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、

8、查学生成绩 |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(); br

9、eak; 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 Student

10、Count + 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); pr

11、intf(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.LessonMark100) printf(输入错误,请重新输入!); return 0; printf(ntt课程学分:); scanf(%f, &Si.Lj.Less

12、onCredit); if(Si.Lj.LessonCredit5) 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(输入错

13、误请重新输入); 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) 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.学号)选择:

14、); 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.LessonNu

15、mber, 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.LessonCo

16、unt; 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

17、(stdin); scanf(%s,a); printf(学号t姓名t课程名称t课程成绩t课程学分n); printf(-n); for (i = 0; i StudentCount; i+) for (j = 0; j = 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

18、(%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); pr

19、intf(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();Welcome !欢迎您的下载,资料仅供参考!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1