基于C语言如何实现学生管理系统
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,本篇内容主要讲解"基于C语言如何实现学生管理系统",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于C语言如何实现学生管理系统"吧!1.目标要求:1.学生成
千家信息网最后更新 2024年11月17日基于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安全错误
数据库的锁怎样保障安全
驱动管理无法获取服务器信息
数据库防火墙支持哪种模式
中国银行网络安全专业
数据库检索全文文献
孤岛危机3服务器
数据库美团外卖
怎么购买境外服务器上外网
普宁有没有软件开发工程师行业
32g服务器内存升价
二工大有软件开发吗
县地方税务局网络安全应急
工业网络技术实践报告范文
增删改查数据库的注意
网络安全违规问责
镇网络安全方案
ul是美国的什么数据库
ios消息推送服务器
软件开发大学生职业生涯规划
数据库用户发票登记表
国际计算机网络安全证书
中山市模具制造管理软件开发
网络安全脱敏是什么意思
金蝶数据库删除发票记录
学生图书借阅的数据库系统
数据库中表的主键怎么设置
软件开发是什么服务
车联网软件开发合同范本
Oracle数据库
J va软件开发
软件开发行业怎么做账