经济观察
运营管理

c语言 学生信息管理系统

c语言 学生信息管理系统

学生信息管理系统c语言

#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h" void look(); /*声明查看函数*/ void save(); /*声明保存函数*/ void search_name(); /*声明按姓名查看函数*/ void search_number(); /*声明按学号查看函数*/ void order(); /*声明排序函数*/ void del(); /*声明删除函数*/ int openl(); /*声明打开函数*/ void welcome(); /*声明我的个人信息函数*/ void type(); /*声明输入函数*/ void see(); /*声明打开并查看文件函数*/ struct student /*定义学生信息的结构体类型*/ { char num[15]; /*学号*/ char name[20]; /*姓名*/ char sex[4]; /*性别*/ int english; /*英语成绩*/ int math; /*数学成绩*/ int chinese; /*语文成绩*/ float aver; /*平均成绩*/ float sum; /*总成绩*/ }stu[100]; int n; /*声明一个全局变量*/ void main() /*主函数即用户的操作界面*/ { system("color 1E"); /*设计文本颜色*/ int b,flag=0; /*声明局部变量*/ while(1) /*循环输出以下信息*/ { printf("\n\t\t\t欢迎来到学生成绩管理系统!\n"); printf("\n\t\t\t\t ###制作\n"); printf("\t\t\t-------------------------------\n"); printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/ printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/ printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按平均成绩排序\n\n"); /*排序*/ printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/ printf("\t\t\t7.保存学生信息\n\n"); /*保存*/ printf("\t\t\t8.打开文件\n\n"); /*打开文件*/ printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/ printf("\t\t\t0.退出\n\n"); /*退出*/ printf("\t\t\t请输入你的选择:"); scanf("%d",&b); switch(b) { case 1:type();break; /*调用键入学生信息函数*/ case 2:look();break; /*调用查看函数*/ case 3:search_name();break; /*调用姓名查看函数*/ case 4:search_number();break; /*调用学号查看函数*/ case 5:order();break; /*调用排序函数*/ case 6:del();break;/*调用删除函数*/ case 7:save();break;/*调用保存函数*/ case 8:see();break;/*调用打开文件函数*/ case 9:welcome();break;/*调用我的个人信息函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!"); } if(flag) break; /*如果选择0就退出循环*/ } } void welcome() /*我的个人信息函数*/ { system("CLS"); printf("\n\n\t\t------------个人信息------------"); /*在屏幕上输出一下信息*/ printf("\n\n\n\n\t\t姓名:###"); printf("\t\t\tSex:#\n"); printf("\t\t年龄:#\n"); printf("\n\t\t\t--------学习经历--------\n\n\n"); printf("\t\t小学:######\n\n"); printf("\t\t初中:#####\n\n"); printf("\t\tS高中:######\n\n"); printf("\t\t大学:######\n\n"); printf("\n\n\t\t按任意键返回欢迎屏幕!"); getch(); /*按任意键返回主函数*/ } void type() /*定义键入学生信息函数*/ { system("CLS"); int i; /*定义局部变量*/ printf("\t\t输出你想输入的学生信息个数:"); scanf("%d",&n); for(i=0;i { printf("\n\t\t\t----------------\n"); printf("\t\t\t学号:"); scanf("%s",&stu[i].num); /*输入学号*/ printf("\t\t\t姓名:"); scanf("%s",&stu[i].name); /*输入姓名*/ printf("\t\t\t性别:"); scanf("%S",&stu[i].sex); /*输入性别*/ printf("\t\t\t英语:"); scanf("%d",&stu[i].english); /*输入英语成绩*/ printf("\t\t\t数学:"); scanf("%d",&stu[i].math); /*输入数学成绩*/ printf("\t\t\t语文:"); scanf("%d",&stu[i].chinese); /*输入语文成绩*/ stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/ stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/ printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver); /*输出平均成绩*/ printf("\t\t\t总成绩=%4.1f\n",stu[i].sum); /*输出总成绩*/ } printf("\n\n\t\t\t按任意键返回菜单!!"); getch(); save(); } void save() /*建立保存文件函数*/ { system("CLS"); FILE *fp; /*定义文件型指针*/ int i; if((fp=fopen("student.txt","wb"))==NULL) /*打开输出文件*/ { printf("不能打开文件!\n"); return; /*终止程序*/ } for(i=0;i if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("文件写入错误\n"); fclose(fp); /*关闭文件*/ printf("\n\n\n\n\t\t\t学生信息保存成功!\n"); printf("\n\n\n\n\t\t\t按任意键返回菜单!!"); getch(); } void look() /*定义查看函数*/ { system("CLS"); int i; //n=openl(); /*调用openl函数*/ printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i { printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); } printf("\n\n\n\t\t\t按任意键返回菜单"); getch(); } void search_name() /*按姓名查看函数*/ { system("CLS"); int i; char name[20]; /*声明字符数组*/ printf("\t\t\t请输入学生姓名:\n"); scanf("%s",name); printf("\t学号\t姓名\t性别\t英...

c语言:学生学籍管理系统

