用C语言设计一个录入、修改、查找、增加、删除的小程序

时间: 2023-11-04 08:04:36 浏览: 85
以下是一个简单的学生信息管理系统,包含录入、修改、查找、增加、删除功能。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STUDENT 100 // 最大学生数 // 学生结构体 typedef struct student { char name[20]; // 姓名 int id; // 学号 int age; // 年龄 float score; // 成绩 } Student; // 学生信息数组和学生数 Student students[MAX_STUDENT]; int num_students = 0; // 函数声明 void insert_student(); void modify_student(); void search_student(); void add_student(); void delete_student(); int main() { int option; do { // 输出菜单 printf("\n\n"); printf("====================================\n"); printf(" 学生信息管理系统\n"); printf("====================================\n"); printf("1. 录入学生信息\n"); printf("2. 修改学生信息\n"); printf("3. 查找学生信息\n"); printf("4. 增加学生信息\n"); printf("5. 删除学生信息\n"); printf("0. 退出系统\n"); printf("====================================\n"); printf("请选择操作: "); scanf("%d", &option); switch (option) { case 1: insert_student(); break; case 2: modify_student(); break; case 3: search_student(); break; case 4: add_student(); break; case 5: delete_student(); break; case 0: printf("退出系统...\n"); break; default: printf("无效操作,请重新选择!\n"); break; } } while (option != 0); return 0; } // 录入学生信息 void insert_student() { if (num_students >= MAX_STUDENT) { printf("学生信息已满,无法继续录入!\n"); return; } printf("请输入学生姓名: "); scanf("%s", students[num_students].name); printf("请输入学生学号: "); scanf("%d", &students[num_students].id); printf("请输入学生年龄: "); scanf("%d", &students[num_students].age); printf("请输入学生成绩: "); scanf("%f", &students[num_students].score); num_students++; printf("学生信息录入成功!\n"); } // 修改学生信息 void modify_student() { int id; printf("请输入要修改的学生学号: "); scanf("%d", &id); int i; for (i = 0; i < num_students; i++) { if (students[i].id == id) { printf("学生姓名: %s\n", students[i].name); printf("学生学号: %d\n", students[i].id); printf("学生年龄: %d\n", students[i].age); printf("学生成绩: %.2f\n", students[i].score); printf("请输入新的学生姓名: "); scanf("%s", students[i].name); printf("请输入新的学生年龄: "); scanf("%d", &students[i].age); printf("请输入新的学生成绩: "); scanf("%f", &students[i].score); printf("学生信息修改成功!\n"); return; } } printf("未找到该学生学号对应的学生信息!\n"); } // 查找学生信息 void search_student() { int id; printf("请输入要查找的学生学号: "); scanf("%d", &id); int i; for (i = 0; i < num_students; i++) { if (students[i].id == id) { printf("学生姓名: %s\n", students[i].name); printf("学生学号: %d\n", students[i].id); printf("学生年龄: %d\n", students[i].age); printf("学生成绩: %.2f\n", students[i].score); return; } } printf("未找到该学生学号对应的学生信息!\n"); } // 增加学生信息 void add_student() { if (num_students >= MAX_STUDENT) { printf("学生信息已满,无法继续增加!\n"); return; } printf("请输入学生姓名: "); scanf("%s", students[num_students].name); printf("请输入学生学号: "); scanf("%d", &students[num_students].id); printf("请输入学生年龄: "); scanf("%d", &students[num_students].age); printf("请输入学生成绩: "); scanf("%f", &students[num_students].score); num_students++; printf("学生信息增加成功!\n"); } // 删除学生信息 void delete_student() { int id; printf("请输入要删除的学生学号: "); scanf("%d", &id); int i; for (i = 0; i < num_students; i++) { if (students[i].id == id) { int j; for (j = i; j < num_students - 1; j++) { students[j] = students[j + 1]; } num_students--; printf("学生信息删除成功!\n"); return; } } printf("未找到该学生学号对应的学生信息!\n"); } ``` 该程序中使用了一个 `Student` 结构体来存储每个学生的姓名、学号、年龄和成绩。学生信息以静态数组的方式存储在内存中。每个操作都通过遍历数组来查找需要的学生信息。需要注意的是,该程序没有进行错误处理,如输入非法字符或超出数组范围,这些都需要根据实际情况进行处理。

