当前位置: 首页 > news >正文

网站备案 有效期广告推广精准引流

网站备案 有效期,广告推广精准引流,做愛的网站動漫,男人和女人在床上做那个网站🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之小型成绩管理系统 目录 设计题目设计目的设计任务描述设计要求输入和输出要求验收要…


🌟 嗨,我是LucianaiB!

🌍 总有人间一两风,填我十万八千梦。

🚀 路漫漫其修远兮,吾将上下而求索。



C语言之小型成绩管理系统

目录

  1. 设计题目
  2. 设计目的
  3. 设计任务描述
  4. 设计要求
  5. 输入和输出要求
  6. 验收要求
  7. 进度安排
  8. 系统分析
  9. 总体设计
  10. 详细设计
    • 数据结构设计
    • 函数列表及功能简介
  11. 程序实现
  12. 测试数据和运行结果
  13. 总结与思考
  14. 参考文献
  15. 附录代码

设计题目

C语言之小型成绩管理系统

设计目的

  1. 加深对C语言基础知识和基本理论的理解,培养学生独立分析和解决问题的能力。
  2. 培养学生在计算机软硬件开发、理论计算、查阅资料等方面的能力,树立正确的设计思想。
  3. 加强理论联系实际,培养学生科学严谨、实事求是的工作作风和创新精神。

设计任务描述

设计一个学生信息管理系统,能够实现以下功能:

  1. 添加学生信息:录入学生的姓名、学号和三门课程的成绩。
  2. 显示学生信息:显示所有已添加的学生信息。
  3. 按学号查找学生信息:根据学号搜索学生信息。
  4. 插入学生信息:在特定位置插入一个新的学生记录。
  5. 删除学生信息:根据学号删除一个学生记录。
  6. 按总分降序排序:按学生的总分降序排序学生记录。
  7. 退出系统:退出程序。

设计要求

  1. 按照分析、设计、编码、调试和测试的软件开发过程独立完成系统。
  2. 应用模块化编程思想,各项功能分别用函数实现。
  3. 系统功能设计成菜单形式,用户通过菜单选择操作。
  4. 系统界面友好、直观、易操作。

输入和输出要求

  1. 系统界面友好、直观、易操作。
  2. 用户根据提示输入数据。
  3. 输入数据时提供清晰的提示信息。
  4. 处理完成后,清楚地显示运行结果。

验收要求

  1. 运行所设计的系统。
  2. 回答有关问题。
  3. 提交课程设计报告。
  4. 提交源程序。

进度安排

  1. 系统分析、设计准备阶段:6学时。
  2. 编程调试阶段:26学时。
  3. 总结和书写报告阶段:6学时。
  4. 考核阶段:2学时。

系统分析

学生信息管理系统旨在简化学生信息的管理流程,提高管理效率,同时为用户提供便捷的操作体验。系统需要实现以下功能:

  • 添加学生信息。
  • 显示学生信息。
  • 按学号查找学生信息。
  • 插入学生信息。
  • 删除学生信息。
  • 按总分降序排序。

总体设计

系统采用模块化设计,主要模块包括:

  1. 学生信息管理模块:添加、显示、查找、插入和删除学生信息。
  2. 排序模块:按总分降序排序学生记录。
  3. 用户界面模块:提供友好的用户界面。
  4. 数据持久化模块:将数据存储到文件系统(可选)。
    在这里插入图片描述

详细设计

数据结构设计

struct Student {char name[50];int id;int grades[3];
};

函数列表及功能简介

  1. addStudent()

    • 功能:添加一个新的学生记录到 students 数组中。
    • 过程:提示用户输入学生的姓名、学号和三门课程的成绩,然后将这些信息存储在一个新的 Student 结构体中,并将其添加到数组的下一个空位。
  2. displayStudents()

    • 功能:显示所有已添加的学生信息。
    • 过程:检查是否有学生记录,如果有,则遍历数组并打印每个学生的姓名、学号和成绩。
  3. searchStudentById()

    • 功能:根据学号搜索学生信息。
    • 过程:提示用户输入要搜索的学号,然后在数组中查找匹配的学生记录。如果找到,打印该学生的详细信息。
  4. insertStudent()

    • 功能:在特定位置插入一个新的学生记录。
    • 过程:首先提示用户输入要插入的学生的学号,然后找到合适的插入位置,接着提示用户输入新学生的详细信息,并将新学生记录插入到数组中。
  5. deleteStudent()

    • 功能:根据学号删除一个学生记录。
    • 过程:提示用户输入要删除的学号,找到对应的学生记录,然后从数组中删除该记录。
  6. sortByTotalGrades()

    • 功能:按学生的总分降序排序学生记录。
    • 过程:使用冒泡排序算法,根据每个学生的总分进行排序,然后打印排序后的学生信息。
  7. swap(struct Student *a, struct Student *b)

    • 功能:交换两个 Student 结构体指针所指向的记录。
    • 过程:使用一个临时变量来交换两个学生记录的内容。
  8. calculateTotalGrades(struct Student student)

    • 功能:计算一个学生的总分。
    • 过程:将一个学生的三门课程成绩相加并返回总分。

