学生信息管理系统C++_第1页
学生信息管理系统C++_第2页
学生信息管理系统C++_第3页
学生信息管理系统C++_第4页
学生信息管理系统C++_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【学生成绩管理】   实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。能实现对学生信息的简单管理。具体要求:建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。 程序运行时显示一个简单的菜单,例如:   (1):信息输入(INPUT)   (2):总分统计(COUNT)   (3):总分排序(SORT)   (4):查询(QUERY)    

2、; 其中:     (1):对4个学生的信息进行输入;     (2):对每个学生的3门课程统计总分;      (3):对4个学生的总分按降序排序并显示出来;      (4):查询输入一个学号后,显示出该学生的有关信息; 用的大一做的系统,由保存数据结构的object.cpp 主函数 main.cpp 方法头文件use.h组成Use.h#ifndef USE_H_INCLUDED#define USE_H_INC

3、LUDED#endif / USE_H_INCLUDED#include <stdio.h>#include <windows.h>void Meau() printf("-欢迎使用学生信息管理系统-n-n输入指令完成命令: n1.打印信息n2.插入新信息n3.删除学生信息n4.查找学生n5.更改学生信息n6.排序显示学生信息n7.文件另存为ne.保存并退出n-n请输入指令n");void ZhuangBSave() int T=2; while(T-) system("cls"); Meau(); Sleep(500); pri

