首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

基于C语言开发的学生成绩管理系统

后端 4.86MB 18 需要积分: 1
立即下载

资源介绍:

二、系统功能 系统功能介绍 1.录入学生信息:用户可以自由输入学生信息到系统中。 2.打印学生信息:格式化展示系统中的学生信息。 3.保存学生信息:将系统中的学生信息保存到本地文档。 4.读取学生信息:读取本地文档中的学生信息并显示。 5.统计所有学生人数 6.查找学生信息:根据用户给定的信息(学号)在系统中查找该学生的信息 7.修改学生信息 8.删除学生信息 0.退出系统 系统main函数,while循环在外,系统程序能够持续运行,switch判断语句进行功能选择与函数切换。 int main() { while (1) { //打印菜单 Menu(); //读取一个字符 整数,字符在内存中映射为ASCII码 char ch = _getch(); switch (ch) { case '1'://1.录入学生信息 InputStudent(); break; case '2'://2.打印学生信息 PrintStudent(); break; case '3'://3.保存学生信息 SaveStudent();

学生成绩管理系统

开发语言:C语言
开发工具:Visual Studio 2019
开发时间:2019.4.14
开发者:summer
[一、系统使用展示](#1) [二、系统功能](#2) [三、菜单](#3) [四、录入学生信息](#4) [五、打印学生信息](#5) [六、保存学生信息](#6) [七、读取学生信息](#7) [八、统计所有学生人数](#8) [九、查找学生信息](#9) [十、修改学生信息](#10) [十一、删除学生信息](#11) [十二、退出系统](#12) [十三、出错](#13)

一、系统使用展示

![Alt](demo.gif)

二、系统功能

1. 系统功能介绍 ``` 1.录入学生信息:用户可以自由输入学生信息到系统中。 2.打印学生信息:格式化展示系统中的学生信息。 3.保存学生信息:将系统中的学生信息保存到本地文档。 4.读取学生信息:读取本地文档中的学生信息并显示。 5.统计所有学生人数 6.查找学生信息:根据用户给定的信息(学号)在系统中查找该学生的信息 7.修改学生信息 8.删除学生信息 0.退出系统 ``` 2. 系统main函数,while循环在外,系统程序能够持续运行,switch判断语句进行功能选择与函数切换。 ```C int main() { while (1) { //打印菜单 Menu(); //读取一个字符 整数,字符在内存中映射为ASCII码 char ch = _getch(); switch (ch) { case '1'://1.录入学生信息 InputStudent(); break; case '2'://2.打印学生信息 PrintStudent(); break; case '3'://3.保存学生信息 SaveStudent(); break; case '4'://4.读取学生信息 ReadStudent(); break; case '5'://5.统计所有学生人数 CountStudent(); break; case '6'://6.查找学生信息 FindStudent(); break; case '7'://7.修改学生信息 ChangeStudent(); break; case '8'://8.删除学生信息 DeleteStudent(); break; case '0'://0.退出系统 return 0; break; default: printf("输入有误,没有该功能\n\n"); system("pause"); //暂停 system("cls"); //清屏 break; } } return 0; } ```

三、菜单

1. 菜单显示 ```C //菜单 void Menu() { printf("*************************************************\n"); printf("*\t欢迎使用高校学生成绩管理系统V1.0\t*\n"); printf("*\t\t请选择功能\t\t\t*\n"); printf("*************************************************\n"); printf("*\t\t1.录入学生信息\t\t\t*\n"); printf("*\t\t2.打印学生信息\t\t\t*\n"); printf("*\t\t3.保存学生信息\t\t\t*\n"); printf("*\t\t4.读取学生信息\t\t\t*\n"); printf("*\t\t5.统计所有学生人数\t\t*\n"); printf("*\t\t6.查找学生信息\t\t\t*\n"); printf("*\t\t7.修改学生信息\t\t\t*\n"); printf("*\t\t8.删除学生信息\t\t\t*\n"); printf("*\t\t0.退出系统\t\t\t*\n"); printf("*************************************************\n"); } ``` 2. 打印菜单 scanf()、getchar()输入后均需要按enter,而getch()不用 ```C //打印菜单 Menu(); //读取一个字符 整数,字符在内存中映射为ASCII码 char ch = _getch(); ```

四、录入学生信息

1. 定义学生结构体、链表节点结构体 ```C //定义一个学生 typedef struct tagStudent { char szName[20]; //姓名 char szSex[4]; //性别 int nAge; //年龄 int nStuNo; //学号 int nScore; //成绩 }Student; //链表 //节点 typedef struct tagNode { Student stu; //学生信息 struct tagNode* pNext; //指向下一个节点 }Node; //创建头节点 Node* g_pHead = NULL; //指向头节点 ``` 2. 利用学生结构体,以及链表操作输入学生信息 ```C //1.录入学生信息 void InputStudent() { //创建一个人,在堆中分配内存 Node* pNewNode = (Node*)malloc(sizeof(Node)); //指针下一个指向空 pNewNode->pNext = NULL; //查找链表的尾结点 Node* p = g_pHead; while (g_pHead != NULL && p->pNext != NULL) { p = p->pNext; } //把节点插到链表的尾节点 if (g_pHead == NULL) { g_pHead = pNewNode; } else { p->pNext = pNewNode; } //录入学生信息 printf("请输入学生姓名:\n"); scanf_s("%s", pNewNode->stu.szName, sizeof(pNewNode->stu.szName)); printf("请输入性别:\n"); scanf_s("%s", pNewNode->stu.szSex, sizeof(pNewNode->stu.szSex)); printf("请输入学生年龄:\n"); scanf_s("%d", &pNewNode->stu.nAge); printf("请输入学号:\n"); scanf_s("%d", &pNewNode->stu.nStuNo); printf("请输入成绩:\n"); scanf_s("%d", &pNewNode->stu.nScore); printf("学生信息录入成功。\n\n"); system("pause"); system("cls"); } ```

五、打印学生信息

1. 读取链表结构,输出学生信息。先进行判空处理,如果无学生信息则输出提示信息,反之则正确输出学生信息。 ```C //2.打印学生信息 void PrintStudent() { system("cls"); //遍历链表 Node* p = g_pHead; if (p == NULL) { printf("系统中暂无学生信息,请录入后再来打印查看。\n\n"); } else { printf("*********************************************************************************\n"); printf("*\t\t\t欢迎使用高校学生成绩管理系统V1.0\t\t\t*\n"); printf("*********************************************************************************\n"); printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t成绩\t*\n"); printf("*********************************************************************************\n"); while (p != NULL) { printf("*\t%d\t*\t%s\t*\t%s\t*\t%d\t*\t%d\t*\n", p->stu.nStuNo, p->stu.szName, p->stu.szSex, p->stu.nAge, p->stu.nScore ); //下一个节点 p = p->pNext; printf("*********************************************************************************\n"); } } system("pause"); system("cls"); } ```

六、保存学生信息

1. 利用文件对学生信息进行存储 ```C //3.保存学生信息 void SaveStudent() { //打开文件 FILE* pFile; pFile = fopen(".\\stuinfo.dat", "w"); if (pFile == NULL) { printf("打开文件失败。\n"); return; } //写入数据 Node* p = g_pHead; while (p != NULL) { fwrite(&p->stu, sizeof(Node), 1, pFile); p = p->pNext; } //关闭文件 fclose(pFile); printf("数据保存成功。\n"); system("pause"); system("cls"); } ``` 2. fopen在vs中会报错,解决方式 (1)按照vs的提示,将fopen换成fopen_s (2)不修改函数,仅仅修改项目的属性。因为fopen_s是一种Microsoft的函数,若纯做Windows开发则直接改为_s也无妨,但是我们尽量还是用标准C++比较好,这样代码有较好的移植性。 具体操作: 右键工程名–>属性–>C/C++–>预处理器–>预处理器定义,编辑右边输入框加入: _CRT_SECURE_NO_WARNINGS 保存(注意用分号隔开)。

七、读取学生信息

1. 打开存储学生信息的文本,单个单词读取,判断非分隔符或者空时则赋值给链表中的节点,读取完毕后,直接调用PrintStudent()函数进行打印结果。 ```C //4.读取学生信息 void ReadStudent() { system("cls"); //打开文件 FILE* pFile; pFile = fopen(".\\stuinfo.dat", "r"); if (pFile == NULL) { printf("打开文件失败。\n"); return; } //创建一个人,在堆中分配内存 Node* p = (Node*)malloc(sizeof(Node)); p->pNext = NULL; //重新建立链表 g_pHead = p; //逐个单词读入文本内容 char str[200]; int i = 0; while (fscanf(pFile, "%s", str) != EOF) { //读文件 //单词不是*或者空时,进行赋值 if (strcmp(str, "*") && str != NULL) { switch (i) { case 0: p->stu.nStuNo = atoi(str); break; case 1: strcpy(p->stu.szName, str); break; case 2: strcpy(p->stu.szSex, str); break; case 3: p->stu.nAge = atoi(str); break; case 4: p->stu.nScore = atoi(str

资源文件列表:

StudentManageSystem-master.zip 大约有42个文件
  1. StudentManageSystem-master/
  2. StudentManageSystem-master/README.md 14.97KB
  3. StudentManageSystem-master/StudentManageSystem/
  4. StudentManageSystem-master/StudentManageSystem/.vs/
  5. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/
  6. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/
  7. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/.suo 31KB
  8. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/Browse.VC.db 5.23MB
  9. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/
  10. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/AutoPCH/
  11. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/AutoPCH/215e20dca6177113/
  12. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/AutoPCH/215e20dca6177113/STUDENTMANAGESYSTEM.ipch 3.25MB
  13. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/AutoPCH/a6730596ebf88ad0/
  14. StudentManageSystem-master/StudentManageSystem/.vs/StudentManageSystem/v16/ipch/AutoPCH/a6730596ebf88ad0/STUDENTMANAGESYSTEM.ipch 3.63MB
  15. StudentManageSystem-master/StudentManageSystem/Debug/
  16. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/
  17. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/CL.command.1.tlog 782B
  18. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/CL.read.1.tlog 4.45KB
  19. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/CL.write.1.tlog 568B
  20. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/StudentManageSystem.lastbuildstate 213B
  21. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/link.command.1.tlog 1.34KB
  22. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/link.read.1.tlog 3.04KB
  23. StudentManageSystem-master/StudentManageSystem/Debug/StudentM.41E8BB15.tlog/link.write.1.tlog 636B
  24. StudentManageSystem-master/StudentManageSystem/Debug/StudentManageSystem.exe 45.5KB
  25. StudentManageSystem-master/StudentManageSystem/Debug/StudentManageSystem.ilk 392.28KB
  26. StudentManageSystem-master/StudentManageSystem/Debug/StudentManageSystem.log 140B
  27. StudentManageSystem-master/StudentManageSystem/Debug/StudentManageSystem.obj 39.47KB
  28. StudentManageSystem-master/StudentManageSystem/Debug/StudentManageSystem.pdb 588KB
  29. StudentManageSystem-master/StudentManageSystem/Debug/vc142.idb 51KB
  30. StudentManageSystem-master/StudentManageSystem/Debug/vc142.pdb 84KB
  31. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.cpp 9.21KB
  32. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.h 785B
  33. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.sln 1.39KB
  34. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.vcxproj 6.06KB
  35. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.vcxproj.filters 1.04KB
  36. StudentManageSystem-master/StudentManageSystem/StudentManageSystem.vcxproj.user 165B
  37. StudentManageSystem-master/StudentManageSystem/appendix/
  38. StudentManageSystem-master/StudentManageSystem/appendix/20190415_200358.mp4 824.3KB
  39. StudentManageSystem-master/StudentManageSystem/appendix/20190415_200600.gif 567.2KB
  40. StudentManageSystem-master/StudentManageSystem/appendix/StudentManageSystem.md 14.77KB
  41. StudentManageSystem-master/StudentManageSystem/stuinfo.dat 92B
  42. StudentManageSystem-master/demo.gif 567.2KB
0评论
提交 加载更多评论
其他资源 frp 0.33.0(windows x86)
FRP(Fast Reverse Proxy)是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持TCP、UDP、HTTP、HTTPS等协议。它主要用于将内网服务暴露到公网,通过在具有公网IP的节点上部署服务端,可以轻松地实现内网服务的外网访问。 FRP可以用于多种场景,例如: 远程桌面访问:通过FRP将内网的远程桌面服务暴露到公网。 文件共享:通过FRP实现内网文件共享服务的外网访问。 SSH访问:通过FRP实现内网SSH服务的外网访问。
无标题111111111111
11111111
无标题111111111111 无标题111111111111 无标题111111111111
商品秒杀系统 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的商品秒杀系统,分为用户前台和管理后台,可以给管理员、普通用户角色使用,包括商品类型模块、商品信息模块、商品订单模块、用户管理模块和系统基础模块,项目编号T196。 项目录屏:https://www.bilibili.com/video/BV1Bf421D7mv 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
医院预约挂号系统 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的医院预约挂号系统,分为用户前台和管理后台,可以给管理员、专家、会员角色使用,包括论坛管理模块、会员管理模块、专家管理模块、单页数据模块和系统基础模块,项目编号T198。 项目录屏:https://www.bilibili.com/video/BV1nx4y1b7sU 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
医院预约挂号系统 JAVA+Vue.js+SpringBoot+MySQL 医院预约挂号系统 JAVA+Vue.js+SpringBoot+MySQL 医院预约挂号系统 JAVA+Vue.js+SpringBoot+MySQL
基于C语言实现的学生成绩管理系统
#学生成绩管理系统 ##功能说明: 学生: 姓名 性别 学号 密码 语文 数学 英语 1、第一次登录强制修改密码。 2、查询成绩 排名 不显示姓名和学号。 平均分 最高分 最低分 3、修改密码 4、查看个人信息 5、三次密码错误锁定帐号,由教师解锁 教师: 姓名 性别 工号 密码 1、第一次登录强制修改密码。 2、添加学生(学生的学号自动生成) 单个添加 批量导入 3、删除学生 输入两人次学号确定 删除的学生要记录保存在已退学的文件中 4、查找学生 按姓名查找 按学号查找 5、修改学生信息 修改学生基础信息 修改学生成绩 6、录入学生成绩 单个录入 批量导入 7、重置学生密码 8、显示所有在校学生信息 9、显示所有退出学生信息 10、三次密码错误锁定帐号,由校长解锁 校长: admin 1、第一次登录强制修改密码。 2、能重置自己的密码 3、能重置教师密码 4、添加教师 5、删除教师 6、显示所有在职教师 7、显示所有离职教师
app-ins-demo
以一个简单的示例描述如何编写一个更容易扩展和维护应用程序示例套件。 包含脚本有: -| Scripts         --| Core                 ---| SubSystems                         ---- TestSubSystem.cs                 --- XApplication.cs                 --- XApplication.Utils.cs                 --- XGame.cs         -- GameIns.cs
基于C语言的学生信息管理系统
设计一个基于C语言的学生信息管理系统可以分为以下几个关键部分,包括数据结构的选择、功能设计和用户界面的实现。下面是一个简单的设计框架,供参考: 1. 数据结构的选择 学生结构体 这里定义了一个学生结构体,包含学生的姓名、学号、年龄和GPA成绩。你可以根据需要添加其他字段,如性别、联系方式等。 2. 主要功能设计 主菜单功能 显示菜单选项供用户选择。 包括添加学生信息、显示所有学生信息、查找学生信息、删除学生信息等选项。 添加学生信息 提示用户输入学生的姓名、学号、年龄和GPA等信息,并保存到学生信息数组或链表中。 显示所有学生信息 遍历学生信息数组或链表,逐个显示学生的姓名、学号、年龄和GPA等信息。 查找学生信息 根据学号或姓名等关键字,在学生信息数组或链表中查找并显示符合条件的学生信息。 删除学生信息 根据学号或姓名等关键字,在学生信息数组或链表中删除符合条件的学生信息。 3. 用户界面的实现 可以使用简单的命令行界面来实现,例如:
基于C语言实现的学生成绩管理程序
题目 学生成绩管理程序 本程序用于教学单位(院/系)的学生成绩管理。要求程序能够实现学生信息录入(可以实现增加、删除、修改学生的基本信息)、单科学习成绩的录入;班级内单科成绩排名;成绩查询:查询某个学生的各科成绩、统计所有不及格科目超过2科的学生名单。 设计思路 按照要求设计多种功能函数,并利用主函数实现功能,添加可视化操作提示。 数据结构 利用链式线性结构体Stu数据域存储学生信息,学生姓名、班级、年级、学生各科成绩为字符串型,学生编号为整型,指针域存储下一个指针地址。 流程图 #### 功能及函数介绍 ##### 链