学生成绩记录簿设计汇编
学生考试成绩记录表样本

学生考试成绩记录表样本
1. 引言
学生考试成绩记录表是用来记录学生在各科目考试中的成绩的
文档。
该记录表可以帮助学生和老师了解学生的研究状况,评估学
生的学术能力,并为学生和家长提供有关学生研究进展的信息。
本
文档提供了一个学生考试成绩记录表的样本,旨在帮助学校和教师
更好地管理学生的考试成绩。
2. 学生考试成绩记录表样本
下面是一个学生考试成绩记录表的样本,包括了以下几个要素:
2.1 学生信息
- 学生姓名:[学生姓名]
- 学生学号:[学生学号]
- 班级:[班级名称]
- 年级:[年级名称]
- 日期:[填写日期]
2.2 考试科目和成绩
2.3 总评和排名
- 总成绩:[总成绩]
- 年级排名:[年级排名]
- 班级排名:[班级排名]
3. 结论
学生考试成绩记录表样本提供了一个基本的框架,可以根据实际需要进行调整和扩展。
学校和教师可以使用这个样本作为参考,
设计适合自己学校和班级的考试成绩记录表,更好地管理学生的考试成绩,促进学生的学习进步。
学生成绩记录表

学生成绩记录表学号:____________________日期:_____________________姓名:____________________班级:____________________科目期末成绩平时成绩总评成绩-------------------------------------------------------------------------语文数学英语物理化学生物历史地理政治体育美术音乐信息技术综合实践活动总评成绩说明:1. 期末成绩占60%权重,平时成绩占40%权重。
2. 总评成绩根据期末成绩和平时成绩综合计算得出。
3. 总评成绩根据以下等级划分:- 优秀:90分及以上- 良好:80-89分- 中等:70-79分- 及格:60-69分- 不及格:60分以下学生评语:-------------------------------------------------------------------------备注:学生评语需由任课教师填写,对学生在该科目上的表现予以评价,包括学生的优点、问题和发展方向等。
说明:1. 请学生仔细核对个人信息,如有错误请及时向班主任或辅导员反映。
2. 请学生认真对待成绩记录表,如有异议请及时与任课教师沟通解决。
3. 学生成绩记录表需在上交给班主任或辅导员前签字确认。
学生签字:______________________ 日期:_____________________家长签字:______________________ 日期:_____________________-------------------------------------------------------------------------以上为学生成绩记录表的样板,用于对学生综合成绩进行记录和评估。
该表格清晰地列出了各科目的期末成绩、平时成绩以及总评成绩,并提供了学生评语的空间,便于教师对学生进行评价和反馈。
c语言课程设计学生成绩记录簿

目录1题目要求 (1)2设计思想 (2)3系统完成功能及框架图 (3)4界面设计 (4)5核心算法及说明 (5)6结论 (11)7参考资料 (12)8后记 (13)9附录 (14)题目要求《学生成绩记录薄》是一个操作比较简单,功能相对齐全,适合于各单科教师记录并分析学生成绩的小程序。
该程序主要功能是登记学生考试成绩,并可以查询、修改,还可以显示全部学生成绩,同时能显示学生各分数段成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~69、70~79、80~89、90分以上各分数段的学生信息。
本人增加的功能:(1)删除学生记录(2)对学生成绩进行排序设计思想此课题是设计一个学生成绩记录薄,以帮助老师储存以及全方位的了解学生的考试成绩。
因此实际需要设计的模块有:输入学生成绩模块,查询模块,修改模块,显示全部成绩模块,显示分段成绩模块,排序模块,删除记录模块,文件保存模块。
1.主函数模块:用switch语句把各模块连在一起。
2.输入学生成绩模块:用于添加学生成绩的记录,如果输入0则跳出该模块函数。
1为继续输入。
3.查询记录模块:用于查找已经记录在案的学生记录,系统提供有两种查找方法:按学号或姓名,选择其中任一种均可找到以需要找的记录。
如果记录不存在,系统会做提醒,4.修改记录模块:用于修改在案同学的记录,如果文件为空,系统会提醒记录不存在,输入学号,系统找到与他匹配的记录,然后输入正确记录并进行保存。
5.全部显示模块:用于显示全部在案记录,用一个for循环,就可实现。
6排序模块:用于对学生成绩进行排序,用冒泡排序可解决。
7.分段显示模块:用于显示各个分数段的学生记录,这里用if循环语句实现的。
8.文件保存模块:用于将表上的所有记录保存到文件中。
班级成绩记录表

