基于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安全错误
数据库的锁怎样保障安全
王者体验服登录服务器未反应
新蔡服务器是什么加油站
长沙服务器托管哪家公司最好
移动5g网络安全
管理软件开发宣传
如何做游戏软件开发手机
网络安全专业专业排名
vba提取数据库信息
关于青少年网络安全心得
移动网络技术岗发展前途
软件开发科技公司税负率
比亚迪软件开发工程招聘
土豆服务器的梗
湖北综合软件开发均价
数据库日志分离
网络安全技术工程师面试
通信网络安全问题的分析报告
数据库视图怎么用的
阿里云服务器 转让
上海商桥互联网科技
广东六意互联网科技公司
沈阳百信云龙服务器厂家直销
阿里云服务器怎么开淘宝店
创维电视机无法连接服务器
网络安全主题绘画大班
爬虫股价数据库表设计
杨浦区网络技术咨询公司
基于web的网络安全
易迈云服务器安全组在哪
自己搞软件开发挣钱吗