学生考试信息管理系统c语言程序,C语言版学生信息管理系统

2023-10-26

本文实例为大家分享了C语言版学生信息管理系统的具体代码,供大家参考,具体内容如下

一.题目分析

1.功能概述

1)查询学生信息

2)添加学生信息

3)修改学生信息

4)删除学生信息

5)刷新学生信息

6)保存学生信息

7)输出当前学生信息

2.题目要求:

1)使用结构体建立学生信息体制

2)实现七大基本功能

3)采用文件存储学生信息

二.算法构造

1.难点解析----对文件的操作

1.1文件读取

FILE * fp;

if ((fp = fopen(filename, "r")) == NULL) return 0;

//从文件读取信息

while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {

j++;

}

1.2文件写入

FILE * fp;

fp = fopen(filename, "w");

for (i = 0; i < n; i++){

fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,

stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

2.流程图

271796b402e317c673767c5a2726660f.png

3.七大基本功能----函数实现

3.1菜单函数:通过菜单建立用户与程序之间的交流

void menu()/* 界面*/

{

int num;

printf(" \n\n \n\n");

printf(" ******************************************************\n\n");

printf(" * 学生信息管理系统 *\n \n");

printf(" ******************************************************\n\n");

printf("*********************系统功能菜单************************* \n");

printf(" ---------------------- ---------------------- \n");

printf(" ********************************************* \n");

printf(" * 0.系统帮助及说明 * * 1.刷新学生信息 * \n");

printf(" ********************************************* \n");

printf(" * 2.查询学生信息 * * 3.修改学生信息 * \n");

printf(" ********************************************* \n");

printf(" * 4.增加学生信息 * * 5.按学号删除信息 * \n");

printf(" ********************************************* \n");

printf(" * 6.显示当前信息 * * 7.保存当前学生信息* \n");

printf(" ********************** ********************** \n");

printf(" * 8.退出系统 * \n");

printf(" ********************** \n");

printf(" ---------------------- ---------------------- \n");

printf("请选择菜单编号:");

scanf("%d", &num);

switch (num)

{

case 0:help(); break;

case 1:flush(); break;

case 2:seek(); break;

case 3:modify(); break;

case 4:insert(); break;

case 5:del(); break;

case 6:display(); break;

case 7:save(); break;

case 8:

k = 0;

printf("即将退出程序!\n");

break;

default:printf("请在0-8之间选择\n");

}

}

3.2系统帮助与说明函数:适用于初次接触学生信息管理系统的用户参考

void help()

{

printf("\n0.欢迎使用系统帮助!\n");

printf("\n1.初次进入系统后,请先选择增加学生信息;\n");

printf("\n2.按照菜单提示键入数字代号;\n");

printf("\n3.增加学生信息后,切记保存;\n");

printf("\n4.谢谢您的使用!\n");

}

3.3刷新学生信息函数

功能:调用刷新信息函数后,文件中再无学生信息

int flush(){

char filename[LEN + 1];

int i = 0;

printf("请输入要刷新学生信息的文件名:\n");

scanf("%s", filename);

int j = 0;

FILE * fp;

if ((fp = fopen(filename, "r")) == NULL) return 0;

//从文件读取信息

while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {

j++;

}

n = j;

printf("刷新成功!!!");

return n;

}

3.4查询学生信息函数

功能:通过输入要查询的学生学号或者姓名,与系统中的学生信息进行对比,若相等,则输出该学生的基本信息;反之,则输出该学生在该管理系统中不存在

查询方式:

1)按照学号查询

2)按照姓名查询

void seek() /*查找*/

