C语言学生信息管理系统

本文介绍了使用C语言实现学生信息管理系统的过程,旨在熟悉结构体、循环与选择语句、typedef声明新类型以及函数的使用。系统实现了录入、查询、修改、删除、排序和统计等功能,提高了debug能力。在实践中,作者体会到函数化代码的重要性,以及在输出数据时使用%-10s等格式化技巧。此外,详细说明了插入和删除操作的实现方法,并展示了系统的用户界面功能。
摘要由CSDN通过智能技术生成

实验目的:

1.  熟悉结构体的使用方法

2.  学会综合运用循环语句与选择语句并结合字符串数组及数组实现学生相关信息的排序、查找、录入、删除等功能。

3.  学会使用typedef声明新类型名

4.  学会利用函数简化main()函数,使得程序层次清晰;同时通过使用函数减少重复代码,提高程序的可读性。

5.  学会使用switch语句优化菜单的显示方式,使得菜单层层显示。

6.  提高debug能力。

硬件环境:

联想小新潮7000

I7-8550U+8G内存+128G SSD固态硬盘+1T机械硬盘+NVIDIA  GeForce 940M

软件环境:

操作系统:Windows10

编译器:Dev C++

文本编译器:Notepad++

实验步骤与内容:

1.     #include <stdio.h>,#include<stdlib.h> ,#include<string.h> ,#include"process.h",#include"ctype.h" 声明下面即将使用的头文件

2.     使用typedef定义结构体,用于存储学生的相关信息及方便进行后续操作;

3.             使用循环、数组等,针对菜单提示、成绩录入、修改、添加/追加、删除、查询统计(按学号、姓名、各科成绩查询(包括成绩段查询),按分数段统计人数等)、退出等功能分别声明、定义和调用不同函数实现。

4.             在main()函数中使用swich语句调用相关函数,实现学生信息管理系统的基本功能。

结论分析与体会:

1.  当程序有较多重复或相似的代码时,可以使用函数统一编写相应的功能,在针对每种具体的情况做出适当的调整,从而减少代码量,提高程序的可读性,同时便于程序的后期维护(如debug)。

2.  在输出数据时,可以使用%-10s等输出方式,使得输出的数据左对齐。

3.  可以使用函数对结构体进行整体操作,从而减少代码量。

4.  插入时,首先将插入数据保存起来,采用自后向前循环覆盖法,用插点及其后方的数据自后而前逐一覆盖后一位同学的信息,最后再用插入数据的信息覆盖插入点的信息。

插入时,可以先放在尾部,再与前面的数据交换位置i与j交换,后面的数据依次后退一个单位覆盖后面的数据,当然总数n也要加一(用一个counts记录)另外,插入时可以调用编辑中的录入。

即:t = stu[n+i];

for (k=n+i-1;k>=place;k--)

stu[k+1]=stu[k];

stu[place]= t;

5.  删除时,采用自前向后覆盖法,原理类似于插入。

通过这次较为大型的实验,我明显感觉到自身debug能力的提高,并初步感受到了代码量巨大时细心和规范的习惯的重要性。同时,通过不断地查阅资料,程序的功能也不断地完善,最终不知不觉地写了900多行代码。看到程序真的按照构思正确执行时,内心很有成就感。


用户界面:(功能展示)

1.编辑功能(含录入、修改、删除、插入):

2.显示功能:

3.查询功能

4.排序功能:

5.统计功能:

6.文件功能:既可以读入,也可以修改或进行其他操作并当即保存至本次打开的文件。 

7.退出功能:

代码如下:

#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
#include "process.h"
#include "ctype.h"
typedef struct 
{
    char num[10];
    char name[10];
	char sex[10];
    int internet; 
    int math; 
    int english; 
	double aver;
}Student;
Student stu[1000];
Student*pt=stu;


int input(Student*pt,int n);/*输入若干条记录*/
void sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值