C语言_完善学生信息管理系统

本文档详细介绍了如何使用C语言完善一个学生信息管理系统,包括需求分析、改写程序为良好的程序风格,增加文件处理功能以实现数据的刷新和保存,并通过结构体优化学生信息的组织方式。此外,还提供了流程图和N-S盒图来辅助理解系统的查询部分。
摘要由CSDN通过智能技术生成

完善学生信息管理系统

实验步骤:

  1. 需求分析:
    (1)改写程序为良好程序风格(文档注释,函数注释,语句注释)。
    (2)将功能补充完全(基于文件处理,完成刷新和保存功能)。
    (3)将学生信息改为更好的数据组织,而非离散形式(结构体)。
  2. 概要设计
    流程图如下:
    在这里插入图片描述N-S盒图如下:(查询部分)
    在这里插入图片描述3. 主要模块实现
#define LEN 15		/* 学号和姓名最大字符数,实际请更改*/
#define N 50		/* 最大学生人数,实际请更改*/
struct record{
   
	char code[LEN];	/* 学号*/
	char name[LEN];	/* 姓名*/
	int age;		/* 年龄*/
	char sex[LEN];		/* 性别*/
	float score[3];     /* 3门课程成绩*/
}stu[N];
int k = 1, n = 0, m = 0;//定义全局变量。 n代表当前记录的学生人数

void help();
void update();
void seek();
void modify();
void sort();
void insert();
void del();
void display();
void save();
void menu();

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 update(){
   //更新信息,从文件读入信息
	save();
	FILE *fp;			   //文件指针
	int x = 0;
	if ((fp = fopen("in.txt", "r")) == NULL) {
    system("pause"); return; }
	for (x = 0; x <= n; x++){
   
		fscanf(fp, "%s %s %d %s %f %f %f", stu[x].code, stu[x].name, &stu[x].age, stu[x].sex,
			&stu[x].score[0], &stu[x].score[1], &stu[x].score[2]);
	}
	
	printf("更新完毕!\n");
	fclose(fp);
	printf("更新后...\n");
	display();	
	
}
void seek() //查找
{
   
	
	int i, item, flag;//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<n; i++)
			if (strcmp(stu[i].code, s1) ==
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值