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

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

基于C语言实现的学生成绩管理程序

后端 1.01MB 22 需要积分: 1
立即下载

资源介绍:

题目 学生成绩管理程序 本程序用于教学单位(院/系)的学生成绩管理。要求程序能够实现学生信息录入(可以实现增加、删除、修改学生的基本信息)、单科学习成绩的录入;班级内单科成绩排名;成绩查询:查询某个学生的各科成绩、统计所有不及格科目超过2科的学生名单。 设计思路 按照要求设计多种功能函数,并利用主函数实现功能,添加可视化操作提示。 数据结构 利用链式线性结构体Stu数据域存储学生信息,学生姓名、班级、年级、学生各科成绩为字符串型,学生编号为整型,指针域存储下一个指针地址。 流程图 #### 功能及函数介绍 ##### 链
# **程序设计报告** #### 题目 学生成绩管理程序 #### 代码及版本管理地址 [gitee码云版本地址(点击跳转)](https://gitee.com/wu_wen_yi/student-administration) #### 要求 本程序用于教学单位(院/系)的学生成绩管理。要求程序能够实现学生信息录入(可以实现增加、删除、修改学生的基本信息)、单科学习成绩的录入;班级内单科成绩排名;成绩查询:查询某个学生的各科成绩、统计所有不及格科目超过2科的学生名单。 #### 设计思路 按照要求设计多种功能函数,并利用主函数实现功能,添加可视化操作提示。 #### 数据结构 利用链式线性结构体Stu数据域存储学生信息,学生姓名、班级、年级、学生各科成绩为字符串型,学生编号为整型,指针域存储下一个指针地址。 #### 流程图 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Tree.jpg) #### 功能及函数介绍 ##### 链表操作函数 ###### (1)尾插法 ```c void AddItem(Stu *plist) ;//尾插添加结点:传入需要添加结点的数量和头指针,从头指针遍历到尾结点,并从尾结点开始用malloc函数添加结点,添加完后将尾结点的指针域指向NULL ``` ###### (2)遍历结点 ```c Stu *NextItem(Stu *plist) ;//传入当前结点,传出下一结点 ``` ###### (3)链表初始化 ```c Stu *InitList(int num);//初始化链表:利用malloc函数创建头指针,并将头指针编号为0,将头指针指针域指向NULL,并向后添加num个结点,并返回头指针 ``` ###### (4)寻找结点 ```c Stu *SearchItem(int num,Stu *phead);//寻找结点:传入头指针,返回编号为num的结点位置 ``` ##### 功能函数 ###### (1)输出所有学生信息 ```c void ShowItem(Stu *p_list,Stu *p_head);//传入指针,输出其数据域学生信息 ``` ###### (2) 初始化程序 ```c void InitSys(Stu *p_head);//初始化学生系统后,管理员输入数据层 ``` ###### (3) 保存文件(二进制) ```c void SaveFile(Stu *p_head);//保存文件,用wb打开文件,并利用fwrite函数写入fwrite(1,2,3,4); 参数说明:1.要写入的数据的地址,2.一次要写多少字节,3.写多少次,4.写到哪里 ``` ###### (4) 学生总排名 ```c int Sort(Stu *p_head,int n_ID,int n_subject) ;//院系总排名,传入头指针、学生编号、所要排名的数据类型,用SearchItem()函数检索该编号数据地址,并从头遍历链表到NULL,对每一个结点该数据值进行检索,遇到比被排序结点数值大时sum+1 ``` ###### (5)学生所在班级排名 ```c int ClassSort(Stu *p_head,int n_ID,int n_subject) ;//班级排名,传入头指针、学生编号、所要排名的数据类型,同(4)类似,只是判断了班级是否相等,利用了strcmp()库函数,包含了头文件 ``` ###### (6)查找学生 ```c void Search(Stu *p_head,char *name); //搜索学生信息,传入头指针,传入学生姓名,遍历链表,找到该学生(考虑了重名情况) ``` ###### (7)删除学生信息 ```c void Del(Stu *p_head,int n_ID); //删除表,传入头指针,传入删除学生编号。用free()释放内存,包含头文件,并将前后结点相连,利用了SearchItem()函数找到3个结点地址 ``` ###### (8)将字符串转为double型 ```c double Strtodouble(char *str) ;//传入0-100的字符串返回double型函数,若传入其他字符串,则返回-1。主要用于符合成绩逻辑,利用了atof()函数,包含头文件 ``` ###### (9)添加学生 ```c void AddList(Stu *p_head) ;//尾部添加新同学 ``` ###### (10)修改学生信息 ```c void Change(Stu *p_head);//修改学生信息,利用SearchItem()函数 ``` ###### (11)统计所有不及格科目超过2科的学生名单 ```c void NoPass(Stu *p_head);//传入头指针,输出所有不及格科目超过2科的学生名单,从头开始遍历判断 ``` ###### (12)单科学习成绩的录入 ```c void InputScore(Stu *start , Stu *end , Stu *p_head ,char *subject);//单科学习成绩录入,传入开始录入位置和结束录入位置,传入头指针 ,传入需要录入的学科 ``` ###### (13)保存文件(txt) ```c void Fprint(Stu *p_head);//将数据导出到当前路径下的StudentInformation.txt,导出为txt便于使用者阅读 ``` ###### (14)输出单个学生信息 ```c void ShowItem(Stu *p_list,Stu *p_head) ;//传入结点地址,输出其数据域学生信息 ``` ###### (15)班级内单科成绩排名 ```c void ClassSortOutput(Stu *p_head,char *str_class,int subject);//传入头指针,传入班级,传入学科 利用了桶排序思想 ``` ###### (16)插入学生 ```c void Insert(Stu *p_head) ;//在中间插入一个表,找到前后结点,free()并将前中后结点关联,并将后续结点编号加一 ``` #### 功能测试 ###### (1)存在数据文件时对数据读取并进入主菜单 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/MainMenu.PNG) ###### (2)不存在数据时初始化系统 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Init.PNG) ###### (3)学生菜单 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/StudentMenu.PNG) ###### (4)管理员菜单(需输入密匙) ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/AdminMenu.PNG) ###### (5)输出所有学生信息 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/PutOut.PNG) ###### (6)查找学生 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Search.PNG) ###### (7)输出两门以上不及格学生名单 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Nopass.PNG) ###### (8)输出班级单科排名 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Sort.PNG) ###### (9)添加学生 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Add.PNG) ###### (10)删除学生 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Del.PNG) ###### (11)修改学生信息 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Change.PNG) ###### (12)单科成绩录入 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/ScoreInput.PNG) ###### (13)插入学生 ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Insert.PNG) ###### (14)保存为txt ![图床链接过期](https://gitee.com/wu_wen_yi/student-administration/raw/master/img-folder/Save.PNG) #### 遇到的问题和异常处理方法 ###### (1)对输入int型变量的控制: ```c if(scanf("%d",&num)!=1) { printf("提示:你没有输入正确值,请重新输入:"); fflush(stdin);//while(getchar()!='\n'); } ``` 能解决输入非int型变量时,程序崩溃问题 ###### (2)对输入字符串的问题: 利用gets()函数输入,可以读入空格,防止缓冲区同时读入多个数据。 ###### (3) ```c fflush(stdin); ``` 读入int型等变量时会将换行符读入,利用这个函数可以将缓冲区换行符清除。Stdin指缓冲区 ###### (4)对成绩判断问题: ```c while(Strtodouble(p_new->m_nMath) == -1) { printf("提示:您的输入有问题(成绩为0-100的整数),请重新输入:"); gets(p_new->m_nMath); } ``` 利用Strtodouble函数对成绩输入判断,如果错误则重新输入 ###### �

