200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言程序设计—学籍信息管理系统

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

时间:2019-02-02 04:39:41

相关推荐

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

学籍信息管理系统

.

系统功能:录入、修改、添加、删除、查找、读取、删除数据

系统主要技术:基本就是函数的调用,只用到结构体,与文件的读写

.

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

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);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。