1、学生综合测评系统# include # include stdlib.h # include string.h#include struct student *Read();void save(struct student *head);void sinput(struct student *p);struct student *input();void paixu_num(struct student *head);struct student *insert();struct student *alter();struct student *del();void find_num(stru
2、ct student *phead);void find_name(struct student *phead);void output();void min_student(struct student *phead);void max_student(struct student *phead);void ave_student(struct student *phead);void every_student(struct student *phead);void score_paixu(struct student *head);void help();void tj_menu(str
3、uct student *head);void find_menu(struct student *head);void menu();struct student/定义学生信息结构数组,用于学生信息输入 char number13;char name13;char sex4;char adds15;char phone14; char qq14;float chinese,math,english,txhp,pinde,teacher;int zcmc,ksmc;double ave,zc;struct student *next;#define Len sizeof(struct stud
4、ent)int len; /链表长度int a=0,b=0,c=0,d=0,e=0;/用来存放成绩各阶的人数char stu10;struct student *Read() /读取数据文件保存到链表中,返回指向此链表头指针struct student *head=NULL;struct student *p1, *p2;FILE *fp;cout请输入你要打开的文件(.dat)stu;if(fp=fopen(stu,rb+)=NULL) cout打开文件出错!endl;exit(0); while(!feof(fp) if( (p1=(struct student*)malloc(Len)=
5、NULL ) cout存申请出错next=p1;p2=p1; fclose(fp);return head;void save(struct student *head)/数据存盘FILE *fp;struct student *p;p=head;cout请输入你要存进去的文件(.dat)stu;if(fp = fopen(stu, wb)=NULL) cout无法打开文件!endl;system(pause);menu(); while(p) if(fwrite(p,Len,1,fp)!=1) cout写入数据出错next; cout数据存入成功!请按任意键继续!endl;getchar()
6、;fclose(fp);/单次输入void sinput(struct student *p)cout请输入学号:p-number;cout请输入: p-name;cout请输入性别: p-sex;cout请输入家庭住址: p-adds;cout请输入联系: p-phone;cout请输入qq: p-qq;cout请输入语文成绩:p-chinese;if(p-chinese100|p-chinese0)cout成绩输入不符合规定,请重新输入:p-chinese;cout请输入数学成绩:p-math;if(p-math100|p-math0)cout成绩输入不符合规定,请重新输入:p-math;
7、cout请输入英语成绩:p-english;if(p-english100|p-english0)cout成绩输入不符合规定,请重新输入:p-english;cout请输入同学互评分:p-txhp;if(p-txhp100|p-txhp0)cout成绩输入不符合规定,请重新输入:p-txhp;cout请输入品德成绩:p-pinde;if(p-pinde100|p-pinde0)cout成绩输入不符合规定,请重新输入:p-pinde;cout请输入任课教师评分:p-teacher;if(p-teacher100|p-teacher0)cout成绩输入不符合规定,请重新输入:p-teacher;p
8、-ave=(p-chinese+p-math+p-english)/3.0;p-zc=(p-ave*0.6+p-txhp*0.1+p-pinde*0.2+p-teacher*0.1);coutendl;coutendl;cout你刚输入的信息为:endl;couttt学号:numberendl;couttt:nameendl;couttt性别:sexendl;couttt家庭住址:addsendl;couttt联系:phoneendl;coutttQQ号:qqendl;couttt语文成绩:chineseendl;couttt数学成绩:mathendl;couttt英语成绩:englishen
9、dl;couttt品德成绩:pindeendl;couttt教师评分:teacherendl;coutendl;return;/学生成绩录入函数struct student *input()struct student *head=NULL,*p1,*p2;/输入p1,p2链表最后节点char ch=y;len=1; p2=p1=(struct student *)malloc(sizeof(struct student);cout请输入第len个学生的信息:endl;sinput(p1);coutendl;cout按n退出或按任意键继续ch;while(1) if(len=1)/作为头结点
10、head=p1;else p2-next=p1;p2=p1;if(ch=N|ch=n)break;p1=(struct student *)malloc(sizeof(struct student);system(cls);len+;cout请输入第len个学生的信息:endl;sinput(p1);coutendl;cout按n退出或按任意键继续ch; p2-next=NULL;paixu_num(head);cout输入学生信息完成!请按任意键返回主菜单!endl;getchar();return head;/学号排序void paixu_num(struct student *head)
11、 struct student t,*r,*p,*q;/t交换p、q,r头结点r=head; if(r=NULL) cout学生信息不存在,请先输入学生信息!next; while(q) if(strcmp(q-number,p-number)0) /qnumber);strcpy(t.name,q-name); strcpy(t.sex,q-sex); strcpy(t.adds,q-adds); strcpy(t.phone,q-phone); strcpy(t.qq,q-qq); t.chinese=q-chinese; t.math=q-math; t.english=q-englis
12、h; t.txhp=q-txhp; t.pinde=q-pinde; t.teacher=q-teacher; strcpy(q-number,p-number);strcpy(q-name,p-name); strcpy(q-sex,p-sex); strcpy(q-adds,p-adds); strcpy(q-phone,p-phone); strcpy(q-qq,p-qq); q-chinese=p-chinese; q-math=p-math; q-english=p-english; q-txhp=p-txhp; q-pinde=p-pinde; q-teacher=p-teache
13、r;strcpy(p-number,t.number);strcpy(p-name,t.name); strcpy(p-sex,t.sex); strcpy(p-adds,t.adds); strcpy(p-phone,t.phone); strcpy(p-qq,t.qq); p-chinese=t.chinese; p-math=t.math; p-english=t.english; p-txhp=t.txhp; p-pinde=t.pinde; p-teacher=t.teacher; q=q-next; r=r-next; /插入函数struct student *insert()st
14、ruct student *p,*p1,*head;head=Read();p1=head;p=(struct student *)malloc(sizeof(struct student);char num14,ch;cout请输入你要插入的前一个学生的学号:num;while(p1)if(!strcmp(p1-number,num)sinput(p);p-next=p1-next;p1-next=p;len+; elsep1=p1-next;cout按n退出或按任意键继续ch;if(ch=N|ch=n)break; cout学生信息插入成功!请按任意键返回!endl;getchar();r
15、eturn head;/修改学生信息struct student *alter()char temp13; struct student *p,*head;head=Read();p=head;couttemp;while(p) if(!strcmp(p-number,temp) sinput(p); p=p-next; coutendl;cout学生信息修改成功!请按任意键返回!endl;coutendl;system(pause);return head;/删除学生信息struct student *del() char temp13;int m=0;struct student *p1,
16、*p,*head;/p1删除head=Read();p1=p=head;cout请输入你要删除学生的学号:temp;while(p)if(strcmp(p1-number,temp)=0) if(p1=head)/删除的头结点head=p1-next;else p-next=p1-next;len-;m=1;cout学生信息删除成功!请按任意键返回主菜单.next; if(!m)cout查找不到这个信息!endl;return head;void find_num(struct student *head)/按学号查找 struct student *p=head;char temp9;int
17、 m = 0;cout请输入要查找的学生的学号temp;while(p!=NULL) if(strcmp(p-number,temp) = 0) cout该学生的具体信息为:endl;coutendl;coutendl;couttt学号:numberendl;couttt:nameendl;couttt性别:sexendl;couttt家庭住址:addsendl;couttt联系:phoneendl;coutttQQ号:qqendl;couttt语文成绩:chineseendl;couttt数学成绩mathendl;couttt英语成绩englishendl;couttt平均成绩aveendl
18、;couttt品德成绩pindeendl;couttt老师评分teacherendl;couttt综合成绩zcendl;score_paixu(head);couttt考试名次ksmcendl;couttt综测名次zcmcendl;coutendl;coutnext;/继续向下寻找if(!m)cout查找不到这个学号的信息!endl;cout按任意键返回主菜单endl;getchar();return ;void find_name(struct student *head)/按查找 struct student *p= head;char temp9;int m = 0;cout请输入要查找
19、的学生的temp;while(p) if(strcmp(p-name,temp) = 0) cout该学生的具体信息为:endl;coutendl;coutendl;cout学号:numberendl;couttt:nameendl;couttt性别:sexendl;couttt家庭住址:addsendl;couttt联系:phoneendl;coutttQQ号:qqendl;couttt语文成绩:chineseendl;couttt数学成绩mathendl;couttt英语成绩englishendl;couttt平均成绩aveendl;couttt品德成绩pindeendl;couttt老师
20、评分teacherendl;couttt综合成绩zcendl;score_paixu(head);couttt考试名次ksmcendl;couttt综测名次zcmcendl;coutendl;coutnext; if(!m)cout查找不到这个学号的信息!endl;cout按任意键返回主菜单endl;getchar();return ;void output()struct student *p,*head;head=Read();p=head;int i=1; while(p) coutendl;couttt学号:numberendl;couttt:nameendl;couttt性别:sex
21、endl;couttt家庭住址:addsendl;couttt联系:phoneendl;coutttQQ号:qqendl;couttt语文成绩:chineseendl;couttt数学成绩:mathendl;couttt英语成绩:englishendl;couttt品德成绩:pindeendl;couttt老师评分:teacherendl;couttt平均成绩:aveendl;couttt综合成绩:zcendl;score_paixu(head);couttt考试名次ksmcendl;couttt综合测评名次zcmcnext;i+; coutendl;coutendl;cout请按任意键返回主菜单chinesec2) c2=p-chinese;if(p-mathm2) m2=p-math;if(p-englishe2) e2=p-english;if(p-chinese+p-math+p-english)s2) s2=(p-chinese+p-math+p-english);if(p-pindep2) p2=p-pinde;if(p-txhpstu2) stu2=p-txhp;if(p-teachert2) t2=p-teacher;if(p-avea2)a2=p-ave;if(p-zczc2)zc2=p-zc;p=p-next; cout
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1