#include #include #include #include int n=0,i; struct address_book{ char name[20]; int num; int age; char place[80]; char sex; char clas[40]; char department[40]; char domain[40]; char dowhat[20];}stud[200];void add(){ char j;front1: system("cls");//清屏 printf("\n请输入要添加的姓名:"); scanf("%s",stud[n].name); printf("\n请输入要添加的学号(8位):"); scanf("%d",&stud[n].num); printf("\n请输入要添加的性别(F/M):"); scanf("\n%c",&stud[n].sex); printf("\n请输入要添加的年龄:"); scanf("%d",&stud[n].age); printf("\n请输入要添加的班级:"); scanf("%s",stud[n].clas); printf("\n请输入要添加的籍贯:"); scanf("%s",stud[n].place); printf("\n请输入要添加的系别:"); scanf("%s",stud[n].department); printf("\n请输入要添加的专业:"); scanf("%s",stud[n].domain); printf("\n请输入学籍变化:"); scanf("%s",stud[n].dowhat); getchar(); n++; printf("是否继续(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') goto front1;//再次输入记录} void del(){ int k=0,m,i; char j;front2: system("cls");//清屏 printf("\n请输入要删除的学号:"); scanf("%d",&m); getchar(); for(i=0;istud[i+1].num) { t=stud[i]; stud[i]=stud[i+1]; stud[i+1]=t; } for(i=0;i<=n-1;i++) if(stud[i].num!=0) printf("%-10s %-8d %8c %-8d %-10s %-10s %-10s %-10s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].age,stud[i].clas,stud[i].place,stud[i].department,stud[i].domain); printf("按回车键返回!"); getchar(); getchar();} void change(){ int k=0,m; char j;front5: system("cls");//清屏 printf("\n请输入要修改记录的学号:"); scanf("%d",&m); getchar(); for(i=0;i<n;i++)//查找 if(m==stud[i].num) { k=1; break; } if(k==1) { printf("\n请输入要修改的姓名:"); scanf("%s",stud[i].name); printf("\n请输入要修改的学号(8位):"); scanf("%d",&stud[i].num); printf("\n请输入要修改的性别(F/M):"); scanf("%c",&stud[i].sex); printf("\n请输入要修改的年龄:"); scanf("%d",&stud[i].age); printf("\n请输入要修改的班级:"); scanf("%s",stud[i].clas); printf("\n请输入要修改的籍贯:"); scanf("%s",stud[i].place); printf("\n请输入要修改的系别:"); scanf("%s",stud[i].department); printf("\n请输入要修改的专业:"); scanf("%s",stud[i].domain); printf("\n请输入要修改的学籍变化:"); scanf("%s",stud[n].dowhat); getchar(); } if(k==0) { printf("找不到要修改的记录!\n"); printf("按回车键返回:"); getchar(); } getchar(); printf("是否继续(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') goto front5;} void find(){ int k=0,m; char j;front3: system("cls");//清屏 printf("\n请输入要查找的学生的学号:"); scanf("%d",&m); getchar(); for(i=0;i<n;i++)//查找 if(m==stud[i].num) { k=1; break; } if(k==1) { printf("姓名学号性别年龄班级籍贯系别专业学籍变化\n"); printf("%-8s %-8d %8c %-8d %-10s %-10s %-10s %-10s %-8s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].age,stud[i].clas,stud[i].place,stud[i].department,stud[i].domain,stud[i].dowhat); } else { printf("找不到该同学!请重新输入!按回车返回!"); getchar(); goto front3; } printf("是否继续(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') goto front3;} void main(){ char j; printf("\n\n\n\n\n\n\t\t\t 欢迎使用学生学籍管理系统"); printf("\n\n\n\t\t\t\t制作人:zqr"); printf("\n\n\n\t\t\t\t 2016年1月"); printf("\n\n\n\n\n\n\n\n\n\n\n\n按回车键进入主菜单:"); getchar();loop: system("cls"); printf("\n"); printf("\t\t\t\t ************\n"); printf("\t\t\t\t ***主菜单***\n"); printf("\t\t\t\t ************\n\n\n\n\n\n"); printf("\t\t 1、录入学生信息2、删除学生信息\n\n"); printf("\t\t 3、查找学生信息4、学生信息排序\n\n"); printf("\t\t 5、修改学生信息6、保存退出系统\n\n"); printf("\n\n\n\n\n\n\n\n\n请选择[1/2/3/4/5/6]:"); j=getchar(); if(j=='\n') goto loop;//返回主菜单 switch(j) { case '1': add();goto loop;//返回主菜单 case '2': del();goto loop; case '3': find();goto loop; case '4': arrange();goto loop; case '5': change();goto loop; case '6': { FILE *fp; fp=fopen("student.dat","w"); for(i=0;i<n;i++) fwrite(&stud[i],sizeof(struct address_book),1,fp); fclose(fp); exit(0); } default: goto loop; } }

学生信息管理系统c语言