班级成绩记录表
1.引言
本文档旨在记录班级学生的成绩情况,以便于教师和家长随时了解学生成绩的进展情况。
2.记录表格
下面是班级成绩记录表格,包括学生姓名、科目和成绩。
学生姓名 | 科目 | 成绩
------- | ---- | ----
张三。
| 数学 | 95
李四。
| 英语 | 85
王五。
| 物理 | 90
3.分析与讨论
3.1 数学成绩
___在数学科目取得了优秀成绩,得分为95分,表现出色。
3.2 英语成绩
___在英语科目取得了中等成绩,得分为85分,有进步空间。
3.3 物理成绩
___在物理科目取得了良好成绩,得分为90分,表现良好。
4.结论
从以上数据可以看出,班级学生的成绩总体上呈现良好状态,但仍有部分学生需要加强努力,提高成绩。
5.建议
针对不同学科的表现,我们建议以下改进措施:
- 对于数学成绩优秀的学生,继续保持良好的研究状态。
- 对于英语成绩中等的学生,推荐参加额外的英语辅导班加强研究。
- 对于物理成绩良好的学生,鼓励他们继续保持研究的热情,争取更好的成绩。
6.参考文献
- 无。
中小学学生成绩记分册(模版带公试只需输入考试成绩,自动生成其它分数)

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
使用说明:只需粘贴姓名,输入成绩(输入成绩时 只需输入白色格子里的成绩,灰色的格子里的成绩不 要动,不然公式破坏了要重新设置公式),灰色成绩 自动生成。第一学期和第二学期学生姓名是错位的, 千万别对错位子。打印的时候一定要选中打印,否则 会浪费纸。如是第学期只需选中第一学期打印即可; 如果是第二学期先选中第一学期打印后,反面第一学 打印好的,再选中第二学期打印即可,然后沿边剪切 装订成册就可以了(装订时建议用双面胶更美观)。
期末
40%
上期 40% 0 0 0 0 0 0 0 0 0 0 0 0 0
下期 60% 0 0 0 0 0 0 0 0 0 0 0 0 0
学年 成绩
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
第 二 学 期 成 绩
1 2 3 4 5 6 7 平时 平均 30%
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
学 年 成 绩
学期 成绩
99
30%
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
期末
40%
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
学生成绩记录簿设计

