C语言实训报告—学生成绩管理系统(文件实现)
C语言课程设计报告学生成绩管理系统
《学生成绩管理系统》课程设计报告2010-7-9一、程序整体规划:1.系统的基本功能✧数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;✧数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;✧数据的插入:插入某个学生信息;✧数据的查询:如按学号查询、按姓名查询等;✧数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;✧平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;✧考虑用文件把数据保存起来2、首先是结构体的定义:typedef struct message_studentchar number[6];char name[20];char sex[4];float subject[numsubs];float score;float average;int index;}student;int numstus; 定义学生数目student *pointer; 指向结构体数组int lens; 次迟到时候分配内存3、部分重要函数声明:int menu_select(); 决定主界面的函数int openfile(student stu[]); 打开文件的函数int findrecord(student stud[]); 查找信息的函数int writetotext(student stud[]); 保存文件的函数void sort(student stu[]); 查找信息的函数void deleterecord(student stu[],int i); 删除信息的函数void addrecord(student stud[]); 增加学生信息的函数void display(student stud[],int n1,int n2); 数据的显示函数void sortnum(student stud[]); 以下几个均为排序函数void sortnum2(student stud[]);void sortname(student stud[]);void sortname2(student stud[]);void sortcount(student stud[]);void sortcount2(student stud[]);4、设计思路1、主函数以switch和case语句引出其他子函数。
c语言学生成绩管理系统实训报告
c语言学生成绩管理系统实训报告C语言学生成绩管理系统实训报告一、引言在学习C语言的过程中,我们进行了一项有关成绩管理系统的实训。
本报告旨在总结和回顾我们在实训中的收获和体会,并对C语言学生成绩管理系统进行全面评估。
二、实训内容概述1. 实训主题及目的本次实训的主题是设计和实现一个简单的学生成绩管理系统。
通过实践,我们旨在掌握C语言的基本语法和程序设计思维,同时提高我们的代码编写能力和解决问题的能力。
2. 实训内容和步骤在实训中,我们首先学习了C语言的基本语法和概念,并了解了文件的读取和写入操作。
之后,我们根据需求和功能分析,设计了学生成绩管理系统的功能模块并进行了程序编写和调试。
我们进行了测试和优化,确保系统能够正常运行和满足需求。
三、学习收获1. 对C语言的深入理解通过实训,我们加深了对C语言的理解和掌握,熟悉了各种数据类型、控制结构、函数和指针等基本概念,提高了我们的编程能力和逻辑思维能力。
2. 实践能力和团队协作能力在实训中,我们通过实际操作和团队合作,提高了我们的实践能力和团队协作能力,学会了如何合理分工、有效沟通和协作解决问题。
3. 程序设计思维和问题解决能力通过设计和实现学生成绩管理系统,我们培养了自己的程序设计思维和问题解决能力,能够从需求分析到系统设计再到程序编写和测试,全面解决问题和实现功能。
四、个人观点和理解在本次实训中,我深刻认识到C语言作为一种程序设计语言的重要性和广泛应用性,同时也意识到程序设计思维和问题解决能力对我们的职业发展和学习成长至关重要。
我相信通过不断的实践和学习,我能够不断提升自己的编程能力和解决问题的能力,成为一名优秀的程序员。
五、总结通过本次实训,我们对C语言学生成绩管理系统有了全面的了解和掌握,同时也提高了我们的编程能力和实践能力。
希望通过这样的实践和学习,我们能够不断提升自己,成为技术过硬、有创造力和团队合作精神的优秀程序员。
六、结语期望通过本次实训报告,能够对C语言学生成绩管理系统的实训有所了解,并对我们的学习和职业发展有所启发。
C语言程序设计报告 ---学生成绩管理系统
C语言程序设计报告 ---学生成绩管理系统一、背景学生的学习成绩是一起重要的信息,为了管理好学生的学习成绩,学校及老师在教学过程中,需要有一个对学生成绩进行统计与记录,用于注册成绩,查询发放证书等工作,需要一个学生成绩管理系统来进行辅助操作。
本文主要介绍我校用C语言实现的学生成绩管理系统。
二、系统概述学生成绩管理系统主要由三个模块组成,即:数据录入模块、数据处理模块和数据输出模块。
数据录入模块:将每个学生的个人资料、成绩数据及相关信息,用户图形用户界面录入进系统;数据处理模块:利用程序能实现学生的成绩,统一的处理成绩,例如排名、查找,等;数据输出模块:该模块是整个系统的核心模块,将输出内容包括:学生基本信息、每门课程的各项成绩、平均成绩、综合排名等相关信息,通过程序。
三、系统功能介绍1.数据录入:学生的基本信息及考试成绩等信息的输入,用于后续数据处理及学生成绩的查询。
2.成绩查询:具备基本的查询功能,可以根据学生的学号及姓名查询学生的成绩,以及详细的学生考试成绩。
3.信息统计:可以进行全体学生的各项考试成绩信息综合统计,统计分析每个班级、每个专业、每门课程的考试情况,以及学生的排名,让用户知道整体的学习情况及有效管理学生的学习。
4.安全设置:系统具备安全设置功能,确保用户的信息安全,保证用户的登录权限,为系统及用户提供足够的安全保障,确保系统的数据安全。
四、系统分析系统分析阶段主要包含了分析及设计的步骤,为了更好的实现学生成绩管理的功能,系统分析中分析出学生信息、班级信息、考试信息等相关信息,以便为系统设计提供理论依据。
系统设计是系统分析的一个重要环节,通过设计,能够实现系统的功能,系统设计中定义出系统的基本流程及外部接口,使得系统能够正常运行。
五、系统实现六、系统测试学生成绩管理系统在功能测试过程中,通过实际的操作来测试学生成绩管理系统,测试的主要内容是系统的基本功能及系统的数据安全性,通过实际的操作,测试员可以详细的检查系统是否符合预期的功能,以及系统的正确度,从而保证系统的可靠性及安全性。
c语言课程设计学生成绩管理系统报告
c语言课程设计学生成绩管理系统报告一、教学目标本课程旨在通过C语言编程实现一个学生成绩管理系统,让学生掌握C语言的基本语法、数据结构、函数、文件操作等知识,培养学生编写程序解决实际问题的能力。
具体目标如下:1.知识目标:(1)掌握C语言的基本语法和编程技巧;(2)了解数据结构的基本概念,学会使用数组、链表等数据结构;(3)熟悉函数的定义和调用,掌握函数的参数传递和返回值;(4)掌握文件操作,了解文件读写的原理和方法。
2.技能目标:(1)能够独立编写C语言程序,解决实际问题;(2)具备良好的编程习惯,代码结构清晰、可读性强;(3)掌握调试和优化程序的方法,提高程序的运行效率;(4)学会使用版本控制系统,如Git,进行代码管理和协作开发。
3.情感态度价值观目标:(1)培养学生的编程兴趣,激发学习C语言的积极性;(2)培养学生团队协作精神,提高沟通与协作能力;(3)培养学生的问题解决能力,培养创新意识和持续学习的态度;(4)培养学生具有良好的职业道德,遵守编程规范,尊重他人代码。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、文件操作等。
具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、表达式、控制语句等基本概念;2.数据结构:讲解数组、链表、栈和队列等数据结构的基本原理和应用;3.函数:讲解函数的定义、声明、调用,以及函数的参数传递和返回值;4.文件操作:介绍文件的概念、文件读写的方法和技巧。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数和文件操作等知识,使学生掌握课程的基本概念和编程技巧;2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题解决;3.实验法:安排上机实验,让学生动手编写程序,培养实际编程能力;4.小组讨论法:学生进行小组讨论,培养团队协作和沟通能力。
C语言课程设计实习报告--学生成绩管理系统
C语言课程设计上机实习报告学生成绩管理系统课程设计的题目与要求设计学生成绩管理系统:1.学生成绩信息包括:学号,姓名,性别,出生年月,四门课程的成绩(英语,数学,C语言,物理)等。
2.系统能完成以下功能:1).读取原始数据内容,保存在对应结构体数组中,然后显示菜单,利用菜单调用个函数。
2).实现查询,排序,添加,修改,删除等功能。
功能要求:1).实现查询显示功能:○1按姓名查询○2按性别查询○3显示全部信息。
将满足条件的学生信息显示屏幕上。
2).计算每个同学的总成绩,并重写入另一个文本文件中。
3) .实现排序功能:○1按姓名排序○2按总成绩排序,将排序后的所有学生的信息显示在屏幕上。
4).实现添加功能:录入新的学生信息。
在录入新的学生信息前,首先判断是否在,如果不存在,则可进行数据录入并依次输入学生的相关信息;否则提示不能进行添加操作。
5).实现删除功能:先输入学生学号,若系统中有此学生的信息,则删除该学生的所有信息;否则提示系统中无此学生的信息。
6).实现修改功能:先输入要修改的学生的学号,如果该学生存在,则根据需要修改学生信息;否则提示系统中无此学生的信息。
7).计算每个学生的加权平均分并根据其是否大于60分别写入两个文本。
课程设计题目功能1.系统功能模块框图设计本程序将用到结构体数组和对文件的操作。
程序运行后先要录入学生的信息(班级、学号、姓名、四门课的成绩),用结构体数组保存分类信息。
另外在程序中要实现查询显示等功能则需要菜单选择来调用实现各个功能的子函数。
由此可以将本系统分为如下几个部分:读取学生信息,按姓名查询,按性别查询,计算总成绩,按姓名排序,按总成绩排序,录入新的学生信息,删除学生信息,修改学生信息,计算加权平均分等。
其中个函数通过菜单函数实现。
以下为系统功能模块框图:主函数(main)显示菜单(menu)读取学生信息按姓名查询学生信息按性别查询学生信息计算每位同学的总成绩按姓名排序按总成绩排序录入新的学生信息删除学生信息修改学生信息计算每个学生的加权平均分退出2.数据结构说明及详细设计1.定义一个结构体来保存原始数据。
c语言课程设计学生成绩管理系统报告(一)
c语言课程设计学生成绩管理系统报告(一)C语言课程设计学生成绩管理系统报告介绍•学生成绩管理系统的设计背景•项目的目的和意义系统需求分析•功能需求–学生信息录入–成绩管理–查询与统计•性能需求–系统响应速度–数据存储和读取效率系统设计•系统结构•数据库设计•模块功能划分技术选型•编程语言选择:C语言•数据库选择:SQLite 实现步骤•搭建开发环境•创建学生信息录入模块•创建成绩管理模块•创建查询与统计模块•进行系统集成和测试系统遇到的问题与解决方案•内存管理问题•数据库操作问题•用户界面设计问题系统改进与优化•提升性能•增加功能•修复bug结果与展望•成果总结•可能的进一步发展方向参考资料•《C语言程序设计》•《数据库系统概念》•网上开源学生成绩管理系统案例介绍本文将介绍一款基于C语言的学生成绩管理系统的设计与开发。
学生成绩管理系统是一种用于方便高校或学校管理学生成绩的工具。
本项目的目的是提供一个简单易用、功能全面的学生成绩管理系统。
系统需求分析功能需求学生成绩管理系统需具备以下功能:1.学生信息录入:能够方便地录入学生的基本信息,包括姓名、学号、班级等。
2.成绩管理:能够记录学生的各科成绩,并能对成绩进行增、删、改、查等操作。
3.查询与统计:能够根据学号、姓名等条件进行查询,还能对成绩进行统计,包括总分、平均分等。
性能需求为确保学生成绩管理系统的良好使用体验,有以下性能需求:1.系统响应速度:系统应具备快速响应用户操作的能力,避免出现卡顿现象。
2.数据存储和读取效率:系统应能高效地存储和读取学生信息和成绩数据,以保证系统的稳定性和可靠性。
系统设计系统结构学生成绩管理系统采用前后端分离的设计方式,前端使用C语言编写,后端使用SQLite数据库进行数据存储和读取。
系统结构由三个主要模块组成:学生信息录入模块、成绩管理模块和查询与统计模块。
数据库设计系统使用SQLite数据库进行数据存储和读取。
数据库设计包括学生表和成绩表,学生表存储学生的基本信息,成绩表存储学生的各科成绩。
C语言学生成绩管理系统实训报告
郑州大学实训报告实训名称:“学生成绩管理系统”设计姓名:院(系):软件学院专业班级:学号:指导教师:成绩:时间:年2月日至年月31日目录实训任务书 (I)实训进度日历 (IV)实训报告 (1)1.软件需求分析 (1)2.软件规格说明 (1)3.系统框架和思路 (1)4.流程图 (2)实训感想 (3)附录 (4)郑州大学软件学院学生实训任务书一、题目“学生成绩管理系统”设计二、学生信息专业学号姓名三、用户需求及约束条件1、用C语言实现基于Dos操作系统的“学生成绩管理系统”。
2、设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过界面菜单指令才能退出。
3、“学生成绩管理系统”具有以下功能:1)系统启动后,弹出一个用户界面,能实现人机交互的功能。
而且只能通过界面菜单命令实现各种功能(包括系统退出功能)。
2)录入学生成绩(信息有:班级、姓名、学号、五门课程成绩);3)计算学生五门功课的平均成绩并存档。
下面的功能必须是第3)项功能完成以后才能进行。
4)输出学生的信息和对应的原始成绩以及平均成绩;5)按平均成绩进行排序,输出排序后的学生信息以及对应的课程成绩和平均成绩。
6)对成绩修改,分别有两种模式,一种是按学号查找后进行修改;另一种是按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对应课程成绩和平均成绩。
7)增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序学生顺序,并输出学生信息和对应课程成绩和平均成绩。
8)附加功能:把学生信息和对应的课程成绩和平均成绩存入到文件中。
9)附加功能:输出文件中的内容。
10)附加功能:试着从文件中导入数据到成绩管理系统中,然后进行管理。
四、设计要求、技术参数及设计规格1、设计的系统能够运行,基本功能实现;2、撰写实训报告,实训报告中的内容包括:1)软件需求分析;2)软件规格说明和设计要求;3)对数据的管理方案;4)“学生成绩管理系统”设计的思路和整体框架;5)各功能或者模块实现的思路(或者用带注释的程序代替)并交待模块之间的接口关系;6)“学生成绩管理系统”设计的结果(可以用一些屏幕拷贝的图来补充说明)。
c语言实习(学生成绩管理系统)
成绩:------《高级程序设计语言》课程设计报告学院:班级:学号:姓名:1.引言:编一程序,实现将输入的一个无符号整数转换为二进制,八进制表示,分别存入字符数组中并输出。
(提示:算法采用模拟人工法。
)注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
2.算法设计:主函数子函数1子函数2子函数33.调试报告:对于该程序首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
难点是找出规律,在调试过程中,注意区分字符串和字符使用的地方,本程序调用函数,为函数编写提供方便,避免混淆各个语句的功能,例如:在输出二进制数的函数中,首先调用TentoB函数,调用函数中,使用while循环,输出“二进制”以后,调用print 函数,再使用一个while循环,输出对应的二进制数,同理,输出八进制也可采用输出二进制类似的方法。
本程序避免了繁杂的编写,调用函数是本程序的亮点,也是核心部分。
编写本程序后的心得与体会:通过编程,我学到了一些C语言的特点:C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
C语法限制不太严格、程序设计自由度大,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。
而C语言允许程序编写者有较大的自由度。
C语言允许直接访问物理地址,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
C语言实训报告—学生成绩管理系统
课程实训说明书课程: C语言实训系部:专业班级:学号:姓名:指导教师:年月日目录1 项目一名称:学生成绩排名1.1 项目设计要求 (1)1.2 项目设计思路 (1)1.3 程序流程 (2)1.4 程序代码 (3)1.5 运行结果 (4)2 项目二名称:按条件实现学生成绩排名2.1 项目设计要求 (3)2.2 项目设计思路 (3)2.3 程序流程 (4)2.3 程序代码 (7)2.5 运行结果 (10)3 项目三名称:数组优化学生成绩排名3.1 项目设计要求 (11)3.2 项目设计思路 (11)3.3 程序流程 (12)3.3 程序代码 (13)3.5 运行结果 (14)4 项目四名称:学生成绩单制作4.1 项目设计要求 (15)4.2 项目设计思路 (15)4.3 程序流程 (16)4.3 程序代码 (17)4.5 运行结果 (21)5 项目五名称:学生成绩排序文件管理5.1 项目设计要求 (22)5.2 项目设计思路 (22)5.3 程序流程 (23)5.3 程序代码 (24)5.5 运行结果 (27)6 项目六名称:设计和编写学生成绩管理系统的系统主菜单6.1 项目设计要求 (28)6.2 项目设计思路 (28)6.3 程序流程 (29)6.3 程序代码 (30)6.5 运行结果 (32)7 项目七名称:学生成绩管理项目实现7.1 项目设计要求 (33)7.2 项目设计思路 (33)7.3 程序流程 (34)7.3 程序代码 (35)7.5 运行结果 (45)8课程设计总结 (49)9参考文献 (50)1 项目一名称:学生成绩排名1.1项目设计要求(1)熟悉变量、数组定义、使用、输入、输出等基本操作;(2)进行选择、循环结构程序设计练习;(3)掌握冒泡法排序的算法。
1.2项目设计思路(1)定义一个数组a[11],用以存放学生的成绩;(2)从键盘输入10个学生及成绩;(3)采用冒泡法,将学生成绩按照从高到低进行排序;(4)再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组;(5)将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
C语言学生成绩管理系统设计报告
计算机科学与技术学院课程设计报告2015— 2016学年第二学期课程名称C语言程序设计题目学生成绩管理系统学生姓名XXX学号XXX专业班级XXX指导教师XXX合作者XXX2016年6月30日学生成绩管理系统本程序可实现对学生语数外三门课程成绩的录入与保存。
1、设计目的本程序旨在训练读者的基本编程能力,了解管理信息系统开发流程,熟悉C语言的各种语法、编写流程、以及能够熟练运用各种算法、以及各种函数的使用。
2、功能描述本程序可实现的功能:(1)录入学生的成绩(2)输出学生的成绩(3)添加学生的成绩信息(4)删除指定学生的成绩信息(5)按照要求对学生成绩信息进行排序(6)根据学号查询指定学生的成绩(7)将学生的成绩信息以文件形式保存3、总体设计3.1具体实现main()函数:程序首先调用menu()函数,显示出系统主菜单,然后将menu()函数返回的从用户读取的选项k值赋予k,接着进入switch—case语句进入对应选项函数,若输入错误没有该选项则给出提示(default)以上过程为一个死循环,直到用户输入0为止。
menu()函数:在屏幕上打印选项名称,然后用一个int类型的变量接受从用户输入的选项,最后将其return至主函数。
score *creatlink()函数:创建链表主要实现流程如下:print()函数:先令P=head,使p指向第一个节点,当head=!NULL时说明没有到链表尾端,那么就输出p所指向的结构数据,然后让p指向下一个节点,直到发现p==NULL为止。
而当head==NULL说明链表中不存在数据,直接停止输出。
score *add()函数,添加新的学生信息,具体实现路程如流程图所示(图片制作时没有加Y/N判断,在判断图框中均为向左为真,向右为假):score *search()函数:用来查询学生成绩,传递给函数指向链表的头指针,查询时,如果找到与输入相匹配的学号则打印此学生,反之则输出“没有任何学生资料!”:行过程如图:save()函数:用来保存数据,首先从用户输入取得要保存的文件名,然后定义一个指向文件的指针,以读写方式打开文件。
C语言实验报告--学生成绩管理系统
本文由1241284434贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 X X 大学 C S U C 语言程序设计实践报告 题 目 学生成绩管理系统 剽悍的小白兔 T Z 信息科学与工程学院 电气信息类 XXXX 班 20XX 年 X 月 学生姓名 指导教师 学 院 专业班级 完成时间 一、 设计目的 通过课程设计使学生综合使用所学过的 通过课程设计使学生综合使用所学过的 C 语言程序设计知 识,掌握结构化程序设计的基本思路和方法,在所掌握的基本知 掌握结构化程序设计的基本思路和方法,在所掌握的基本知 识和技能的基础上,进 一步提高自学能力和查找资料的能力, 识和技能的基础上,进一步提高自学能力和查 找资料的能力,解 的基础上 自学能力和查找资料的能力 决一定程度的复杂的结构化 程序设计问题,加深对所学知识的理 一定程度的复杂的结构化程序设计问题, 复杂 的结构化程序设计问题 解与掌握, 增强学生我们利用自己所学知识解决实际问题的 能力, 解与掌握, 增强学生我们利用自己所学知识解决实际问题的能力, 我们利用 自己所学知识解决实际问题的能力 为以后的程序开发打下基础。 为以后的程序开发 打下基础。 二、系统分析 随着科学技术的不断发展,对人们的工作水平要求也越来越 随着科学技术的不 断发展, 不断发展 高,然而计算机就成了帮助人们解决这个问题的工具,熟练的运 然而计算机就成了帮助人们解决这个问题的工具, 用计算机,它能为人们解决许多 工作上的难题。 用计算机,它能为人们解决许多工作上的难题。对与一个管理人 员 来说,快而迅速的了解各种信息是很关键的。 员来说,快而迅速的了解各种信息是很 关键的。使用计算机在 C 语言环境下编写相关的管理系统就能达到对相关信息的录入 、 语言环境下编写相关的管理系统就能达到对相关信息的录入、显 示;对记录的查 询极其修改等目的。 对记录的查询极其修改等目的。 基 于 同 样 的 C 语 言 环 境 , 对 其 提 供 的 头 文 件 *h (stdio.h ,stdlib.h,string.h,malloc.h,mem .h,ctype.h,conio.h 等)的 不同组合,能为我们解决许许多多的问题,因此,用它 来编写成 不同组合,能为我们解决许许多多的问题,因此,用它来编写成 绩管理管 理系统是可行的。 绩管理管理系统是可行的。 三、学生成绩管理系统主要功能 数据的录入: 如录入学生的基本信息, 以及该学生选修课程的 数据的录入: 如录入学生的基本信息, 基本信息; 基本信息; 数据的修改:如修改指定学号、 或者指定姓名的学生信息, 数据的修改:如修改指定学号、或者指定姓名的学生信息 ,或 者修改其选修课程信息; 者修改其选修课程信息; 数据的插入:插入某个学生 信息; 数据的插入:插入某个学生信息; 数据的查询: 按学号查询、按姓名查询等 ; 数据的查询:如按学号查询、按姓名查询等; 数据的删除: 如删除指定学号、 或者指定姓名的学生及其选修 数据的删除: 如删除指定学号、 课程信息; 课程信 息; 平均成绩的计算: 计算每个学生各门功课的平均成绩, 并按平 平均成绩的计 算: 计算每个学生各门功课的平均成绩, 均成绩从高到低的次序输出学生信息; 均 成绩从高到低的次序输出学生信息; 列出不及格学生清单(学号、姓名、不及格的课 程和成绩) 。 列出不及格学生清单(学号、姓名、不及格的课程和成绩) 四、功能的实现与要求 1.数据录入:数据录入的功能是将需要的数据进行录入,用于后面 数据录入: 数据录入的功能是将需要的数据进行录入, 的各项操作。实现:用输入函数对数据进 行录入, 的各项操作。实现:用输入函数对数据进行录入,先确定学生的个 数,再 用一个循环进行输入,选修课程数量亦然。 再用一个循环进行输入,选修课程数量亦 然 数据修改:数据修改的主要功能是为修改数据输入出现的错误, 2. 数据修改:数
c语言程序设计学生成绩管理系统报告
C语言程序设计学生成绩管理系统报告引言随着计算机技术的发展,C语言作为一种高级程序设计语言,被广泛应用于各个领域。
在教育领域中,C语言的学习也越来越重要。
为了提高学生在C语言程序设计方面的能力,快速准确地管理学生成绩,我们设计了一个C语言程序设计学生成绩管理系统。
设计目标•实现学生成绩的录入、查询、修改和删除功能。
•提供直观、友好的用户界面,操作简便明了。
•保证系统的安全性,仅授权用户可进行操作。
•能够生成学生成绩报告和统计信息,方便教师和学生进行分析和参考。
系统设计与实现数据结构为了实现学生成绩的管理,我们采用了以下的数据结构:1.学生信息结构体–学号–姓名–年龄–性别–成绩typedef struct {int student_id;char name[20];int age;char gender[10];float score;} Student;2.学生信息链表–指向学生信息的指针–指向下一个学生信息的指针typedef struct Node {Student* student_info;struct Node* next;} StudentNode;功能实现录入学生信息1.输入学生信息,并验证合法性(如学号是否已存在)。
2.将学生信息加入学生信息链表中。
查询学生信息1.输入学号或姓名进行查询。
2.在学生信息链表中查找匹配的学生信息。
3.显示查找到的学生信息。
修改学生信息1.输入学号或姓名进行查询。
2.在学生信息链表中查找匹配的学生信息。
3.若找到匹配的学生信息,则修改其中的字段内容。
删除学生信息1.输入学号或姓名进行查询。
2.在学生信息链表中查找匹配的学生信息。
3.若找到匹配的学生信息,则删除该节点。
生成报告和统计信息1.遍历学生信息链表,计算平均分、最高分和最低分。
2.根据指定条件(如按性别、按年龄段)进行筛选和排序。
3.根据筛选结果生成学生成绩报告和统计信息。
用户界面设计为了提供友好的用户界面,我们采用了命令行界面(CLI)的设计,用户可通过键盘输入命令进行操作。
成绩管理系统c语言程序设计报告(一)
成绩管理系统c语言程序设计报告(一)成绩管理系统C语言程序设计报告项目概述•本项目是一个成绩管理系统的C语言程序设计。
•旨在提供一个简单而高效的成绩管理系统。
•使用C语言编写,具备基本的成绩录入、查询、修改和删除功能。
功能设计1.成绩录入功能–提供用户输入学生的姓名、学号和成绩。
–将录入的成绩保存在文件中。
2.成绩查询功能–用户可以通过学号或姓名查询某个学生的成绩。
–显示学生的成绩信息。
3.成绩修改功能–用户可以通过学号或姓名定位到某个学生的成绩。
–允许用户修改学生的成绩。
4.成绩删除功能–用户可以通过学号或姓名定位到某个学生的成绩。
–允许用户删除学生的成绩。
技术实现•使用C语言作为主要开发语言,具备良好的跨平台性。
•采用文件输入输出方式进行成绩的长期保存。
•使用结构体来管理学生的相关信息,包括姓名、学号和成绩。
•通过循环和条件判断来实现各个功能模块。
流程图以下为成绩管理系统的流程图:graph LRA[开始] --> B{选择功能}B --> C{输入学生信息}C --> D[保存学生信息]C --> BB --> E{查询成绩}E --> F[显示成绩信息]E --> BB --> G{修改成绩}G --> H[定位学生信息]H --> I[修改成绩]H --> GG --> BB --> J{删除成绩}J --> K[定位学生信息]K --> L[删除成绩]K --> JJ --> BB --> M[结束]后续优化•增加用户名和密码的身份验证功能,确保只有授权用户可以使用系统。
•支持更多的查询方式,例如成绩范围查询、按照科目查询等。
•增加对数据的备份和恢复功能,保证数据的安全性。
•提供简洁友好的用户界面,方便用户的操作和理解。
结论本成绩管理系统通过C语言程序设计实现了基本的成绩录入、查询、修改和删除功能。
c语言课程设计报告学生成绩管理系统
c语言课程设计报告学生成绩管理系统一、课程目标知识目标:1. 学生能理解并掌握C语言基础,包括变量定义、数据类型、运算符、控制结构等。
2. 学生能运用C语言实现学生成绩管理系统的基本功能,如添加、删除、修改、查询学生成绩。
3. 学生了解并掌握文件操作在C语言中的应用,实现对数据的持久化存储。
技能目标:1. 学生能够运用结构体数组管理大量数据,培养数据组织和管理的实际操作能力。
2. 学生通过编程实践,掌握模块化编程方法,提高代码的复用性和可维护性。
3. 学生通过团队协作,培养沟通与协作能力,共同完成学生成绩管理系统的设计与实现。
情感态度价值观目标:1. 学生通过解决实际问题,培养对编程的兴趣,激发探究精神。
2. 学生在团队协作中,学会尊重他人意见,培养合作精神,提高解决问题的信心。
3. 学生认识到编程在生活中的实际应用,增强对计算机科学的认识和热爱。
课程性质:本课程为实践性较强的学科,结合C语言编程知识,以项目驱动的方式进行教学。
学生特点:学生为高中一年级学生,已具备一定的计算机操作能力,对编程有一定了解,但实际操作经验不足。
教学要求:教师需引导学生掌握C语言基础知识,注重实践操作,鼓励学生主动探究、团队协作,培养解决实际问题的能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. C语言基础知识:- 变量定义、数据类型、常量与变量- 运算符、表达式、语句- 控制结构:顺序、选择、循环- 函数的定义与调用- 指针与数组2. 学生成绩管理系统功能实现:- 结构体的定义与使用- 结构体数组操作- 系统功能模块划分:添加、删除、修改、查询学生成绩- 函数调用关系分析,实现模块化编程3. 文件操作与数据持久化:- 文件打开、关闭、读写操作- 学生成绩数据的存储与读取- 文件错误处理与异常处理教学大纲安排:第一周:C语言基础知识复习,学习结构体和结构体数组第二周:学生成绩管理系统功能设计,编写添加、删除、修改、查询功能的代码第三周:文件操作学习,实现学生成绩数据的持久化存储,优化系统性能第四周:项目测试、调试与优化,总结交流教学内容与教材关联性:本教学内容与教材《C语言程序设计》相关章节紧密关联,涵盖第3章至第6章的知识点,以及第8章文件操作部分。
学生成绩管理系统报告c语言
学生成绩管理系统报告c语言1. 引言学生成绩管理系统是一种计算机应用程序,旨在方便高校教师和学生对学生成绩进行管理和查询。
通过该系统,教师可以录入学生成绩,查询单个或多个学生的成绩,统计课程成绩等;学生可以查询自己的成绩和排名,了解自己的学习情况。
本文将介绍学生成绩管理系统的设计思路、功能模块和实现细节。
2. 设计思路学生成绩管理系统的设计思路主要包括以下几个方面:- 数据存储:使用文件来保存学生的基本信息和成绩数据,方便数据的持久化和读写。
- 用户界面:设计用户友好的界面,方便教师和学生进行操作和查询。
- 功能模块:根据需求,设计相应的功能模块,包括录入成绩、查询成绩、统计成绩等。
- 数据结构:使用适当的数据结构来组织和管理学生的信息和成绩数据,方便实现各种功能。
3. 功能模块学生成绩管理系统包含以下几个功能模块:3.1 录入成绩教师可以通过该模块录入学生的成绩。
系统会要求输入学生的学号、姓名和各科成绩,然后将学生的成绩保存到文件中。
3.2 查询成绩学生和教师都可以通过该模块查询学生成绩。
学生可以查询自己的成绩和排名,教师可以查询单个或多个学生的成绩。
3.3 统计成绩教师可以通过该模块统计某门课程的成绩情况,包括最高分、最低分、平均分等。
4. 实现细节学生成绩管理系统的实现细节包括以下几个方面:4.1 数据结构为了方便管理学生的信息和成绩数据,我们可以使用结构体来定义学生的数据类型,包括学号、姓名和各科成绩。
使用链表来组织学生数据,方便插入、删除和查找操作。
4.2 文件操作使用文件来保存学生的信息和成绩数据。
每个学生的数据占据一行,学生的各项信息使用逗号或其他符号进行分隔,方便读写。
在录入成绩和查询成绩时,需要对文件进行相应的读写操作。
4.3 用户界面通过字符界面或图形界面来实现用户的操作和查询。
可以使用菜单或按钮来展示功能模块,方便用户选择操作。
5. 总结学生成绩管理系统是一种方便高校教师和学生管理学生成绩的应用程序。
学生成绩管理系统(c语言结构体以及文件操作)实验报告
没有找到这个学生的信息!
您还想继续进行查找吗?()
成绩输出
《成绩输出:》
写文件
已经成功写入文件!
读文件
谢谢您的使用
容错处理
输入错误!
2、各个模块
定义学生的信息结构体
函数功能:利用循环输入学生的学号姓名以及成绩等信息。
请输入参加考试的人数:
请输入第个学生的信息:学号,姓名,成绩(数学、英语,物理)
返回学生人数
定义学生信息的结构体
函数功能:计学生的平均分、总分
函数功能:循环输出学生的成绩信息
定义学生的信息结构体
声明打印的函数
函数功能:按照学生的总分进行排序
交换学号。
交换姓名
交换成绩
交换总分。
交换平均分。
函数功能:按照学生的姓名字进行排序
交换学号。
交换姓名
交换成绩
交换总分。
交换平均分。
函数功能,遍历查找学生的名字
熟悉文件的基本操作以及增量的测试方法
实验内容(问题,思路,程序,结果)
得分
一、设计思路:
仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的学号、姓名、数学、物理、英语成绩等相关信息;使用循环,以及结构体成员调用一次录入每个学生的成绩等学生信息
2、计算平均和总分模块:利用两层循环,计数变量累加一次循环一个学生、计数变量进行与科目次数相同的累加循环每个科目的成绩进行累加。
3、按照学生成绩以及姓名字典排序模块:比较学生成绩的高低以及姓名字典的大小,使用选择法进行排序
4、查询模块:遍历结构体数组,如果姓名相同则循环输出学生的信息。
5、写文件模块:使用函数打开文件以后进行循环写入。一直到最后一个学生。
c语言学生成绩管理系统实训报告(含源代码)
郑州轻工业学院实训报告实训名称:[130254]C语言程序设计实训姓名: 徐博院(系):软件学院专业班级:网页设计02学号:621413510250指导教师:成绩:时间: 2015年1月5 日至2015年1 月9日一设计项目:学生成绩管理系统二总体设计:1 程序设计组成框图:2:模块功能说明:1 输入功能:输入学生姓名学号及成绩。
2 查看功能:输出姓名学号及各科成绩.3 查询功能:通过学号查询学生姓名及各科成绩。
4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。
5 修改功能:通过输入学号修改指定学生的错误信息.6添加功能:添加学生信息。
7删除功能:通过输入学号输入指定学生信息.8保存功能:将学生信息保存。
9 退出系统。
3:主要函数之间的调用关系及各自功能:主要函数的函数原型void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。
ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。
出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算.iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。
iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。
v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题 目: 学生成绩管理系统 院 系: 专 业: 姓 名: 学 号: 指导教师:日 期: 2017年9月9日实训报告目录1 问题定义 (1)2 系统设计 (1)2.1 总体设计 (1)2.2 函数预览 (2)3 系统实现 (3)3. 1 功能模块 (3)3. 2 全部代码 (12)4 系统维护 (19)4.1 调试和测试 (19)5 归纳总结 (19)5. 1 开发经验 (20)5. 2 实训中遇到的问题及解决方法 (20)5. 3 设计中的不足之处 (20)5. 4 感想和心得体会 (20)6 参考资料 (20)前言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。
我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。
但是,对于程序设计而言,学习C 的步伐不应该停留于此。
我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。
可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。
本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。
本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。
由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。
编者桂林电子科技大学信息科技学院学生成绩管理系统本题目设计目的是训练学生的基本编程能力,了解管理学生成绩信息系统的设计开发流程,熟悉C语言的文件各种基本实现和操作。
本程序中涉及结构体、文件读写、宏等方面的知识。
通过本程序的训练和制作,使学生能对C语言的文件操作等方面有一个更深刻的了解,掌握利用结构体存储实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统以及之后的其他编程方面知识的学习和理解打下坚实的基础。
1、问题定义创建一个学生成绩管理系统。
假设系统中每个学生记录只包括学号、姓名、平时成绩、期末成绩、总评成绩、总分、平均分、名次等信息。
程序的运行效果如上图图所示,选择任意菜单后,实现相应功能。
具体结构体设定请见以后。
程序初始主界面截图如下:在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计2.1 总体设计本管理系统的程序主要由C语言编写,考虑到各方面的维护和需求实现考虑,程序代码总体上采用模块化编程方式设计以及编写。
即将一个大的功能需求分作几个小模块来配合实现,为了降低添加和维护功能和需求的成本和时间。
尽量不依赖于C语言全局变量而是通过函数调用之间的参数来传递数据。
以下是本管理系统的功能模块:5M变更管理办法2.2 函数预览1)主函数调用其他不同功能2)主菜单函数输出显示界面3)新建信息函数1(手写输入)手动输入学生的成绩信息,包括学号、姓名、平时成绩、总评成绩4)新建信息函数2(文件输入)通过文件导入学生成绩信息5)计算成绩函数计算学生试卷分数的总评成绩6)查询成绩函数1(按学号)按学号查询学生试卷的总评成绩主功能菜单新建功能查询功能计算功能输出功能7)查询成绩函数2(按姓名)按学号查询学生试卷的总评成绩8)计算成绩函数1(计算总成绩的及格率和优秀率)计算全班学生总评成绩的及格率和优秀率,并按优良中差输出学生人数 9)计算成绩函数2(计算总成绩的平均分和标准差)计算学生总评成绩的平均分和标准差 10)输出成绩函数输出全班学生的所有成绩,包括学号、姓名、总评成绩 11)导出成绩函数将学生所有成绩的列表导出到文本score.txt 中3、系统实现3.1功能模快(附代码)1)输入限定2)主菜单函数/* 函数功能:显示菜单并获得用户键盘输入的选项*/int Menu(void){int itemSelected;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("0.退出\n");printf("请输入你的选择:");scanf("%d", &itemSelected); /* 读入用户输入*/return itemSelected;}3)限定功能模块限定(或者说确定)学生的人数和总评成绩的计算方式printf("请输入学生人数n(n<=%d):", SIZE);scanf("%d", &n);printf("请输入学生平时成绩与期末成绩所占总评成绩的的比例(用整数表示,满分100分):\n");scanf("%d%d",&a,&b);4)新建成绩函数1(手动输入)5)新建成绩函数2(文件输入)/* 函数功能:手动输入分数 */void Read_data(STU stu[],int n,int a,int b) { int i=0;printf("请输入学生的学号、姓名、平时成绩和期末成绩(逗号隔开):\n"); for(i=0;i<n;i++) {scanf("%ld ,%s ,%d ,%d",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1]); stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100; }}/* 函数功能:从文本student.txt中导入试卷分数*/void Read_data1(STU stu[],int n,int a,int b){int i;FILE *fp;if((fp=fopen("student.txt","r"))==NULL){printf("打开文件student.txt失败!\n");exit(0);}for(i=0;!feof(fp);i++){fscanf(fp,"%ld",&stu[i].num);fscanf(fp,"%s",stu[i].name);fscanf(fp,"%d",&stu[i].score[0]);fscanf(fp,"%d",&stu[i].score[1]);}fclose(fp);for(i=0;i<n;i++){stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100;}}6)计算成绩及输出函数/* 函数功能:计算学生试卷分数的总评成绩*/void Total_mark(STU stu[],int n,int a,int b){int i;for(i=0;i<n;i++){stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100;printf("学生:%ld\t姓名:%s\t总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[2]);}}7)查询成绩函数1(按学号)8)查询成绩函数2(按姓名)/* 函数功能:按姓名查询学生试卷的总评成绩*/void Sortbyname(STU stu[],int n){char named[10];int i;printf("请输入要查找的学生姓名:");scanf("%s",named);for(i=0;i<n;i++){if(strcmp(named,stu[i].name)==0){printf("学号:%ld\t姓名:%s\t平时成绩:%d\t期末成绩:%d\t总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);return;}}printf("抱歉,没有找到!\n");}9)计算成绩函数1(计算总成绩的及格率和优秀率)/* 函数功能:计算全班学生总评成绩的及格率和优秀率,并按优良中差输出学生人数*/void Count_pass(STU stu[],int n){int i,pass_num,t[4];float passrate;memset(t,0,sizeof(t));for(i=0;i<n;i++){if(stu[i].score[2]<60) t[0]++;else if(stu[i].score[2]<=75) t[1]++;else if(stu[i].score[2]<=85) t[2]++;else if(stu[i].score[2]<=100) t[3]++;pass_num=t[1]+t[2]+t[3];passrate=(float)(t[1]+t[2]+t[3])/n;printf("及格人数:%d\n",pass_num);printf("优:%d\t良:%d\t中:%d\t差:%d\n",t[3],t[2],t[1],t[0]);printf("总评成绩及格率:%.2f\n",passrate);printf("总评成绩优秀率:%.2f\n",(float)t[3]/n);}}10)计算成绩函数2(计算总成绩的平均分和标准差)11)输出成绩函数12)导出成绩函数 /* 函数功能:输出全班学生的所有成绩 */void Show_data(STU stu[],int n) {int i; for(i=0;i<n;i++) {printf("学号:%ld\t 姓名:%s\t 平时成绩:%d\t 期末成绩:%d\t 总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);/* 函数功能:将学生所有成绩的列表导出到文本score.txt中*/void Write_data(STU stu[],int n){FILE *fp;int i;if((fp=fopen("score.txt","w"))==NULL){printf("打开文件失败!\n");exit(0);}fprintf(fp,"以下各项分别对应学号、姓名、平时成绩、期末成绩和总评成绩:\n");for(i=0;i<n;i++){fprintf(fp,"%ld\t%s\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1] ,stu[i].score[2]);}fclose (fp);3、系统实现3.1 全部实现代码#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#include <math.h>#define SIZE 100typedef struct student{long num;char name[10];int score[3];}STU;int Menu(void);void Read_data(STU stu[],int n,int a,int b);void Read_data1(STU stu[],int n,int a,int b);void Total_mark(STU stu[],int n,int a,int b);void Sortbynum(STU stu[],int n);void Sortbyname(STU stu[],int n);void Count_pass(STU stu[],int n);void Count_average(STU stu[],int n);void Show_data(STU stu[],int n);void Write_data(STU stu[],int n);int main(){STU stu[SIZE];int n,a,b;char ch;int oh;printf("\t\t******************************************** \n");printf("\t\t\t* 欢迎使用* \n");printf("\t\t\t* 学生试卷分数统计系统* \n");printf("\t\t******************************************** \n");while (1){ch = Menu();switch (ch){case 1:printf("请输入学生人数n(n<=%d):", SIZE);scanf("%d", &n);printf("请输入学生平时成绩与期末成绩所占总评成绩的的比例(用整数表示,满分100分):\n");scanf("%d%d",&a,&b);printf("以下有两种输入试卷分数的方式:\n***1.手动输入试卷分数\t2.从student.txt文件中导入试卷分数***\n");scanf("%d",&oh);switch (oh){case 1:Read_data(stu,n,a,b);break;case 2:Read_data1(stu,n,a,b);break;default:printf("输入菜单序号错误!");}break;case 2:Total_mark(stu,n,a,b);break;case 3:Sortbynum(stu,n);break;case 4:Sortbyname(stu,n);break;case 5: Count_pass(stu,n);break;case 6: Count_average(stu,n);break;case 7:Show_data(stu,n);break;case 8:Write_data(stu,n);break;case 0:printf("\t\t******************************************** \n");printf("\t\t\t* 感谢使用* \n");printf("\t\t\t* 学生试卷分数统计系统* \n");printf("\t\t******************************************** \n");exit(0);default:printf("输入菜单序号错误!");}}return 0;}/* 函数功能:显示菜单并获得用户键盘输入的选项*/int Menu(void){int itemSelected;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("0.退出\n");printf("请输入你的选择:");scanf("%d", &itemSelected); /* 读入用户输入*/return itemSelected;}/* 函数功能:手动输入分数*/void Read_data(STU stu[],int n,int a,int b){int i=0;printf("请输入学生的学号、姓名、平时成绩和期末成绩(逗号隔开):\n");for(i=0;i<n;i++){scanf("%ld,%s,%d,%d",&stu[i].num,&stu[i].name,&stu[i].sc ore[0],&stu[i].score[1]);stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100;}}/* 函数功能:从文本student.txt中导入试卷分数*/void Read_data1(STU stu[],int n,int a,int b){int i;FILE *fp;if((fp=fopen("student.txt","r"))==NULL){printf("打开文件student.txt失败!\n");exit(0);}for(i=0;!feof(fp);i++){fscanf(fp,"%ld",&stu[i].num);fscanf(fp,"%s",stu[i].name);fscanf(fp,"%d",&stu[i].score[0]);fscanf(fp,"%d",&stu[i].score[1]);}fclose(fp);for(i=0;i<n;i++){stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100;}}/* 函数功能:计算学生试卷分数的总评成绩*/void Total_mark(STU stu[],int n,int a,int b){int i;for(i=0;i<n;i++){stu[i].score[2]=stu[i].score[0]*a/100+stu[i].score[1]*b/100;printf("学生:%ld\t姓名:%s\t总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[2]);}}/* 函数功能:按学号查询学生试卷的总评成绩*/void Sortbynum(STU stu[],int n){int number,i;printf("请输入要查找的学生学号:");scanf("%d",&number);for(i=0;i<n;i++){if(stu[i].num==number){printf("学号:%ld\t姓名:%s\t平时成绩:%d\t期末成绩:%d\t总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);return;}}printf("抱歉,没有找到!\n");}/* 函数功能:按姓名查询学生试卷的总评成绩*/void Sortbyname(STU stu[],int n){char named[10];int i;printf("请输入要查找的学生姓名:");scanf("%s",named);for(i=0;i<n;i++){if(strcmp(named,stu[i].name)==0){printf("学号:%ld\t姓名:%s\t平时成绩:%d\t期末成绩:%d\t总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);return;}}printf("抱歉,没有找到!\n");}/* 函数功能:计算全班学生总评成绩的及格率和优秀率,并按优良中差输出学生人数*/void Count_pass(STU stu[],int n){int i,pass_num,t[4];float passrate;memset(t,0,sizeof(t));for(i=0;i<n;i++){if(stu[i].score[2]<60) t[0]++;else if(stu[i].score[2]<=75) t[1]++;else if(stu[i].score[2]<=85) t[2]++;else if(stu[i].score[2]<=100) t[3]++;pass_num=t[1]+t[2]+t[3];passrate=(float)(t[1]+t[2]+t[3])/n;printf("及格人数:%d\n",pass_num);printf("优:%d\t良:%d\t中:%d\t差:%d\n",t[3],t[2],t[1],t[0]);printf("总评成绩及格率:%.2f\n",passrate);printf("总评成绩优秀率:%.2f\n",(float)t[3]/n);}}/* 函数功能:计算学生总评成绩的平均分和标准差*/void Count_average(STU stu[],int n){int i;double sum=0,aver,temp=0,standard;for(i=0;i<n;i++){sum=stu[i].score[2]+sum;}aver=(float)sum/n;for(i=0;i<n;i++){temp=(stu[i].score[2]-aver)*(stu[i].score[2]-aver)+temp;}standard=sqrt(temp/n);printf("总评成绩平均分:%.2f\t总评成绩标准差:%.2lf\n",aver,standard);}/* 函数功能:输出全班学生的所有成绩*/void Show_data(STU stu[],int n){int i;for(i=0;i<n;i++){printf("学号:%ld\t姓名:%s\t平时成绩:%d\t期末成绩:%d\t 总评成绩:%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}}/* 函数功能:将学生所有成绩的列表导出到文本score.txt中*/void Write_data(STU stu[],int n){FILE *fp;int i;if((fp=fopen("score.txt","w"))==NULL){printf("打开文件失败!\n");exit(0);}fprintf(fp,"以下各项分别对应学号、姓名、平时成绩、期末成绩和总评成绩:\n");for(i=0;i<n;i++){fprintf(fp,"%ld\t%s\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i] .score[0],stu[i].score[1],stu[i].score[2]);}fclose (fp);}4、系统维护经测试与调试确认软件无错时,开发就告一段落,这时可以交付软件供用户使用,但是在软件的使用过程中还会面临更加漫长的工作,即软件维护。