#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"void look(); /*声明查看函数*/void save(); /*声明保存函数*/void search_name(); /*声明按姓名查看函数*/void search_number(); /*声明按学号查看函数*/void order(); /*声明排序函数*/void del(); /*声明删除函数*/int openl(); /*声明打开函数*/void welcome(); /*声明我的个人信息函数*/void type(); /*声明输入函数*/void see(); /*声明打开并查看文件函数*/struct student /*定义学生信息的结构体类型*/{ char num[15]; /*学号*/ char name[20]; /*姓名*/ char sex[4]; /*性别*/ int english; /*英语成绩*/ int math; /*数学成绩*/ int chinese; /*语文成绩*/ float aver; /*平均成绩*/ float sum; /*总成绩*/}stu[100];int n; /*声明一个全局变量*/void main() /*主函数即用户的操作界面*/{ system("color 1E"); /*设计文本颜色*/ int b,flag=0; /*声明局部变量*/ while(1) /*循环输出以下信息*/ { printf("\n\t\t\t欢迎来到学生成绩管理系统!\n"); printf("\n\t\t\t\t ###制作\n"); printf("\t\t\t-------------------------------\n"); printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/ printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/ printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按平均成绩排序\n\n"); /*排序*/ printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/ printf("\t\t\t7.保存学生信息\n\n"); /*保存*/ printf("\t\t\t8.打开文件\n\n"); /*打开文件*/ printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/ printf("\t\t\t0.退出\n\n"); /*退出*/ printf("\t\t\t请输入你的选择:"); scanf("%d",&b); switch(b) { case 1:type();break; /*调用键入学生信息函数*/ case 2:look();break; /*调用查看函数*/ case 3:search_name();break; /*调用姓名查看函数*/ case 4:search_number();break; /*调用学号查看函数*/ case 5:order();break; /*调用排序函数*/ case 6:del();break;/*调用删除函数*/ case 7:save();break;/*调用保存函数*/ case 8:see();break;/*调用打开文件函数*/ case 9:welcome();break;/*调用我的个人信息函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!"); } if(flag) break; /*如果选择0就退出循环*/ }}void welcome() /*我的个人信息函数*/{ system("CLS"); printf("\n\n\t\t------------个人信息------------"); /*在屏幕上输出一下信息*/ printf("\n\n\n\n\t\t姓名:###"); printf("\t\t\tSex:#\n"); printf("\t\t年龄:#\n"); printf("\n\t\t\t--------学习经历--------\n\n\n"); printf("\t\t小学:######\n\n"); printf("\t\t初中:#####\n\n"); printf("\t\tS高中:######\n\n"); printf("\t\t大学:######\n\n"); printf("\n\n\t\t按任意键返回欢迎屏幕!"); getch(); /*按任意键返回主函数*/}void type() /*定义键入学生信息函数*/{ system("CLS"); int i; /*定义局部变量*/ printf("\t\t输出你想输入的学生信息个数:"); scanf("%d",&n); for(i=0;i { printf("\n\t\t\t----------------\n"); printf("\t\t\t学号:"); scanf("%s",&stu[i].num); /*输入学号*/ printf("\t\t\t姓名:"); scanf("%s",&stu[i].name); /*输入姓名*/ printf("\t\t\t性别:"); scanf("%S",&stu[i].sex); /*输入性别*/ printf("\t\t\t英语:"); scanf("%d",&stu[i].english); /*输入英语成绩*/ printf("\t\t\t数学:"); scanf("%d",&stu[i].math); /*输入数学成绩*/ printf("\t\t\t语文:"); scanf("%d",&stu[i].chinese); /*输入语文成绩*/stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/ printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver); /*输出平均成绩*/ printf("\t\t\t总成绩=%4.1f\n",stu[i].sum); /*输出总成绩*/ } printf("\n\n\t\t\t按任意键返回菜单!!"); getch(); save();}void save() /*建立保存文件函数*/{ system("CLS");FILE *fp; /*定义文件型指针*/ int i; if((fp=fopen("student.txt","wb"))==NULL) /*打开输出文件*/ { printf("不能打开文件!\n"); return; /*终止程序*/ } for(i=0;i if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("文件写入错误\n"); fclose(fp); /*关闭文件*/ printf("\n\n\n\n\t\t\t学生信息保存成功!\n"); printf("\n\n\n\n\t\t\t按任意键返回菜单!!"); getch();}void look() /*定义查看函数*/{ system("CLS"); int i; //n=openl(); /*调用openl函数*/ printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i { printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].su...

c语言学生管理系统