测试数据和运行结果

测试数据

  1. 添加学生信息

    请输入学生姓名: John Doe
    请输入学生学号: 1001
    请输入三门课程的成绩(用空格分隔): 85 90 78
    
  2. 显示学生信息

    所有学生信息如下:
    姓名: John Doe, 学号: 1001, 成绩: 85 90 78
    
  3. 按学号查找学生信息

    请输入要查找的学生学号: 1001
    学生姓名: John Doe, 学号: 1001, 成绩: 85 90 78
    
  4. 插入学生信息

    请输入要插入的学生学号: 1002
    请输入学生姓名: Jane Smith
    请输入三门课程的成绩(用空格分隔): 92 88 90
    
  5. 删除学生信息

    请输入要删除的学生学号: 1001
    要删除的学生信息:姓名: John Doe, 学号: 1001, 成绩: 85 90 78
    学生信息删除成功。
    
  6. 按总分降序排序

    按总分降序输出的学生信息:
    姓名: Jane Smith, 学号: 1002, 总分: 270
    

总结与思考

优点

  1. 功能完善:系统涵盖了添加、显示、查找、插入、删除和排序等核心功能。
  2. 界面友好:系统提供了简洁直观的用户界面,操作方便。
  3. 模块化设计:代码结构清晰,便于维护和扩展。

改进方向

  1. 数据持久化:当前系统未实现数据持久化,建议将学生信息存储到文件中,以便程序重启后仍能读取数据。
  2. 错误处理:增加对用户输入的验证,避免非法输入导致程序异常。
  3. 更多功能:可以增加更多功能,如修改学生信息、统计平均分等。

参考文献

【排序算法】八大排序(下)(c语言实现)(附源码)-阿里云开发者社区
超详细之C语言实现学生信息管理系统(含文件读写)_c语言学生信息管理系统-CSDN博客

附录代码


