服务器之家

服务器之家 > 正文

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

时间:2021-10-15 13:40     来源/作者:喜欢薄荷味

本文实例为大家分享了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 

2.流程图

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

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

3.5修改学生信息

功能:通过输入学号来选择要修改的该学号学生的信息内容,从而完成修改信息操作;

 //修改学生信息 void modify() /*修改信息*/ { int i, item, num = -1; char sex1, s1[LEN + 1], s2[LEN + 1]; /* 以姓名和学号最长长度+1为准*/ float score1; printf("请输入要要修改的学生的学号:\n"); scanf("%s", s1); for (i = 0; i 

3.6添加学生信息函数

功能:添加学生信息,并保存至文件中

 //添加学生信息函数 void insert() /*插入函数*/ { int i = n, j, flag; printf("请输入待增加的学生数:\n"); scanf("%d", &m); if (m > 0){ do { flag = 1; while (flag) { flag = 0; printf("请输入第%d位学生的学号:\n", i + 1); scanf("%s", stu[i].StudentId); for (j = 0; j 

四.调试、测试以及实验结果

1.调试:

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

2.测试:

输入数据类型与定义时不符合,程序运行过程中会出现错误

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

3.实验结果:

(1)~(9)是一个连续的运行实验结果

(1)运行菜单

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

(2)添加学生信息

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

(3)保存学生信息

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

(4)显示全部信息

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

(5)修改学生信息

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

(6)显示修改后全部信息

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

(7)刷新学生信息

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

(8)保存学生信息

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

(9)显示刷新后的全部信息

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

五、总结

编写一个功能齐全的、方便用户操作的学生管理系统,需要长期的实践与积累。
实践时检验的好办法,学到的知识经过实践的检验,才能更好的被自身吸收。文件的操作的程序编写应用对我来说,是一个没有经过多次实践的问题,所以我在写这部分程序时,还是有些难度。该程序中还存在一个问题就是,当输入一个与定义时不符的数据,程序在运行过程中会出现错误,修改办法还在思考,欢迎大家来与我互相共勉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_44369212/article/details/89058548

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部