C 语言学生成绩管理系统 #include #include#include#include typedef struct STUDENT { char studentNumber[20];/*学生学号*/ char studentName[20];/*学生姓名*/ char className[20];/*班级名称*/ float mark1;/*第1门成绩*/ float mark2;/*第2门成绩*/ float mark3;/*第3门成绩*/ struct STUDENT *next; }STUDENT; STUDENT *headLink; /*链表表头指针*/ /*函数声明*/ void ReadInfoFormFile(); void Menu(); void CreateHeadLink(); STUDENT *MallocNode(); void GetInformation(STUDENT *t); void OutputInformation(); void DesplayInfoBystudentName(); void DesplayInfoBystudentNumber(); void DesplayOneNode(STUDENT *t); void InsertOneNode(STUDENT *t); void DeleteNodeBystudentNumber(); void ChangeMarkByName(); void ChangeMarkByNumber(); void SaveLinkToFile();void paixu();void DesplayMarkSegment(); int choose;/*用于接受用户的选择*/ /*主函数*/ main() {system("color 2a");printf("\n\t\t欢迎进入***学院***班学生成绩管理系统\n\n\n");printf("\t\t\t\tO(∩_∩)O\n\n\n\n");printf("\t\t\t^_^\t\t\t^_^\n\n");printf("\n\t\t 注意:请按照要求输入相应信息,谢谢!\n\n\n\n\n");printf("\t\t\t\t\t\t\t\t制作人:***\n\n\n");printf("\t\t\t 按任意键进入…………");getch();system("cls");CreateHeadLink();ReadInfoFormFile();Menu();} /*从文件中读学生信息到链表中*/ void ReadInfoFormFile(void) { FILE *fp; STUDENT *p; fp=fopen("student.txt","r"); if(!fp) { printf("\n"); return; } p=MallocNode(); while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0) { InsertOneNode(p); p=MallocNode(); } fclose(fp); } /*显示菜单,根据用户的输入完成相应的功能*/ void Menu(void) { STUDENT *p; printf("\t\t (^o^)欢迎使用学生成绩管理系统(^o^)\n\n");printf("\t ※--------------------请选择相应功能---------------------※\n\n"); printf("\t 1: 显示所有学生的信息 |"); printf(" \t 2: 按姓名查询 |\n\n"); printf("\t 3: 按学号查询 |"); printf(" \t\t 4: 增加学生 |\n\n"); printf("\t 5: 删除学生 |"); printf(" \t\t 6: 按姓名修改学生成绩 |\n\n"); printf("\t 7: 按学号修改学生成绩 |"); printf(" \t 8: 保存所有学生信息 |\n\n"); printf("\t 9: 按成绩输出学生信息 |"); printf("\t 10: 显示不及格及优秀学生 |\n\n");printf("\t 11: 返回主菜单 |"); printf("\t\t 12: 退出 |\n\n");printf("\t ※----------------------O(∩_∩)O------------------------※\n\n");printf("\t 请输入对应数字:");scanf("%d",&choose);/*取得用户的选择*/ switch(choose) { case 1:system("cls");OutputInformation();/*显示所有学生的信息*/ break; case 2: system("cls");DesplayInfoBystudentName(); break; case 3: system("cls");DesplayInfoBystudentNumber();/*根据用户输入的学号显示该学生的信息*/ break; case 4: system("cls");p=MallocNode();/*先申请一个新结点*/ GetInformation(p);/*要求用户输入信息到新结点中*/ InsertOneNode(p);/*将新结点加到链表中*/ break; case 5: system("cls");DeleteNodeBystudentNumber();/*根据用户输入的学号删除该学生*/ break; case 6: system("cls");ChangeMarkByName();/*根据用户输入的姓名修改学生成绩*/ break; case 7: system("cls");ChangeMarkByNumber();/*根据用户输入的学号修改学生成绩*/ break; case 8: system("cls");SaveLinkToFile();/*保存数据*/ break;case 9: system("cls");paixu();break;case 10: system("cls");DesplayMarkSegment();break;case 11: system("cls");break;case 12: system("cls");SaveLinkToFile();/*保存数据后再退出*/ free(headLink); exit(1); break; default: system("cls"); break;} Menu();/*递归调用*/} /*建立链表表头*/ void CreateHeadLink(void) {STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT)); headLink=p; p->next=NULL; } /*申请一个新结点,并将其初始化*/ STUDENT *MallocNode(void) { STUDENT *p; int i; p=(STUDENT*)malloc(sizeof(STUDENT)); if(p==NULL) return NULL; for(i=0;istudentNumber='\0'; for(i=0;istudentName='\0'; for(i=0;iclassName='\0'; p->mark1=0.0; p->mark2=0.0; p->mark3=0.0; p->next=NULL; return p; } /*取得用户输入的学生信息*/ void GetInformation(STUDENT *t) { printf("请输入学生学号:"); scanf("%s",t->studentNumber); printf("请输入学生姓名:"); scanf("%s",t->studentName); printf("请输入该生所在班级:"); scanf("%s",t->className); printf("请输入第1门成绩:"); scanf("%f",&(t->mark1)); printf("请输入第2门成绩:"); scanf("%f",&(t->mark2)); printf("请输入第3门成绩:"); scanf("%f",&(t->mark3)); } /*在链表的结尾处增加一个结点*/ void InsertOneNode(STUDENT *t) { STUDENT *p; p=headLink; while(p->next) { p=p->next; } p->next=t; } /*根据用户输入的学...

用c语言编写学生信息管理系统

