学籍信息管理系统

.

系统功能:录入、修改、添加、删除、查找、读取、删除数据
系统主要技术:基本就是函数的调用,只用到结构体,与文件的读写
.

所有的数据改动都会及时保存到文件

student.txt文件用来储存所有信息

shuju.txt文件用来储存信息数据

代码如下

/*学籍信息管理系统
系统功能:录入、修改、添加、删除、查找、读取、删除数据
系统主要技术:基本就是函数的调用,还有结构体,与文件的读写 */#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>int n = 0;//变动的学生个数
int i=0;//用来储存总共的学生人数struct student
{char xh[20];//学生学号char xm[10];//学生姓名int nl;//年龄char xb1[4];//学生性别char jg[100];//籍贯char tele[20];//学生电话char xb[40];//系别char zy[36];//学生专业char bj[30];//学生班级
} aa[100]; //定义一个学生基本学籍信息的结构体,可容纳100人;//申明各函数!
void init();//初始化界面
void help();//系统帮助
void chazhao();//查找
void xiugai();//修改函数
void caidan();//主菜单
void shuru();//输入函数
void tianjia();//添加函数
void shanchu();//删除函数
void shuchu();//输出函数
void baocun();//保存函数
void duqu();//读取函数
void del();//清空文件数据
void luru();//全部信息录入文件 /*
主函数
*/
int main()
{init(); system("pause");system("cls");duqu();caidan();return 0;
}/*
系统初始化界面
*/
void init()
{printf("————————————————————————————————————————————————————————————\n\n");printf("\t\t\t\t*********************************************************\n\n");printf("\t\t\t\t*****************欢迎使用学生学籍管理系统****************\n\n");printf("\t\t\t\t——————————学院:胡编乱造学院——————————\n\n");printf("\t\t\t\t——————————班级:胡编1班————————————\n\n");printf("\t\t\t\t——————————姓名:xiaozhu06———————————\n\n");printf("\t\t\t\t*********************************************************\n\n");
}/*
帮助函数
显示完成后再显示菜单
*/
void help()
{printf("\n0.欢迎使用系统帮助!\n");printf("\n1.初次进入系统后,请先选择录入学生学籍;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.录入或删除学生学籍信息后,切记保存;\n");printf("\n4.谢谢您的使用!\n");caidan();
}/*
主菜单函数
用户输入0-8的数字并显示其功能
*/
void caidan()
{printf("—————————————————————————————————————————————————————————\n");printf("*********************************************************\n");printf("*****************欢迎使用学生学籍管理系统****************\n");printf("***输入“0”小白帮助                                    ***\n");printf("***输入“1”可录入学籍信息                              ***\n");printf("***输入“2”可修改学籍信息                              ***\n");printf("***输入“3”可添加学籍信息                              ***\n");printf("***输入“4”可以删除学籍的信息                          ***\n");printf("***输入“5”可以查找学生学籍的信息                      ***\n");printf("***输入“6”可以输出学籍表                              ***\n");printf("***输入“7”清空文件中储存的学生信息                    ***\n");printf("***输入“8”结束系统                                    ***\n");printf("*********************************************************\n\n");printf("请输入编号:(1 —8)");int x;scanf("%d",&x);switch(x){case 0:system("cls");help();break;case 1:system("cls");shuru();break;case 2 :system("cls");xiugai();break;case 3:system("cls");tianjia();break;case 4:system("cls");shanchu();break;case 5:system("cls");chazhao();break;case 6:system("cls");shuchu();caidan();break;case 7:system("cls");del();caidan();break;case 8:system("cls");break;}
}/*
录入学籍信息函数
*/
void shuru()
{int l,m,p;printf("请输入要录入的学生人数:\n");scanf("%d",&n);p = n;for(m = i+1; m <= (i+n); m ++)//循环输入学生信息{bb: int flage = 0;printf("请输入学号:");scanf("%s",aa[m].xh);for(l = 1; l < m; l ++){if(strcmp(aa[m].xh,aa[l].xh) == 0){flage = 1;break;}}if(flage == 1){printf("学号重复,请重新输入:\n");goto bb;}p --;printf("请输入姓名:");scanf("%s",aa[m].xm);printf("请输入年龄:");scanf("%d",&aa[m].nl);printf("请输入性别:");scanf("%s",aa[m].xb1);printf("请输入籍贯:");scanf("%s",aa[m].jg);printf("请输入电话:");scanf("%s",aa[m].tele);printf("请输入系别:");scanf("%s",aa[m].xb);printf("请输入专业:");scanf("%s",aa[m].zy);printf("请输入班级:");scanf("%s",aa[m].bj);printf("\n");printf("已录入 %d 个学生信息\n",n-p);printf("\n");if(p == 0)printf("本次录入完成\n");}i = i + n;baocun();caidan();
}/*
修改函数
通过学号查找来修改学生信息
*/
void xiugai()
{int j;char k[100];printf("请输入需要修改的学生学籍的学号:");scanf("%s",k);for(j=1; j<=i; j++){if(strcmp(aa[j].xh,k) == 0){strcpy(aa[j].xh,k);break;}}printf("请输入姓名:");scanf("%s",aa[j].xm);printf("请输入年龄:");scanf("%d",&aa[j].nl);printf("请输入性别:");scanf("%s",aa[j].xb1);printf("请输入籍贯:");scanf("%s",aa[j].jg);printf("请输入电话:");scanf("%s",aa[j].tele);printf("请输入系别:");scanf("%s",aa[j].xb);printf("请输入专业:");scanf("%s",aa[j].zy);printf("请输入班级:");scanf("%s",aa[j].bj);luru();caidan();
}/*
查找函数
通过学号来查找学生信息
*/
void chazhao()
{int j,flage,z;char p[100];flage = 0;printf("\n请输入你所要查找学生的学号:");scanf("%s",p);for(j=1; j<=i; j++){if(strcmp(aa[j].xh,p) == 0){flage = 1;break;}}if(flage == 1){printf("\n已查到此人,信息为:\n\n");printf("学号:%s\n姓名:%s\n年龄: %d\n性别:%s\n籍贯:%s\n电话:%s\n系别:%s\n专业:%s\n班级:%s\n",aa[j].xh,aa[j].xm,aa[j].nl,aa[j].xb,aa[j].jg,aa[j].tele,aa[j].xb,aa[j].zy,aa[j].bj);}if(flage == 0)printf("\n查无此人\n");printf("\n是否继续查找(是输入1、否输入0):");scanf("%d",&z);switch(z){case 1:chazhao();break;case 0:system("cls");break;default:system("cls");break;}caidan();
}/*
添加信息函数
*/
void tianjia()
{FILE*fp;int counts=0;//表示添加学生的数量int k;printf("\n 原来的学生信息:\n");shuchu();printf("请输入想增加的学生数:\n");scanf("%d",&n);for (k=i+1; k<=(i+n); k++){aa:   int flage;flage = 0;printf("\n 请输入新增加学生的信息:\n");printf("请输入学号:  ");scanf("%s",aa[k].xh);int q;for(q = 1; q < k; q ++){if(strcmp(aa[k].xh,aa[q].xh) == 0){flage = 1;break;}}if(flage == 1){printf("学号重复,请重新输入\n");goto aa; }getchar();printf("请输入姓名:  ");scanf("%s",aa[k].xm);getchar();printf("请输入性别:  ");scanf("%c",aa[k].xb1);getchar();printf("请输入年龄:  ");scanf("%d",&aa[k].nl);getchar();printf("请输入籍贯:  ");scanf("%s",aa[k].jg);getchar();printf("请输入电话:  ");scanf("%s",aa[k].tele);printf("请输入系别:  ");scanf("%s",aa[k].xb);getchar();printf("请输入专业:  ");scanf("%s",aa[k].zy);getchar();printf("请输入班级:  ");scanf("%s",aa[k].bj);printf("\n");counts=counts+1;printf("已增加的人数:\n");printf("%d\n",counts);}printf("\n添加完毕!\n");i=i+n;printf("\n浏览增加后的所有学生信息:\n");printf("\n");baocun();shuchu();caidan();
}/*
删除函数
*/
void shanchu()
{int k,j,t,flage,numb;char xh[100];printf("请输入要删除的学生学籍的学号:\n");scanf("%s",xh);flage=0;for(k=1; k<=i; k++){if(strcmp(aa[k].xh,xh) == 0){flage = 1;break;}}if(flage == 1){printf("\n已找到此人,原始记录为:\n");printf("学号:%s\n姓名:%s\n年龄: %d\n性别:%s\n籍贯:%s\n电话:%s\n系别:%s\n专业:%s\n班级:%s\n",aa[k].xh,aa[k].xm,aa[k].nl,aa[k].xb1,aa[k].jg,aa[k].tele,aa[k].xb,aa[k].zy,aa[k].bj);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&numb);if(numb==1){for(j=k; j<=i-1; j++){strcpy(aa[j].xh,aa[j+1].xh);strcpy(aa[j].xm,aa[j+1].xm);aa[j].nl=aa[j+1].nl;strcpy(aa[j].xb1,aa[j+1].xb1);strcpy(aa[j].jg,aa[j+1].jg);strcpy(aa[j].tele,aa[j+1].tele);strcpy(aa[j].xb,aa[j+1].xb);strcpy(aa[j].zy,aa[j+1].zy);strcpy(aa[j].bj,aa[j+1].bj);}i --;}else;}if(numb == 1)luru();if(flage == 0){printf("\n对不起,查无此人!\n\n");}printf("继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:shanchu();break;case 0:system("cls");caidan();break;default :system("cls");break;}}/*
全部学生信息输出
*/
void shuchu()
{FILE*fp;
//  fp=fopen("student.txt","r");if((fp = fopen("student.txt","r")) == NULL){printf("打开文件失败\n");exit(EXIT_FAILURE);}/*-while循环 读取文件中的数据 */char a[100];while(fgets(a,100,fp)){printf("%s",a);}fclose(fp);getchar();
}/*
保存函数
学生信息每次添加后以 追加 的方式保存到文件中
*/
void baocun()
{FILE*fp;fp=fopen("student.txt","ab+");int j;for(j=i-n+1; j<=i; j++){fprintf(fp,"学号:%s\n姓名:%s\n年龄: %d\n性别:%s\n籍贯:%s\n电话:%s\n系别:%s\n专业:%s\n班级:%s\n",aa[j].xh,aa[j].xm,aa[j].nl,aa[j].xb1,aa[j].jg,aa[j].tele,aa[j].xb,aa[j].zy,aa[j].bj);fprintf(fp,"\n");}printf("\n");fclose(fp);FILE *fp1;if((fp1 = fopen("shuju.txt","ab+")) == NULL){exit(EXIT_FAILURE);}for(j=i-n+1; j<=i; j++){fprintf(fp,"%s\n%s\n%d\n%s\n%s\n%s\n%s\n%s\n%s\n",aa[j].xh,aa[j].xm,aa[j].nl,aa[j].xb1,aa[j].jg,aa[j].tele,aa[j].xb,aa[j].zy,aa[j].bj);fprintf(fp,"\n");}fclose(fp1);n = 0;
}/*
当储存过的学生信息变动时重新往文件中录入数据
将所有学生信息全部以 写 的方式录入文件
*/
void luru()
{FILE*fp;fp=fopen("student.txt","wb");int j;for(j=1; j<=i; j++){fprintf(fp,"学号:%s\n姓名:%s\n年龄: %d\n性别:%s\n籍贯:%s\n电话:%s\n系别:%s\n专业:%s\n班级:%s\n",aa[j].xh,aa[j].xm,aa[j].nl,aa[j].xb1,aa[j].jg,aa[j].tele,aa[j].xb,aa[j].zy,aa[j].bj);fprintf(fp,"\n");}printf("\n");fclose(fp);FILE *fp1;if((fp1 = fopen("shuju.txt","wb")) == NULL){exit(EXIT_FAILURE);}for(j=1; j<=i; j++){fprintf(fp,"\n");fprintf(fp,"%s\n%s\n%d\n%s\n%s\n%s\n%s\n%s\n%s\n",aa[j].xh,aa[j].xm,aa[j].nl,aa[j].xb1,aa[j].jg,aa[j].tele,aa[j].xb,aa[j].zy,aa[j].bj);}fprintf(fp,"\n");fclose(fp1);
}/*
读取函数
读取文件中储存的数据,赋值到student结构体数组中
*/
void duqu()
{FILE *fp1;if((fp1 = fopen("shuju.txt","r")) == NULL){exit(EXIT_FAILURE);}int stnum = 0,num = 0,l;char c[100],shuju[100];while(!feof(fp1)){num ++;if(num % 10 == 1){stnum ++;}fgets(shuju,100,fp1);int j;j = 0;while(shuju[j] != '\n'){c[j] = shuju[j];j ++;}c[j] = '\0';if(num % 10 == 2)strcpy(aa[stnum].xh,c);if(num % 10 == 3)strcpy(aa[stnum].xm,c);if(num % 10 == 4)aa[stnum].nl = atoi(c);if(num % 10 == 5)strcpy(aa[stnum].xb1,c);if(num % 10 == 6)strcpy(aa[stnum].jg,c);if(num % 10 == 7)strcpy(aa[stnum].tele,c);if(num % 10 == 8)strcpy(aa[stnum].xb,c);if(num % 10 == 9)strcpy(aa[stnum].zy,c);if(num % 10 == 0)strcpy(aa[stnum].bj,c);if(feof(fp1)){num ++;break;}}fclose(fp1);i = num / 10;printf("\n文件中有%d个学生信息\n\n",i);
}
/*
清空文件中的数据
*/
void del()
{FILE *fp;fp = fopen("student.txt","w");ftruncate(fileno(fp), 0);fclose(fp);i = 0;FILE *fp1;fp1 = fopen("shuju.txt","w");ftruncate(fileno(fp1), 0);fputs("\n",fp1); fclose(fp1);
}

C语言程序设计—学籍信息管理系统相关推荐

  1. 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx

    C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...

  2. c语言程序设计医院就医,C语言程序设计(医院信息管理系统)附源代码[精品].doc...

    C语言程序设计(医院信息管理系统)附源代码[精品] 专业设计报告 课程名称: C 语 言 程 序 设 计 课题名称: 医院信息管理系统 专业班别: 11本计算机科学与技术二班 姓 名: 学 号: 指导 ...

  3. C语言学生学籍信息管理系统源码附赠实验报告

    一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下 ...

  4. c语言程序设计学籍信息,C语言程序设计报告——学生学籍管理(报告).doc

    C语言程序设计报告--学生学籍管理(报告) 软件设计报告 题 目: 学生学籍管理系统 院系名称:专业名称:班 级: 班内序号:学生姓名 :指导教师:时间: 一.课程设计目的 1.通过本课程设计,强化上 ...

  5. C语言程序设计--图书信息管理系统

    题    目: 图书信息管理系统  图书信息管理系统 本题目设计目的是训练学生的基本编程能力,了解图书管理信息系统的开发流程,熟悉C语言的文件的基本操作.本程序中涉及结构体.文件等方面的知识.通过本程 ...

  6. C语言程序设计--商品信息管理系统

    1.系统分析 1.1课程设计内容 商场商品信息管理系统 1.2系统功能需求分析 1.问题定义 创建一个商品信息管理系统.假设系统中每件商品记录只包括编码.价格.商品名称等信息.程序的运行效果如下图所示 ...

  7. C语言程序设计--二手房信息管理系统

    题    目:   二手房信息管理系统 二手房屋管理系统 本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作.本程序中涉及结构体.单链表.文件及 ...

  8. c语言程序设计 医院,C语言程序设计医院信息管理系统附源代码(47页)-原创力文档...

    专业设计报告 课程名称: C语言程序设计 课题名称:医院信息管理系统 专业班别:12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期:2012-5-25 教师评语: 等级 项目 优 良 中 ...

  9. C语言程序设计--学生信息管理系统

    题目:学生信息管理系统 1  系统设计 1.1设计要求 1.1.1设计任务 创建一个学生信息管理系统,让它来运行和管理学生信息,进行对学生学号.姓名.性别.年龄.出生年月日.住址.电话.E-maill ...

最新文章

  1. 华为云NP考试题库_华为认证网络工程师怎么考
  2. 项目背景怎么描述_课程游戏背景下幼儿户外活动的组织和实施 ——记岱山县课程项目实施组活动...
  3. Jupyter notebook 文件路径
  4. vmware下/mnt/hgfs下为空的问题
  5. 用CreateProcess()在MFC中执行批处理命令
  6. 金融风控实战——模型融合
  7. tp703n怎么做无线打印服务器,TP-Link TL-WR703N无线路由器无线AP模式怎么设置
  8. c语言e怎么表示_来测测!这11个C语言入门基础知识你都掌握了吗?
  9. python recv_[Python]关于socket.recv()的非阻塞用法
  10. 用计算机实现工业自动化,计算机技术在工业自动化控制系统中的应用
  11. Django2.0异常:'Specifying a namespace in include() without providing an app_name '
  12. mysql monitor怎么用_MySQL 监控工具 mysql-monitor 详解
  13. iMovie 裁剪视频
  14. python下载迅雷资源助手_NAS下载丨比第三方好用100倍!威联通Download Station支持PT下载教程...
  15. 绕过tp路由器管理密码_路由器管理员密码忘了怎么办 路由器管理员密码忘了解决方法【介绍】...
  16. 北航2019计算机学院就业报告,北京航空航天大学2019届毕业生就业质量年度报告.pdf...
  17. 2018-2019 起风了,唯有努力生存
  18. mysql五日均线_mysql – 如何在SQL中的某个日期范围内执行移动平均线?
  19. 我们正处在大数据时代,浅谈大数据
  20. 苹果收购AI音乐公司,音乐人工智能将迎来新机遇?

热门文章

  1. 没有无线网卡的服务器开wifi,电脑没无线网卡怎么开wifi热点 160wifi一键上网方法流程...
  2. Java和JavaScript有什么区别?
  3. 小米8手机刷机大坑,后人注意
  4. Android动画之旅-Android动画基本介绍
  5. Android动画(一)
  6. s7-200 smart中VD,VW这类变量在INTOUCH中如何对应
  7. 一名开发人员的奋斗历程
  8. linetv_line tv官方下载-line tv 安卓版v2.0.0-PC6安卓网
  9. 屏蔽各类弹窗广告(WPS、智能云输入法)
  10. 清北学堂培训2019.4.29