C语言学生学籍管理系统全英文版
- 格式:pdf
- 大小:80.33 KB
- 文档页数:5
//交流学习//QQ:1194758555#include<stdio。
h>#include<string.h〉#include<stdlib。
h〉#include<ctype。
h>#include〈windows.h〉int k,n;struct student{double yuwen;double shuxue;double yingyu;double zong;double pingjun;char name[20];char num[20];} stu[1000];void jiazai(struct student stu[],int *num1);void baocun(struct student stu[],int n);void find(struct student stu[],int n);int findnum(struct student stu[],int n,char *num);//查找学号;void shanchu(struct student stu[],int *num1);void shanchuyi(struct student stu[],int *num1);//删除一条记录;void shanchuquanbu(struct student stu[],int *num1);void tianjiayi(struct student stu[],int i);//添加一记录;void tianjia(struct student stu[],int *num1);//添加记录;void xiugai(struct student stu[],int n);//修改一条记录;void output(struct student stu[],int n,int x);//打印信息;void paixu(struct student stu[],int n);//排序;int jianchaxuehao(struct student stu[],char *num);//检查学号的合法性;int jianchachengji(double num);//检查成绩的合法性;void outputone(struct student *stu,int i,int x);//输出一条信息void caidan();int main(){int q;jiazai(stu,&n);caidan();scanf(”%d”,&q);while(q〉6){printf("输入错误请重新输入\n请输入0—6的数字\n");scanf(”%d”,&q);}Sleep(300);system(”cls”);switch(q){case 1 :tianjia(stu,&n);break;case 2:xiugai(stu,n);break;case 3:paixu(stu,n);break;case 4:find(stu,n);break;case 5:shanchu(stu,&n);break;case 6:output(stu,n,0);break;case 0:exit(0);}return 0;}void caidan(){printf(”┌────────────────────────┐\n”); printf(”├───────欢迎进入学生信息管理系统─────┤\n"); printf("├────────────────────────┤\n"); printf("│ 1添加学生成绩│\n”);printf(”├────────────────────────┤\n"); printf(”│ 2修改学生成绩│\n");printf(”├────────────────────────┤\n"); printf("│ 3排序│\n”);printf(”│ 4查找│\n”);printf("├────────────────────────┤\n"); printf("│ 5删除│\n");printf("├────────────────────────┤\n"); printf(”│ 6输出│\n");printf("├────────────────────────┤\n"); printf(”│ 0退出│\n”);printf("├────────────────────────┤\n”); printf("└────────────────────────┘\n"); printf("请输入选择:\n");}void jiazai(struct student stu[],int *num1){FILE *fp;int i;if((fp=fopen(”d:\\student。
#include<stdlib.h>//标准库头文件#include<string.h>#include<stdio.h>#define N 100struct student{char name[10];int age;char sex[5];char classnumber[20];char birthday[15];char homeaddress[15];char hometelnum[15];}stu[N];int load(){FILE *fp;//定义文件型指针变量int i;if ((fp=fopen("results.txt","rb"))==NULL)/*检查打开操作是否出错*/ {printf("文件打开错误\n");exit (0);}for (i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);return(i-1);}void save(int n){int i;FILE *fp;if ((fp=fopen("results.txt","wb"))==NULL){printf("文件打开错误:");}for (i=0;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp);fclose(fp);}void add(){FILE *fp;int i,k;if ((fp=fopen("results.txt","wb"))==NULL){printf("文件打开错误!\n");exit(1);}printf("请输入录入信息的学生数目:");scanf("%d",&k);for (i=0;i<k;i++){printf("\n学号:");scanf("%s",stu[i].classnumber);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("生日:");scanf("%s",stu[i].birthday);printf("家庭住址:");scanf("%s",stu[i].homeaddress);printf("家庭电话号码:");scanf("%s",stu[i].hometelnum);}for (i=0;i<k;i++)fwrite(&stu[i],sizeof(struct student),1,fp);fclose(fp);}void remove(){int n,i,j;char m[5];n=load();printf("输入你要删除资料学生的姓名:");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].name,m))break;for (j=i;j<n-1;j++){strcpy(stu[j].classnumber,stu[j+1].classnumber);strcpy(stu[j].name,stu[j+1].name);stu[j].age=stu[j+1].age;strcpy(stu[j].sex,stu[j+1].sex);strcpy(stu[j].birthday,stu[j+1].birthday);strcpy(stu[j].homeaddress,stu[j+1].homeaddress);strcpy(stu[j].hometelnum,stu[j+1].hometelnum);}save(n-1);}void display(){int n,m;n=load();for (m=0;m<n;m++){printf("学号:%s\n",stu[m].classnumber);printf("姓名:%s\n",stu[m].name);printf("性别:%s\n",stu[m].sex);printf("年龄:%d\n",stu[m].age);printf("生日:%s\n",stu[m].birthday);printf("家庭住址:%s\n",stu[m].homeaddress);printf("家庭电话号码:%s\n",stu[m].hometelnum);}}void search(){int i,x;char name_1[10];x=load();printf("请输入要查找的学生姓名:\n");scanf("%s",name_1);for(i=0;i<x;i++)if (!strcmp(stu[i].name,name_1)){ printf("学号:%s\n",stu[i].classnumber);printf("姓名:%s\n",stu[i].name);printf("性别:%s\n",stu[i].sex);printf("年龄:%d\n",stu[i].age);printf("生日:%s\n",stu[i].birthday);printf("家庭住址:%s\n",stu[i].homeaddress);printf("家庭电话号码:%s\n",stu[i].hometelnum);}}void modify(){ FILE *fp;int n,i,j;char m[10];n=load();printf("请输入要修改学生的学号或姓名:");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].classnumber,m)||!strcmp(stu[i].name,m)){printf("修改项目:1.学号2.姓名3.性别4.年龄5.生日6.家庭住址7.家庭电话号码\n");printf("你选择的项目是:");scanf("%d",&j);switch (j){case 1:printf("请输入修改后的学号:");scanf("%s",stu[i].classnumber);break;case 2:printf("请输入修改后的姓名:");scanf("%s",stu[i].name);break;case 3:printf("请输入修改后的性别:");scanf("%s",stu[i].sex);break;case 4:printf("请输入修改后的年龄:");scanf("%d",&stu[i].age);break;case 5:printf("请输入修改后的生日:");scanf("%s",stu[i].birthday);break;case 6:printf("请输入修改后的家庭住址:");scanf("%s",stu[i].homeaddress);break;case 7:printf("请输入修改后的家庭电话号码:");scanf("%s",stu[i].hometelnum);break;default :printf("对不起,输入错误!\n");/*int getch();change();break;*/}save(n);}}void menu(){int n;system("cls");printf("\n\t\t*******************************************\n");printf("\n\t\t*******************************************\n");printf("\t\t\t欢迎使用学生学籍管理系统\n");printf(" \n");printf("\t\t<功能列表>\n");printf("\n\t\t1)添加新生信息");printf("\n\t\t2)删除学生信息");printf("\n\t\t3)显示学生信息");printf("\n\t\t4)查找学生信息");printf("\n\t\t5)修改学生信息");printf("\n\t\t6)退出系统");printf("\n\t\t*******************************************\n");printf("\n\t\t*******************************************\n");printf("请选择相应操作:");scanf("%d",&n);while (n>6||n<1){printf("操作错误,请重新输入:");scanf("%d",&n);}switch (n){case 1:add();break;case 2:remove();break;case 3:display();break;case 4:search();break;case 5:modify();break;default:printf("对不起,输入错误!\n");}}void main() {menu(); }。
附表 1.程序源码#include<stdio.h> #include<conio.h> #include<string.h> #include<math.h> #define N 100 struct student {char num[13]; char name[18]; float math; float english; float cprogram; float circuit; float law;float pingjun; float score[5];};void mainprint(); void scoreprint(); void studentprint(); void scoreInput(); void scoreStat(); void studentStatus(); void bukao(); void tuixue(); void xinmingdan(); void sortAnhao(); void jisuanPingjun(); void tongjiFenshu(); void fenxi();/* 生成并打印补考通知单*//* 生成并打印退学通知单*//* 生成并打印新名单*//* 按学号排序*//* 计算平均分并排序*//* 统计分数段*//*分析学生成绩,算出不及格门*/\数void mynew(); /* 创新功能*/void outstudent();void outdanke();void teshutuixue();void main(){char choose='\0',yes_no='\0';do { system("color 4f"); system("cls"); mainprint();printf(" "); choose=getche( );switch(choose){ case'1':scoreInput();break; /* 成绩录入*/ case'2':scoreStat();break;case'3':studentStatus();break; case'4':mynew();break;case'0':break;default:printf("\n %c 是非法选项!\n"); break;}if(choose=='0') break;printf("\n 即将进入主菜单,要继续选择吗(Y/N) ?\n"); do{ yes_no=getche( );}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='y'||yes_no=='Y');}void mainprint(){ printf(" |******************************************|\n");printf(" | 欢迎使用学籍管理系统|\n");printf(" |******************************************|\n");printf(" | 请输入选项编号(0~4) |\n");printf(" |------------------------------------------ |\n");printf(" | 1-- 录入成绩|\n");printf(" | 2-- 统计成绩|\n");printf(" | 3-- 处理学籍|\n");printf(" | 4-- 创新功能|\n");printf(" | 0-- 退出|\n");printf("|\n");}void scoreInput(){ int i=0;char yes_no='\0';struct student ex1[N]={0};FILE *fp=NULL;system("color 5f");system("cls");学生基本信息.txt","w");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; }printf("\n 欢迎进入成绩录入系统\n");printf("\n 请输入第%d 个记录:\n",i+1);printf("\n 输入学生学号:( 用#结束程序)");scanf("%s",ex1[i].num);printf("\n 输入学生姓名:( 用#结束程序)");scanf("%s",ex1[i].name);printf("\n 请依次输入学生的数学、英语、 c 编程、电路设计和法律基础的成绩:\n");scanf("%f%f%f%f%f",&ex1[i].math,&ex1[i].english,&ex1[i].cprogram,&ex1[i].circuit,&ex1[i].law);while(ex1[i].num[0]!='#'&&ex1[i].name[0]!='#'){ fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex1[i].num,ex1[i].name,ex1[i].math,ex1[i].engl ish,ex1[i].cprogram,ex1[i].circuit,ex1[i].law);i++;printf("\n 请输入第%d 个记录:\n",i+1);printf("\n 输入学生学号:(用#结束程序)");scanf("%s",ex1[i].num);printf("\n 输入学生姓名:(用#结束程序)"); scanf("%s",ex1[i].name);printf("\n 请依次输入学生的数学、英语、 c 编程、电路设计和法律基础的成绩:\n");scanf("%f%f%f%f%f",&ex1[i].math,&ex1[i].english,&ex1[i].cprogram,&ex1[i].circuit,&ex1[i].law);}fclose(fp);}void scoreStat(){ char choose='\0',yes_no='\0';system("color 9f");do{system("cls");printf("\n 欢迎选择成绩统计系统\n");/* 显示菜单*/printf("\n|");printf("\n | 请输入选项编号(0~4) |");printf("\n | ----------------------- |");printf("\n | 1-- 按学号排序|");printf("\n | 2-- 按平均分数排序|");printf("\n | 3-- 统计分数段|");printf("\n | 4-- 返回|");printf("\n | 0-- 退出系统|");printf("\n | ----------------------- |\n");choose=getch();switch(choose){ case'1':sortAnhao();break;case'2':jisuanPingjun();break;case'3':tongjiFenshu();break;case'4':main(); break;case'0':break;default:printf("\n %c 是非法选项!\n");break;}if(choose=='0') break;printf("\n 要继续选择吗(Y/N) ?\n");do{ yes_no=getche(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='y'||yes_no=='Y');}void sortAnhao(){ int i=0,j=0,n=0;struct student ex2[N]={0},temp={0};FILE *fp=NULL; system("color 9f");学生基本信息.txt","r");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; } printf("\n 欢迎进入按学号排序系统\n");while(feof(fp)==0){ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,&ex2[i].num,ex2[i].name,&ex2[i].math,&ex2[i].english, &ex2[i].cprogram,&ex2[i].circuit,&ex2[i].law);i++; n++; }fclose(fp);for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(ex2[i].num,ex2[j].num)>0){ temp=ex2[i];ex2[i]=ex2[j];ex2[j]=temp;}按学号排序 .txt","w");if(fp==NULL){ printf("\n 打开文件失败! \n"); return; }fprintf(fp," 序号 学号 姓名 高数 英语 编程 电路 法律 \n"); for(i=0;i<n;i++)fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex2[i].num,ex2[i].name,ex2[i].math,ex2[i].engl ish,ex2[i].cprogram,ex2[i].circuit,ex2[i].law);printf("\n 文件已保存至 fclose(fp);}void jisuanPingjun() { int i=0,j=0,n=0;char c='\0';struct student ex2[N]={0},temp={0}; FILE *fp=NULL; system("color 9f");学生基本信息 .txt","r");\n"); return; } 欢迎使用按学号排序系统 \n");while(feof(fp)==0){ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex2[i].num,ex2[i].name,&ex2[i].math,&ex2[i].english,&e x2[i].cprogram,&ex2[i].circuit,&ex2[i].law);i++; n++; } fclose(fp); for(i=0;i<n;i++)ex2[i].pingjun=(ex2[i].math+ex2[i].english+ex2[i].cprogram+ex2[i].circuit+ex2[i].law)/5; for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(ex2[i].pingjun<ex2[j].pingjun) { temp=ex2[i];ex2[i]=ex2[j]; ex2[j]=temp;}按平均成绩排序 .txt","w");if(fp==NULL){ printf("\n 打开文件失败! \n"); return; }fprintf(fp," 序号 学号 姓名 高数 英语 编程 电路 法律 平 均\n"); for(i=0;i<n;i++)fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex2[i].num,ex2[i].name,ex2[i].math,ex2[i ].english,ex2[i].cprogram,ex2[i].circuit,ex2[i].law,ex2[i].pingjun);按学号排序 .txt\n");if(fp==NULL) { printf("\nprintf("\n打开文件失败!printf("\n 文件已保存至 按平均成绩排序 .txt\n"); fclose(fp);}void tongjiFenshu(){ int i=0,j=0,t=0,n=0,e=0,a[5][5]={0}; char yes_no='\0';float list[5][5]={0}; struct student ex2[N]={0}; FILE *fp=NULL; system("color 9f");学生基本信息 .txt","r");打开文件失败! \n"); return; } 欢迎进入分数段统计系统! "); while(feof(fp)==0){ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex2[i].num,ex2[i].name,&list[i][0],&list[i][1],&list[i][2], &list[i][3],&list[i][4]);i++; n++; } fclose(fp); for(j=0;j<5;j++) a[0][j]=0; for(j=0;j<5;j++)for(i=0;i<n;i++) { if(list[i][j]>100||list[i][j]<0) e++;else {t=(int)list[i][j]/10;switch(t){ case 10:a[j][0]++;break; case 9:a[j][0]++;break; case 8:a[j][1]++;break; case7:a[j][2]++;break; case 6:a[j][3]++;break; default:a[j][4]++;break;printf("\nprintf("\n printf("\n | 90 分以上| 80~89 分----------- ");| 70~79 分 | 60~69 分 |60 分以下");printf("\n----------- "); ----------- ");printf("\n高数| %3d| %3d| %3d| %3d| %3d",a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]);printf("\n ----------- "); ----------- ");printf("\n英语| %3d | %3d| %3d| %3d | %3d}printf("\n\n\n\n 各门课、个分数段学生人数 ");",a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]);if(fp==NULL){ printf("\n printf("\n");system("color 2f"); dosystem("cls");printf (" | -------------------------------------- |\n");printf (" | 请输入选项编号 (0-4)|\n")printf (" | -------------------------------------- |\n");printf (" | 1 -------------- 生成并打印补考通知单 |\n"); printf (" | 2 ------------- 生成并打印退学通知单 |\n"); printf (" | 3 ------------- 生成并打印新名册 |\n"); printf (" | 4 ------------- 返回 |\n"); printf (" | 0 ------------- 退出系统|\n");printf ("| -------------------------------------- |\n");choose=getche();while(choose!='0'&&choose!='1'&&choose!='2'&&choose!='3'&&choose!='4'){ printf(" %c 为非法选项!请重新输入:",choose);choose=getchar();}switch(choose) { case '1':bukao(); break;case '2':tuixue(); break; case '3':xinmingdan(); break; case '4':main(); break; case '0':break;if(choose=='0'){printf("\n");printf(" 感谢您的使用! \n");printf("\n编程 | %3d | %3d | %3d%3d %3d",a[2][0],a[2][1],a[2][2],a[2][3],a[2][4]);printf("\n ");电路 | %3d | %3d | %3d ",a[3][0],a[3][1],a[3][2],a[3][3],a[3][4]);printf("\n%3d %3dprintf("\n ");printf("\n法律 | %3d | %3d | %3d%3d %3d",a[4][0],a[4][1],a[4][2],a[4][3],a[4][4]);printf("\n if(e!=0) printf("\n-------------------------------- ");有 %d 个错误的成绩,请检查。
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {char name[20];float cn;float en;float ave;} STU;STU student[100] = {};int count = 0;void display(){int i = 0;printf("%s\t%s\t%s\t%s\t%s\n", "num", "name", "cn", "en", "ave");for (i = 0; i < count; i++)printf("%d\t%s\t%2.1f\t%2.1f\t%2.1f\n", i + 1, student[i].name,student[i].cn, student[i].en, student[i].ave);return;}void sort(){int i = 0, j = 0;STU tmp;for (i = 0; i < count ; i++) {for (j = 0; j < count - 1 - i; j++) {if (student[j+1].ave > student[j].ave) {tmp = student[j];student[j] = student[j+1];student[j+1] = tmp;}}}return;}void intsert(){printf("Input name\n");scanf("%s", student[count].name);printf("Input cn\n");scanf("%f", &student[count].cn);printf("Input en\n");scanf("%f", &student[count].en);student[count].ave = (student[count].cn + student[count].en) / 2;count++;return;}void del(){char name[20] = {};puts("please input name:");scanf("%s", name);int i = 0, j = 0;for (i = 0; i < count; i++) {if (!strcmp(student[i].name, name)) {if (i < count - 1) {for (j = i+1; j < count; j++)student[j - 1] = student[j];}count--;return;}}puts("no found");return;}void save2file(char *filename){int i = 0;FILE * fp = fopen(filename, "w");for (i = 0; i < count; i++)fprintf(fp, "%s\t%2.1f\t%2.1f\t%2.1f\n", student[i].name,student[i].cn, student[i].en, student[i].ave);return;}int main(int argc, char * argv[]){int m = 0;char buf[100] = {};char tmp[100] = {};int i = 0;if (argc != 2) {printf("Please enter \"./a.out filename\"\n");return 0;}char *filename = argv[1];FILE * fp = fopen(argv[1], "r");while (fgets(buf, sizeof(buf), fp)) {sscanf(buf, "%s %f %f %f", student[m].name,&student[m].cn, &student[m].en, &student[m].ave);m++;count++;memset(buf, 0, sizeof(buf));}fclose(fp);while (1) {printf("Please select the option:\n");printf("1.Disply all student's info\n");printf("2.Sort by average\n");printf("3.Intsert a new info\n");printf("4.Delete a record\n");printf("5.Quit\n");printf("Please input your choice:\n");scanf("%d", &i);if (0 == i)gets(tmp);switch (i) {case 1:display();break;case 2:sort();break;case 3:intsert();break;case 4:del();break;case 5:printf("Quit\n");save2file(filename);exit(0);default:break;}i = 0;}return 0; }。
#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 cgrade;int mgrade;int egrade;int totle;int ave;char xueyuan[30];char banji[20];char ID[30];char phone[20];char address[50];char neartime[10];/* 最近更新时间*/};typedef struct node{struct student data;struct node *next;}Node,*Link;void login()/*登录函数*/{char logname[30];printf("请输入用户名和密码:\n用户名:");scanf("%c",logname);}void menu(){printf("***********************请按照提示操作,否则可能出现错误*************************"); printf("********************************************************************************");printf("\t1登记学生资料\t\t2删除学生资料\t\t7统计学生资料\n");printf("\t3查询学生资料\t\t4修改学生资料\t\t8排序\n");printf("\t5保存学生资料\t\t6输出学生资料\t\t0结束\n");printf("********************************************************************************\n");}void printstart(){printf("-----------------------------------------------------------------------\n");}void Wrong(){printf("\n=====>提示:输入错误!\n");}void Nofind(){printf("\n=====>提示:没有找到该学生!\n");}void printc() /* 本函数用于输出中文*/{printf(" 学号\t 姓名性别年龄英语成绩数学成绩C语言成绩总分平均分学院班级身份证电话住址\n");}void printe(Node *p)/* 本函数用于输出英文*/{printf("%-12s%-8s%-6s%-6d%-6d%-6d%-6d%-6d%-8d%-20s%-15s%-20 s%-15s%-20s\n",p->data.num,p->,p->data.sex,p->data.age,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave,p ->data.xueyuan,p->data.banji,p->data.ID,p->data.phone,p->data.address);}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->,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->); getchar();printf("请你输入性别:");scanf("%s",p->data.sex); getchar();printf("请你输入年龄:");scanf("%d",&p->data.age); getchar();printf("请你输入c语言成绩:");scanf("%d",&p->data.cgrade); getchar();printf("请你输入数学成绩:"); scanf("%d",&p->data.mgrade); getchar();printf("请你输入英语成绩:"); scanf("%d",&p->data.egrade); getchar();printf("请你输入学院名:");scanf("%s",&p->data.xueyuan); getchar();printf("请你输入班级:");scanf("%s",&p->data.banji); getchar();printf("请你输入身份证:");scanf("%s",&p->data.ID); getchar();printf("请你输入电话:");scanf("%s",&p->data.phone); getchar();printf("请你输入家庭住址:");scanf("%s",&p->data.address);getchar();p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.ave=p->data.totle / 3;/* 信息输入已经完成*/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();}elseNofind();}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();}elseNofind();}elseWrong();}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;}elseNofind();}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;}elseNofind();}elseWrong();}void Modify(Link l){Node *p;char findmess[20];if(!l->next){printf("\n=====>提示:没有资料可以修改!\n"); return;}printf("请你输入要修改的学生学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("请你输入新学号(原来是%s):",p->data.num); scanf("%s",p->data.num);getchar();printf("请你输入新姓名(原来是%s):",p->); scanf("%s",p->);getchar();printf("请你输入新性别(原来是%s):",p->data.sex); scanf("%s",p->data.sex);printf("请你输入新年龄(原来是%d):",p->data.age);scanf("%d",&p->data.age);getchar();printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade);getchar();printf("请你输入新的数学成绩(原来是%d分):",p->data.mgrade); scanf("%d",&p->data.mgrade);getchar();printf("请你输入新的英语成绩(原来是%d分):",p->data.egrade); scanf("%d",&p->data.egrade);getchar();printf("请你输入新学院名(原来是%s):",p->data.xueyuan);scanf("%s",p->data.xueyuan);getchar();printf("请你输入新班级(原来是%s):",p->data.banji);scanf("%s",p->data.banji);getchar();printf("请你输入新身份证(原来是%s):",p->data.ID);scanf("%s",p->data.ID);getchar();printf("请你输入新电话(原来是%s):",p->data.phone);scanf("%s",p->data.phone);getchar();printf("请你输入新家庭住址(原来是%s):",p->data.address);scanf("%s",p->data.address);getchar();p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.ave=p->data.totle/3;printf("\n=====>提示:资料修改成功,注意保存!\n");shoudsave=1;}elseNofind();}void Disp(Link l){int count=0;Node *p;p=l->next;if(!p){printf("\n=====>提示:没有资料可以显示!\n"); return;}printf("\t\t\t\t显示结果\n");printstart();printc();printf("\n");while(p){printe(p);p=p->next;}printstart();printf("\n");}void Tongji(Link l){Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点*/ Node *r=l->next;if(!r){printf("\n=====>提示:没有资料可以统计!\n");return ;}pm=pe=pc=pt=pa=r;while(r!=NULL){if(r->data.cgrade>=pc->data.cgrade)pc=r;if(r->data.mgrade>=pm->data.mgrade)pm=r;if(r->data.egrade>=pe->data.egrade)pe=r;if(r->data.totle>=pt->data.totle)pt=r;if(r->data.ave>=pa->data.ave)pa=r;r=r->next;}printf("------------------------------统计结果--------------------------------\n");printf("总分最高者:\t%s %d分\n",pt->,pt->data.totle);printf("平均分最高者:\t%s %d分\n",pa->,pa->data.ave);printf("英语最高者:\t%s %d分\n",pe->,pe->data.egrade);printf("数学最高者:\t%s %d分\n",pm->,pm->data.mgrade);printf("c语言最高者:\t%s %d分\n",pc->,pc->data.cgrade); printstart();}void Sort(Link l){Link ll;Node *p,*rr,*s;int sortoption;ll=(Link)malloc(sizeof(Node)); /* 用于做新的连表*/ll->next=NULL;if(l->next==NULL){printf("\n=====>提示:没有资料可以排序!\n");return ;}p=l->next;printstart();printf ("\t0按学号排序\t\t1按成绩排序");printstart();scanf("%d",&sortoption);if(sortoption==1)while(p){ s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/ s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}else while(p){ s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && (strcmp(rr->next->data.num,p->data.num))<=0) rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}free(l);l->next=ll->next;printf("\n=====>提示:排序已经完成!\n"); }void Save(Link l){FILE* fp;Node *p;int flag=1,count=0;fp=fopen("e:\\student","wb");if(fp==NULL){printf("\n=====>提示:重新打开文件时发生错误!\n"); exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}}if(flag){printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count);shoudsave=0;}fclose(fp);}void main(){Link l;/* 连表*/FILE *fp; /* 文件指针*/int sel;char ch;char jian;int count=0;Node *p,*r;printf("\t\t\t\t学生成绩管理系统\n\t\t\t青岛理工大学计算机工程学院计算091\n\t\t\t 梁德智200907030\n");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("e:\\student","rb");if(fp==NULL){printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");scanf("%c",&jian);if(jian=='y'||jian=='Y')fp=fopen("e:\\student","wb");elseexit(0);}printf("\n=====>提示:文件已经打开,正在导入记录,关闭后打开可执行文件\n");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中*/{p->next=NULL;r->next=p;r=p; /* 将该接点挂入连中*/count++;}}fclose(fp); /* 关闭文件*/printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);while(1){menu();printf("请你选择操作:");scanf("%d",&sel);if(sel==0){if(shoudsave==1){ getchar();printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n"); scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}printf("\n=====>提示:你已经退出系统,再见!\n"); break;}switch(sel){case 1:Add(l);break; /* 增加学生*/case 2:Del(l);break;/* 删除学生*/case 3:Qur(l);break;/* 查询学生*/case 4:Modify(l);break;/* 修改学生*/case 5:Save(l);break;/* 保存学生*/case 6:Disp(l);break;case 7:Tongji(l);break;case 8:Sort(l);break;default: Wrong();getchar();break;}}}。
#include〈stdio.h>#include〈stdlib.h〉#include<string.h〉int input(struct studcode **);//输入学生信息的函数void instruct(void);//打印提示信息void picture();//制表函数void output(struct studcode *);//输出函数void search(struct studcode *);//查找信息函数int increase(struct studcode *);//增加学生信息的函数void dele(struct studcode **);//删除学生记录的函数void printall(struct studcode *);//输出全部学生信息的函数void average(struct studcode *headp,struct analysis **head );//统计各科目平均分int sort(struct analysis **head);//排序函数(升序排列)void date_load(struct studcode **headp);//程序开始载入信息void date_save(struct studcode *headp);//程序结束保存数据struct analysis{char name_ex[20];//实验名称int number;//统计到课人数float aver;//平均分struct analysis *next;};struct student{char name_tea[20];//教师名字char name_stu[20];//学生名字char clas[20];//班级char name_ex[20];//实验名称float match;//分数};struct studcode{struct student date;struct studcode *next;//建立链表的指针};int main(){char choose;struct studcode *head=NULL;struct analysis *head1=NULL;//date_load(&head);instruct();printf("\n请选择功能:”);choose=getchar();while(choose!=’0')//输入0结束程序{switch(choose){case ’1':input(&head);//建立链表getchar();getchar();break;case ’2’:search(head);//查找信息getchar();getchar();break;case ’3':dele(&head);//删除信息getchar();getchar();break;case '4’:increase(head);//增加信息getchar();getchar();break;case ’5’:printall(head);//输出全部信息getchar();getchar();break;case '6':average( head,&head1 );//统计各科平均分并升序输出getchar();getchar();break;default: printf(”\n 选择错误,重选\n");}instruct();printf(”\n请选择功能:”);choose=getchar();}s ystem("cls”);date_save(head);printf("谢谢使用本系统\n");return 0;}void instruct(void){system(”cls");printf(”\n\t\t\t 试验管理系统\t\t\t\t ”);printf("\n\t\t\t 1 建立学生信息链表\t\t\t\t ");printf(”\n\t\t\t 2 搜索学生相关信息\t\t\t\t ”);printf(”\n\t\t\t 3 删除某个学生信息\t\t\t\t ");printf(”\n\t\t\t 4 增加某个学生信息\t\t\t\t ”);printf("\n\t\t\t 5 输出链表全部信息\t\t\t\t ”);printf(”\n\t\t\t 6 统计各科目平均分\t\t\t\t ”);printf("\n\t\t\t 0 退出程序\t\t\t\t ");}int input(struct studcode **headp){struct studcode *p ,*tail;char a[4];system(”cls");date_load(headp);if(*headp!=NULL){printf("链表信息载入成功");return 1;}else{printf(”目前没有数据保存请从终端输入数据");}printf("\n\t\t\t 成绩输入功能\t\t\t\t ”);p=(struct studcode *)malloc(sizeof(struct studcode ));if(p==NULL){printf(”error");exit(—1);}printf(”\n请按提示输入相关信息");printf(”\n教师姓名:");scanf("%s",p—>_tea);printf(”学生姓名:");scanf("%s”,p->_stu);printf("学生班级:”);scanf(”%s",p—〉date。
#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。
学生管理系统c语言源代码学生管理系统c语言源代码#include stdio.h#include dos.h#include string.h#include stdlib.h#include malloc.h#define SIZE 8struct student{char name;char num;int score;float ave;struct student *next;}stu[SIZE],temp,s;void shuru(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf(“Define a rangeclass number:");scanf("%d",printf("Input the total number of the class(a):"); scanf("%d",length);if(lengtha)flag=0;}for(i=0;ilength;i++){printf("\n请输入学生的信息:");printf("\n输入姓名:");scanf("%s",stu[i].name);printf("\n输入序号.:");scanf("%s",stu[i].num);printf("\n输入成绩:\n");sum=0;for(j=0;jj++){printf("score %d:",j+1);scanf("%d",stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}学生管理系统c语言源代码fp=fopen("stu1.txt","w");for(i=0;ilength;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1.txt","r");printf("\name\ NO. score1 score2 score3 sum ave\n");for(i=0;ilength;i++){fread(stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i ].score,stu[i].score,stu[i].score,sum=stu[i].score+stu[i].score+stu[i].score,stu[i].ave);}}void chaxun(){ FILE *fp, *fp1;char n,name;int i,j,k,t,m,flag=1;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");k=i;printf("\nPlease select the menu(1.number ):"); scanf("%d",switch(m){case 1:printf("\nchaxun number:");scanf("%s",n);for(flag=1,i=0;ii++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nchaxun name:");scanf("%s",name);for(flag=1,i=0;ii++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;学生管理系统c语言源代码}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2.txt","w");printf(" name NO. score1 score2 score3ave\n");fwrite(stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score,stu[j].score,stu[j].score,stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.__ ):");scanf("%d",switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",s.score,s.score,s.score);s.ave=(s.score+s.score+s.score)/3.0;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)学生管理系统c语言源代码printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].aves.avett++);printf("\nnow:\n");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score,s.score, s.score,s.ave);for(i=t;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number;if((fp=fopen("stu1.txt","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;学生管理系统c语言源代码printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flagii++){if(strcmp(number,stu[i].num)==0){for(t=i;tt++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;jj++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1.txt","wb");for(i=0;ii++)fwrite(stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1.txt","r");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score, stu[i].score,stu[i].score,stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;ii++)for(j=i+1;jj++)学生管理系统c语言源代码if(stu[i].avestu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num); for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;ii++){labe1=0;if(stu[i].ave60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;jj++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;ii++)学生管理系统c语言源代码{b=stu[i].score[j]/10;if(b6)a5++;elseif(b=6b7)a6++;elseif(b=7b8)a7++;elseif(b=8b9)a8++;if(b=9b10)a9++;elseif(b==10)a10++;}printf(" 不及格is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf(" ____\n"); printf(" 欢迎进入学生成绩管理系统\n");printf(" ____\n"); while(1){printf("\n选择菜单:\n");printf("\n");printf(" 1.输入 2.查询 3.排序 4.修改 5.统计 6.退出\n"); scanf("%d",switch(a){case 1: shuru();break;case 2: chaxun(); break;case 3: paixu(); break;case 4: xiugai(); break;学生管理系统c语言源代码case 5: tongji();break; case 6: exit(0); }。
#include<stdio.h>#include<string.h>struct base{char num[10];int c;char nam[10];float g[4];} f[100];int n=0;int main(){ void printm();void input();void delet();void select();void order();void output();char p='0';while (p!='6'){if ((p>='0')&&(p<='6'))printm();scanf("%c",&p);switch (p){case '1':input();break;case '2':delet();break;case '3':select();break;case '4':order();break;case '5':output();break;case '6':break;}}return 0;}void printm(){printf("1.input\n2.delete\n3.select\n4.order\n5.output\n6.quit\nplease input your option\n"); }void input(){char c1[]={"yes"};while (strcmp(c1,"yes")==0){n++;printf("Id ");scanf("%s",&f[n].num);printf("class ");scanf("%d",&f[n].c);printf("name ");scanf("%s",&f[n].nam);printf("score1 ");scanf("%f",&f[n].g[0]);printf("score2 ");scanf("%f",&f[n].g[1]);printf("score3 ");scanf("%f",&f[n].g[2]);f[n].g[3]=f[n].g[1]+f[n].g[2]+f[n].g[0];printf("continue?\n");scanf("%s",&c1);}}void delet(){int i,j;char plt[10],c1[]={"yes"};scanf("%s",&plt);while (strcmp(c1,"yes")==0){j=0;for (i=1;i<=n;i++)if ((strcmp(plt,f[i].num)==0)||(strcmp(plt,f[i].nam)==0)){j=i;break;}if (j!=0){n--;for(i=j;i<=n;i++)f[i]=f[i+1];}for (i=1;i<=n;i++){printf("%s,%d,%s",f[i].num,f[i].c,f[i].nam);for (j=0;j<4;j++) printf(",%.1f",f[i].g[j]);printf("\n");}printf("continue?\n");scanf("%s",&c1);}}void select(){char pl[10],c1[10]={"yes"};int i,t,j;while(strcmp(c1,"yes")==0){scanf("%s",&pl);i=0;t=0;while (pl[i]!='\0'){t=t*10+pl[i]-48;i++;}for (i=1;i<=n;i++)if ((strcmp(f[i].num,pl)==0)||(t==f[i].c)){printf("%s,%d,%s",f[i].num,f[i].c,f[i].nam);for (j=0;j<4;j++) printf(",%.1f",f[i].g[j]);printf("\n");}printf("continue?\n");scanf("%s",&c1);}}void order(){int i,j,k,a,b;struct base t;for (i=1;i<n;i++){k=i;for (j=i+1;j<=n;j++)if (f[k].c>f[j].c)k=j;else if (f[k].c==f[j].c)if (f[k].g[3]<f[j].g[3]) k=j;t=f[i];f[i]=f[k];f[k]=t;}for (i=1;i<=n;i++){printf("%s,%d,%s",f[i].num,f[i].c,f[i].nam);for (j=0;j<4;j++) printf(",%.1f",f[i].g[j]);printf("\n");}}void output(){int i,j;for (i=1;i<=n;i++){printf("%s,%d,%s",f[i].num,f[i].c,f[i].nam);for (j=0;j<4;j++) printf(",%.1f",f[i].g[j]);printf("\n");}}。
#include "stdio.h"#include "conio.h"#include "string.h"#include "stdlib.h"#define PF printf#define SF scanfstatic int n,i;struct address_book{char name[20];int num;char sex;char clas[40];long telephone;char addr[40];}stud[200];void add(){char j;front1:system("cls"); /*Clean Screen*/PF("\n");PF("\n Please enter to add name:");SF("%s",stud[n].name);PF("\n Please enter to add Student ID:");SF("%d",&stud[n].num);PF("\n Please enter to add Sex(F/M):");SF("\n%c",&stud[n].sex);PF("\n Please enter to add Class:");SF("%s",&stud[n].clas);PF("\n Please enter to add Phone number:");SF("%ld",&stud[n].telephone);PF("\n Please enter to add Address:");SF("%s",stud[n].addr);getchar();n++;PF("If go on (Y/N)?:");j=getchar(); getchar();if(j=='y'||j=='Y') goto front1; /*Enter records again */}void del(){int k=0,m,i;char j;front2:system("cls"); /*Clean Screen*/PF("\n Please enter to delete Student ID:");scanf("%d",&m);getchar();for(i=0;i<n;i++)if(m==stud[i].num){ k=1;break;} /*Locate records */if(k==1) /*Delete records*/ { for(k=i;k<n-1;k++){ stud[k]=stud[k+1];}n--;PF("Deleted\n\n");}else{PF("Can not find to delete records!\n");PF("Press the enter key to return:");getchar();}PF("If go on (Y/N)?:");j=getchar(); getchar();if(j=='y'||j=='Y') goto front2;}void find(){int i,k,s=0; char j;front3:s=0;system("cls"); /*Clean Screen*/PF("\n Please enter to locate Student ID: ");SF("%d",&k);for(i=0;i<n;i++)if(k==stud[i].num)PF(" Name Student ID Sex Class Phone number Address \n");PF(" %-10s%-8d %c %-20s%-8ld %-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);s=1;}if(s==0)PF("There is no this person!\n");getchar();PF("If go on locating (Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y') goto front3;getchar();}void arrange(){int k,i;struct address_book t;system("cls"); /*Clean Screen */PF("Name Student ID Sex Class Phone number Address \n");for(k=0;k<n-1;k++)for(i=0;i<n-k-1;i++)if(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}else continue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF(" %-10s%-8d %c %-20s%-8ld %-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("Press the enter key to return!");getchar();getchar();}void change(){int k=0,m;char j;front5:system("cls"); /*Clean Screen */PF("\n Please enter the Student ID of change words:");SF("%d",&m);getchar();for(i=0;i<n;i++)if(m==stud[i].num) { k=1;break; } /*Locate*/if(k==1) /*Revise*/{ PF("\n");PF("\n Please enter revised name:");SF("%s",stud[i].name);PF("\n Please enter revised Student ID:");SF("%d",&stud[i].num);PF("\n Please enter revised Sex(F/M):");SF("\n%c",&stud[i].sex);PF("\n Please enter revised Class:");SF("%s",&stud[i].clas);PF("\n Please enter revised Phone number:");SF("%ld",&stud[i].telephone);PF("\n Please enter revised Address:");SF("%s",stud[i].addr);PF("Revise success\n");getchar();}if(k==0){PF("Can not find to revised records!\n");PF("Press the enter key to return:");getchar();}getchar();PF("If go on (Y/N)?:");j=getchar(); getchar();if(j=='y'||j=='Y') goto front5;}void main(){char j;PF("\n\n\n\n\n\n\t\t\t Welcome to use students management system");PF("\n\n\n\t\t\t\t Maker:Zhao Lele ");PF("\n\n\n\t\t\t\t 2011.6 ");PF("\n\n\n\n\n\t Press the enter key to main menu:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t ************\n");PF("\t\t\t\t * Main Menu *\n");PF("\t\t\t\t ************\n");PF("\t\t 1:Void student information 2:Delete student information \n\n");PF("\t\t 3:Locate student information 4: student information sort\n\n");PF("\t\t 5:Revise student information 6:Save student information \n\n");PF("\t Please choose[1/2/3/4/5/6]: ");j=getchar();if(j=='\n') goto loop; /*Return to main menu*/switch(j){case '1': add(); goto loop; /* Return to main menu */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;}}。