相关推荐

学生信息管理系统设计 (1)问题描述 学生信息包括:学号、姓名、性别、宿舍号码、电话号码、成绩等。试设计一个学生信息管理系统,使之能提供以下功能: ² 系统以菜单方式工作 ² 学生信息录入功能(学生信息用文本文件保存)---输入 ² 学生信息浏览功能——输出 ² 查询功能——算法 1、按学号查询 2、按姓名查询 ² 排序功能 1、按分数升序排序 2、按分数降序排序 (2)功能要求 ² 界面简单明了; ² 有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入; (3)算法分析 首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式,在这里假如我们以数组的方式来存储,首先必须知道学生人数大概是多少,以便我们确定数组的大小。 对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。 (4)保存在文件中的内容可以参考下面的形式 学号 姓名 性别 宿舍号码 电话号码 成绩 01 张成成 男 501 87732111 90 02 李成华 女 101 87723112 78 03 王成凤 女 101 87723112 85 04 张明明 男 502 87734333 60 05 陈东 男 501 87732111 96 06 李果 男 502 87734333 66 07 张园园 女 102 87756122 80 … … … … … …C语言设计

最新推荐

recommend-type

职工信息管理系统 c语言程序设计报告

【职工信息管理系统】是一个使用C语言编程实现的项目,旨在训练和提升学生的程序设计能力,特别是在C语言的应用、结构化程序设计以及系统开发方法等方面。该系统的主要目标是管理职工的个人信息,包括录入、浏览、...
recommend-type

大一C语言课程设计图书信息管理系统.doc

该系统旨在设计一个图书信息管理系统,提供图书信息录入、浏览、查询和排序、删除和修改等功能。 一、目的: 1. 进一步掌握和利用 C 语言进行程设计的能力; 2. 进一步理解和运用结构化程设计的思想和方法; 3. ...
recommend-type

超实用的 电子词典 C语言程序设计

在计算机软件技术基础的课程中,学生们被赋予了一项挑战——利用C语言设计一个电子词典。这个项目不仅要求实现基本的单词录入、插入、查找、删除和更新功能,还强调了数据库思想和结构化设计的应用。在自动化专业的...
recommend-type

c语言课程设计—学生管理系统 .doc

学生管理系统是一种基于C语言的软件应用,用于管理和处理学生的信息...总的来说,这个学生管理系统的设计和实现涵盖了C语言编程、数据结构应用、文件操作、用户界面设计等多个IT领域的知识点,是一个综合性的实践项目。
recommend-type

职工信息管理系统(C语言)

【职工信息管理系统(C语言)】是一个基于C语言编写的程序,用于管理和操作职工的相关信息。这个系统设计目的是为了方便地记录和管理职工的基本资料,包括职工号、姓名、性别、年龄、学历、工资、住址和电话等。系统...
recommend-type

UML建模语言中的Iformation类与ReservationCriteria解析

"UML建模语言相关知识,包括Iformation类和ReservationCriteria类的应用" 在软件工程领域,统一建模语言(UML)是自1995年至1997年间取得的重大进展之一,它成为了面向对象技术的标准建模语言,并在过去的十年间占据了主导地位。UML是一种通用的、可视化的建模语言,它融合了Booch、OMT和OOSE等方法的优点,提供了一套统一的符号体系,用于不同领域用户的交流。UML不仅用于软件开发的各个阶段,如需求分析、设计和测试,还可应用于商业建模。 UML图是模型的主要表达方式,通过这些图,开发者可以清晰地描绘出系统的结构、行为以及不同组件之间的关系。UML包括多种类型的图,如类图、序列图、用例图、状态图等,这些图共同构建了一个系统全面而抽象的视图。 在提供的内容中,提到了"Iformation类",这可能是描述信息或数据存储的类,但没有给出详细信息。然而,我们可以理解在UML建模中,类是用来封装数据和操作数据的方法的,它们是面向对象设计的核心元素。类通常具有属性(数据成员)和操作(方法),并且可以通过继承、组合和关联等方式与其他类相互作用。 接下来,"ReservationCriteria类"是预订会议室的准则定义类,可能包含如时间、日期、参与者数量等预定条件。这个类与"MeetingInstanee"类建立了联系,可能是通过关联或聚合关系,使得每个会议实例都与特定的预订准则相关联。"setCrieria()"和"GetCriteria()"方法可能分别用于设置和获取预订准则。 在面向对象建模中,类之间的关系非常重要。关联关系表示类之间的一种结构性联系,可以是单向或双向的。聚合和组合是关联的特殊形式,聚合表示整体与部分的关系,组合则更强调部分与整体的生命周期绑定。接口定义了类需要实现的操作,而依赖关系则表明一个类如何使用另一个类的实例。 总结起来,UML是软件开发中的强大工具,它提供了一种标准化的方式来描述、可视化和文档化复杂的系统。通过类图、对象图等,开发者能够清晰地表达系统的结构和行为,进而提高开发效率和代码质量。在具体项目中,如"Iformation类"和"ReservationCriteria类",UML帮助我们理解类的职责和它们之间的交互,从而更好地设计和实现软件系统。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

