学生信息管理系统——C语言版

一.题目分析:
1.功能概述:
1)查询学生信息
2)添加学生信息
3)修改学生信息
4)删除学生信息
5)刷新学生信息
6)保存学生信息
7)输出当前学生信息
2.题目要求:
1)使用结构体建立学生信息体制
2)实现七大基本功能
3)采用文件存储学生信息
二.算法构造
1.难点解析----对文件的操作
1.1文件读取

FILE * fp;
	if ((fp = fopen(filename, "r")) == NULL) return 0;
	//从文件读取信息 
	while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
		j++;
	}

1.2文件写入

FILE * fp;
fp = fopen(filename, "w");
	for (i = 0; i < n; i++){
		fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
			stu[i].score[0], stu[i].score[1], stu[i].score[2]);
	}

2.流程图
在这里插入图片描述
3.七大基本功能----函数实现
3.1菜单函数:通过菜单建立用户与程序之间的交流

void menu()/* 界面*/
{
	int num;
	printf(" \n\n                    \n\n");
	printf("  ******************************************************\n\n");
	printf("  *                学生信息管理系统                    *\n \n");
	printf("  ******************************************************\n\n");
	printf("*********************系统功能菜单*************************       \n");
	printf("     ----------------------   ----------------------   \n");
	printf("     *********************************************     \n");
	printf("     * 0.系统帮助及说明  * *  1.刷新学生信息   *     \n");
	printf("     *********************************************     \n");
	printf("     * 2.查询学生信息    * *  3.修改学生信息   *     \n");
	printf("     *********************************************     \n");
	printf("     * 4.增加学生信息    * *  5.按学号删除信息 *     \n");
	printf("     *********************************************     \n");
	printf("     * 6.显示当前信息    * *  7.保存当前学生信息*     \n");
	printf("     ********************** **********************     \n");
	printf("     * 8.退出系统        *                            \n");
	printf("     **********************                            \n");
	printf("     ----------------------   ----------------------                           \n");
	printf("请选择菜单编号:");
	scanf("%d", &num);
	switch (num)
	{
	case 0:help(); break;
	case 1:flush(); break;
	case 2:seek(); break;
	case 3:modify(); break;
	case 4:insert(); break;
	case 5:del(); break;
	case 6:display(); break;
	case 7:save(); break;
	case 8:
		k = 0; 
		printf("即将退出程序!\n");
		break;
	default:printf("请在0-8之间选择\n");
	}
}

3.2系统帮助与说明函数:适用于初次接触学生信息管理系统的用户参考

void help()
{
	printf("\n0.欢迎使用系统帮助!\n");
	printf("\n1.初次进入系统后,请先选择增加学生信息;\n");
	printf("\n2.按照菜单提示键入数字代号;\n");
	printf("\n3.增加学生信息后,切记保存;\n");
	printf("\n4.谢谢您的使用!\n");
}

3.3刷新学生信息函数
功能:调用刷新信息函数后,文件中再无学生信息

int flush(){
	char filename[LEN + 1];
	int i = 0;
	printf("请输入要刷新学生信息的文件名:\n");
	scanf("%s", filename);
	int j = 0;
	FILE * fp;
	if ((fp = fopen(filename, "r")) == NULL) return 0;
	//从文件读取信息 
	while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
		j++;
	}
	n = j;
	printf("刷新成功!!!");
	return n;
}

3.4查询学生信息函数
功能:通过输入要查询的学生学号或者姓名,与系统中的学生信息进行对比,若相等,则输出该学生的基本信息;反之,则输出该学生在该管理系统中不存在
查询方式:
1)按照学号查询
2)按照姓名查询

void seek() /*查找*/
{
	int i, item, flag;
	char s1[21]; /* 以姓名和学号最长长度+1为准*/
	printf("------------------\n");
	printf("-----1.按学号查询-----\n");
	printf("-----2.按姓名查询-----\n");
	printf("-----3.退出本菜单-----\n");
	printf("------------------\n");
	while (1)
	{
		printf("请选择子菜单编号:");
		scanf("%d", &item);
		flag = 0;
		switch (item)
		{
		case 1:
			printf("请输入要查询的学生的学号:\n");
			scanf("%s", s1);
			for (i = 0; i
  • 1065
    点赞
  • 6088
    收藏
    觉得还不错? 一键收藏
  • 112
    评论
学生成绩管理系统是一个用于记录和管理学生的成绩信息的软件系统。它可以帮助教师或管理员轻松地录入、查询和统计学生的成绩数据。 在C语言中,实现学生成绩管理系统需要使用一些基本的数据结构和算法。以下是一个简单的示例程序来演示如何实现学生成绩管理系统: ```c #include <stdio.h> #include <stdlib.h> #define MAX_STUDENTS 100 struct Student { char name[50]; int rollNumber; float marks; }; void addStudent(struct Student students[], int *count) { if (*count >= MAX_STUDENTS) { printf("无法添加更多的学生。\n"); return; } struct Student newStudent; printf("请输入学生姓名:"); scanf("%s", newStudent.name); printf("请输入学生学号:"); scanf("%d", &newStudent.rollNumber); printf("请输入学生分数:"); scanf("%f", &newStudent.marks); students[*count] = newStudent; (*count)++; printf("成功添加学生。\n"); } void displayStudents(struct Student students[], int count) { if (count == 0) { printf("没有学生可显示。\n"); return; } printf("所有学生的成绩如下:\n"); for (int i = 0; i < count; i++) { printf("姓名:%s\n", students[i].name); printf("学号:%d\n", students[i].rollNumber); printf("分数:%.2f\n", students[i].marks); printf("--\n"); } } int main() { struct Student students[MAX_STUDENTS]; int count = 0; int choice; do { printf("学生成绩管理系统\n"); printf("1. 添加学生\n"); printf("2. 显示所有学生\n"); printf("3. 退出\n"); printf("请选择操作:"); scanf("%d", &choice); switch (choice) { case 1: addStudent(students, &count); break; case 2: displayStudents(students, count); break; case 3: printf("感谢使用学生成绩管理系统。\n"); exit(0); default: printf("无效的选择,请重新输入。\n"); } printf("\n"); } while (1); return 0; } ``` 这个示例程序实现了一个简单的学生成绩管理系统,可以通过菜单选项来添加学生和显示所有学生的成绩信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 112
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值