《高级语言程序设计》课程设计报告题目:专业:班级:姓名:指导教师:成绩:计算机与信息工程系2014年6月20日目录1 设计内容及要求 (1)1.1主要功能: (1)1.2实现流程: (1)2 概要设计 (4)3 程序代码 (5)4 设计结果 (18)5 总结 (19)参考文献 (19)1 设计内容及要求1.1主要功能:每位学生成绩信息需包括:姓名,四门课程成绩(语文、数学、英语和计算机)等信息。
设计的学生成绩记录簿设计需具备以下功能:1)能完成对学生成绩的录入、修改2)能按班级统计学生的成绩3)能查询学生成绩4)能按班级输出学生的成绩单所有数据使用二进制文件方式存储数据,系统以菜单方式工作1.2实现流程:流程图是课程设计中极其重要的一部分,只有充分对题目进行分析,将问题细致化,才能更好的解决问题。
录入流程图显示流程图查询流程图修改流程图删除流程图2 概要设计学生成绩记录簿设计是一个教育学生单位不可或缺的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩记录簿设计能为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着血多缺点。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算及应用的一部分,使用计算机对学生信息及成绩进行管理,具有手工管理所无法比拟的优点。
所以设计学生成绩记录簿设计是极其需要的。
随着计算机的发展,高级语言也随着产生,c语言就是其中一种,并成为国内外广泛使用的计算机语言。
学会使用c语言进行课程设计是计算机工作者的一项基本功,所以进行课程设计也是必不可少的。
此次课程设计根据是根据要求设计一个系统,其中要利用c语言中的结构体、子函数主函数、选择语句、条件语句等知识进行程序编写。
相应的函数,可实现成绩的录用、修改等要求,并在函数右侧备注。
3 程序代码#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 1000typedef struct Lesson //定义课程结构体{int Lesson_Num;char Lesson_Name[50];int Lesson_Mark;int Lesson_Credit;}Lesson;typedef struct Student //定义学生的结构体{char Name[50];int Num;int Lesson_Count;Lesson L[20];}Student;Student S[MAX];static int Student_Count = 0; //记录学生数的变量void PrintInterface(); //打印界面int AddStudent(); //添加,带返回值,提示操作成功int DelStudent(); //删除,带返回值,提示操作成功void CheckStudent(); //查学生成绩void CheckClass(); //查班成绩表void WriteFile(); //写入文本文件void ReadFile(); //读取文本文件void main(){int Choice;while (1){PrintInterface();scanf("%d%*c", &Choice); //"%*c"是吸收回车的,因为后面会输入字母类型if (Choice >= 0 && Choice <= 6) //选择操作合法{switch (Choice){case 0: exit(1);case 1:{system("cls");if (AddStudent()) printf("\n添加成功...回车继续\n");else printf("\n添加失败...回车继续\n");getchar();getchar();system("cls");}case 2:{system("cls");if (DelStudent()) printf("\n删除成功...回车继续\n");else printf("\n删除失败...回车继续\n");getchar();getchar();system("cls");break;}case 3:{system("cls");CheckStudent();system("cls");break;}case 4:{system("cls");CheckClass();system("cls");break;}case 5: WriteFile();system("cls");break;case 6: ReadFile();system("cls");break;}}else{printf("无此功能..重新选择..回车确定\n"); //选择操作非法 getchar();system("cls"); //清屏函数}}}void PrintInterface(){printf("\t -------------------------- \n");printf("\t| 1、添加 |\n");printf("\t| |\n");printf("\t| 2、删除 |\n");printf("\t| |\n");printf("\t| 3、查学生成绩 |\n");printf("\t| |\n");printf("\t| 4、查班成绩表 |\n");printf("\t| |\n");printf("\t| 5、写入文本文件 |\n");printf("\t| |\n");printf("\t| 6、读取文本文件 |\n");printf("\t| |\n");printf("\t| 0、退出 |\n");printf("\t -------------------------- \n");printf("\t选择操作:");}int AddStudent(){int S_count, i, j;printf("\n添加中......\n");printf("\n添加学生人数(如1、2 ……999):");scanf("%d", &S_count);if (Student_Count + S_count >= MAX) return 0; //超过了数组上限for (i = Student_Count; i < Student_Count + S_count; i++){printf("\n\t第%d个学生:\n", i - Student_Count + 1);printf("\n\t学生学号:"); scanf("%d%*c", &S[i].Num);printf("\n\t学生姓名:"); gets(S[i].Name);printf("\n\t该学生所修课程数:"); scanf("%d", &S[i].Lesson_Count);for (j = 0; j < S[i].Lesson_Count; j++){printf("\n\t第%d门课:\n", j + 1);printf("\n\t\t课程编号:"); scanf("%d%*c", &S[i].L[j].Lesson_Num);printf("\n\t\t课程名称:"); gets(S[i].L[j].Lesson_Name); printf("\n\t\t课程成绩:"); scanf("%d", &S[i].L[j].Lesson_Mark);printf("\n\t\t课程学分:"); scanf("%d", &S[i].L[j].Lesson_Credit);if (S[i].L[j].Lesson_Mark < 60) S[i].L[j].Lesson_Credit = 0; //不及格的课程学分为0}}Student_Count += S_count;return 1;}int DelStudent(){char *D_Name;int D_Num;int i, j;printf("\n填写待删除学生的信息:\n");printf("\n学生姓名:"); gets(D_Name);printf("\n学生学号:"); scanf("%d", &D_Num);for (i = 0; i < Student_Count; i++){if (!strcmp(S[i].Name, D_Name) && S[i].Num == D_Num) {printf("\n找到该学生,删除中......\n");for (j = i + 1; j < Student_Count; j++){S[j - 1] = S[j];}break;}}if (i == Student_Count){printf("\n未找到该学生...请核对所填信息\n\n");return 0;}else{Student_Count--;return 1;}}void CheckStudent(){int C_Choice;char C_Name[50];int C_Num;int i, j;printf("\n输入所查学生信息(1.姓名 \\ 2.学号)选择:");scanf("%d%*c", &C_Choice);printf("\n查找中......\n");if (C_Choice == 1 || C_Choice == 2) //选择合法{if (C_Choice == 1){printf("\n姓名:"); gets(C_Name);for (i = 0; i < Student_Count; i++) //全部穷举,防止同名同姓{if (!strcmp(S[i].Name, C_Name)){printf("\n学号:%d\t姓名:%s\n", S[i].Num,S[i].Name);printf("\n课程编号\t课程名称\t课程成绩\t课程学分\n");printf("-----------------------------------------------------\n");for (j = 0; j < S[i].Lesson_Count; j++){printf("%d\t\t%s\t\t%d\t\t%d\n",S[i].L[j].Lesson_Num,S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,S[i].L[j].Lesson_Credit);printf("-----------------------------------------------------\n");}printf("\n\n");}}}else{printf("\n学号:"); scanf("%d%*c", &C_Num);for (i = 0; i < Student_Count; i++) //不用全部穷举,学号唯一{if (S[i].Num == C_Num){printf("\n学号:%d\t姓名:%s\n", S[i].Num, S[i].Name);printf("\n课程编号\t课程名称\t课程成绩\t课程学分\n");printf("-----------------------------------------------------\n"); for (j = 0; j < S[i].Lesson_Count; j++){printf("%d\t\t%s\t\t%d\t\t%d\n",S[i].L[j].Lesson_Num,S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,S[i].L[j].Lesson_Credit);printf("-----------------------------------------------------\n"); }printf("\n\n");break;}}}printf("查找完毕...回车继续\n");getchar();}else //选择不合法{printf("选择错误...回车继续\n");getchar();return;}}void CheckClass(){int C_LNum;double SSNum = 0, PassSNum = 0, SMark = 0;int i, j;printf("\n请输入课程编号:");scanf("%d%*c", &C_LNum);printf("\n查找中......\n\n");printf("学号\t姓名\t课程名称\t课程成绩\t课程学分\n");printf("----------------------------------------------------\n"); for (i = 0; i < Student_Count; i++){for (j = 0; j < S[i].Lesson_Count; j++){if (S[i].L[j].Lesson_Num == C_LNum){printf("%d\t%s\t%s\t\t%d\t\t%d\n", S[i].Num, S[i].Name, S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,S[i].L[j].Lesson_Credit);printf("----------------------------------------------------\n");SMark += S[i].L[j].Lesson_Mark;SSNum ++;if (S[i].L[j].Lesson_Mark >= 60) PassSNum++;break;}}}printf("\n平均分:%.2lf\t及格率:%.2lf%%\n\n", SMark / SSNum, PassSNum / SSNum * 100);printf("\n查找完毕...回车继续\n");getchar();}void WriteFile(){FILE *fp;int i, j;char Adr[100];printf("\n请输入写入的文件地址:\n\n地址输入格式:例如d:\\\\Student.txt(\\\\为转义字符):");scanf("%s%*c", Adr);printf("\n写入中......\n");if (fp = fopen(Adr,"w")) //写入文件{fprintf(fp,"%d\n",Student_Count);for (i = 0; i < Student_Count; i++){fprintf(fp,"%d\t%s\t%d\n",S[i].Num,S[i].Name,S[i].Lesson_Count);for (j = 0; j < S[i].Lesson_Count; j++){fprintf(fp,"%d\t%s\t%d\t%d\n", S[i].L[j].Lesson_Num, S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark, S[i].L[j].Lesson_Credit);}}printf("\n写入完成...回车继续\n");fclose(fp);}else{printf("\n写入失败...回车继续\n");}getchar();}void ReadFile(){FILE *fp;int i, j;char Adr[100];printf("\n请输入读取(为防止读入错误,希望与写入文件内容格式一致)的文件地址:\n\n地址输入格式:例如d:\\\\Student.txt(\\\\为转义字符):");scanf("%s%*c", Adr);printf("\n读取中......\n");if (fp = fopen(Adr,"r")){fscanf(fp,"%d",&Student_Count);for (i = 0; i < Student_Count; i++){fscanf(fp,"%d%s%d",&S[i].Num,&S[i].Name,&S[i].Lesson_Count);for (j = 0; j < S[i].Lesson_Count; j++){fscanf(fp,"%d%s%d%d",&S[i].L[j].Lesson_Num,&S[i].L[j].Lesson_Name,&S[i].L[j].Lesson_Mark, &S[i].L[j].Lesson_Credit);}}printf("\n读取成功...回车继续\n");fclose(fp);}else{printf("\n读取失败...回车继续\n");}getchar();}4 设计结果计算机与信息工程系《高级语言程序设计》课程设计报告5 总结课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
成都市学期成绩记录表

