关于C语言课设学生管理系统的编写(简单版)

关于C语言课设学生管理系统的编写(简单版),第1张

课设要求

根据课设要求,我们需要给我们的管理系统增加以下功能:1,菜单方式工作;2,录入功能;3,浏览功能;4,查询功能;5,排序功能;6,删除功能;7,修改功能;8,保存功能。

我们将用模块化的思想一步步的完成编写。

结构体的构建

我们已经知道了课设的要求,根据要求我们可以构建如下的结构体:

#include
#include
#include
#define N 30
int n=0;                  //创建全局变量方便控制已输入人数 
struct student{         //定义结构体 
	char sumber[10];    //学号 
	char name[15];          //姓名 
	int age;            //年龄 
	char gender;        //性别 
	char birthday;      //出生年月 
	char site;          //地址 
	int sum;        //电话号码 
	char mail;          //电子邮箱 
	
}stu[N];

构建好结构体后,我们将对功能进行模块话的编写;

菜单

首先是菜单的编写:

void show()			 //显示菜单 
{
	printf("     ----------1.录入学生信息----------\n");
	printf("     ----------2.查询学生信息----------\n");
	printf("     ----------3.浏览学生信息----------\n");
	printf("     ----------4.修改学生信息----------\n");
	printf("     ----------5.保存学生信息----------\n");
	printf("     ----------6.删除学生信息----------\n");
	printf("     --------------0.退出--------------\n"); 
}

使用连续的几个输出完成对菜单的编写。 

录入学生信息

我们使用entering函数:

int entering()        //录入学生信息
{
	int a; 
	printf("请输入添加学生人数:");
	scanf("%d",&a);
	int i;
	for(i=n;i
浏览学生信息

使用browse函数:

void browse()           //浏览学生信息 
{
	if(n==0)            //当n为0时给出提示:暂无信息 
	{
	printf("当前并无学生信息\n");
	return;
	}
	printf("学号  姓名  年龄  性别  出生年月  地址  电话号码  电子邮箱\n");
	for(int i=0;i<=n;i++)
	{
		printf("%s  %s  %d  %s  %s  %s  %d  %s", stu[i].sumber, stu[i].name, stu[i].age, stu[i].gender, stu[i].birthday, stu[i].site, stu[i].sum, stu[i].mail);
	}
	system("pause");

}

如果n=0的话会给出没有信息的提示;

查询学生信息

这里我使用的是利用学生学号去进行查找:

void inquire()          //查询学生信息
{
	char num[10];
	printf("请输入你要查询学生的学号:");
	scanf("%s",&num);
	int i;
	for(i=0;i
保存信息
void save(){
	int i;
	FILE *fp;
	char filename[16];
	printf("请输入要保存的文件名:\n");
	scanf("%s", filename);
	fp = fopen(filename, "w");
	for (i = 0; i < n; i++){
		fprintf(fp, "%s%s%d%s%s%s%d%s\n", stu[i].sumber, stu[i].name, stu[i].age, stu[i].gender,
			stu[i].birthday, stu[i].site, stu[i].sum, stu[i].mail);
	}
	printf("保存成功!!!\n");
	fclose(fp);
	system("pause");
}

这一部分我也不是太理解,如果有懂得可以一起探讨一下。

删除信息

利用学生学号去搜索,对该学号进行删除,并且使后面的位置向前移动。

void del()            //删除
{
	int i, j, flag;
	char s1[10];
	printf("请输入需要删除的学生学号:\n");
	scanf("%s", s1);
	flag = 0;
	for (i = 0; i < n; i++)
	{
		if (strcmp(s1, stu[i].sumber) == 0)
		{
			flag = 1;
			for (j = i; j < n - 1; j++)
			{
				stu[j] = stu[j + 1];//直接把后面的学生都往前移动一位 
			}
		}
		if (flag == 1) break;//说明已经找到了需要删除的学生,结束循环 
	}
	if (0 == flag)
	{
		printf("该学号不存在!!!\n");
	}

	if (1 == flag)
	{
		printf("删除成功\n");
		n--;
	}
	system("pause");
修改信息

利用子菜单去修改目标的信息。

void remove()         //修改
{
	int i,g;
	char name[15],number[9],sex,birthday,site,mail;
	int age,sum;
	printf("请输入需要修改学生的姓名: \n");
	getchar();
	gets(name);
	 
	while(1)
	{
		g=0;
		for(i=0;i
选择

利用switch语句对所使用功能进行跳转,与修改中利用选择子菜单功能类似。

void choose(int i)
{
	switch(i){
		case 1:entering();break;
		case 2:inquire();break;
		case 3:browse();break;
		case 4:remove();break;
		case 5:save();break;
		case 6:del();break;
		case 0:return;break; 
		default :printf("输入有误"); 
	}
	
}

下面是该管理系统的全部代码:

#include
#include
#include
#define N 30
int n=0;                  //创建全局变量方便控制已输入人数 
struct student{         //定义结构体 
	char sumber[10];    //学号 
	char name[15];          //姓名 
	int age;            //年龄 
	char gender;        //性别 
	char birthday;      //出生年月 
	char site;          //地址 
	int sum;        //电话号码 
	char mail;          //电子邮箱 
	
}stu[N];


//定义函数
int entering()        //录入学生信息
{
	int a; 
	printf("请输入添加学生人数:");
	scanf("%d",&a);
	int i;
	for(i=n;i

有什么不对的地方欢迎大家指正。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1325401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)