c语言 学生信息管理系统设计,大一C语言结课设计之《学生信息管理系统》

2023-11-01

196d51b28940104e2e0624419da6c8a3.png

第一次写这么长的程序,代码仅供参考,有问题请留言。

/*

**学生信息管理系统

**IDE:Dev-Cpp 4.9.9.2

**2014-6-15

*/

#include

#include

#include

#include

#include

using std::sort;

using std::vector;

/*==存储单元节点==*/

struct student{

//字符数组方便统一输入

char name[50], address[100], email[50], id[20],

age[5], birth[20], tel[20], gender[5];

};

vector myvec;

/*==========函数声明区==========*/

/*-打印主菜单声明-*/

void printMainMenu();

/*-主界面各函数声明-*/

void enterInformation(); //1

void browseInformation(); //2

void inquireInformation(); //3

void modifyInformation(); //4

void deleteInformation(); //5

void saveToFile();//6

void readFromFile();//7

void exitInformation(); //0

/*--主界面函数的子函数声明--*/

void inquireOneStudent(student *);

void modifyOneStudent(student *);

/*--修改单项信息--*/

void modifyOneId(student *);

void modifyOneName(student *);

void modifyOneAge(student *);

void modifyOneGender(student *);

void modifyOneBirth(student *);

void modifyOneTel(student *);

void modifyOneAddress(student *);

void modifyOneEmail(student *);

void modifyToMain(student *); //这个其实不需要形参,只是为了统一跳转表接口

/*--删除一个学生--*/

void deleteOneStudent(student *);

/*--显示一个学生的所有信息--*/

void displayOneStudent(student *);

/*--浏览方式--*/

void browsePlain(); //直接浏览

void browseById();

void browseByName();

void browseByBirth();

void browseToMain();

/*--查询方式--*/

void inquireById();

void inquireByName();

/*-函数指针数组-*/

void (*mainPointerArr[])() = {

exitInformation, enterInformation,

browseInformation, inquireInformation,

modifyInformation, deleteInformation, saveToFile, readFromFile

};

void (*modifyOne[])(student *) = {

modifyToMain, modifyOneId, modifyOneName,

modifyOneAge, modifyOneGender, modifyOneBirth,

modifyOneTel, modifyOneAddress, modifyOneEmail

};

void (*browseArray[])() = {

browseToMain, browsePlain, browseById,

browseByName, browseByBirth

};

/*==========函数定义区==========*/

/*-主界面菜单函数-*/

void printMainMenu(){

printf("\t\t\t河南理工大学学生信息管理系统\n\n");

printf("\t\t ======================================\n");

printf("\t\t ||\t\t1、学生信息录入 \t||\n");

printf("\t\t ||\t\t2、学生信息浏览 \t||\n");

printf("\t\t ||\t\t3、学生信息查询 \t||\n");

printf("\t\t ||\t\t4、学生信息修改 \t||\n");

printf("\t\t ||\t\t5、学生信息删除 \t||\n");

printf("\t\t ||\t\t6、学生信息存档 \t||\n");

printf("\t\t ||\t\t7、学生信息读档 \t||\n");

printf("\t\t ||\t\t0、退出管理系统 \t||\n");

printf("\t\t ======================================\n");

printf("\t\t\t\t\t\t原创作者:邱正钢\n");

printf("\t\t\t\t\t\t完成时间:2014年6月17日\n");

printf("\t\t\t\t\t\tEmail:2276479303@qq.com\n");

printf("请选择功能:");

int num;

scanf("%d", &num);

(*mainPointerArr[num])();

}

/*-信息录入-*/

void enterInformation(){ //1

system("cls");

printf("输入学生信息:\n");

printf("请输入学号:");

int len; student temp;

while(gets(temp.id) && !strlen(temp.id))

; //过滤缓存回车

printf("请输入姓名:");

while(gets(temp.name) && !strlen(temp.name))

; //过滤缓存回车

printf("请输入年龄:");

while(gets(temp.age) && !strlen(temp.age))

; //过滤缓存回车

printf("请输入性别:");

while(gets(temp.gender) && !strlen(temp.gender))

; //过滤缓存回车

printf("请输入生日:");

while(gets(temp.birth) && !strlen(temp.birth))

; //过滤缓存回车

printf("请输入电话:");

while(gets(temp.tel) && !strlen(temp.tel))

; //过滤缓存回车

printf("请输入地址:");

while(gets(temp.address) && !strlen(temp.address))

; //过滤缓存回车

printf("请输入Email:");

while(gets(temp.email) && !strlen(temp.email))

; //过滤缓存回车

myvec.push_back(temp);

system("cls");

printf("OK,录入成功,该学生信息如下:\n");

len = myvec.size() - 1;

inquireOneStudent(&myvec[len]);

}

