C语言如何实现班级学生管理系统
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关C语言如何实现班级学生管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时
千家信息网最后更新 2026年11月03日C语言如何实现班级学生管理系统
这篇文章将为大家详细讲解有关C语言如何实现班级学生管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时,要求班内序号由1开始 按顺序录入,其中主要用到了 结构体数组,文件处理,循环语句,选择语句等方面的知识
在设计中遇到一个问题就是:不知道怎样修改已经保存在文件中的某一个指定学生的信息,后来在询问学长之后才了解到 ,可以: 先把文件中的数据全部读入结构体数组中,再修改指定序号的数组元素,然后再用"wt"的方式写进原文件,这样就可以删除文件里的原内容,再写进新内容
下面是源代码,在Dev-C++ 条件下进行编译
#include#include #include #include int count1=0;int count2=0;int count3=0;void class_print();void men1_student();void men2_student(); void men3_student();void men4_student(); void input_student();void input_grade(); void input_reward();void input_finance();void report_finance(); void seek_student();void seek_grade();void seek_reward();void change_student();void change_grade();void change_reward();int now1_student();int now2_student();int now3_student();struct date{ int year; int month; int day;};struct student{ char number[2]; char name[10]; char sex[4]; char tel[15]; char id[20]; char study[10];};struct grade{ char number[2]; char name[10]; char math[4]; char English[4]; char Cprogram[4]; char sumtest[4];};struct reward{ char number[2]; char name[10]; struct date time; char rewarding[80];};struct finance{ char thing[20]; char type[8]; struct date time2; int i;};struct student m_stu[50];struct grade g_stu[50];struct reward r_stu[50];struct finance f_class;struct grade t_change;main(){ int choice=-1; //一级菜单 while(choice!=0) { printf("\n"); printf("\t\t\t\t\t\t**"); class_print(); printf("**\n"); printf("\t\t\t\t\t\t****************************\n"); printf("\t\t\t\t\t\t** 班级学生学籍管理系统 **\n"); printf("\t\t\t\t\t\t** 1.户籍管理系统 **\n"); printf("\t\t\t\t\t\t** 2.成绩管理系统 **\n"); printf("\t\t\t\t\t\t** 3.奖惩管理系统 **\n"); printf("\t\t\t\t\t\t** 4.财务管理系统 **\n"); printf("\t\t\t\t\t\t** 0.退 出 **\n"); printf("\t\t\t\t\t\t请选择"); scanf("%d",&choice); switch(choice) { case 1: men1_student(); break; case 2: men2_student(); break; case 3: men3_student(); break; case 4: men4_student(); break; case 0: printf("返回上一级"); break; default : break; } }} void men1_student() //二级菜单(学生户籍管理){int choice=-1;while(choice!=0) { printf("\n"); printf("\t\t\t\t\t\t****************************\n"); printf("\t\t\t\t\t\t**"); class_print(); printf("**\n"); printf("\t\t\t\t\t\t** 班级学生户籍信息管理 **\n"); printf("\t\t\t\t\t\t** 户籍信息已录入人数:");now1_student();printf(" **\n"); printf("\t\t\t\t\t\t** 1.户籍录入系统 **\n"); printf("\t\t\t\t\t\t** 2.户籍修改系统 **\n"); printf("\t\t\t\t\t\t** 3.户籍查询系统 **\n"); printf("\t\t\t\t\t\t** 0.返 回 **\n"); printf("\t\t\t\t\t\t请选择"); scanf("%d",&choice); switch(choice) { case 1: input_student(); break; case 2: change_student(); break; case 3: seek_student(); break; case 0: printf("返回上一级"); break; default : break; } getch(); }} void input_student() // 户籍录入函数 录入信息保存至D盘根目录下information1.txt文件下 { int j; printf("学生户籍信息录入"); printf("\n班内序号: "); scanf("%s",&m_stu[count1].number); printf("\n姓名: "); gets(m_stu[count1].name); gets(m_stu[count1].name); printf("\n性别: "); scanf("%s",&m_stu[count1].sex); printf("\n电话号码: "); scanf("%s",&m_stu[count1].tel); printf("\n身份证号: "); scanf("%s",&m_stu[count1].id); printf("\n学号: "); scanf("%s",&m_stu[count1].study); printf("是否保存该学生信息?1-保存 2-放弃"); scanf("%d",&j); if(j==1) { FILE *info; //保存至本地文件 info=fopen("d:\\information1.txt","at+"); fwrite(&m_stu[count1],sizeof(struct student),1,info); fclose(info); printf("信息已保存至D:\\information1.tex 文件下,按任意键继续"); count1++; } else printf("放弃保存,按任意键继续"); }void seek_student() //查询户籍信息函数 { FILE *info; info=fopen("d:\\information1.txt","rt"); int i; printf("请输入该学生班内序号"); scanf("%d",&i); if(i<1||i>50) printf("抱歉,该学生信息不存在"); else { rewind(info); fseek(info,sizeof(struct student)*(i-1),0); fread(&m_stu[i-1],sizeof(struct student),1,info); printf("\n\n序号 姓名 性别 电话号码\t 身份证号\t\t学号\t"); printf("\n\n%d %s %s %s %s %s",i,m_stu[i-1].name,m_stu[i-1].sex,m_stu[i-1].tel,m_stu[i-1].id,m_stu[i-1].study); } } void change_student() //修改户籍信息 { int i=0,j,k,f;char h[100000]; FILE *info; info=fopen("d:\\information1.txt","rt"); printf("\n\t请输入要修改户籍信息的学生班内序号"); scanf("%d",&j); if(j<1||j>50) printf("抱歉,该学生信息不存在"); else { rewind(info); while(fgets(h,sizeof(struct student),info)!=NULL) { fseek(info,sizeof(struct student)*i,0); fread(&m_stu[i],sizeof(struct student),1,info); i++; } } fclose(info); printf("\n该学生目前户籍信息为\n:"); printf("\n\n序号 姓名 性别 电话号码\t 身份证号\t\t学号\t"); printf("\n\n%d %s %s %s %s %s",j,m_stu[j-1].name,m_stu[j-1].sex,m_stu[j-1].tel,m_stu[j-1].id,m_stu[j-1].study); printf("确定修改此学生信息?1- 修改 2- 返回"); scanf("%d",&k); if(k==1) { printf("\n姓名: "); gets(m_stu[j-1].name); gets(m_stu[j-1].name); printf("\n性别: "); scanf("%s",&m_stu[j-1].sex); printf("\n电话号码: "); scanf("%s",&m_stu[j-1].tel); printf("\n身份证号: "); scanf("%s",&m_stu[j-1].id); printf("\n学号: "); scanf("%s",&m_stu[j-1].study); } else return; info=fopen("d:\\information1.txt","wt"); for(f=0;f50) printf("\n抱歉,该学生信息不存在"); else { rewind(info2); fseek(info2,sizeof(struct grade)*(i-1),0); fread(&g_stu[i-1],sizeof(struct grade),1,info2); printf("\n\n序号 姓名 高数 英语 C语言 综测"); printf("\n\n%d %s %s %s %s %s",i,g_stu[i-1].name,g_stu[i-1].math,g_stu[i-1].English,g_stu[i-1].Cprogram,g_stu[i-1].sumtest); } }void change_grade() //修改成绩信息 { int i=0,j,k,f;char h[100000]; FILE *info; info=fopen("d:\\information2.txt","rt"); printf("\n\t请输入要修改成绩信息的学生班内序号"); scanf("%d",&j); if(j<1||j>50) printf("\n抱歉,该学生信息不存在"); else { rewind(info); while(fgets(h,sizeof(struct grade),info)!=NULL) { fseek(info,sizeof(struct grade)*i,0); fread(&g_stu[i],sizeof(struct grade),1,info); i++; } } fclose(info); printf("\n该学生目前成绩信息为\n:"); printf("\n\n序号 姓名 高数 英语 C语言 综测"); printf("\n\n%d %s %s %s %s %s",j,g_stu[j-1].name,g_stu[j-1].math,g_stu[j-1].English,g_stu[j-1].Cprogram,g_stu[j-1].sumtest); printf("\n\t确定修改此学生信息?1- 修改 2- 返回"); scanf("%d",&k); if(k==1) { printf("\n姓名: "); gets(g_stu[j-1].name); gets(g_stu[j-1].name); printf("\n高数: "); scanf("%s",&g_stu[j-1].math); printf("\n英语: "); scanf("%s",&g_stu[j-1].English); printf("\nC语言: "); scanf("%s",&g_stu[j-1].Cprogram); printf("\n综测: "); scanf("%s",&g_stu[j-1].sumtest); } else return; info=fopen("d:\\information2.txt","wt"); if(info==NULL) { printf("不能打开此文件,按任意键继续"); getch(); } for(f=0;f50) printf("\n抱歉,该学生信息不存在"); else { rewind(info); fseek(info,sizeof(struct reward)*(i-1),0); fread(&r_stu[i-1],sizeof(struct reward),1,info); printf("\n\n序号 姓名 奖惩时间 具体事件\t\t"); printf("\n\n%d %s %d.%d.%d %s ",i,r_stu[i-1].name,r_stu[i-1].time.year, r_stu[i-1].time.month, r_stu[i-1].time.day, r_stu[i-1].rewarding); } }void change_reward() //修改奖惩信息 { int i=0,j,k,f;char h[100000]; FILE *info; info=fopen("d:\\information3.txt","rt"); printf("\n\t请输入要修改奖惩信息的学生班内序号"); scanf("%d",&j); if(j<1||j>50) printf("\n抱歉,该学生信息不存在"); else { rewind(info); while(fgets(h,sizeof(struct reward),info)!=NULL) { fseek(info,sizeof(struct reward)*i,0); fread(&r_stu[i],sizeof(struct reward),1,info); i++; } } fclose(info); printf("\n该学生目前奖惩信息为\n:"); printf("\n\n序号 姓名 奖惩时间 具体事件"); printf("\n\n%d %s %d.%d.%d %s ",j,r_stu[j-1].name,r_stu[j-1].time.year, r_stu[j-1].time.month, r_stu[j-1].time.day ,r_stu[j-1].rewarding); printf("\n\t确定修改此学生信息?1- 修改 2- 返回"); scanf("%d",&k); if(k==1) { printf("\n姓名: "); gets(r_stu[j-1].name); gets(r_stu[j-1].name); printf("\n奖惩时间: "); scanf("%d.%d.%d",&r_stu[j-1].time.year,&r_stu[j-1].time.month,&r_stu[j-1].time.day); printf("\n具体事件: "); scanf("%s",&r_stu[j-1].rewarding); } else return; info=fopen("d:\\information3.txt","wt"); for(f=0;f 关于"C语言如何实现班级学生管理系统"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
信息
学生
系统
文件
奖惩
序号
管理
班级
成绩
户籍
姓名
财务
管理系统
菜单
输入
人数
函数
语言
抱歉
事件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
喔噻互联网科技有限公司
北京互联网科技
科技与互联网发展
互联网科技素材视频竖屏
卫星互联网科技股票
中国互联网有什么科技含量
字节跳动和互联网科技
互联网公司科技股
昊天互联网科技有限公司
互联网科技公司有风险吗
阿大互联网科技有限公司
企晟互联网信息科技有限公司
科技赋能视角下互联网保险发展
互联网科技圈年度人物
上海科技产业互联网平台
广州千川互联网科技有限公司
陕西九四连强互联网科技有限公司
云南互联网科技学费
互联网科技和医药行业
高科技和互联网的现代国家
广州紫鲸互联网科技有限公司
互联网科技产业
无线互联网科技
玖二柒互联网科技公司待遇
华服互联网科技官网
辽宁互联网新科技
互联网科技创新的路径
2021互联网科技公司排名
领航科技大厦互联网公司
互联网科技创新方面的资料