YOLOv3数据集标注工具大比拼:找到你的标注神器

![YOLOv3数据集标注工具大比拼:找到你的标注神器](https://www.zhanid.com/uploads/2024/03/26/18580439.jpg) # 1. YOLOv3数据集标注工具简介 YOLOv3数据集标注工具是用于创建和管理YOLOv3目标检测模型所需训练数据集的软件工具。这些工具使数据标注人员能够快速准确地标注图像中的对象,为模型训练提供高质量的输入数据。 YOLOv3数据集标注工具通常提供以下功能: - **图像导入和管理:**允许用户导入和组织图像,并进行基本的图像处理操作,如裁剪和调整大小。 - **对象标注:**提供工具来标注图像中的对象,包括矩形
recommend-type

systemctl daemon-reloadSystemctl start docker

`systemctl daemon-reload` 是用来重新加载 systemd 的单元配置文件,以便它能够识别并应用任何新添加或修改的服务定义。当你对 `/etc/systemd/system/` 目录下的服务文件进行了编辑后,可以运行这个命令来确保这些更改生效。 下面是如何执行 `systemctl daemon-reload` 的命令示例: ```shell sudo systemctl daemon-reload ``` 这需要 root 权限,因为只有管理员才能修改系统的全局配置。 而 `systemctl start docker` 则用于启动 Docker 容器引擎。如
recommend-type

互联网与HTML基础:构建链接的网络

互联网简介-HTML(1)是关于互联网基础知识和技术的一个PPT教程,主要针对初学者介绍HTML语言及其在构建和组织网页中的核心作用。该教程分为多个章节,旨在逐步引导读者理解: 1. 互联网概述:互联网被定义为世界上最大的计算机网络,它是连接全球无数计算机和设备的通信系统,其重要性在于它的规模和分布式特性,使得信息无国界地传播。 2. 万维网介绍:万维网(WWW)是互联网的一个子集,专指通过超链接组织起来的网页集合,用户可以通过URL访问这些服务器上的内容。 3. HTML简介:HTML (HyperText Markup Language) 是一种标记语言,用于创建和设计网页。它利用各种标记和元素来控制页面布局、内容显示、添加超链接以及实现交互功能,如表单提交等。 4. 编写HTML文档:教程展示了如何编写基本的HTML文档结构,包括`<HTML>`、`<HEAD>`和`<BODY>`标签,以及`<TITLE>`和`<H3>`等元素,用于设置文档标题和主要内容。 5. 超链接和元数据:在HTML中,超链接是链接不同页面或资源的关键,而 `<META>` 标签用于提供关于文档的元信息,比如关键字和描述。 6. 特殊字符处理:HTML中还涉及到如何处理特殊字符,确保它们正确显示在网页上,避免编码问题。 7. 浏览器与编辑器:介绍了常用的浏览器(如Netscape Navigator和Microsoft Internet Explorer),以及HTML编辑器(如Microsoft FrontPage和Macromedia Dreamweaver),以及基础的文本编辑工具如记事本。 8. HTML开发实践:讲解了HTML标记的基本结构,包括标记的开始和结束符号,元素、属性和值的概念,这些都是编写有效HTML代码的基础。 整个教程通过实例和实践操作,让学习者逐渐掌握HTML的基本语法和应用技巧,为后续更深入的网页设计和开发打下坚实的基础。