C语言如何实现班级学生管理系统
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关C语言如何实现班级学生管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
创造与魔法混战服在哪个服务器好
大连学软件开发的大学
dns服务器未连接
东芝笔记本网络安全吗
打开数据库cmd命令窗口
视频上传数据库安卓
腾讯云怎么查服务器的账号
数据库设计职业规划
网络安全边界保护
sql中删除数据库
数据库查询原则
平板电脑服务器连接失败
西安数据库初始化
nature数据库检索式
浪潮服务器内存坏了怎么查看
百斯特软件开发有限公司
视频干扰技术网络安全
广东pdu服务器电源什么牌子好
数据库未开启或连接错误
java数据库取数据
软件开发的国际规范
邮政数据库查询
数据库为什么要更新
乐陵软件开发费用
施工软件开发与应用龙头
本地服务器搭建ip
绝地求生2哪个服务器稳定
学网络安全买什么电脑
计算机专业必看的数据库课程
分布式信息检索数据库