890行学生成绩管理系统代码(C语言大作业),分模块讲解各种功能

这篇博客详细介绍了如何使用C语言实现一个890行的学生成绩管理系统,涵盖了Sleep函数、system函数、goto函数、链表等基础知识,并解析了系统中的录入、修改、删除、查找、排序、统计等功能的实现。通过实例讲解,帮助读者理解这些功能的编程逻辑和优化技巧。
摘要由CSDN通过智能技术生成

今年的最后一篇博客,承接上篇,来谈谈管理系统中的各个功能具体是怎样实现的。

没看过上篇博客的请先移步:890行。设计最强最全学生成绩管理系统(C语言大作业)(文后附解析说明的博客)_heiyu13498269232的博客-CSDN博客https://blog.csdn.net/heiyu13498269232/article/details/121725778?spm=1001.2014.3001.5501

目录

一、知识说明

1、Sleep睡眠函数

2、system函数

3、goto函数

4、链表

二、菜单与主函数

三、控制选项输入函数(Input)

四、录入信息函数

五、修改

六、删除

七、查找

八、排序

九、统计

十、优化

十一、结语


一、知识说明

        首先谈谈几个程序中很重要的元素:Sleep函数,system函数,goto函数,链表

1、Sleep睡眠函数

使用它要添加一个<windows.h>头文件,用法很简单,Sleep(时间),这个时间在windows里是以毫秒为单位,Linux里以秒为单位。当编译器读到它时,将休眠这么长的时间再向下编译。

而我们可以利用它达成怎样一种效果呢?正常的打印一字符串,将瞬间全部显示出来,而用上Sleep,看以下代码:

void Tips(char a[])
{
	int i;
	for (i = 0; i < strlen(a); i++)
	{
		printf("%c", a[i]);
		Sleep(30);
	}
}

当我传入任何一个字符串,进入for循环,都将变成每打印一个字符就“暂停”30毫秒,连在一起,展示效果:

 就像有人在不断地打字回你消息,程序是不是一下子就有了温度?举一反三,编写这样一个Tips函数后,整个程序中你所有想要打印在屏幕上作为提示的语句,都可以先存入一个字符数组中,然后需要提示的时候就写一个Tips(提示语句),这样就可以顺利打印啦。

2、system函数

        它的功能有很多,头文件就是stdio.h。笔者目前就用了两个,分别是system("cls")和system("pause")。先说第一个,它的功能是清屏,将运行小黑框里的所有内容清除,再往下运行。当进入功能函数后,无论是自己输入还是程序提示,都会使屏幕上有非常多的内容,当你要再次进入菜单重新选择操作时,屏幕不是会显得很乱吗?这时候我们使用一个清屏函数,再打印菜单,就好像重新打开了一遍程序似的,而且上一次录入或更改的信息还保存着,非常nice。我们来看看效果:

        而system("pause")是暂停函数,它不像Sleep一样过了时间就继续运行,它要你敲一下任意键才会“继续播放”,也起一个停顿的作用 。掌握它们以后,你就能在你程序的任何一个地方想清屏就清屏,想暂停就暂停啦。

3、goto函数

我们直接以主函数为例:


int main()
{
	printf("				");
	char welcome[] = "欢迎使用Upping编写的学生成绩管理系统!\n";
	char end[] = "系统即将关闭,期待您的下次使用!\n";
	char wish[] = "祝您生活愉快";
	Tips(welcome);
	Sleep(1000);
A:
	switch (Input())//灵活运用system函数,使每一次执行完菜单命令之后,都能清屏,使界面美观
	{
	case 1:
		Enter();//录入功能
		system("pause");
		system("cls");
		goto A;

	case 2:
		Enter();//增加功能(与录入同一函数)
		system("pause");
		system("cls");
		goto A;
	case 3:
		Revise();//修改功能
		system("pause");
		system("cls");
		goto A;
	case 4:
		Delete();//删除功能
		system("pause");
		system("cls");
		goto A;
	case 5:
		Find();//查找功能
		system("pause");
		system("cls");
		goto A;
	case 6:
		Statistic();//统计功能
		system("pause");
		system("cls");
		goto A;
	case 7:
		Sort();//排序功能
		system("pause");
		system("cls");
		goto A;
	case 8:
		Total_Level();//划分数线功能
		system("pause");
		system("cls");
		goto A;
	case 0:			//当要退出程序时,归还动态申请存放信息的空间。
		free(t);							
		free(pc);
		printf("					");
		Tips(end);
		Sleep(1000);
		printf("					");
		Tips(wish);
		Sleep(1000);
		system("cls");
	}
	return 0;
}

   你会发现在Switch上方有一个“A:”,而每个case里都要执行goto A语句,其实它的用法也非常好理解。就是就是goto——去往A点。不用任何判断条件的毫不犹豫跳转至A点重新走。

       

技术特点:采用三层架构模式、数据页、获取等均使用代码实现。注释详细、代码规范,非常适合学习和中小型学校使用。 功能描述: 一,可以导入和导出成绩,成绩单上的项目包括:姓名,学号,科目,班级,成绩,补考成绩,授课老师,考试日期。 其中成绩和补考成绩具体情况如下: 1,计算机课程:理论成绩,实践成绩,, 2,文化课:理论, 3,英语:考试成绩,平时成绩,总成绩 二,导入成绩后,系统会自动计算出该班级该科目的应考人数,实考人数,缺考人数,及格人数,不及格人数,平均,通过率。 其中平均和率具体情况如下: 1,计算机课程:理论成绩,实践成绩,总成绩(理论和实践各占50%) 2,文化课:理论, 3,英语:考试成绩,平时成绩,总成绩(考试成绩占80%,平时成绩占20%) 4,计算机课程: 理论平均,通过率;实践平均,通过率;总成绩的平均,通过率。 5,文化课:理论成绩的平均,通过率 6,英语:总成绩的平均和通过率 三:查询: 1,可以通过班级,学号,姓名,科目,及格的人和不及格的人,授课老师进查询, 2,可以查询该班的单科成绩,也可以查询该班的各科成绩汇总。 3,可以按月度查询该月所有考试的平均和通过率,也可 以按年度查询该年度的平均和通过率。 4,可以查询授课老师某一门的月度和年度平均和通过率和该老师所授所有课程的月度和年度平均和通过率。 四、成绩排序 可按照该班级某门课程的理论成绩,实践成绩、总成绩进排序 五、任课教师的管理 任课教师基本信息,该门课程的授课教师 教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进具体的管理,并对任课老师等输入的信息进管理,对学生的信息进必要的维护,可打印学生的所有信息。 绝对是可用实际部署使用的。很实惠的。 注意事项:运时请修改附加数据库并修改数据库连接字符串(在web.config里面)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值