基于C语言如何实现学生管理系统
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"基于C语言如何实现学生管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于C语言如何实现学生管理系统"吧!1.目标要求:1.学生成
千家信息网最后更新 2025年01月20日基于C语言如何实现学生管理系统
本篇内容主要讲解"基于C语言如何实现学生管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于C语言如何实现学生管理系统"吧!
1.目标要求:
1.学生成绩管理系统
2.可增、删、改、查、浏览
3.数据保存在文件中
2.C语言代码:
文件1:源文件
#include"mylist.h"//菜单设计 void menu(){ //所有文件都同步到文件 printf("-------------【学生管理信息】-------------------\n"); printf("\t\t0.退出系统\n"); printf("\t\t1.录入信息\n"); printf("\t\t2.浏览信息\n"); printf("\t\t3.修改信息\n"); printf("\t\t4.删除信息\n"); printf("\t\t5.查找信息\n"); printf("------------------------------------------------\n"); }struct Node* list;//用户的交互//根据所选的菜单项,作相应的事情 void keyDown(){ int choice = 0; struct student data; struct Node* pMove = NULL; scanf("%d",&choice); switch(choice){ case 0: printf("正常退出!\n"); system("pause"); exit(0); break; case 1: printf("-------------录入信息-------------------\n"); //插入链表 fflush(stdin); //清空缓冲区!!!!!!!!! printf("请输入学生的\n姓名、年龄、性别、电话:\n"); scanf("%s%d%s%s",data.name,&data.age,data.sex,data.tel); insertNodeByHead(list,data); break; case 2: printf("-------------浏览信息-------------------\n"); printList(list); //打印链表 break; case 3: printf("-------------修改信息-------------------\n"); printf("请输入要修改信息的学生姓名:"); scanf("%s",data.name); reviseInfoByData(list,data.name); break; case 4: printf("-------------删除信息-------------------\n"); printf("请输入删除学生的姓名:"); scanf("%s",data.name); deleteNode(list,data.name); break; case 5: printf("-------------查找信息-------------------\n"); printf("请输入要查找学生的姓名:"); scanf("%s",data.name); if( pMove = searchInfoByData(list,data.name)){ printf("姓名\t年龄\t性别\t电话\n"); printf("%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel); } break; default: printf("选择错误,重新输入\n"); system("pause"); break; } writeInfoToFile(list,"1.txt");} int main(){ list = createList(); readInfoFromFile(list,"1.txt"); while(1){ menu(); keyDown(); system("pause"); system("cls"); } system("pause"); return 0;}
文件2:mylist.h
#include#include #include //数据的设计-----》学生信息抽象出struct student{ char name[20]; int age; char sex[5]; char tel[20]; // int math;// int english;};//结构//测试的结构 struct Node{ struct student data; struct Node* next;}; //创建表头 struct Node* createList(){ struct Node* headNode = (struct Node*)malloc(sizeof(struct Node)); headNode->next = NULL; return headNode;}//创建节点 struct Node* createNode(struct student data){ struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = NULL; return newNode;} //插入结点(表头法)void insertNodeByHead(struct Node* headNode, struct student data){ struct Node* newNode = createNode(data); newNode->next = headNode->next; headNode->next = newNode;}//指定位置删除void deleteNode(struct Node* headNode,char* name){ struct Node* posFrontNode; struct Node* posNode; if(headNode->next == NULL){ printf("链表为空!\n"); return; } posFrontNode = headNode; posNode = headNode->next; while(posNode && strcmp(posNode->data.name,name)){ posFrontNode = posNode; posNode = posFrontNode->next; } if(!posNode){ printf("您要删除的数据不存在!\n"); return; } if(!strcmp(posNode->data.name,name)){ posFrontNode->next = posNode->next; free(posNode); }} //查找功能struct Node* searchInfoByData(struct Node* headNode,char* name) { struct Node* posNode; if(headNode->next == NULL){ printf("链表为空!\n"); return NULL; } posNode = headNode->next; while(posNode && strcmp(posNode->data.name,name)){; posNode = posNode->next; } if(!posNode){ printf("您要查找的数据不存在!\n"); return NULL; } return posNode; }//修改功能void reviseInfoByData(struct Node* headNode,char* name) { struct Node* posNode; if(headNode->next == NULL){ printf("链表为空!\n"); return; } posNode = headNode->next; while(posNode && strcmp(posNode->data.name,name)){; posNode = posNode->next; } if(!posNode){ printf("您要修改的数据不存在!\n"); return; } printf("请输入学生[%s]的年龄、性别、电话:\n",posNode->data.name); scanf("%d%s%s",&posNode->data.age,posNode->data.sex,posNode->data.tel);}//文件读操作void readInfoFromFile(struct Node* headNode,char* fileName){ //1.打开文件 FILE *fp; struct student data; fp = fopen(fileName,"r"); if(fp == NULL){ fopen(fileName,"w+");//打开文件具有创建功能 } //2.读文件 while(fscanf(fp,"%s\t%d\t%s\t%s\n",data.name,&data.age,data.sex,data.tel)!=EOF){ insertNodeByHead(headNode,data); } //3.关闭文件 fclose(fp);}//文件写操作void writeInfoToFile(struct Node* headNode,char* fileName){ //1.打开文件 FILE *fp; fp = fopen(fileName,"w"); struct Node* pMove = headNode->next; //2.写文件 while(pMove){ fprintf(fp,"%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel); pMove = pMove->next; } //3.关闭文件 fclose(fp);}//打印链表void printList(struct Node* headNode){ struct Node* pMove = headNode->next; //设计列数据的处理 printf("姓名\t年龄\t性别\t电话\n"); while(pMove){ printf("%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel); pMove = pMove->next; } printf("\n");}
3.运行结果:
到此,相信大家对"基于C语言如何实现学生管理系统"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
文件
信息
学生
姓名
数据
输入
系统
管理
管理系统
语言
年龄
性别
电话
功能
浏览
设计
内容
结构
菜单
表头
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
最根本的网络安全策略是
施工总承包包括软件开发
郑州服务器托管
彩虹六号服务器掉线问题
面试软件开发公司吗
当前流行服务器架构
数据库中怎么导入数据
常规数据库管理软件
数据库数据异步导出
c盘扩容后无法连接数据库
软件开发上班年龄限制
湛江web渗透网络安全
终端网络安全产品
广州有软件开发的技术学院
正规专业的软件开发公司
深入学习宣传网络安全
重庆网络安全肖战
win7配置应用服务器
香港云服务器恒创科技信赖
关于软件开发的税收管理
java日志写入数据库
上海什么打车软件开发
服务器获取client端ip
宝坻区电子网络技术质量保证
网络安全的三个目标
steam无法连接中继服务器
邮政生产网络安全
完善更新人员队伍数据库通知
福建视频云空间功能服务器
天希网络安全绘画