学生信息管理系统(结构化程序)(C语言)

本文介绍了使用C语言设计的学生信息管理系统,旨在实现结构化程序设计。系统包括完善的功能,如文档注释、文件处理、数据结构优化。通过实验,作者加深了对结构化程序设计的理解,特别是对char类型和文件操作的应用,同时也认识到其局限性。
摘要由CSDN通过智能技术生成

学生信息管理系统(结构化程序)(C语言)

一、实验目的

  1. 明确结构化程序设计的基本结构。
    2.通过对问题的分析,设计合理的结构化程序解决问题
    二、实验内容
    对学生信息管理系统,要求完成以下基本任务:
    1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。
    2.将功能补充完全(基于文件处理,完成刷新和保存功能)。
    3.将学生信息改为更好的数据组织,而非离散形式(结构体)。
    提高要求:
    可将程序中的不足(如数据验证)等根据自己的能力与理解完成。

三、算法流程图
程序框架流程图:
在这里插入图片描述
主要算法流程图
在这里插入图片描述
在这里插入图片描述
四、主要代码
学生信息结构化:`

struct xinxi {
   
	char code[LEN + 1];	/* 学号*/
	char name[LEN + 1];	/* 姓名*/
	int age;			/* 年龄*/
	char sex[LEN + 1];		/* 性别*/
	float score[3];     /* 3门课程成绩*/
}stud[N];

源代码:

/*********************************************************************************
*FileName:  Test1.cpp
*Author:  Elf.苏洛曦
*e-mail:  617992304@qq.com
*Version:  1.0.0
*Date:  2019.2.26
*Description: 学生信息管理系统
*History:
1.Date:    2019.4.7
Author:  Elf.苏洛曦
Modification:   Create  project
2.Date:    2019.4.9
Author:  Qixiang.Su
Modification:   Edit  project
**********************************************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>	/*I/O函数*/
#include<stdlib.h>	/*其它说明*/
#include<string.h>	/*字符串函数*/
#define LEN 15		/* 学号和姓名最大字符数,实际请更改*/
#define N 50		/* 最大学生人数,实际请更改*/

//定义学生信息结构体
struct xinxi {
   
	char code[LEN + 1];	/* 学号*/
	char name[LEN + 1];	/* 姓名*/
	int age;			/* 年龄*/
	char sex[LEN + 1];		/* 性别*/
	float score[3];     /* 3门课程成绩*/
}stud[N];

int k = 1, n, m;    //n为学生的总人数,m为新增学生数

void save();    //保存学生信息
void seek();     //查找
void modify();   //修改学生信息
void insert();   //插入学生信息
void del();      //删除学生信息
void display();  //显示当前的学生信息
void menu();      //主界面
void read();      //读取信息

int main() {
   
	while (k) {
   
		menu();
	}
	system("pause");
	return 0;
}


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

void read() {
   
	char filename[LEN + 1];
	FILE *p;
	int i = 0;
	printf("请输入已经存有学生信息的文件名:\n");
	scanf("%s", filename);
	if ((p = fopen(filename, "r")) == NULL) {
   
		printf("error on open %s!", filename);
		printf("先选择菜单4输入学生信息并保存\n");
		system("pause");
		return;
	}
	while (fscanf(p, "%s%s%d%s%f%f%f\n", stud[i].code, stud[i].name, &stud[i].age, stud[i].sex,
		&stud[i].score[0], &stud[i].score[1], &stud[i].score[2]) == 7) {
   
		i++;
	}
	n = i;
	if (0 == i) {
   
		printf("文件为空");
	}
	else {
   
		printf("读入完成\n");
		fclose(p);
		system("pause");
	}
}


void seek() {
   
	int i, item, flag;
	char s1[21]; /* 以姓名和学号最长长度+1为准*/
	printf("------------------\n");
	printf("-----1.按学号查询-----\n");
	
  • 27
    点赞
  • 159
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值