我这有个差不多的,要吗?是我写的实训作业 程序:#include #include #include int man=0;int j;char str[20];struct student{ char id[11]; char name[10]; int n1; int n2; int n3; int n4; int n5; int n6; int n7; int n8; int n9; int zong; int ping; }student[100],temp;void read(void){ FILE *cj; int i,k; man=0; while(1) { printf("请输入要读取的文件:\n"); scanf("%s",&str); if((cj=fopen(str,"r"))==NULL) { printf("打开失败\n"); } else { break; } } for(i=0;i<500;i++) { if(fscanf(cj,"%s %s %d %d %d %d %d %d %d %d %d",&student[i].id,&student[i].name,&student[i].n1,&student[i].n2,&student[i].n3,&student[i].n4,&student[i].n5,&student[i].n6,&student[i].n7,&student[i].n8,&student[i].n9)==-1) { break; } man=man+1; } printf("从%s读取去了“%d”条记录\n",str,man); for(k=0;k0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i0;k--) { for(i=0;i<k;i++) { if(student[i].n9<student[i+1].n9) { temp=student[i]; student[i]=student[i+1]; student[i+1]=temp; } } } } else printf("无此功能\n"); }void raise(void){ printf("请输入添加人的学号:\n"); scanf("%s",&student[man].id); printf("请输入添加人的姓名:\n"); scanf("%s",&student[man].name); printf("请输入添加人的成绩1:\n"); scanf("%d",&student[man].n1); printf("请输入添加人的成绩2:\n"); scanf("%d",&student[man].n2); printf("请输入添加人的成绩3:\n"); scanf("%d",&student[man].n3); printf("请输入添加人的成绩4:\n"); scanf("%d",&student[man].n4); printf("请输入添加人的成绩5:\n"); scanf("%d",&student[man].n5); printf("请输入添加人的成绩6:\n"); scanf("%d",&student[man].n6); printf("请输入添加人的成绩7:\n"); scanf("%d",&student[man].n7); printf("请输入添加人的成绩8:\n"); scanf("%d",&student[man].n8); printf("请输入添加人的成绩9:\n"); scanf("%d",&student[man].n9); student[man].zong=student[man].n1+student[man].n2+student[man].n3+student[man].n4+student[man].n5+student[man].n6+student[man].n7+student[man].n8+student[man].n9; student[man].ping=student[man].zong/9; man=man+1;}void alter(void){ int i; char id[10]; printf("请输入要修改人的学号:\n"); scanf("%s",&id); for(i=0;i<man;i++) { if(strcmp(student[i].id,id)==0) { j=i; break; } j=-1; } if(j==-1) { printf("无此人\n"); } else { printf("请输入要修改为的学号:\n"); scanf("%s",&student[j].id); printf("请输入要修改为的姓名:\n"); scanf("%s",&student[j].name); printf("请输入要修改为的成绩1:\n"); scanf("%d",&student[j].n1); printf("请输入要修改为的成绩2:\n"); scanf("%d",&student[j].n2); printf("请输入要修改为的成绩3:\n"); scanf("%d",&student[j].n3); printf("请输入要修改为的成绩4:\n"); scanf("%d",&student[j].n4); printf("请输入要修改为的成绩5:\n"); scanf("%d",&student[j].n5); printf("请输入要修改为的成绩6:\n"); scanf("%d",&student[j].n6); printf("请输入要修改为的成绩7:\n"); scanf("%d",&student[j].n7); printf("请输入要修改为的成绩8:\n"); scanf("%d",&student[j].n8); printf("请输入要修改为的成绩9:\n"); scanf("%d",&student[j].n9); student[j].zong=student[j].n1+student[j].n2+student[j].n3+student[j].n4+student[j].n5+student[j].n6+student[j].n7+student[j].n8+student[j].n9; student[j].ping=student[j].zong/9; }}void deletes(){ int i,k; char id[10]; printf("请输入要删除人的学号:\n"); scanf("%s",&id); for(i=0;i<man;i++) { if(strcmp(student[i].id,id)==0) { j=i; break; } j=-1; } if(j==-1) { printf("无此人\n"); } else { for(k=j;k<man;k++) { student[j]=student[j+1]; j=j+1; } man=man-1; }}void menu(void){ int i; printf("\n"); for(i=0;i<10;i++) printf(" "); for(i=0;i<60;i++) printf("*"); for(i=0;i<9;i++) printf(" "); printf("\n"); for(i=0;i<10;i++) printf(" "); printf("# 1.显示学生成绩信息 6.查询不及格学生信息 #\n"); for(i=0;i<10;i++) printf(" "); printf("# 2.按成绩由高到低排序 7.修改学生成绩信息 #\n"); for(i=0;i<10;i++) printf(" "); printf("# 3.添加学生成绩信息 8.读取文件 #\n"); for(i=0;i<10;i++) printf(" "); printf("# 4.删除学生成绩信息 9.保存文件 #\n"); for(i=0;i<10;i++) printf(" "); printf("# 5.查询学生成绩信息 -. 另存为 #\n"); for(i=0;i<10;i++) printf(" "); printf("# +.退出 #\n"); for(i=0;i<10;i++) printf(" "); for(i=0;i<60;i++) printf("*"); for(i=0;i<9;i++) printf(" "); printf("\n");}int main(void){ char i; read(); menu(); while(1) { printf("请输入要选择的需要功能的序列号(输入0显示菜单):\n"); scanf("%s",&i); if(i=='1') { print(); } else if(i=='2') { compositor(); print(); } else if(i=='3') { raise(); print(); } else if(i=='4') { deletes(); print(); } else if(i=='5') { inquiry(); } else if(i=='6') { fail(); } else if(i=='7') { alter(); print(...

C语言学生信息管理系统设计

