C语言课 程 设 计 报 告--班级管理系统

题目:班级成绩管理系统

 提交内容:

一、设计任务与目标

对一个有N个学生的班级,每个学生有3门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。功能要求:

数据导入及显示:提供从外部文件导入学生数据的功能,以便快速填充系统。同时,能够显示已导入数据的功能,以便核对和验证。需要改进已导入后再次导入相同的文件,会有提示并且不导入,避免二次导入。

新记录输入:允许用户输入新的学生成绩记录,包括学号、姓名和课程成绩。在输入之前,为了确保每个学生都有唯一的身份标识。要求了学号的唯一性,学号重复,则会要求重新输入。

删除记录:提供删除指定学生记录的功能,根据学号进行匹配并删除。删除操作进行必要的验证,若查找不到要删除的学号,会显示该学生是否存在,若查到到要删除的学号,会显示删除成功,并且显示出删除后所有学生的信息界面。有利于查找程序运行是否正确。改进可以有删除ID和姓名选项,并且ID唯一

成绩查询:允许用户查询指定学生的ID,根据学号进行匹配并显示学生的基本信息和成绩。改进有,查询指定学生的姓名,根据学生姓名进行匹配并显示学生的基本信息和成绩。并且可以实现多次查找,有退出功能。

成绩修改:提供修改学生成绩的功能,但要求用户输入密码进行身份验证,以确保只有授权用户才能进行修改操作。改进可以有修改学生名字和学号,学号修改时重复,会提示重复并询问是否继续修改。

成绩排序:提供按照学号从小到大排序,按照单科成绩或平均分进行排序的功能,方便用户对学生的成绩进行排名和比较。

成绩保存:提供将当前学生成绩数据保存到外部文件的功能,以便将数据持久化和备份。

成绩统计:提供各种成绩统计功能,包括每门课程成绩最高的学生基本信息、每门课程的平均成绩以及超过某门课程平均成绩的学生人数等。改进可以是重新选择想要选择另外一种功能时,界面不会跳到总菜单那边。

二、程序框图或流程图,程序清单与调用关系

学生成绩管理系统主界面模块:

成绩文件模块:

成绩输入模块:

成绩删除:。。。

三、全部源程序清单

#include<stdio.h>
#include<stdlib.h> //用于system("pause") 
#include<string.h>
#include<Windows.h>//用于爱心
//定义结构体类型
typedef struct
{
	int num;	//学号 
	char name[20];	//姓名 
	int score1;		//语文成绩 
	int score2;		//数学成绩
	int score3;		//英语成绩 
	float aver;       //平均分 
 } STU; 
 STU stu[80];
 
 //Menu函数
 // 功能 提供菜单选项
 //参数 无
//返回值 数字字符
int Menu(void)
{
	char c;
	do{
		system("cls"); //清屏函数
		printf("		************************************************************\n");
		printf("		***			学生成绩管理系统   	   	 ***\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("		************************************************************\n");
		printf("				请输入你的选择\n");
		c=getchar(); 
	}while(c<'0'||c>'8');//若输入的不是数字,就重新输入 
	return(c);
 } 
 //Read_from_file函数
//功能 从文件中读取数据
//参数 从数组元素stu[n]开始输入
//返回值 记录数 


int Read_from_file(STU stu[],int n){}
//Write_to_file函数
//功能 将记录写进文件
//参数 将数据结构体stu的前n条记录写进文件
//返回值 无
 void Write_to_file(STU stu[],int n)
 {}。。。

。。。

四、程序运行的测试与分析

  • 文件导入与显示:

    Students.txt文件中的数据:

。。。。

五、结论与心得

(主要说明程序调试中发现的问题和解决办法,包括你学到了什么,哪里遇到了困难,解决的办法,可能但因时间关系没有来得及完成的想法,今后的目标等。)

学生成绩管理系统的编写,看似杂乱无序,实际上并非如此。它的每一个功能都能分为模块。有句话说的好,大事化小,小事化大。c语言程序也是如此,把一个大的程序分成了若干相互独立的模块,这样使得完成每个模块的工作变得单纯而明确,这样不仅降低了难度,还使得思路清晰,很容易写出要做的程序,从而设计一些较大的软件打下良好的基础。在这个过程中,我学到了:

  • 自项而上:现有全局,在进行整体设计,然后再进行下层设计,逐步实现精细化。采用这种方法能够做到胸有全局,不至于顾此失彼。
  • 不求速度,但求质量,一步一个质量,编写程序时候速度宁可慢点也要保证质量。。。。
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值