void browseInformation(){ //2

if(myvec.empty()){

printf("没有检测到任何学生信息!请在录入后再浏览!\n系统将返回到主界面\n");

system("pause");

browseToMain();

}

printf("请选择功能:\n");

printf("1、直接浏览\n");

printf("2、按学号排序后浏览\n");

printf("3、按姓名排序后浏览\n");

printf("4、按生日排序后浏览\n");

printf("0、返回主菜单\n");

int num; scanf("%d", &num);

(*browseArray[num])();

browseInformation();

}

void inquireInformation(){ //3

if(myvec.empty()){

printf("没有数据,无法查询!系统将退到主菜单\n");

system("pause");

browseToMain();

return;

}

printf("请选择功能:");

printf("1、输入学号查询\n");

printf("2、输入姓名查询\n");

printf("0、返回主菜单\n");

int num; scanf("%d", &num);

if(num == 1) inquireById();

else if(num == 2) inquireByName();

system("pause");

browseToMain();

}

void modifyInformation(){ //4

printf("请输入要更改的学生学号:");

char buf[20];

while(gets(buf), !strlen(buf))

; //依然是过滤空串

vector::iterator it = myvec.begin();

for( ; it != myvec.end(); ++it){

if(strcmp(buf, it->id) == 0){

modifyOneStudent(&myvec[it - myvec.begin()]);

return;

}

}

printf("没有找到!\n");

}

void deleteInformation(){ //5

if(myvec.empty()){

printf("没有数据可供删除,系统将返回到主菜单。\n");

system("pause");

browseToMain();

return;

}

printf("请选择功能:\n");

printf("1、清空所有数据\n");

printf("2、删除特定学生的信息\n");

printf("0、返回主菜单\n");

int num; scanf("%d", &num);

if(1 == num){

myvec.clear();

printf("成功清除所有信息\n");

return;

}else if(2 == num){

char buf[20];

printf("请输入学生学号:");

while(gets(buf), !strlen(buf))

;

vector::iterator it = myvec.begin();

for( ; it != myvec.end(); ++it){

if(!strcmp(buf, it->id)){

deleteOneStudent(&myvec[it - myvec.begin()]); return;

}

}

printf("未找到该学生!\n");

}

system("pause");

browseToMain();

}

void saveToFile(){//6

if(myvec.empty()){

printf("数据为空,无法存储,请在录入信息后再存储到文件!系统将返回到主菜单!\n");

system("pause");

browseToMain();

return;

}

FILE *fp = fopen("studentInformation.txt", "w");

vector::iterator it = myvec.begin();

for( ; it < myvec.end(); ++it){

fprintf(fp, "%s\n", it->id);

fprintf(fp, "%s\n", it->name);

fprintf(fp, "%s\n", it->age);

fprintf(fp, "%s\n", it->gender);

fprintf(fp, "%s\n", it->birth);

fprintf(fp, "%s\n", it->tel);

fprintf(fp, "%s\n", it->address);

fprintf(fp, "%s\n", it->email);

}

fclose(fp);

printf("OK, 存档完成!系统将返回到主界面。\n");

system("pause"); browseToMain();

}

void readFromFile(){//7

FILE *fp = fopen("studentInformation.txt", "rb");

if(fp == NULL){

printf("未检测到存档文件!系统将返回到主界面。\n");

system("pause");

browseToMain();

return;

}

student it;

myvec.clear();

while(fscanf(fp, "%s", it.id) == 1){

fscanf(fp, "%s", it.name);

fscanf(fp, "%s", it.age);

fscanf(fp, "%s", it.gender);

fscanf(fp, "%s", it.birth);

fscanf(fp, "%s", it.tel);

fscanf(fp, "%s", it.address);

fscanf(fp, "%s", it.email);

myvec.push_back(it);

}

fclose(fp);

if(myvec.empty()){

printf("读取存档失败!系统将返回到主界面!\n");

}else{

printf("读取存档成功!系统将返回到主界面!\n");

}

system("pause");

browseToMain();

}