#include <stdio.h>#include <stdlib.h>#include <string.h>struct Student {char name[50];int id;int grades[3];};struct Student students[100]; // 最多存储100个学生信息int studentCount = 0;void addStudent();void displayStudents();void searchStudentById();void insertStudent();void deleteStudent();void sortByTotalGrades();void swap(struct Student *a, struct Student *b);int calculateTotalGrades(struct Student student);int main() {int choice;do {printf("\n学生信息管理系统菜单\n");printf("1 添加学生信息\n");printf("2 显示学生信息\n");printf("3 按学号查找学生信息\n");printf("4 插入一个学生信息\n");printf("5 删除一个学生信息\n");printf("6 按总分降序输出\n");printf("7 退出\n");printf("请选择操作:");scanf("%d", &choice);switch (choice) {case 1:addStudent();break;case 2:displayStudents();break;case 3:searchStudentById();break;case 4:insertStudent();break;case 5:deleteStudent();break;case 6:sortByTotalGrades();break;case 7:printf("退出程序。\n");break;default:printf("无效选择,请重新输入。\n");}} while (choice != 7);return 0;}void addStudent() {struct Student newStudent;printf("请输入学生姓名: ");scanf("%s", newStudent.name);printf("请输入学生学号: ");scanf("%d", &newStudent.id);printf("请输入三门课程的成绩(用空格分隔): ");for (int i = 0; i < 3; i++) {scanf("%d", &newStudent.grades[i]);}students[studentCount] = newStudent;studentCount++;printf("学生信息添加成功。\n");}void displayStudents() {if (studentCount == 0) {printf("暂无学生信息。\n");return;}printf("所有学生信息如下:\n");for (int i = 0; i < studentCount; i++) {printf("姓名: %s, 学号: %d, 成绩: %d %d %d\n", students[i].name, students[i].id, students[i].grades[0], students[i].grades[1], students[i].grades[2]);}}void searchStudentById() {int searchId;printf("请输入要查找的学生学号: ");scanf("%d", &searchId);for (int i = 0; i < studentCount; i++) {if (students[i].id == searchId) {printf("学生姓名: %s, 学号: %d, 成绩: %d %d %d\n", students[i].name, students[i].id, students[i].grades[0], students[i].grades[1], students[i].grades[2]);return;}}printf("未找到该学生。\n");}void insertStudent() {struct Student newStudent;int insertId;printf("请输入要插入的学生学号: ");scanf("%d", &insertId);int insertIndex = 0;while (insertIndex < studentCount && students[insertIndex].id < insertId) {insertIndex++;}// 输入学生信息printf("请输入学生姓名: ");scanf("%s", newStudent.name);newStudent.id = insertId;printf("请输入三门课程的成绩(用空格分隔): ");for (int i = 0; i < 3; i++) {scanf("%d", &newStudent.grades[i]);}// 插入学生信息for (int i = studentCount; i > insertIndex; i--) {students[i] = students[i - 1];}students[insertIndex] = newStudent;studentCount++;printf("学生信息插入成功。\n");}void deleteStudent() {int deleteId;int deleteIndex = -1;printf("请输入要删除的学生学号: ");scanf("%d", &deleteId);// 寻找要删除的学生for (int i = 0; i < studentCount; i++) {if (students[i].id == deleteId) {deleteIndex = i;break;}}if (deleteIndex == -1) {printf("未找到该学生。\n");} else {printf("要删除的学生信息:姓名: %s, 学号: %d, 成绩: %d %d %d\n", students[deleteIndex].name, students[deleteIndex].id, students[deleteIndex].grades[0], students[deleteIndex].grades[1], students[deleteIndex].grades[2]);// 删除学生信息for (int i = deleteIndex; i < studentCount - 1; i++) {students[i] = students[i + 1];}studentCount--;printf("学生信息删除成功。\n");}}void sortByTotalGrades() {// 使用冒泡排序for (int i = 0; i < studentCount - 1; i++) {for (int j = 0; j < studentCount - i - 1; j++) {if (calculateTotalGrades(students[j]) < calculateTotalGrades(students[j + 1])) {swap(&students[j], &students[j + 1]);}}}// 显示按总分降序排序后的学生信息printf("按总分降序输出的学生信息:\n");for (int i = 0; i < studentCount; i++) {printf("姓名: %s, 学号: %d, 总分: %d\n", students[i].name, students[i].id, calculateTotalGrades(students[i]));}}void swap(struct Student *a, struct Student *b) {struct Student temp = *a;*a = *b;*b = temp;}int calculateTotalGrades(struct Student student) {return student.grades[0] + student.grades[1] + student.grades[2];}

嗨,我是LucianaiB。如果你觉得我的分享有价值,不妨通过以下方式表达你的支持:👍 点赞来表达你的喜爱,📁 关注以获取我的最新消息,💬 评论与我交流你的见解。我会继续努力,为你带来更多精彩和实用的内容。

点击这里👉LucianaiB ,获取最新动态,⚡️ 让信息传递更加迅速。

http://www.15wanjia.com/news/28235.html

相关文章:

  • 网站做收录是什么意思怎么做平台推广
  • 怎么做网站教程视频济南最新消息
  • 做网站的英文百度上做广告怎么收费
  • 怎么做网站封面上的图单页面seo搜索引擎优化
  • html做网站经验技巧企业网站网页设计
  • 如何做好网站优化网络推广技术外包
  • 兰州做网站或小程序百度网站域名
  • 做网站都需要什么网络营销策划的流程
  • 广州做网站比较好的公司百度怎么推广
  • 长春网站建长春做网站58同城关键词怎么优化
  • 如何制作简易 网站成人职业技术培训学校
  • wordpress真伪查询主题太原建站seo
  • 接单做网站商丘关键词优化推广
  • 公司做的网站怎么维护酒店营销策划与运营
  • 甘肃省建设局网站首页站长联盟
  • 怎样编写网站今天热点新闻
  • 现在建网站赚钱吗什么样的人适合做策划
  • 福建省建设资格管理中心网站手机百度关键词优化
  • 网站建设技术合同模板下载新媒体运营
  • 建筑工程素材资源网站最佳磁力搜索引擎
  • 怎么样才能让百度收录自己的网站违禁网站用什么浏览器
  • 邵阳网站制作网站查询域名
  • h5做的网站长尾词排名优化软件
  • 购物网站建设公司磁力猫torrentkitty官网
  • 制作平台网站费用爱网站关键词挖掘工具
  • 企业网站展示生产的处方药介绍处罚案件网站软件下载
  • java做门户网站seo的中文名是什么
  • 刷网站排名 优帮云国内真正的永久免费砖石
  • 做网站的基本要求营销说白了就是干什么的
  • 网站的手机版m站怎么做今日头条重大消息