[此问题的推荐答案]#include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num[10];/* 学号 */ char name[20]; char sex[4]; int age; int birth; int tele; char addr[30]; }; typedef struct node { struct student data; struct node *next; }Node,*Link; /*************************************************************************************/ void menu() { printf("********************************************************************************"); printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n"); printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n"); printf("\t5保存学生资料\t\t\t\t\t0退出系统\n"); printf("********************************************************************************\n"); } /*************************************************************************************/ void printstart() { printf("-----------------------------------------------------------------------\n"); } void Wrong() { printf("\n=====>提示:输入错误!\n"); } void Nofind() { printf("\n=====>提示:没有找到该学生!\n"); } void printc() /* 本函数用于输出中文 */ { printf(" 学号\t 姓名 性别 \t 电话 \t 出生年月\t 年龄\t 地址\n"); } /*************************************************************************************/ void printe(Node *p)/* 本函数用于输出英文 */ { printf("%-12s%s\t%s\t%d\t%d\t%d\t%s \n",p->data.num,p->data.name,p->data.sex,p->data.tele,p->data.birth,p->data.age,p->data.addr); } Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ { Node *r; if(strcmp(nameornum,"num")==0) /* 按学号查询 */ { r=l->next; while(r!=NULL) { if(strcmp(r->data.num,findmess)==0) return r; r=r->next; } } else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */ { r=l->next; while(r!=NULL) { if(strcmp(r->data.name,findmess)==0) return r; r=r->next; } } return 0; } /*************************************************************************************/ void Add(Link l) /* 增加学生 */ { Node *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; /* 将指针置于最末尾 */ while(1) { printf("请你输入学号(以'0'返回上一级菜单"); scanf("%s",num); if(strcmp(num,"0")==0) break; while(s) { if(strcmp(s->data.num,num)==0) { printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num); printstart(); printc(); printe(s); printstart(); printf("\n"); return; } s=s->next; } p=(Node *)malloc(sizeof(Node)); strcpy(p->data.num,num); printf("请你输入姓名:"); scanf("%s",p->data.name); getchar(); printf("请你输入性别:"); scanf("%s",p->data.sex); getchar(); printf("请你输入年龄:"); scanf("%d",&p->data.age); getchar(); printf("请你输入出生年月:"); scanf("%d",&p->data.birth); getchar(); printf("请你输入电话:"); scanf("%d",&p->data.tele); getchar(); printf("请输入地址:"); scanf("%s",&p->data.addr); getchar(); /* 信息输入已经完成 */ p->next=NULL; r->next=p; r=p; shoudsave=1; } } /*************************************************************************************/ void Qur(Link l) /* 查询学生 */ { int sel; char findmess[20]; Node *p; if(!l->next) { printf("\n=====>提示:没有资料可以查询!\n"); return; } printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); scanf("%d",&sel); if(sel==1)/* 学号 */ { printf("请你输入要查找的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else if(sel==2) /* 姓名 */ { printf("请你输入要查找的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else Wrong(); } /*************************************************************************************/ void Del(Link l) /* 删除 */ { int sel; Node *p,*r; char findmess[20]; if(!l->next) { printf("\n=====>提示:没有资料可以删除!\n"); return; } printf("\n=====>1按学号删除\n=====>2按姓名删除\n"); scanf("%d",&sel); if(sel==1) { printf("请你输入要删除的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("\n=====>提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else if(sel==2) { printf("请你输入要删除的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("\n=====>提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else Wrong(); } /*************************************************************************************/ void Modify(Link l) { Node *p; char findmess[20]; if(!l->next) { printf("\n=====>提示:没有资料可...

c语言学生信息管理系统代码

#include#include#includevoid frist_print(){ printf("\t\t********************************\n\n"); //欢迎信息 printf("\t\t\t欢迎进入学生成绩系统\n");}void menu() { printf("\n\t\t********************************\n"); //管理菜单 printf("\t\t==\t1.录入学生成绩\n\t\t+\n"); printf("\t\t==\t2.显示学生成绩\n\t\t+\n"); printf("\t\t==\t3.查询学生成绩\n\t\t+\n"); printf("\t\t==\t4.添加学生成绩\n\t\t+\n"); printf("\t\t==\t5.修改学生成绩\n\t\t+\n"); printf("\t\t==\t6.删除学生成绩\n\t\t+\n"); printf("\t\t==\t7.清空页面\n\t\t+\n"); printf("\t\t==\t8.退出系统\n"); printf("\t\t********************************\n"); printf("please choise 1--8:\t"); putchar(10); }struct MM // 结构体定义变量 { char num[20]; char name[10]; float pay; int many; }mm;void scanf_1() //第一次输入信息并保存在文件中 { char ch; FILE *fp; if((fp=fopen("dd.dat","wb+"))==NULL) { printf("cannot open file\n"); exit(0); } do { printf("请输入成绩的--编号:\t"); getchar(); gets(mm.num); printf("姓名:\t"); gets(mm.name); printf("成绩:\t"); scanf("%f",&mm.pay); printf("学号:\t"); scanf("%d",&mm.many); if(fwrite(&mm,sizeof(struct MM),1,fp)!=1) { printf("file write error\n"); exit(0); } printf("是否继续输入y or n ?\t"); getchar(); ch=getchar(); }while(ch=='y'||ch=='Y'); fclose(fp); }void find() //查询成绩的信息 { int a,b=0; char ch[20]; FILE *fp; if((fp=fopen("dd.dat","rb"))==NULL) { printf("cannot open file\n"); exit(0); } printf("请输入要查询的成绩的方式\n\t1.编号 2.姓名:\n\t请选择 1 or 2 \t"); scanf("%d",&a); if(a==1) { getchar(); printf("请输入成绩的编号:\t"); gets(ch); while(fread(&mm,sizeof(struct MM),1,fp)==1) if(strcmp(mm.num,ch)==0) { b++; printf("编号\t姓名\t价格\t\t学号\n"); printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many); } if(b==0) printf("对不起!没有找到相关信息:\n"); } else if(a==2) { printf("请输入成绩的姓名:\t"); getchar(); gets(ch); while(fread(&mm,sizeof(struct MM),1,fp)==1) if(strcmp(mm.name,ch)==0) { b++; printf("编号\t姓名\t价格\t\t学号\n"); printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many); } if(b==0) printf("input error!\n"); } fclose(fp); } void scanf_2() //第二次输入信息并保存在文件中 { char ch; FILE *fp; if((fp=fopen("dd.dat","ab"))==NULL) { printf("cannot open file\n"); exit(0); } do { printf("请输入要添加成绩的--编号:\t"); getchar(); gets(mm.num); printf("姓名:\t"); gets(mm.name); printf("价格:\t"); scanf("%f",&mm.pay); printf("学号:\t"); scanf("%d",&mm.many); if(fwrite(&mm,sizeof(struct MM),1,fp)!=1) { printf("file write error\n"); exit(0); } printf("是否继续输入y or n ?\t"); getchar(); ch=getchar(); }while(ch=='y'||ch=='Y'); fclose(fp); } void print() //输出文档中的信息 { FILE *fp; if((fp=fopen("dd.dat","rb"))==NULL) { printf("cannot open file\n"); return ; } printf("编号\t姓名\t价格\t\t学号\n"); while(fread(&mm,sizeof(struct MM),1,fp)==1) printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many); fclose(fp); }void change(){ //修改信息的函数,定义另一个文件,把要修改的信息放到该文件中 struct XX //然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名 { //把原来的文件移除; char num[20]; char name[10]; float pay; int many; }xx; FILE *fp2; int a,b=0,c=0,n=0; char ch[20],ck; FILE *fp; do{ if((fp=fopen("dd.dat","rb"))==NULL) { printf("cannot open file\n"); exit(0); } if((fp2=fopen("temp.dat","wb"))==NULL) { printf("cannot open file\n"); exit(0); } printf("请输入要修改成绩的编号:\t"); scanf("%s",ch); n++; while(fread(&mm,sizeof(struct MM),1,fp)==1) { if((strcmp(mm.num,ch)==0)) { b++; //b的值如果一直没有改变说明,没有找到相关的信息; printf("编号\t姓名\t价格\t\t学号\n"); printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many); getchar(); printf("请输入成绩的新编号:\t"); gets(xx.num); printf("请输入成绩的新姓名:\t"); gets(xx.name); printf("请输入成绩的新价格:\t"); scanf("%f",&xx.pay); printf("请输入成绩新学号:\t"); scanf("%d",&xx.many); getchar(); fwrite(&xx,sizeof(struct XX),1,fp2); } if(strcmp(mm.num,ch)!=0) fwrite(&mm,sizeof(struct MM),1,fp2); } if(b==0) { printf("\t没有找到相关信息!\n"); getchar(); } rewind(fp); //如果要继续修改的话,要把标记返回到文件的开头; printf("是否继续修改?enter 'y' or 'n' \t"); ck=getchar(); fclose(fp); fclose(fp2); remove("dd.dat"); rename("temp.dat","dd.dat"); }while(ck=='y'||ck=='Y'); if(b!=0) //如果没有找到相关信息就不能输出 printf("\t修改成功:\n");}void del(){ //删除函数和修改很相似 FILE *fp2; int a,b=0,c=0,n=0; char ch[20],ck; FILE *fp; do { if((fp=fopen("dd.dat","rb"))==NULL) { printf("cannot open file\n"); exit(0); } if((fp2=f...