4、ntf("Saveing.r"); Sleep(500); printf("Saveing.r"); Sleep(500); printf("Saveing.r"); Sleep(500); printf("Saveing.r"); Sleep(500); printf("Saveing.r"); void ZhuangBExit() int c=6; while(c-) printf("Saved!And he program will be close in %d second.r

5、",c); Sleep(1000); Object.h#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>struct score long long num; char a10; int ch; int ma; int en; int c; int ph; int sum; struct score *next;void swap(score* p1,score* p2) int t; t=p1->num; p1->num=

6、p2->num; p2->num=t; t=p1->ch; p1->ch=p2->ch; p2->ch=t; t=p1->ma; p1->ma=p2->ma; p2->ma=t; t=p1->en; p1->en=p2->en; p2->en=t; t=p1->c; p1->c=p2->c; p2->c=t; t=p1->ph; p1->ph=p2->ph; p2->ph=t; char c10; strcpy(c,p1->a); strcpy(p1->

7、;a,p2->a); strcpy(p2->a,c);bool cmp0(score* p1,score* p2) return p1->num<p2->num;bool cmp01(score* p1,score* p2) if(p1->ch=p2->ch) return p1->num<p2->num; return p1->ch<p2->ch;bool cmp11(score* p1,score* p2) if(p1->ch=p2->ch) return p1->num<p2->n

8、um; return p1->ch>p2->ch;bool cmp02(score* p1,score* p2) if(p1->ma=p2->ma) return p1->num<p2->num; return p1->ma<p2->ma;bool cmp12(score* p1,score* p2) if(p1->ma=p2->ma) return p1->num<p2->num; return p1->ma>p2->ma;bool cmp03(score* p1,score*

9、p2) if(p1->en=p2->en) return p1->num<p2->num; return p1->en<p2->en;bool cmp13(score* p1,score* p2) if(p1->en=p2->en) return p1->num<p2->num; return p1->en>p2->en;bool cmp04(score* p1,score* p2) if(p1->c=p2->c) return p1->num<p2->num; ret

10、urn p1->c<p2->c;bool cmp14(score* p1,score* p2) if(p1->c=p2->c) return p1->num<p2->num; return p1->c>p2->c;bool cmp05(score* p1,score* p2) if(p1->ph=p2->ph) return p1->num<p2->num; return p1->ph<p2->ph;bool cmp15(score* p1,score* p2) if(p1->

11、;ph=p2->ph) return p1->num<p2->num; return p1->ph>p2->ph;bool cmp06(score* p1,score* p2) if(p1->sum=p2->sum) return p1->num<p2->num; return p1->sum<p2->sum;bool cmp16(score* p1,score* p2) if(p1->sum=p2->sum) return p1->num<p2->num; return p

12、1->sum>p2->sum;bool cmp07(score* p1,score* p2) if(strcmp(p1->a,p2->a)=1) return 1; else return 0;bool cmp17(score* p1,score* p2) if(strcmp(p1->a,p2->a)=1) return 0; else return 1;void ScoreSort(struct score *head,bool (*cmp)(score* p1,score* p2) struct score *p1,*p2; for(p1=head

13、; p1!=NULL; p1=p1->next) for(p2=p1->next; p2!=NULL; p2=p2->next) if(*cmp)(p1,p2) swap(p1,p2); void ScorePri(struct score *head) /int c=0; /system("cls"); printf("=n"); struct score *pri; pri=head; while(pri!=NULL) /printf("test %dn",c+); printf("学号:%I64d 姓

14、名:%sn语文:%d 数学:%d 英语:%d nc语言:%d 物理:%d n总成绩:%d 平均成绩:%.2lf n=n",pri->num,pri->a,pri->ch,pri->ma,pri->en,pri->c,pri->ph,pri->sum,pri->sum/5.0); pri=pri->next; printf("Endn");struct score *ScoreIns(struct score *head) struct score *p1,*p2,*newl; newl=(score*)m

15、alloc(sizeof(score); printf("请依次输入学号,语文,数学,英语,c语言,物理成绩n"); scanf("%I64d%d%d%d%d%d",&newl->num,&newl->ch,&newl->ma,&newl->en,&newl->c,&newl->ph); newl->sum=newl->ch+newl->ma+newl->en+newl->c+newl->ph; printf("输入学生姓名n

16、"); scanf("%s",newl->a); if(head=NULL) head=newl; newl->next=NULL; return head; p1=head; p2=p1->next; if(newl->num<head->num) newl->next=head; return newl; while(p2!=NULL) if(newl->num>p1->num&&newl->num<p2->num) newl->next=p2; p1->

17、next=newl; break; p1=p2; p2=p1->next; if(p2=NULL) p1->next=newl; newl->next=NULL; return head;void ZhuangBDel() Sleep(500); printf("删除中.r"); Sleep(500); printf("删除中.r"); Sleep(500); printf("删除中.r"); Sleep(500); printf("删除中.r"); Sleep(500); printf(&quo

18、t;删除中.r"); Sleep(500); printf("已删除!n");struct score *ScoreDel(struct score *head) struct score *p1,*p2,*h; long long n=0; int flag,flag1=0; int ord; char n1100,s2; flag=0; printf("输入1学号查询,输入2姓名查询n"); scanf("%d",&ord); if(ord=1) printf("请输入学号n"); scanf

19、("%I64d",&n); else if(ord=2) printf("请输入姓名n"); scanf("%s",n1); else printf("Illegal inputn"); return head; if(ord=1) printf("您要删除的学生学号为%I64d,是否删除?(Y/N)",n); scanf("%s",s); if(strcmp(s,"Y")!=0) return head; if(ord=2) printf(&qu

20、ot;您要删除的学生姓名为%s,是否删除?(Y/N)",n1); scanf("%s",s); if(strcmp(s,"Y")!=0) return head; p1=head; p2=p1->next; if(ord=1&&p1->num=n)|(ord=2&&strcmp(p1->a,n1)=0) h=p1->next; free(p1); flag=1; ZhuangBDel(); return h; else if(p1->next=NULL) flag1=0; while

21、(flag1!=0&&p2->next!=NULL) if(ord=1&&p1->num=n)|(ord=2&&strcmp(p2->a,n1)=0) p1->next=p2->next; free(p2); flag=1; p1=p2; p2=p1->next; if(flag1!=0&&p2->next=NULL) if(ord=1&&p1->num=n)|(ord=2&&strcmp(p2->a,n1)=0) p1->next=NUL

22、L; free(p2); flag=1; if(flag=0|flag1=1) printf("Error:Not Found!n"); else ZhuangBDel(); return head;void ScoreSearch(struct score *head) struct score *p1; long long n; int flag; flag=0; printf("输入需要查找的学号n"); scanf("%I64d",&n); for(p1=head; p1!=NULL; p1=p1->next)

23、if(p1->num=n) printf("姓名:%sn语文成绩:%dn数学成绩:%dn英语成绩:%dnC语言成绩:%dn物理成绩:%dn总成绩:%dn平均成绩:%.2lfn",p1->a,p1->ch,p1->ma,p1->en,p1->c,p1->ph,p1->sum,p1->sum/5.0); flag=1; if(flag=0) printf("Error:Not Found!n");void ScoreChange(struct score *head) long long m; int n

24、,a; char b100; struct score *p1; printf("请输入需要修改信息的学号n"); scanf("%I64d",&m); for(p1=head; p1!=NULL; p1=p1->next) if(p1->num=m) break; if(p1=NULL) printf("Not Found!n"); return; printf("输入1修改语文成绩n输入2修改数学成绩n输入3修改英语成绩n输入4修改c语言成绩n输入5修改物理成绩n输入6修改姓名n"); sc

25、anf("%d",&a); if(a=1) printf("该成员语文成绩为%d,请输入修改值n",p1->ch); scanf("%d",&n); p1->ch=n; printf("修改成功!n"); else if(a=2) printf("该成员数学成绩为%d,请输入修改值n",p1->ma); scanf("%d",&n); p1->ma=n; printf("修改成功!n"); else if(a

26、=3) printf("该成员英语成绩为%d,请输入修改值n",p1->en); scanf("%d",&n); p1->en=n; printf("修改成功!n"); else if(a=4) printf("该成员C语言成绩为%d,请输入修改值n",p1->c); scanf("%d",&n); p1->c=n; printf("修改成功!n"); else if(a=5) printf("该成员物理成绩为%d,请输入修改

27、值n",p1->ph); scanf("%d",&n); p1->ph=n; printf("修改成功!n"); else if(a=6) printf("该成员姓名为%s,请输入修改值n",p1->a); scanf("%s",b); strcpy(p1->a,b); printf("修改成功!n"); else printf("输入错误,退出修改n");void ScoreView(struct score *head) int

28、a,b; /bool *cmp(score* p1,score* p2); printf("输入1按语文成绩排列n输入2按数学成绩排列n输入3按英语成绩排列n输入4按C语言成绩排列n输入5按物理成绩排列n输入6按总成绩排列n输入7按名字排列n"); scanf("%d",&a); printf("输入0升序排列,输入1降序排列n"); scanf("%d",&b); if(a=1&&b=0) ScoreSort(head,&cmp01); if(a=1&&b=

29、1) ScoreSort(head,cmp11); if(a=2&&b=0) ScoreSort(head,cmp02); if(a=2&&b=1) ScoreSort(head,cmp12); if(a=3&&b=0) ScoreSort(head,cmp03); if(a=3&&b=1) ScoreSort(head,cmp13); if(a=4&&b=0) ScoreSort(head,cmp04); if(a=4&&b=1) ScoreSort(head,cmp14); if(a=5&

30、;&b=0) ScoreSort(head,cmp05); if(a=6&&b=0) ScoreSort(head,cmp06); if(a=6&&b=1) ScoreSort(head,cmp16); if(a=7&&b=0) ScoreSort(head,cmp07); if(a=7&&b=1) ScoreSort(head,cmp17); ScorePri(head); ScoreSort(head,cmp0);void Save(score *head,char a) FILE *fp; score* pri=he

31、ad; fp=fopen(a,"w"); while(pri!=NULL) fprintf(fp,"%I64d %d %d %d %d %d ",pri->num,pri->ch,pri->ma,pri->en,pri->c,pri->ph); fprintf(fp,"%s ",pri->a); pri=pri->next; return;void NSave(score* head) char a100,b100,c="/",d=".txt" p

32、rintf("输入另存为的地址n"); scanf("%s",a); printf("输入文件名称n"); scanf("%s",b); strcat(a,c); strcat(a,b); strcat(a,d); Save(head,a); return;struct score *Load(score *head) /int c=0; FILE *fp; fp=fopen("E:data.txt","r"); if(fp=NULL) /printf("No da

33、tan"); return NULL; freopen("E:data.txt","r",stdin); score *newl,*p1,*p2; newl=(score*)malloc(sizeof(score); while(scanf("%I64d%d%d%d%d%d",&newl->num,&newl->ch,&newl->ma,&newl->en,&newl->c,&newl->ph)!=EOF) /printf("tes

34、t %dn",c+); newl->sum=newl->ch+newl->ma+newl->en+newl->c+newl->ph; scanf("%s",newl->a); if(head=NULL) head=newl; newl->next=NULL; p1=head; p2=p1->next; if(newl->num<head->num) newl->next=head; head=newl; while(p2!=NULL) if(newl->num>p1->

35、num&&newl->num<p2->num) newl->next=p2; p1->next=newl; p1=p2; p2=p1->next; if(p2=NULL) p1->next=newl; newl->next=NULL; newl=(score*)malloc(sizeof(score); free(newl); freopen("CON","r",stdin); return head;Main.cpp#include <iostream>#include <

36、;stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include <windows.h>#include "use.h"using namespace std;struct score *Load(score *head);void ScorePri(struct score *head);struct score *ScoreIns(struct score *head);struct score *ScoreDel(struct score *head);void ScoreSearch(struct score *head);void ScoreChange(struct score *head);void ScoreV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论