首页下载资源后端基于C语言开发的学生成绩管理系统

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

2401_862685424.86MB需要积分:1

资源文件列表:

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

资源介绍:

二、系统功能 系统功能介绍 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
100+评论
captcha