资源文件列表:

student-administration-master.zip 大约有32个文件
  1. student-administration-master/
  2. student-administration-master/.gitignore 27B
  3. student-administration-master/LICENSE 1.06KB
  4. student-administration-master/README.md 7.9KB
  5. student-administration-master/c_code/
  6. student-administration-master/c_code/list.cpp 1.54KB
  7. student-administration-master/c_code/list.h 802B
  8. student-administration-master/c_code/main.cpp 1.57KB
  9. student-administration-master/c_code/menu.cpp 25.8KB
  10. student-administration-master/c_code/menu.h 2.13KB
  11. student-administration-master/go_code/
  12. student-administration-master/go_code/list.go 1.01KB
  13. student-administration-master/go_code/main.go 480B
  14. student-administration-master/go_code/menu.go 7.5KB
  15. student-administration-master/img-folder/
  16. student-administration-master/img-folder/Add.PNG 71.31KB
  17. student-administration-master/img-folder/AdminMenu.PNG 78.02KB
  18. student-administration-master/img-folder/Change.PNG 86.12KB
  19. student-administration-master/img-folder/Del.PNG 68.91KB
  20. student-administration-master/img-folder/Init.PNG 37.8KB
  21. student-administration-master/img-folder/Insert.PNG 81.32KB
  22. student-administration-master/img-folder/MainMenu.PNG 29.42KB
  23. student-administration-master/img-folder/Nopass.PNG 100.58KB
  24. student-administration-master/img-folder/PutOut.PNG 91.43KB
  25. student-administration-master/img-folder/Save.PNG 76.63KB
  26. student-administration-master/img-folder/ScoreInput.PNG 78.7KB
  27. student-administration-master/img-folder/Search.PNG 103.44KB
  28. student-administration-master/img-folder/Sort.PNG 78.98KB
  29. student-administration-master/img-folder/StudentMenu.PNG 51.26KB
  30. student-administration-master/img-folder/Tree.jpg 73.57KB
  31. student-administration-master/python_code/
  32. student-administration-master/python_code/main.py 7.82KB