4 小图 #### 女 1班
98 99 ## 88 88 94 98 99 ## 88 88 94 98 99 ## 88 88 94 98 99 ## 88 88 94 98
5 小图 #### 男 1班
## 98 98 98 88 94 ## 98 98 98 88 94 ## 98 98 98 88 94 ## 98 98 98 88 94 ##
34 小A #### 女 2班
86 87 88 65 90 91 86 87 88 65 90 91 86 87 88 65 90 91 86 87 88 65 90 91 86
35 小B #### 男 2班
59 60 87 62 63 64 59 60 87 62 63 64 59 60 87 62 63 64 59 60 87 62 63 64 59
24 小A #### 女 1班
92 93 94 95 96 97 92 93 94 95 96 97 92 93 94 95 96 97 92 93 94 95 96 97 92
25 小B #### 女 1班
98 99 ## 88 88 94 98 99 ## 88 88 94 98 99 ## 88 88 94 98 99 ## 88 88 94 98
86 87 65 89 90 85 86 87 65 89 90 73 74 75 56 76 77 26 26 27 21 16 26 502 26 3012 26
93 94 95 96 97 92 93 94 95 96 97 79 80 81 81 82 83 11 11 12 6 1 1 567 6 3402 6
86 87 65 89 90 85 86 87 65 89 90 73 74 75 56 76 77 26 26 27 21 16 26 502 26 3012 26
考试成绩单表格模板