C语言学生管理系统

#include #include #include #include #define max 20 typedef struct student //学生 { char sno[max]; // 学号 char sname[max]; //姓名 char sex[max]; //性别 char age[max]; //年龄 char depart[max]; //系 char classs[max]; //班 char grade[max]; //年级 struct student* next; } student; student* head; int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输 { char username[max],password[max]; printf("\n请输入用户名:"); scanf("%s",username); printf("\n请输入密码(最多15位):"); //开始以不回显且支持退格方式获取输入密码 int i=0; while((i>=0)&&(password[i++]=getch())!=13)//条件i>=0是用于限制退格的范围 { if(password[i-1]=='\b')//对退格键的处理 { printf("%c%c%c",'\b','\0','\b'); i=i-2; } else printf("*"); } password[--i]='\0'; //已获取密码。

验证用户身份 if(!strcmp(username,"zhang")&&!strcmp(password,"8147086")) { printf("\n登录成功!"); return 1; } else return 0; } void regist() { char ch; student *s,*ptr; //s用来建新结点,ptr用来暂存头结点 do { s=(student*)malloc(sizeof(student)); // 新建一个学生结点 printf("\n开始注册..."); //开始注册 printf("\n请输入该学生的学号:"); scanf("%s",s->sno); printf("\n请输入该学生的姓名:"); scanf("%s",s->sname); printf("\n请输入该学生的性别:"); scanf("%s",s->sex); printf("\n请输入该学生的年龄:"); scanf("%s",s->age); printf("\n请输入该学生的系:"); scanf("%s",s->depart); printf("\n请输入该学生所在的班:"); scanf("%s",s->classs); printf("\n请输入该学生所在的年级"); scanf("%s",s->grade); ptr=head; head=s;//将新结点插入队头 s->next=ptr; fflush(stdin); printf("\n请问是否继续注册?(Y/N)"); scanf("%c",&ch); }while(ch=='Y'||ch=='y'); return; } void ElePrint(char str[]) //输出单个元素 { if(str==NULL) exit(0); printf("%s",str); for(unsigned int i=0;isno); ElePrint(ptr->sname); ElePrint(ptr->age); ElePrint(ptr->sex); ElePrint(ptr->depart); ElePrint(ptr->classs); ElePrint(ptr->grade); return 1; } void print() //输出全部学生信息 { student *ptr=head; printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(ptr) { LinePrint(ptr); ptr=ptr->next; } printf("\n"); return; } void search()//查询模块 { int method;//查询方式 char no[max],name[max],departm[max],clss[max],grades[max]; //用来接收查询关键字 while(1) { printf("\n请选择查询方式"); printf("\n1.按学号查询"); printf("\n2.按姓名查询"); printf("\n3.按所在系查询"); printf("\n4.按所在班级查询"); printf("\n5.按所在年级查询"); printf("\n6.打印全部学生信息"); printf("\n7.返回主菜单\n"); scanf("%d",&method); student *p=head,*temp; switch(method) { case 1: printf("\n请输入要查询的学号:"); scanf("%s",no); while(p) { if(!strcmp(p->sno,no)) break; else { temp=p; p=p->next; } } printf("\n学号 姓名 年龄 性别 系 班 年级 "); LinePrint(p); break; case 2: printf("\n请输入要查询的姓名:"); scanf("%s",name); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p->sname,name)) LinePrint(p); p=p->next; } break; case 3: printf("\n请输入学生所在的系:"); scanf("%s",departm); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p->depart,departm)) LinePrint(p); p=p->next; } break; case 4: printf("\n请输入学生所在的班:"); scanf("%s",clss); printf("\n请输入学生所在的年级:"); scanf("%s",grades); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades)) LinePrint(p); p=p->next; } break; case 5: printf("\n请输入学生所在的年级:"); scanf("%s",grades); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p->grade,grades)) LinePrint(p); p=p->next; } break; case 6: print(); break; case 7: return; default: printf("很抱歉,暂无此查询方式!"); break; } } } void modify()//修改学生信息 { char num[max]; student *p=head; printf("\n请输入要修改的学生的学号:"); scanf("%s",num); while(p) { if(!strcmp(p->sno,num)) break; else p=p->next; } if(p==NULL) { printf("\n错误:...

学生信息管理系统C语言编程

#include /*I/O函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*/{char code[LEN+1]; /* 学号 */char name[LEN+1]; /* 姓名 */int age; /* 年龄 */char sex[3]; /* 性别 */char time[LEN+1]; /* 出生年月 */char add[30]; /* 家庭地址 */char tel[LEN+1]; /* 电话号码 */char mail[30]; /* 电子邮件地址 */}stu[N];int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void display();void save();void menu(); int main(){ while(k)menu();system("pause");return 0;} void help(){ printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按7;\n");printf("\n4.谢谢您的使用!\n");} void readfile()/* 建立信息 */{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("student.txt","r"))==NULL){ printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);}while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");} void seek() /*查找*/{int i,item,flag;char s1[21]; /* 以姓名和学号最长长度+1为准 */printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;ii;j--)if(strcmp(stu[j-1].code,stu[j].code)>0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].ti...

如何用C语言编写学生信息管理系统

参考如下学生信息管理系统的C源代码吧。

#include #include /*定义学生结构体*/struct Student{ char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average;};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*求平均值*/float Avg(struct Student stu){ return (stu.Mark1+stu.Mark2+stu.Mark3)/3;}/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]){ int i; for (i=0;i { if (strcmp(students[i].ID,id)==0) { return i; } } return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]){ int i; for (i=0;i { if (strcmp(students[i].Name,name)==0) { return i; } } return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){ printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------\n"); printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);}/*插入学生信息*/void Student_Insert(){ while(1) { printf("请输入学号:"); scanf("%s",&students[num].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark1); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark2); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark3); getchar(); students[num].Average=Avg(students[num]); num++; printf("是否继续?(y/n)"); if (getchar()=='n') { break; } }}/*修改学生信息*/void Student_Modify(){ //float mark1,mark2,mark3; while(1) { char id[20]; int index; printf("请输入要修改的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要修改的学生信息为:\n"); Student_DisplaySingle(index); printf("-- 请输入新值--\n"); printf("请输入学号:"); scanf("%s",&students[index].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark1); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark2); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark3); getchar(); students[index].Average=Avg(students[index]); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } }}/*删除学生信息*/void Student_Delete(){ int i; while(1) { char id[20]; int index; printf("请输入要删除的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要删除的学生信息为:\n"); Student_DisplaySingle(index); printf("是否真的要删除?(y/n)"); if (getchar()=='y') { for (i=index;i { students[i]=students[i+1];//把后边的对象都向前移动 } num--; } getchar(); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } }}/*按姓名查询*/void Student_Select(){ while(1) { char name[20]; int index; printf("请输入要查询的学生的姓名:"); scanf("%s",&name); getchar(); index=Student_SearchByName(name); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要查询的学生信息为:\n"); Student_DisplaySingle(index); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } }}/*按平均值排序*/void Student_SortByAverage(){ int i,j; struct Student tmp; for (i=0;i { for (j=1;j { if (students[j-1].Average { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }}/*显示学生信息*/void Student_Display(){ int i; printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------\n"); for (i=0;i { printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name, students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average); }}/*将学生信息从文件读出*/void IO_ReadInfo(){ FILE *fp; int i; if ((fp=fopen("Database.txt","rb"))==NULL) { printf("不能打开文件!\n"); return; } if (fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i { fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp);}/*将学生信息写入文件*/void IO_WriteInfo(){ FILE *fp; int i; if ((fp=fopen("Database.txt","wb"))==NULL) { printf("不能打开文件!\n"); return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf("写入文件错误!\n"); } for (i=0;i { if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf("写入文件错误!\n"); } } fclose(fp);}/*主程序*/void main(){ int choice; IO_ReadInfo(); while(1) { /*主菜单*/ printf("\n------ 学生成绩管理系统------\n"); printf("1. 增加学生记录...

转载请注明出处经济管理网 » c语言 学生信息管理系统

相关推荐