课程设计成绩记录薄
- 格式:docx
- 大小:429.11 KB
- 文档页数:33
合肥学院计算机科学与技术系课程设计报告2012~2013学年第二学期课程面向过程综合设计课程设计名称C语言成绩簿学生姓名学号专业班级指导教师2013年6月第一章需求分析1.1 任务要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。
1.2任务问题:如何运用我们已学的c语言知识完成要求?如何制作相应界面?switch的应用该如何实现?如何完成相应的数组或链表的实现与应用?怎样进行相应的文件的读写?1.3任务的解决步骤:步骤:1.建立一个主界面。
2.用switch语句进行分类讨论。
3.分别进入录入,查询,修改,学生分数段统计等子函数。
4.将子函数与主函数相连即可。
第二章算法设计1、设计思想2.1 程序结构(流程图)2.2 重要的数据结构2.3主要算法思想(文字描述)本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、修改等。
我设计的这个通讯录系统也初步实现了人员信息的显示、修改、查找、等必要的功能,并通过子函数与主函数相连来完成相应的功能。
2.设计表示int Student_Insert( ); (添加学生成绩)void edit( ); (修改)void Student_Search( );(查找)void WriteFile( ); (写入文件)void ReadFile( ); (读取文件)void Student_Select( );(分数段选择)void PrintMark( );(打印学生分数)void NameChange( );(按姓名修改)void NumberChange( );(按学号修改)3.实现注释除了没有用链表进行实验的缺点外,基本可以实现任务要求,界面简洁,程序简单,易操作。
学习资料收集于网络,仅供参考计算机信息工程学院《操作系统》课程设计报告题目:成绩记录簿专业:计算机科学与技术(网络方向)班级:16级网络一班学号:2016090240131姓名:杨露露指导教师:刘援完成日期:2017.1.6学习资料收集于网络,仅供参考目录1 设计目的 (III)2 功能描述 (III)2.1 模块功能 (III)2.2 流程图 (IV)3 总体设计 (XII)3.1 功能模块设计 (XII)3.2 数据结构设计 (XII)3.3 函数功能描述 (XIII)4 程序实现 (XIII)4.2 运行结果 (XXVI)5 课程设计总结 (XXXI)学习资料收集于网络,仅供参考成绩记录簿1.设计要求:基本功能a)添加成绩b)删除成绩c)查询学生成绩d)查询班级成绩e)退出拓展功能a)写入文件b)读取文件创新(自拟)功能:程序实现的其它功能由个人自拟。
2.设计要求具体说明基本功能:成绩记录簿中记录以下数据:成绩记录簿1.添加2.删除3.查学生成绩4.查班成绩表5.写入文件6.读取文件0.退出程序的主界面学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8 位数字;课程编号: 5 位数字;成绩:0 ~ 100 之间的整数,学分:1~ 5 之间的实型数。
添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:a)查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
b)查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
拓展功能:a)程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b)每次修改的数据写入文件。
3.提示定义合适的结构体类型,使用链表或数组的方式组织数据。
1需求分析1.1研究背景教育信息化必将涉及许多具体的技术和机器在教育中的应用,它使得一些人往往以技术论,机器论的观点来认识教育信息化的目的,认为教育信息化就是以机器代替教师讲课,代替教育写板书,就是以电子教材代替印刷教材,就是实现网上学习……,并以代替性、省力性、顺利性、效率性作为评价教育信息化的尺度。
而成绩管理系统将大大的提高老师的管理效率,使得老师可以针对学生的具体情况进行深入教育,培养跨世纪的创新人才,是实现教育的现代化。
教育信息化应以新的教育思想、教育观念指导信息技术在教育的各个部门、各个领域广泛应用,应根据创新人才培养的要求,利用信息技术,探索新的教育模式,促进教育现代化。
只有在这样的基础上指导信息技术的教育应用,才是我们所需要的教育信息化。
也就相应产生了对学生成绩的高效管理。
1.2课题研究的目的及意义现在我国各院高校的学生成绩管理水平普遍不高,有的还停留在纸质基础上,这种管理手段已不能适应时代的发展,因为它浪费了许多的人力和物力。
在当今信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。
成绩管理系统提供了强大的管理功能,方便管理员对考试成绩等信息的添加、修改、删除、查询、分类等操作。
本系统将提高管理人员的工作效率和工作质量。
如今,计算机网络带动了全球信息化得进程。
在高校中,信息化带来的传统教学、科研模式的变化,需要新的管理机制:以信息技术为手段的校务管理,也需要新的机制,即需要一个数字化的校园(Digital Campus)。
数字校园的建设也是高校信息化的重要组成部分。
成绩管理是学校管理中的异常重要的一个环节,作为学校,除了育人,就是与育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,在于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着重要的分量。
运用成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理,以及国家各部门关于信息化的步伐,是各项管理更加规范化。
目录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.文件保存模块:用于将表上的所有记录保存到文件中。
成绩记录簿c 课程设计一、教学目标本课程的教学目标是使学生掌握成绩记录簿的基本知识,能够熟练运用成绩记录簿进行成绩管理。
具体来说,知识目标包括了解成绩记录簿的概念、结构和常用术语,掌握成绩记录簿的编制方法和步骤;技能目标包括能够独立完成成绩记录簿的编制,能够对成绩记录簿进行分析和解读;情感态度价值观目标包括培养学生对成绩管理的重视,培养学生诚实、严谨的学习态度。
二、教学内容本课程的教学内容主要包括成绩记录簿的基本知识、编制方法和步骤。
具体来说,将讲解成绩记录簿的概念、结构和常用术语,介绍成绩记录簿的编制方法和步骤,并通过实例分析让学生掌握成绩记录簿的编制和解读。
三、教学方法本课程将采用讲授法、案例分析法和实验法相结合的教学方法。
讲授法用于讲解成绩记录簿的基本知识和编制方法,案例分析法用于分析实际成绩记录簿的编制和解读,实验法用于让学生亲自动手编制成绩记录簿,提高学生的实践能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书将用于提供成绩记录簿的基本知识和编制方法,多媒体资料用于辅助讲解和展示实例,实验设备用于让学生进行实践操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试三部分。
平时表现主要评估学生的课堂参与和讨论积极性,作业主要评估学生的理解和应用能力,考试主要评估学生的综合运用和分析能力。
评估方式将采用客观、公正的原则,全面反映学生的学习成果。
六、教学安排本课程的教学安排将分为10次课,每次课1.5小时,共计15小时。
教学时间安排在每周五下午,地点在教室101。
教学安排将保证在有限的时间内完成教学任务,同时考虑学生的实际情况和需要,尽量满足学生的学习和生活安排。
七、差异化教学本课程将根据学生的不同学习风格、兴趣和能力水平,设计差异化的教学活动和评估方式。
对于学习风格偏向实践操作的学生,将增加实验和实践环节;对于学习风格偏向理论学习的学生,将提供更多的案例分析和理论讲解。
《高级语言程序设计》课程设计报告题目:专业:班级:姓名:指导教师:成绩:计算机与信息工程系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 总结课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
.C语言课程设计报告题目:成绩记录簿学生姓名:学生学号:所在班级:任课教师:2012年6月19日目录1.设计目的2.设计思路3.总体设计4.详细设计5.设计体会6附录(所写是运行程序的图片)一、设计目的要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
、二、设计思路1.设计好算法,用流程图或者用自己简单的想法,并记好记录。
2.分别做好主函数,和需要用到的各个函数,参考我们的教材一点点的综合在一起。
慢慢的从中学到技巧。
3.将已学过的代码和学过的函数拼接起来,做好调试和改正。
4.从新检查一遍,将没用的函数或者多余的步骤简化,提高运行速度。
5.完成系统总结报告以及使用说明书。
三、总体设计四、详细设计#include "stdio.h"#include "stdlib.h"#include "string.h"int shoudsave=0; //struct student{char num[20];//学号char name[20];int cgrade;char neartime[10];//最近更新时间};typedef struct node{struct student data;struct node *next;}Node,*Link;void menu(){printf("*************************************************************** *****************");printf("\t1输入学生资料\t\t\t\t\t2查询学生资料\n");printf("\t3修改学生资料\t\t\t\t\t4显示学生资料\n");printf("\t5统计学生成绩\t\t\t\t\t6保存学生资料\n");printf("\t7获取帮助信息\t\t\t\t\t0退出系统\n");printf("*************************************************************** *****************\n");}void printstart(){printf("-----------------------------------------------------------------------\n");}void Wrong(){printf("\n=====>提示:输入错误!\n");}void Nofind(){printf("\n=====>提示:没有找到该学生!\n");void printc() // 本函数用于输出中文{printf(" 学号\t 姓名C语言成绩\n");}void printe(Node *p)//本函数用于输出英文{printf("%-12s%s\t%d\t \n",p->data.num,p->,p->data.cgrade);}Node* Locate(Link l,char findmess[],char nameornum[]) //该函数用于定位连表中符合要求的接点,并返回该指针{Node *r;if(strcmp(nameornum,"num")==0) //按学号查询{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findmess)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) //按姓名查询{r=l->next;while(r!=NULL){if(strcmp(r->,findmess)==0)return r;r=r->next;}}return 0;}void Add(Link l) //增加学生{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next; //将指针置于最末尾while(1)printf("请你输入学号(以'0'返回上一级菜单:)");scanf("%s",num);if(strcmp(num,"0")==0)break;while(s){if(strcmp(s->data.num,num)==0){printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);printstart();printc();printe(s);printstart();printf("\n");return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);printf("请你输入姓名:");scanf("%s",p->);getchar();printf("请你输入c语言成绩:");scanf("%d",&p->data.cgrade);//信息输入已经完成p->next=NULL;r->next=p;r=p;shoudsave=1;}}void Qur(Link l) //查询学生{int sel;char findmess[20];Node *p;if(!l->next){printf("\n=====>提示:没有资料可以查询!\n");return;}printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); scanf("%d",&sel);if(sel==1)//学号{printf("请你输入要查找的学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}else if(sel==2) //姓名{printf("请你输入要查找的姓名:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}elseWrong();}void Modify(Link l){Node *p;char findmess[20];if(!l->next){printf("\n=====>提示:没有资料可以修改!\n");return;}printf("请你输入要修改的学生学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);printf("请你输入新姓名(原来是%s):",p->);scanf("%s",p->);printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade);printf("\n=====>提示:资料修改成功!\n");shoudsave=1;}elseNofind();}void Disp(Link l){int count=0;Node *p;p=l->next;if(!p){printf("\n=====>提示:没有资料可以显示!\n");return;}printf("\t\t\t\t显示结果\n");printstart();printc();printf("\n");while(p){printe(p);p=p->next;}printstart();printf("\n");void Tongji(Link l){Node *pc = l; //用于指向分数最高的接点Node *r=l->next;if(!r){printf("\n=====>提示:没有资料可以统计!\n");return ;}while(r!=NULL){if(r->data.cgrade>=pc->data.cgrade)pc=r;r=r->next;}printf("------------------------------统计结果--------------------------------\n"); printf("c语言最高者:\t%s %d分\n",pc->,pc->data.cgrade); printstart();}void Save(Link l){FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){printf("\n=====>提示:重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}if(flag){printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count); shoudsave=0;}fclose(fp);}void main(){Link l;//连表FILE *fp; //文件指针int sel;char ch;char jian;int count=0;Node *p,*r;printf("\t\t\t\t学生成绩记录簿\n\t\t\t\t-------计算机信息管理,张志坚(201140130207),李权(201140130106),刘进祎(201140130226),褚璐(201140130114)\n");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("C:\\student","rb");if(fp==NULL){printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");scanf("%c",&jian);if(jian=='y'||jian=='Y')fp=fopen("C:\\student","wb");elseexit(0);}printf("\n=====>提示:文件已经打开,正在导入记录......\n");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) //将文件的内容放入接点中{p->next=NULL;r->next=p;r=p; //将该接点挂入连中count++;}}fclose(fp); //关闭文件printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);while(1){menu();printf("请你选择操作:");scanf("%d",&sel);if(sel==0){if(shoudsave==1){ getchar();printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}printf("\n=====>提示:你已经退出系统,再见!\n");break;}switch(sel){case 1:Add(l);break; //增加学生case 2:Qur(l);break;//查询学生case 3:Modify(l);break;//修改学生case 4:Disp(l);break;//显示学生case 5:Tongji(l);break;//统计学生case 6:Save(l);break;//保存学生case 7:printf("\t\t\t==========帮助信息==========\n");break;default: Wrong();getchar();break;}}}五、设计体会通过这次的课程设计,增加了我对学习C语言和往后要学习C++的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的运行也有一个大体的了解。
c 学生成绩簿课程设计一、课程目标知识目标:1. 学生能够理解成绩簿的基本概念,掌握成绩簿的组成结构和各项指标含义。
2. 学生能够运用成绩簿中的数据进行分析,了解自己在各学科中的学习状况和进步情况。
3. 学生掌握如何正确填写和解读成绩簿,从而提高自我管理和评价的能力。
技能目标:1. 学生能够独立完成成绩簿的填写,准确记录各科成绩和出勤情况。
2. 学生能够通过成绩簿分析,制定合适的学习计划和目标,提高学习效率。
3. 学生能够运用成绩簿进行自我评价,培养自我反思和调整学习策略的能力。
情感态度价值观目标:1. 培养学生对待成绩的积极态度,正确看待成绩的起伏,增强自信心。
2. 培养学生诚实守信的品质,遵守学术规范,不抄袭、不作弊。
3. 培养学生关心他人,学会互相鼓励和支持,形成良好的学习氛围。
课程性质:本课程属于实践性较强的学科,注重培养学生的实际操作能力和自我管理能力。
学生特点:考虑到学生所在年级的特点,学生在认知和情感方面逐渐成熟,具备一定的自我意识和反思能力。
教学要求:结合课程性质和学生特点,教学过程中应注重引导、实践和反馈,确保学生能够达到课程目标,实现学习成果的分解和落实。
二、教学内容1. 成绩簿的基本概念与作用- 成绩簿的定义及其重要性- 成绩簿的组成部分:姓名、学号、科目、成绩、出勤等2. 成绩簿的正确填写与解读- 如何准确记录各科成绩和出勤情况- 如何避免填写错误,确保成绩簿的真实性- 教材章节:第二章第三节3. 成绩分析与学习策略- 如何利用成绩簿分析学习状况- 根据成绩分析结果,调整学习计划和目标- 教材章节:第二章第四节4. 自我评价与反思- 依据成绩簿进行自我评价的方法- 反思学习过程中的优点与不足,制定改进措施- 教材章节:第二章第五节5. 案例分析与讨论- 分析优秀学生的学习成果,总结经验- 针对成绩簿中的问题,展开小组讨论,共同寻求解决方案教学大纲安排:第一课时:成绩簿的基本概念与作用,填写与解读方法第二课时:成绩分析,学习策略制定第三课时:自我评价与反思,案例分析第四课时:小组讨论,总结经验,巩固所学内容教学内容确保科学性和系统性,结合教材章节和教学进度,使学生能够逐步掌握成绩簿的使用方法和学习策略,提高自我管理和评价能力。
课程设计学生成绩薄一、教学目标本课程的教学目标是使学生掌握XX学科的基本概念、基本原理和基本方法,提高学生的科学素养和解决问题的能力。
具体包括以下三个方面:1.知识目标:学生能够掌握XX学科的基本概念、基本原理和基本方法,了解学科的发展趋势和应用领域。
2.技能目标:学生能够运用所学的知识和方法分析、解决实际问题,提高科学探究和论证的能力。
3.情感态度价值观目标:学生能够形成对XX学科的兴趣和热爱,培养科学精神和创新意识,树立正确的科学观和价值观。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.XX学科的基本概念和基本原理:通过讲解和案例分析,使学生了解并掌握XX学科的基本概念和基本原理。
2.XX学科的基本方法:通过实验演示和练习,使学生掌握XX学科的基本方法,并能够运用到实际问题中。
3.XX学科的应用领域:通过介绍和讨论,使学生了解XX学科在各个领域的应用,并激发学生的学习兴趣。
4.学科发展趋势和前沿问题:通过阅读和讨论,使学生了解XX学科的发展趋势和前沿问题,提高学生的科学素养。
三、教学方法为了实现教学目标,我们将采用以下几种教学方法:1.讲授法:通过教师的讲解,使学生掌握XX学科的基本概念和基本原理。
2.讨论法:通过分组讨论和课堂讨论,使学生深入理解和思考XX学科的问题,提高学生的分析问题和解决问题的能力。
3.案例分析法:通过分析具体的案例,使学生了解XX学科的应用领域和方法。
4.实验法:通过实验演示和练习,使学生掌握XX学科的基本方法,并能够运用到实际问题中。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威的XX学科教材,为学生提供系统的学习材料。
2.参考书:提供相关的参考书目,帮助学生深入理解和拓展知识。
3.多媒体资料:制作PPT和视频等多媒体资料,使学生更加直观地了解和掌握知识。
4.实验设备:准备实验器材和设备,为学生提供实验操作的机会和实践经验的积累。
青岛理工大学琴岛学院设计报告课题名称:学生成绩记录薄设计学院:计算机工程系专业班级:电子信息工程15级1班学号:20150713126学生:吴育兴指导教师:陈延波青岛理工大学琴岛学院教务处2016年6 月29 日学生吴育兴指导教师陈延波课题名称学生成绩记录薄设计设计时间2016.6.20~2016.7.1 设计地点8-209设计目的通过课程设计的训练,了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
本课程设计要求编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
完成功能:输入信息、添加记录,修改记录,按学号或姓名查询成绩等功能。
指导教师评语系部教研室意见一、需求分析1、程序设计报告的内容要求课程设计要求学生遵循软件开发过程中的基本规范,运用结构化程序设计的方法,程序设计报告应该能够反映学生完成课程设计题目的全部情况,包括对课程设计题目要求的分析、应用程序的设计、程序的测试过程以及程序的运行情况等,因此,编写课程设计报告是课程设计一个不容忽视的重要环节。
一个高质量的课程设计报告应该满足下列条件:报告内容完整、观点正确;层次清晰、语流畅、用词准确且无二义性;能够反映结构化程序设计方法的基本原则;绘制的所有图表规范且正确。
用户文档是面向使用该应用程序的用户编写的,因此,应该将用户需要知道的所有内容用简练、清晰的语言描述清楚。
下面是用户文档应该包含的主要内容:(1)应用程序运行环境的要求;(2)应用程序功能的详细说明;(3)流程图;(4)代码及调试。
2、程序设计报告的质量要求一个高质量的课程设计报告应该满足下列条件:●报告内容完整、观点正确;●层次清晰、语言流畅、用词准确且无二义性;●能够反映结构化程序设计方法的基本原则;●绘制的所有图表规范且正确。
二、总体设计本系统首先设计出了主函数,然后根据去要实现的功能分别设计了添加,查询,修改,显示,输出,输入等功能的子函数。