void exitInformation(){ //0

printf("感谢您的使用!再见\n");

system("pause");

exit(EXIT_SUCCESS);

}

void displayOneStudent(student *stu){

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

printf("学号:%s\n", stu->id);

printf("姓名:%s\n", stu->name);

printf("年龄:%s\n", stu->age);

printf("性别:%s\n", stu->gender);

printf("生日:%s\n", stu->birth);

printf("电话:%s\n", stu->tel);

printf("地址:%s\n", stu->address);

printf("Email:%s\n", stu->email);

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

}

void inquireOneStudent(student *stu){

displayOneStudent(stu);

printf("请选择操作:\n");

printf("1、更改该学生信息\n");

printf("2、删除该学生信息\n");

printf("0、返回主菜单\n");

int num;

label:scanf("%d", &num);

if(num == 1) modifyOneStudent(stu);

else if(num == 2) deleteOneStudent(stu);

else if(num == 0) modifyToMain(stu);

else goto label;

}

void modifyOneStudent(student *stu){

system("cls");

printf("修改当前学生信息:\n");

printf("1、修改学号\n");

printf("2、修改姓名\n");

printf("3、修改年龄\n");

printf("4、修改性别\n");

printf("5、修改生日\n");

printf("6、修改电话\n");

printf("7、修改地址\n");

printf("8、修改Email\n");

printf("0、返回主菜单\n");

int num; scanf("%d", &num);

(*modifyOne[num])(stu);

}