考试成绩单表格模板一、背景介绍考试成绩单是对学生在一次或多次考试中的表现进行总结和记录的重要文件。
通过对学生的分数进行统计和分析,可以更好地评估学生的学习状况,及时发现问题,针对性地进行教学和辅导。
为了方便教师和学校对学生成绩进行管理和分析,设计一个规范的考试成绩单表格模板是很有必要的。
二、考试成绩单表格模板设计2.1 表格模板结构考试成绩单表格模板可以包含以下基本结构:•学生信息:包括学生姓名、学号、班级等基本信息;•考试信息:包括考试科目、考试时间、考试地点等信息;•分数情况:列出每个学生在每个科目上的考试成绩;•综合评价:对学生在该次考试中的整体表现进行综合评价;2.2 表格模板样式考试成绩单表格模板的样式可以根据实际需求进行设计,一般包括以下几个方面:•表头设计:可以设置表头的背景色、字体颜色等,用于突出显示表头信息;•表格边框:可以设置表格边框的颜色和宽度,用于美化表格;•分数单元格样式:可以根据分数的高低,设置对应单元格的背景色或字体颜色,以便直观地反映学生的成绩水平;•综合评价样式:可以设置综合评价的字体颜色、字体大小等,用于强调学生在该次考试中的整体表现。
三、使用该表格模板的方法3.1 下载表格模板下载考试成绩单表格模板,并保存到本地电脑中,以便后续使用。
3.2 填写学生信息打开表格模板,在学生信息栏中填写学生的姓名、学号、班级等基本信息。
3.3 添加考试科目和分数在表格中按照实际考试的科目顺序添加对应的科目名称,然后在每个科目下填写学生的具体成绩。
3.4 添加综合评价在表格中合适位置添加综合评价,对学生在该次考试中的整体表现进行评价和总结。
3.5 保存和打印完成表格的填写后,保存成绩单文件,并打印出来。
教师可将打印好的成绩单分发给学生,学生和家长也可通过获取到的成绩单及时了解学生成绩。
四、使用注意事项•确保填写学生信息时准确无误,以免给学生和教师带来不必要的困扰;•在填写考试科目和分数时,要核对清楚,确保准确地记录学生的成绩;•在填写综合评价时,要客观公正地评价学生的表现,避免主观臆断和偏颇。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章程序设计的目的和要求 (1)1.1课程设计的目的 (1)1.2课程设计的要求 (1)1.2.1程序设计报告的内容要 (1)1.2.2 程序设计报告的质量要求 (2)第二章课程设计任务内容 (3)2.1考核内容 (3)2.1.1编写的C++语言程序 (3)2.1.2课程设计报告 (3)2.2课题 (3)第三章详细设计说明 (4)3.1函数说明 (4)3.2函数流程图 (5)3.3.1 主函数流程图 (5)3.3.2 子函数流程图 (5)3.3编码及调试 (7)第四章软件使用说明 (9)4.1应用程序运行环境的要求 (9)4.2应用程序功能的详细说明 (9)附录一:参考文献 (12)附录二:程序清单 (13)《程序设计基础》课程设计---学生成绩记录簿第一章程序设计的目的和要求1.1课程设计的目的1. C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
2.通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
3. C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。
1.2课程设计的要求1.2.1程序设计报告的内容要求课程设计要求学生遵循软件开发过程中的基本规范,运用结构化程序设计的方法,程序设计报告应该能够反映学生完成课程设计题目的全部情况,包括对课程设计题目要求的分析、应用程序的设计、程序的测试过程以及程序的运行情况等,因此,编写课程设计报告是课程设计一个不容忽视的重要环节。
一个高质量的课程设计报告应该满足下列条件:报告内容完整、观点正确;层次清晰、语流畅、用词准确且无二义性;能够反映结构化程序设计方法的基本原则;绘制的所有图表规范且正确。
用户文档是面向使用该应用程序的用户编写的,因此,应该将用户需要知道的所有内容用简练、清晰的语言描述清楚。
下面是用户文档应该包含的主要内容:(1)应用程序运行环境的要求;(2)应用程序功能的详细说明;(3)流程图;(4)代码及调试。
1.2.2 程序设计报告的质量要求一个高质量的课程设计报告应该满足下列条件:●报告内容完整、观点正确;●层次清晰、语言流畅、用词准确且无二义性;●能够反映结构化程序设计方法的基本原则;●绘制的所有图表规范且正确。
第二章课程设计任务内容2.1考核内容2.1.1编写的C++语言程序●针对编写的C++程序,应该主要考查下列内容:●是否符合题目要求,是否完成了主要功能;●是否存在语法错误、逻辑错误及运行错误;●程序设计是否合理;●程序是否具有良好的可读性和可靠性;●是否符合结构化程序设计所倡导的基本理念;●用户界面是否友好。
2.1.2课程设计报告●针对提交的课程设计报告,应该主要考查下列内容:●程序设计的报告内容是否全面,观点是否正确;●设计过程是否符合结构化程序设计方法的基本原则;●层次是否清楚,语言是否通顺;●各种图表是否规范;是否具有良好的程序设计习惯。
2.2课题设计一个学生成绩记录簿c++程序,该系统的主要功能如下:1)创建信息并以磁盘文件保存;2)读取磁盘文件并显示输出所有学生的成绩;3)按学号或姓名查询成绩;4)添加成绩记录;5)修改指定姓名或学号的学生的成绩并可存盘;6)显示输出60分以下、60-79、80-89、90分以上各分数段的学生信息;第三章详细设计说明3.1 函数说明Init () 初始化函数Create () 创建链表Delete (STUDENT) 删除记录Print(STUDENT *h) 显示所有记录Search(STUDENT *h)查找学生成绩Insert(STUDENT *h) 插入记录1.插入记录函数函数原型:int insert(STUDENT *h)功能:根据用户指定将信息插入特定位置参数:结构体数组和记录数要求:输入信息2.查找函数函数原型:int search()功能:根据用户需要输出记录参数:记录数组和记录成绩以及姓名s要求:判断内存中记录的名字与输入的是否相等,如果相等则输出,否则提前结束 3.删除记录函数函数原型:int delete(STUDENT *h)功能:删除内存链表中的指定结点参数:记录数组和记录条数,成绩要求:给出相关信息3.2 函数流程图3.3.1 主函数流程图图3-1 函数主流程图3.3.2 子函数流程图如图3-2所示:图3-2流程图从表中删除原有纪录模块,算法,如图3-3所示:图3-3删除信息流程图按照姓名查找纪录模块,算法,如图3-4所示:图3-4查找信息流程图按照姓名删除记录模块,算法,如图3-5所示图3-5 修改信息流程图3.3 编码及调试在设计该程序的时候我采用了结构化程序方法编辑,并在源代码的基础上添加了中文注释,但是在该系统的编写过程中仍然有许多错误,主要的有:注释文字的排版,定义错误,句式的语法错误。
在完善程序时,我将源代码先打印下来反复的捉摸和研究,力图在上机运行时先改正一些低级错误,如缺少“;”之类。
在仔细检查之后,将源代码上机调试—进行编译,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正……直到顺利显示我预期想得到程序效果。
具体调试过程如下:1、首先,在本次调试过程中我碰到了在上机前根本没有想到的错误:在注释的时候,注释文字应写在一起中间不能有中断,不能再其中包含c语言的语句。
否则会引起错误,例如格式不正确或是多了字符等。
2、缺少变量定义或是定义位置不正确;由于该程序相对来讲稍有些长,前后有些变量很难联系起来,但是在错误信息的提示下一般还是很是可以找到。
不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。
为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。
3、句式的语法错误;大多的语法错误在通过书本参考下能够修改。
主要是平时看书不仔细、不太注意而产生的。
如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。
这些语法错误有信息框的提示一般是能够排除的。
编译、连接的成功并不意味着程序的最终成功。
逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。
这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。
这也是本次程序编辑过程中碰到的最大的难题。
往往运行之后得不到另人满意的结果,此时解决的方法一则可以用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。
若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。
如此循环往复,直到最后程序运行成功。
在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。
诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。
所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。
以上是调试的全过程。
第四章软件使用说明4.1 应用程序运行环境的要求程序运行的环境Win9X/Win2000/WinXP/Win20034.2 应用程序功能的详细说明步骤1:根据数字提示从1-5中选择要操作的功能,如图4-1所示:图4-1软件使用图示步骤2:按1键,会出现提示“插入信息”,按2,会出现“删除信息”,按3,“修改信息”,按4,会出现“查看信息”,按5,“保存”,按q键即可退出,如图4-2所示:图4-2软件使用图示步骤3:键入1回车,会出现提示“请输入要删除学生信息”,现在就可以删除学生信息,如图4-3所示:图4-3软件使用图示步骤4:键入2及Enter键,会出现提示“请输入要查找的学生信息”,然后根据提示将该学生的信息删除,如图4-4所示:图4-4软件使用图示第五章课程设计心得与体会在课程设计过程中,遇到了不少的问题。
这迫使我不得不参考一些课外资料,向同学和老师们请教。
不过,最后在我的努力和老师同学们的帮助下,还是把程序写出来了,这令我非常高兴。
但是在运行过程中又出现了问题。
一开始就出现了十几个错误,这令我的信心有所下降,有的错误我根本就不知道是啥意思,我就向同学以及上网查一下资料。
在经过几天的检查与修改后,终于能编译出来了,这又使得我非常高兴。
但是运行的结果不是很理想,没能够达到我预想的那样。
在运行出来之后,我有点不敢相信这是我通过努力做出来的,对于我这个编程新手,在课程设计中,刚开始真有点对自己失去信心,在硬着头皮的情况下,还是做出来了。
发现其实事情并不像刚开始自己想的那样。
现在回想起来好像就是开头克服自己最难了,这大概就是人们说的万事开头难。
附录一:参考文献[1] 谭浩强. C++程序设计. 清华大学出版社.[2] 严蔚敏吴伟民. 数据结构(C语言版). 清华大学出版社附录二:程序清单#include<iostream.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<fstream.h>class student{private:student* next;public:char stu_num[15]; //学号char stu_name[30]; //姓名 float stu_score ; //成绩/*在该节点后插入一个几点*/void afterInsert(student *p);/*在该节点后删除一个节点*/void afterDelete( );/*获得下一个节点的指针*/student *getNext(){return next;}/***********查询学生信息************/void getMage( );/******学生信息修改******/void changeMage(int n,char *ptr);void changegrade(float p);/******构造*****/student(char *num,char *name ,float score);student();};void student::changegrade(float p){stu_score=p;}student::student() //构造{strcpy(stu_num,"\0");strcpy(stu_name,"\0");stu_score=0;next='\0';}///*********************构造//student::student(char *num,char *name, float score) {strcpy(stu_num,num);strcpy(stu_name,name);stu_score=score;next='\0';}void student::afterInsert(student *p)//插入节点{p->next=next;next=p;}void student::afterDelete( ) //删除节点{student *p=next;next=p->next;delete p;}void student::getMage() //获得信息{cout<<"学号:"<<stu_num <<" 姓名:"<<stu_name; cout<< " c++成绩:"<<stu_score<<endl;}void student::changeMage(int n,char *ptr){switch(n){case 1: strcpy(stu_num,ptr);break;case 2: strcpy(stu_name,ptr);}}//建立链表函数void construct_list(student *tail){student *p=new student;char very[20];float achieve;cout<<"请输入学号:"<<endl;cin>>very;p->changeMage(1,very);cout<<"请输入姓名:"<<endl;cin>>very;p->changeMage(2,very);cout<<"请输入c++成绩:"<<endl;cin>>achieve;p->changegrade(achieve);system("cls");cout<<"信息输入完毕"<<endl;for(;tail->getNext()!='\0';) tail=tail->getNext();tail->afterInsert(p);}/*********查询信息*********/student *findmege(student *head ){loop:cout<<"1--按姓名查询 2--按学号查询 q--返回上一级菜单"<<endl;char p[5],ptr[20];student *mid=head;cin>>p;if(p[0]!='1'&&p[0]!='2'&&p[0]!='q'||strlen(p)>1){system("cls");cout<<"对不起,你的输入有误,请重新输入!"<<endl;goto loop;}switch(p[0]){case '1':{system("cls");cout<<"请输入要查找姓名:"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_name)!=0;mid=mid->getNext())if(mid->getNext()=='\0'){cout<<"对不起,你要查找的人不存在,请确认你的输入是否正确!"<<endl; goto loop;}return mid;}case '2':{system("cls");cout<<"请输入您要查找的学号:"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_num)!=0;mid=mid->getNext())if(mid->getNext()=='\0'){cout<<"对不起,您要查找的内容不存在,请确认您的输入是否正确!"<<endl; goto loop;}return mid;}case 'q': return '\0';default:{system("cls");cout<<"对不起,您的输入有误,请重新输入!"<<endl;goto loop;}}}/******************删除链表节点***********************/void delete_list(student *head){student *p='\0';char selet[4];system("cls");cout<<"在删除前,系统会根据您的提示找到您要删除的学生信息!"<<endl;p=findmege(head);if(p!='\0'){cout<<"确认要删除吗(yes/任意键返回)"<<endl;cin>>selet;if(strcmp(selet,"yes")==0){for(;head->getNext()!=p;head=head->getNext());head->afterDelete();system("cls");cout<<"该信息删除成功!"<<endl;}}}/*******************修改节点信息********************/void change_info(student *head){system("cls");cout<<"在您修改前,系统会根据您提供的信息找的您要修改的信息:"<<endl; student *p='\0';float achieve;p=findmege(head);if(p!='\0'){cout<<"请输入c++成绩:"<<endl;cin>>achieve;p->changegrade(achieve);system("cls");cout<<"修改成功"<<endl;}}/**************输出学生成绩信息**************/void output(student *head){system("cls");cout<<"1-查看指定学生信息;2-查看所有学生信息;3-分段输出学生信息"<<endl; char ch;int n=0;head=head->getNext();cin>>ch;switch(ch){case '1': head=findmege(head);if(head=='\0') break;head->getMage();break;case '2': while(head){head->getMage();head=head->getNext();}break;case '3': cout<<"a-60分以下;b-60~70分之间;c-70~80分之间;d-80~90分之间;e-90~100分之间:"<<endl;cin>>ch;switch(ch){case 'a': while(head){if(head->stu_score<=60) {head->getMage();n++;}head=head->getNext();}break;case 'b': while(head){if(head->stu_score>60&&head->stu_score<=70) {head->getMage();n++;} head=head->getNext();}break;case 'c': while(head){if(head->stu_score>70&&head->stu_score<=80) {head->getMage();n++;} head=head->getNext();}break;case 'd': while(head){if(head->stu_score>80&&head->stu_score<=90) {head->getMage();n++;} head=head->getNext();}break;case 'e': while(head){if(head->stu_score>90&&head->stu_score<=100){head->getMage();n++;}head=head->getNext();}}if(n==0) cout<<"该分段内没有您要找的学生信息"<<endl;}}/*****************主菜单************************/void mainmenu(student *head){char selet[10];int n=1;ofstream outfile ;ifstream infile ;student *p,*ptr ;student *test=head,*mid ;cout<<"*************************欢迎进入学生信息管理系统*************************"<<endl;do{cout<<"******************************************************************** ******"<<endl;cout<<"1 插入信息; 2 删除信息; 3 修改信息; 4 查看信息; 5 保存"<<endl;cout<<"q键退出 "<<endl;cout<<"******************************************************************** ******"<<endl;cin>>selet;if(((selet[0]<'1'||selet[0]>'6')&&selet[0]!='q')||strlen(selet)>1){system("cls");cout<<"您的输入有误,请重新输入!"<<endl;break;}switch(selet[0]){case '1':output(head);break;case '2': delete_list(head);break;case '3': change_info(head);break;case '4': construct_list(head);break;case '5': outfile.open("students.txt", ios::out|ios::app); for(p=head->getNext();p!='\0';p=p->getNext()){outfile<< p->stu_name <<' ';outfile<< p->stu_num <<' ';outfile<< p->stu_score <<' ';outfile<<endl;}outfile.close();system("cls");cout<<"保存成功!"<<endl;break;case 'q': break;}}while(selet[0]!='q');}void main(){student head ; mainmenu(&head); }。