0评论
提交 加载更多评论
其他资源 基于C语言的学生信息管理系统
设计一个基于C语言的学生信息管理系统可以分为以下几个关键部分,包括数据结构的选择、功能设计和用户界面的实现。下面是一个简单的设计框架,供参考: 1. 数据结构的选择 学生结构体 这里定义了一个学生结构体,包含学生的姓名、学号、年龄和GPA成绩。你可以根据需要添加其他字段,如性别、联系方式等。 2. 主要功能设计 主菜单功能 显示菜单选项供用户选择。 包括添加学生信息、显示所有学生信息、查找学生信息、删除学生信息等选项。 添加学生信息 提示用户输入学生的姓名、学号、年龄和GPA等信息,并保存到学生信息数组或链表中。 显示所有学生信息 遍历学生信息数组或链表,逐个显示学生的姓名、学号、年龄和GPA等信息。 查找学生信息 根据学号或姓名等关键字,在学生信息数组或链表中查找并显示符合条件的学生信息。 删除学生信息 根据学号或姓名等关键字,在学生信息数组或链表中删除符合条件的学生信息。 3. 用户界面的实现 可以使用简单的命令行界面来实现,例如:
app-ins-demo
以一个简单的示例描述如何编写一个更容易扩展和维护应用程序示例套件。 包含脚本有: -| Scripts         --| Core                 ---| SubSystems                         ---- TestSubSystem.cs                 --- XApplication.cs                 --- XApplication.Utils.cs                 --- XGame.cs         -- GameIns.cs
基于C语言实现的学生成绩管理系统
#学生成绩管理系统 ##功能说明: 学生: 姓名 性别 学号 密码 语文 数学 英语 1、第一次登录强制修改密码。 2、查询成绩 排名 不显示姓名和学号。 平均分 最高分 最低分 3、修改密码 4、查看个人信息 5、三次密码错误锁定帐号,由教师解锁 教师: 姓名 性别 工号 密码 1、第一次登录强制修改密码。 2、添加学生(学生的学号自动生成) 单个添加 批量导入 3、删除学生 输入两人次学号确定 删除的学生要记录保存在已退学的文件中 4、查找学生 按姓名查找 按学号查找 5、修改学生信息 修改学生基础信息 修改学生成绩 6、录入学生成绩 单个录入 批量导入 7、重置学生密码 8、显示所有在校学生信息 9、显示所有退出学生信息 10、三次密码错误锁定帐号,由校长解锁 校长: admin 1、第一次登录强制修改密码。 2、能重置自己的密码 3、能重置教师密码 4、添加教师 5、删除教师 6、显示所有在职教师 7、显示所有离职教师
基于C语言开发的学生成绩管理系统
二、系统功能 系统功能介绍 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++的图书管理系统
1. 类的设计 Book类 属性:书名、作者、ISBN号、出版社、价格等。 方法:构造函数、获取书籍信息、设置书籍信息等。 Library类 属性:存储书籍的容器(例如vector或map)、管理员信息等。 方法:添加书籍、删除书籍、借阅书籍、归还书籍、搜索书籍等。 User类 属性:用户名、借阅书籍列表等。 方法:构造函数、借阅书籍、归还书籍、获取借阅列表等。 2. 主要功能 图书管理功能 添加书籍:管理员可以添加新书籍到系统中。 删除书籍:管理员可以删除现有书籍。 查找书籍:用户可以根据书名、作者或ISBN号查找书籍信息。 借阅管理功能 借阅书籍:用户可以借阅书籍,系统会更新书籍的借阅状态和用户的借阅记录。 归还书籍:用户归还书籍,系统更新书籍的可借状态和用户的借阅记录。 用户管理功能 注册账号:新用户可以注册账号并进行登录。 登录系统:已注册用户可以通过用户名和密码登录系统。
基于C++的图书管理系统
基于C语言实现的图书管理系统
## 项目介绍 图书管理系统是实现学生与图书管理员、书籍之间的一个管理系统,本身作为书籍管理、用户管理的展示平台,是现在大学图书馆管理的必要设备。图书管理系统可实现读者账号管理功能、图书信息管理、图书借还管理。读者账号管理:账号注册、账号登录、修改账号信息、查找账号; 图书信息管理:、图书查找、图书信息修改、图书查找、图书添加、图书删除;图书借还管理:借书记录、还书记录 需求分析 1.读者需求 (1)读者可自行注册、登录、修改秘密 (2)读者可以查询图书基本信息、借阅图书、归还图书 (3)读者可以查询个人借阅记录与归还记录 2.图书管理员需求 (1)图书管理员可以查询图书、修改图书信息、添加图书、删除图书 (2)图书管理员可以管理读者账号,可以对读者账号进行删除操作 (3)图书管理员可以帮助读者进行借书、还书操作
智能医疗平台专属定制化机器人(前后端代码)
智能医疗平台专属定制化机器人(前后端代码)
第二次旅游网页临摹,设计稿来自即时设计网站
第二次旅游网页临摹,设计稿来自即时设计网站