{

int i, item, flag;

char s1[21]; /* 以姓名和学号最长长度+1为准*/

printf("------------------\n");

printf("-----1.按学号查询-----\n");

printf("-----2.按姓名查询-----\n");

printf("-----3.退出本菜单-----\n");

printf("------------------\n");

while (1)

{

printf("请选择子菜单编号:");

scanf("%d", &item);

flag = 0;

switch (item)

{

case 1:

printf("请输入要查询的学生的学号:\n");

scanf("%s", s1);

for (i = 0; i

if (strcmp(s1,stu[i].StudentId) == 0)

{

flag = 1;

printf("学生学号\t学生姓名\t年龄\t性别\tC语言成绩\t高等数学\t大学英语成绩\n");

printf("--------------------------------------------------------------------\n");

printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId,stu[i].StudentName,stu[i].S

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学生考试信息管理系统c语言程序,C语言版学生信息管理系统 的相关文章

  • js——网址动态拼接参数

    案例 你可以使用字符串拼接的方式来动态拼接参数到网址上 在这种情况下 你可以使用加号运算符来连接字符串 并使用变量来表示参数的值 下面是一个示例代码 let aaa http www baidu com let xxx 1 let yyy
  • 对于一个采用字符数组存放的字符串str,设计一个递归算法StrLength(char *str)求其字符个数(长度)。递归求字符串长度

    递归求字符串长度 需要的就是将数组看成指针 一步一步走下去 int StrLength char str char p str if p 0 return 0 else return StrLength p 1 努力加油a啊 o
  • 走出软件作坊

    这本书 对于小开发者真的是实用手册 关于如何与老板相处 如何做人 如何做技术 对于在小企业工作的人来说 真的不错 2014 7 11
  • c#自定义消息事件

    自定义消息 public class CustomEventArgs EventArgs public readonly string msg public CustomEventArgs string msg this msg msg 自
  • 设计模式之桥接模式(Bridge模式)

    一 模式动机 设想如果要绘制矩形 圆形 椭圆 正方形 我们至少需要4个形状类 但是如果绘制的图形需要具有不同的颜色 如红色 绿色 蓝色等 此时至少有如下两种设计方案 第一种设计方案是为每一种形状都提供一套各种颜色的版本 第二种设计方案是根据
  • 云服务器搭建神器JupyterLab(多图)

    云服务器搭建神器JupyterLab 多图 JupyterLab是一个交互式的开发环境 其用于应对包含着notebook 代码以及数据的工作场景 1 前言 如果说vim是编辑器之神 那么JupyterLab就是笔记本之神 从2017年开始我
  • 极端天气下的目标检测与测距算法

    更多视觉额自动驾驶项目请见 小白学视觉 自动驾驶项目 本文主要工作 科技的发展与进步促使自动驾驶车辆逐渐成为全球汽车产业发展的重要战略 方向 但自动驾驶车辆面对如 大雨 大雾 大雪等极端环境时 智能汽车图像 采集与处理系统将面临巨大挑战 并
  • 基于Python的socket库实现通信功能

    目录 1 前言 2 技术介绍 1 socket 2 Python的socket库 3 系统实现 1 服务端 server py 2 客户端1 client1 py 3 客户端2 client2 py 4 系统功能演示 1 启动服务端和客户端
  • idea配置maven教程

    1 下载maven 下载地址 官网地址点击进入 2 配置环境变量 解压到自己想要放置的路径后 配置系统用户的环境变量 新增系统变量 MAVEN HOME C Program Files JetBrains apache maven 3 8
  • 二维码 ThoughtWorks.QRCode 之 index was outside bounds of the array

    最近在使用ThoughtWorks QRCode过程中 单独生成一个二维码没有出现过问题 在重复利用QRCodeEncoder生成二维码的过程中 会出现index was outside bounds of the array错误 经过调试
  • JS 作用域

    var和let的比较 var是老版JavaScript中定义变量的标识符 let是新版JavaScript中定义变量的标识符 let的出现是为了解决var定义变量的一些遗留问题而推出的 在同一个作用域下 var允许重复声明 let不允许重复
  • SpringBoot整合Minio

    1 引入依赖 POM文件如下
  • 【Linux虚拟机】VirtualBox搭建linux虚拟机

    Linux从虚拟机创建到程序运行 ubuntu版 实际工作中 总是需要开发环境 测试环境和生产环境 但是很多小伙伴是没有这么多可供使用的服务器的 尤其是学习使用阶段 可能因为不熟悉服务器的配置 重复的重启 安装 卸载等 我们需要有自己可以随
  • 聊天相关表结构及业务逻辑

    表结构 CREATE TABLE t chat record id bigint 20 NOT NULL send user id bigint 20 DEFAULT NULL COMMENT 发送人 receive user id big
  • mysql视图的应用场景_MySQL视图适用于哪些场景?

    MySQL视图适用于哪些场景 答 1 视图能简化用户操作 视图机制使用户可以将注意力集中在所关心的数据上 如果这些数据不是直接来自基本表 则可以通过定义视图 使数据库看起来结构简单 清晰 并且可以简化用户的数据查询操作 例如 那些定义了若干
  • 服务器virsh不显示虚机,KVM之virsh常用命令

    沙发 1121644742 Post 2016 04 19 下午5 40 help 打印帮助 attach device 从一个XML文件附加装置 attach disk 附加磁盘设备 attach interface 获得网络界面 aut
  • Java创建student类

    目录 创建包 包名可以自拟 在包中创建student类 创建Penpal类继承student类 在HelloWorld中实现测试 创建一个叫做Student的类 对象属性 姓名 年龄 性别 身高 对象方法 说话 计算加法 年龄长一岁 类属性
  • 数据库应用:Mycat+HAProxy+Keepalived实现高可用

    目录 一 理论 1 高可用 2 部署高可用 二 实验 1 Mycat HAProxy Keepalived实现高可用 三 问题 1 开启HA Proxy失败 2 VMware 克隆linux 网卡UUID重复问题 3 keepalived状

随机推荐

  • 从零开始搭建Kafka集群遇到的问题

    文章目录 安装kafka 下载kafka 2 12 3 1 0 tgz 使用Xshell将文件传入虚拟机 解压 启动kafka 使用kakfa自带的zookeeper 修改kafka配置 启动kafka 使用kafka 创建主题 查看主题
  • 考试系统服务器考试机,网络考试系统——服务器考试管理系统

    内容介绍 原文档由会员 快乐浪子 发布 网络考试系统 服务器考试管理系统 内容丰富 建议下载阅览 页数 32 字数 12157 摘要 在网络技术逐渐渗入社会生活各个层面的今天 传统的考试方式也面临着变革 而网络考试则是一个很重要的方向 基于
  • 对称加密算法之RC4介绍及OpenSSL中RC4常用函数使用举例

    RC4是一种对称密码算法 它属于对称密码算法中的序列密码 streamcipher 也称为流密码 它是可变密钥长度 面向字节操作的流密码 RC4是流密码streamcipher中的一种 为序列密码 RC4加密算法是Ron Rivest在19
  • 开发要点-Vue3.0通用知识学习

    开发要点 Vue3 0通用知识学习 2020 09 18 发布的Vue3 0正式版 建议先学ts 因为Vue3 0框架多数都是用ts重写的 API文档仔细阅读 Vue3亮点 Performance 性能更快 Tree shaking sup
  • linux下查看磁盘分区,文件系统,磁盘文件系统的命令

    http www linuxsir org bbs thread214738 html 一 df 命令 df 是来自于coreutils 软件包 系统安装时 就自带的 我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置 举例 S
  • 国内网络安全公司、社区简介

    国内网络安全公司简介 1 http www symantec com region cn 赛门铁克中国一家从事网络安全服务的公司 挺供网络安全产品下载 整体网络安全解决方案 2 http www nsfocus com 绿盟科技有限公司 一
  • 解决数据修改,但是视图未更新

    例一 在uniapp或者vue中 有时候会遇到数据修改 但实际上视图的数据未更新的情况 例如 直接赋值就不会改变视图 用this set 后 就可以更新视图 但是当this list time有设置默认值时 不管直接是直接赋值还是用set
  • (Z)复杂繁琐的芯片设计流程

    芯片制造的过程就如同用乐高盖房子一样 先有晶圆作为地基 再层层往上叠的芯片制造流程后 就可产出必要的 IC 芯片 这些会在后面介绍 然而 没有设计图 拥有再强制造能力都没有用 因此 建筑师的角色相当重要 但是IC 设计中的建筑师究竟是谁呢
  • uniapp连接蓝牙相关问题

    设备蓝牙连接成功 获取不到设备蓝牙服务列表 这种情况一般会接收到uniapp的错误码 10004 我们可以前往uniapp官网API模块查看错误码信息 查看后可以得知错误码10004是没有找到指定服务 我们可以详细看下获取所有服务的api
  • 单例模式实现

    单例模式 一个类在任何情况下都绝对只有一个实例 并提供一个全局访问点 单例模式是创建型模式 单例模式的应用场景 某类只要求生成一个对象的时候 如一个国家主席 班级班长等 单例模式的好处 由于单例模式只允许创建一个对象 共享该对象可以节省内存
  • 关于高通AR摄像机聚焦和调用前后摄像头的研究

    我们在做高通AR的时候会有一些设置的图片无法识别的情况 怎么解决呢 Vuforia有个Target Manager 这里主要负责处理待识别的Target 在最新的4 0版本中 可识别的标志包括以下四种类型 一般使用较多的是Single Im
  • k8s 读书笔记 - 深入掌握 Pod 扩缩容

    Pod 扩缩容的应用场景 在实际生产环境中通常会遇到某个服务需要扩缩容的场景 某个 Service 服务资源紧张 需要对其进行扩容 比如服务请求的负载突然增加 原本一个 Pod 副本开始吃不消 此时需要多扩展几个 Pod 副本来分担突发的负
  • dnsmasq搭建dns

    dnsmasq服务端 安装 yum y install dnsmasq 改配置文件 root yum nfs egrep v etc dnsmasq conf resolv file etc resolv dnsmasq conf stri
  • 示例:统计IP地址对应的省份,并把结果存入到mysql

    ip txt access log import java io BufferedReader FileInputStream InputStreamReader import java sql Connection DriverManag
  • vscode利用ssh远程连接linux虚拟机

    1 vscode是利用ssh远程连接linux的 所以首先确保vscode已经安装了这两个插件 2 点击左下角的连接 3 选择Connect to Host 4 选择添加新的主机 5 按格式输入 ssh 主机名 ip 比如我的 ssh du
  • python list列表操作进阶

    1 list基础介绍 在Python中 list是一种非常重要并且使用也非常广泛的数据类型 可以存储任意数量的有序元素 list可以包含不同数据类型的元素 如整数 浮点数 字符串等 并且可以随时添加或删除其中的元素 使得它在处理动态变化数据
  • Windows小技巧12--永久关闭开机弹出的今日热点

    Windows小技巧12 永久关闭开机弹出的今日热点 1 异常概述 2 解决方法 3 说明 1 异常概述 笔者最近打开Windows 发现总会自动弹出一个未知的今日热点 如下图 即便设置了永久不再弹出 下次开机的时候也会弹出 并且会随机发各
  • windows 安装Python2.7

    Win7 Python2 7 安装教程 Win7 Python2 7 安装过程如下 1 到 官方网站 下载安装文件包Python 2 7 10 amd64 msi 根据自己的电脑配置选择相应的安装包 点击安装即可 默认安装在C Python
  • DOM——页面的渲染、style属性操作、预加载与懒加载、防抖与节流

    一 页面的渲染 一 浏览器加载一份HTML文档的加载过程 1 把标签 文本 注释 属性等html代码解析为节点树 DOM Tree 2 把所有样式 css代码和浏览器自带 解析为结构体 3 把css样式结构体和节点树结合变成呈现树 渲染树
  • 学生考试信息管理系统c语言程序,C语言版学生信息管理系统

    本文实例为大家分享了C语言版学生信息管理系统的具体代码 供大家参考 具体内容如下 一 题目分析 1 功能概述 1 查询学生信息 2 添加学生信息 3 修改学生信息 4 删除学生信息 5 刷新学生信息 6 保存学生信息 7 输出当前学生信息