經濟觀察
運營管理

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語言 學生信息管理系統

相關推薦

    江苏十一选五的任三