void modifyOneId(student *stu){

printf("请输入新的学号:");

while(gets(stu->id) && !strlen(stu->id))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneName(student *stu){

printf("请输入新的姓名:");

while(gets(stu->name) && !strlen(stu->name))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneAge(student *stu){

printf("请输入新的年龄:");

while(gets(stu->age) && !strlen(stu->age))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneGender(student *stu){

printf("请输入新的性别:");

while(gets(stu->gender) && !strlen(stu->gender))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneBirth(student *stu){

printf("请输入新的生日:");

while(gets(stu->birth) && !strlen(stu->birth))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneTel(student *stu){

printf("请输入新的电话:");

while(gets(stu->tel) && !strlen(stu->tel))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneAddress(student *stu){

printf("请输入新的地址:");

while(gets(stu->address) && !strlen(stu->address))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyOneEmail(student *stu){

printf("请输入新的Email:");

while(gets(stu->email) && !strlen(stu->email))

; //过滤缓存回车

printf("修改成功!更改后的学生信息如下:\n");

inquireOneStudent(stu);

}

void modifyToMain(student *stu){

system("cls");

printMainMenu();

}

void deleteOneStudent(student *stu){

vector::iterator it;

it = myvec.begin() + (stu - &myvec[0]);

myvec.erase(it);

printf("删除成功!\n");

}

/*--cmp函数定义--*/

bool cmpById(student a, student b){

if(strcmp(a.id, b.id) < 0) return true;

}

bool cmpByName(student a, student b){

if(strcmp(a.name, b.name) < 0) return true;

}

bool cmpByBirth(student a, student b){

if(strcmp(a.birth, b.birth) < 0) return true;

}

/*--浏览方式--*/

void browsePlain(){ //直接浏览

if(myvec.empty()){

printf("数据为空!将返回主菜单。\n");

system("pause");

modifyToMain(NULL);

}

vector::iterator stu = myvec.begin();

for( ; stu != myvec.end(); ++stu)

displayOneStudent(&myvec[stu - myvec.begin()]);

}

void browseById(){

if(myvec.empty()){

printf("数据为空!将返回主菜单。\n");

system("pause");

modifyToMain(NULL);

}

sort(myvec.begin(), myvec.end(), cmpById);

vector::iterator stu = myvec.begin();

for( ; stu != myvec.end(); ++stu)

displayOneStudent(&myvec[stu - myvec.begin()]);

}

void browseByName(){

if(myvec.empty()){

printf("数据为空!将返回主菜单。\n");

system("pause");

modifyToMain(NULL);

}

sort(myvec.begin(), myvec.end(), cmpByName);

vector::iterator stu = myvec.begin();

for( ; stu != myvec.end(); ++stu)

displayOneStudent(&myvec[stu - myvec.begin()]);

}

void browseByBirth(){

if(myvec.empty()){

printf("数据为空!将返回主菜单。\n");

system("pause");

modifyToMain(NULL);

}

sort(myvec.begin(), myvec.end(), cmpByBirth);

vector::iterator stu = myvec.begin();

for( ; stu != myvec.end(); ++stu)

displayOneStudent(&myvec[stu - myvec.begin()]);

}

void browseToMain(){

system("cls");

printMainMenu();

}

/*--查询方式--*/

void inquireById(){

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

char buf[20]; int ok = 0;

while(gets(buf), !strlen(buf))

; //依然是过滤空串

vector::iterator it = myvec.begin();

for( ; it != myvec.end(); ++it){

if(strcmp(buf, it->id) == 0){

displayOneStudent(&myvec[it - myvec.begin()]);

ok = 1;

}

}

if(0 == ok) printf("没有找到!\n");

}

void inquireByName(){

printf("请输入要查询的学生姓名:");

char buf[20]; int ok = 0;

while(gets(buf), !strlen(buf))

; //依然是过滤空串

vector::iterator it = myvec.begin();

for( ; it != myvec.end(); ++it){

if(strcmp(buf, it->name) == 0){

displayOneStudent(&myvec[it - myvec.begin()]);

ok = 1;

}

}

if(0 == ok) printf("没有找到!\n");

}

/*==========主函数==========*/

int main(){

printMainMenu();

return 0;

}

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

c语言 学生信息管理系统设计,大一C语言结课设计之《学生信息管理系统》 的相关文章

  • 为什么使用GB28181而不是直接rtsp拉流

    1 GB sip和rtsp 实际上 sip协议和rtsp协议大同小异 并没有什么本质上得不同 那为什么我们不使用rtsp 而转而使用GB28181国标得sip协议 原因是 使用得方向不同 我们使用rtsp拉流是作为客户端 这时摄像机是服务端
  • 【问题解决】partially initialized module ‘cv2‘ has no attribute

    使用 MMOCR 时报错 partially initialized module cv2 has no attribute 可能是 opencv 的版本问题 也可能是 opencv 和当前环境不能完全匹配的问题 可以使用下面的方法重新安装
  • 分享一个 ChatGPT可免费使用的AI助手

    现在 多种行业都已经开始广泛地采用聊天机器人ChatGPT 有一个与之相关的国内免费网站可以供大家使用 多御浏览器 这是一款安全快速 高效稳定的浏览器 该网站客户端软件中 有很多实用工具 其中之一就是当下非常流行的 ChatGPT 这对于开
  • python 更换pip安装源

    pip源 默认从国外源安装 安装速度比较慢 现在我们指定国内源安装源 阿里源 豆瓣源 Ubuntu源 1 指令配置源 pip3 install xlrd i https pypi tuna tsinghua edu cn simple 2
  • Qt - QSetting的使用

    欢迎转载 请注明出处 https blog csdn net qq 39453936 spm 1010 2135 3001 5343 原文链接 https blog csdn net qq 39453936 article details
  • Allegro快捷键

    env文件替换路径C Cadence SPB 16 6 share pcb text
  • mac启动pg数据库失败 “Is another postmaster (PID 370) running in data directory“

    解决办法 进入目录 usr local var postgres 删除文件 postmaster pid 启动pg命令 pg ctl D usr local var postgres l usr local var postgres ser
  • 挖矿病毒的特点

    挖矿病毒的特点 1 文件 定时任务删除失败 文件只读属性保护 2 文件 定时任务删完又出现 系统文件替换 下载进程残留 3 病毒进程刚刚删完又被拉起 恶意进程守护 4 主机严重卡顿但找不到挖矿进程 系统命令劫持 5 主机杀干净后一段时间又出
  • 【云原生之kubernetes】在kubernetes集群下的映射外部服务—Eendpoint

    云原生之kubernetes 在kubernetes集群下的映射外部服务 Eendpoint 一 Eendpoint介绍 1 endpoint简介 2 endpoint的使用 二 检查本地k8s状态 1 检查工作节点状态 2 检查系统pod
  • Modelsim、Matlab在远程桌面下打开的异常及处理

    此方法可以解决远程桌面下启动MATLAB时的License Manager Error 103错误 也能够解决远程桌面下启动modelsim的错误 方法如下 1 打开C Program Files MATLAB R2015b license
  • kafka基础介绍

    目录 前言 一 kafka架构 1 kafka基础架构 2 kafka多副本架构 二 kafka基础概念 1 produce 2 Consumer 3 Broker 4 Topic 5 Partition 6 Replicas 7 Offs
  • C++数据结构X篇_12_树的基本概念和存储

    学习二叉树之前先学习树的概念 文章目录 1 树的基本概念 1 1 树的定义 1 2 树的特点 1 3 若干术语 2 树的表示法 2 1 图形表示法 2 2 广义表表示法 3 树的存储 3 1 双亲表示法 保存父节点关系 3 2 孩子表示法
  • 伴随矩阵的特征值和特征向量

    结 论 伴 随 矩 阵 的 特
  • winsock

    今天上午学习了 winsock的使用的过程 现将学习的收获总结如下 Winsock的属性 1 Localport 设定本机的端口号 端口号从0 65536 其中1024一下一般为专用的端口 如21为ftp默认端口 80为http默认端口 2
  • 关于对CSDN这些技术博客类网站的一些个人看法

    今天这篇文章其实是自己的一个分享与感悟 分享一下自己从技术小白到有点小实力的这个过程中对自己帮助的一些技术博客类网站的看法 关于我为什么会想写这么一篇文章呢 起因是我有一次查CSDN网站时候 看到了一篇文章 第一眼看到这篇文章的时候我觉得首
  • Java多线程 - - -线程安全问题

    Java 多线程学习笔记 二 线程安全问题的出现 当一个进程中的多个线程共享资源或数据的时候 就会出现安全隐患 例如 三个售票窗口同时售票 如果没有进行线程安全的处理 则会出现重票 错票等线程安全问题 package com fff 实现R
  • Modbus协议介绍

    Modbus协议介绍 简介 Modbus是一种串行通信协议 是Modicon公司 现在的施耐德电气Schneider Electric 于 1979年为使用可编程逻辑控制器 PLC 通信而发表 Modbus 已经成为工业领域通信协议的业界标
  • JDBC数据库驱动的下载、安装与连接

    1 常用的数据库驱动下载 使用JDBC操作数据库 需要使用数据库厂商提供的驱动程序 通过驱动程序可以与数据库进行交互 1 1 常用的数据库厂商驱动下载地址 1 1 1 MySQL数据库 https dev mysql com downloa
  • Pytorch基于DDPM+InceptionNext+数据增强的图像分类(一)

    项目简介 本项目旨在通过使用深度学习技术实现对图像进行分类 我采用了DDPM Deep Dynamic Probabilistic Modeling 和InceptionNext两个模型的结合 以提高图像分类的准确性和性能 同时 我还使用了

随机推荐

  • 拷贝构造函数和赋值构造函数声明为私有的作用

    转载 http blog csdn net rabbit729 article details 4000500 每个类只有一个赋值函数 由于并非所有的对象都会使用拷贝构造函数和赋值函数 程序员可能对这两个函数有些轻视 请先记住以下的警告 在
  • dom-to-image 将vue中未显示的组件转成图片, 并上传

    目录 一 dom to image基本使用 二 注意点 三 生成的图片上传至服务器 1 base64 转 File 格式 2 blob 转 File 格式 3 在页面展示生成的图片 4 最终dom转图片函数 5 上传图片 6 问题未解决 四
  • word自带公式编辑

    快捷键 公式编辑 alt 上标 x i 空格 下标 x i 空格 实数R doubleR 空格 偏微分算子 partial 极限 limit 按空格后会显示一串很长的式子 再空格就变成了数学公式 积分 int 二重积分 iint 三重积分
  • python的smtplib发送带附件邮件

    usr bin python coding UTF 8 author import smtplib logging 加载smtplib模块 from email mime text import MIMEText from email ut
  • 如何使用chatGPT生成小红书种草文案

    如何使用chatGPT生成小红书种草文案 小红书拥有超千万的日活用户 为商家提供了广阔的变现空间和机会 成为商家选择在小红书上推广的原因之一 小红书种草文案 例如具有影响力的热门话题 产品使用方法等内容可以让消费者迅速了解产品为品牌带来更多
  • nginx转发后如何获取真实的ip地址

    前言 最近做一个团队的打卡系统 需要通过连接实验室WiFi来判是否人在实验室 网上千篇一律的获取主机ip的方法由于我使用了nginx反向代理 导致获取到的ip地址为127 0 0 1 这肯定是不符合我们验证标准的 还有就是失去了校验的意义了
  • 人工智能笔记

    第一章 绪论 1956年正式提出人工智能 artificial intelligence AI 这个术语并把它作为一门新兴科学的名称 20世纪三大科学技术成就 空间技术 原子能技术 人工智能 智能是知识与智力的总和 知识是一切智能行为的基础
  • Flutter 在MAC环境下jenkins+fastlane+gitlab实现自动打包部署(看这一篇就够了,小而精)

    实现办公局域网下的jenkins服务 Flutter配置 文档 jenkins安装 通过homebrew安装 1 安装homebrew bin bash c curl fsSL https raw githubusercontent com
  • 谷歌播客Google PodCasts解析脚本

    解析某个频道 全部的结果 import json import requests feed url https podcasts google com feed aHR0cHM6Ly93d3cueGltYWxheWEuY29tL2FsYnV
  • 我的LLVM学习笔记——OLLVM混淆研究之FLA篇

    因为要做代码保护 所以抽时间研究了下OLLVM中的三种保护方案 BCF Bogus Control Flow 中文名虚假控制流 FLA Control Flow Flattening 中文名控制流平坦化 SUB Instructions S
  • vue使用wangEditor

    vue版本2 0 editor5 1 23版本 editor for vue 1 0 2版本 api文档入口 效果图 点击查看如何封装 安装步骤入口 npm install wangeditor editor save npm instal
  • 多路选择器MUX总结-IC学习笔记(八)

    多路复用器是一种组合电路 它从许多输入信号中选择一个作为输出 本文先介绍两个MUX的简单应用 主要关于如何将verilog与物理实现对应 第二当MUX作为时钟切换电路时如何避免毛刺 glitch 文章目录 1 1 MUX code与物理实现
  • grafana配置MySQL持久化存储并配置HTTPS

    Grafana 配置 MySQL 数据持久化存储 一 mysql8 0 30 安装 1 1 解压并初始化 MySQL8 0 30 查询是否存在 MariaDB 和 MySQL 存在需要删除后进行安装 rpm qa grep MariaDB
  • 目标检测VOC标注格式中,将斜框标注转化为水平框

    目标检测VOC格式数据集obb标注向hbb标注的转换 polygon 2 bndbox polygon obb 和bndbox hbb 介绍 polygon obb bndbox hbb polygon2bndbox转换原理 polygon
  • unturned服务器修改空投频率,unturned 服务器设置

    unturned 服务器设置 内容精选 换一换 区块链服务状态为 弹性IP异常 排查项 弹性公网IP已 解绑 或被释放 在BCS控制台 服务管理页面中的目标服务卡片中 单击 更多 gt 更新访问地址 查看弹性公网IP 登录网络控制台 查找目
  • ajax success function(data)后的data数据无法使用Uncaught TypeError: Cannot read property ‘xxx‘ of undefined

    问题描述 前端小白 在不了解ajax机制的情况下误使用函数返回ajax中需要时间完成的ajax函数 导致return后的data无法在后面的script代码块中正常使用 function getData ajax type get url
  • procfs使用及字符设备

    以下内容由chatgpt给出 以下是一个使用procfs接口创建设备节点的示例代码 include
  • Android Kotlin SharedFlow

    SharedFlow 会从其中收集值得所有使用方法中发出数据 简而言之就是 像普通的流只可以一方发送 一方接受 而这个流可以一方发送 多方接受 下面上代码演示 SharedFlowFragment package com example a
  • 【C#】-属性(Property)和字段(Field)的区别

    导读 近期学习过程中发现了一些问题 我的学习只是学习 敲代码就是敲代码 没有加入思考 也不问为什么就直接去敲人家写好的例子去敲 把知识都学死了 逐渐散失了思考能力 所以学习的兴趣大打折扣 正如那句话 学而不思则罔 思而不学则殆 在设计模式中
  • c语言 学生信息管理系统设计,大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序 代码仅供参考 有问题请留言 学生信息管理系统 IDE Dev Cpp 4 9 9 2 2014 6 15 include include include include include using std sort u