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

下载本文档

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

文档简介

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

2、后,显示出该学生的有关信息;用的大一做的系统,由保存数据结构的 object.cpp 主函数 main.cpp 方法头 文件 use.h 组成Use.h#ifndef USE_H_INCLUDED#define USE_H_INCLUDED#endif / USE_H_INCLUDED#include #include void Meau()printf( 欢 迎 使 用 学 生 信 息 管 理 系 统nn 输入指令完成命令: n1. 打印信息n2. 插入新信息 n3.删除学生信息 n4.查找学生 n5.更改学生信息 n6.排序显示学 生信息n7.文件另存为 ne.保存并退出 nn 请输入指令

3、n);void ZhuangBSave()int T=2; while(T-)system(cls);Meau();Sleep(500);printf(Saveing.r);Sleep(500);printf(Saveing.r);Sleep(500);printf(Saveing.r);Sleep(500);printf(Saveingr);Sleep(500);printf(Saveingr);void ZhuangBExit()int c=6;while(c-)printf(Saved!And he program will be close in %d second.r,c);Slee

4、p(1000);Object.h#include #include #include #include struct scorelong 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=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-e

5、n=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-a,p2-a);strcpy(p2-a,c);bool cmp0(score* p1,score* p2)return p1-numnum;bool cmp01(score* p1,score* p2)if(p1-ch=p2-ch)return p1-numnum;return p1-chch;bool cmp11(score* p1,score* p2)if(p1-ch=p2-ch)return p1-num

6、num;return p1-chp2-ch;bool cmp02(score* p1,score* p2) if(p1-ma=p2-ma) return p1-numnum; return p1-mama;bool cmp12(score* p1,score* p2)if(p1-ma=p2-ma)return p1-numnum;return p1-map2-ma;bool cmp03(score* p1,score* p2)if(p1-en=p2-en)return p1-numnum;return p1-enen;bool cmp13(score* p1,score* p2)if(p1-e

7、n=p2-en)return p1-numnum;return p1-enp2-en;bool cmp04(score* p1,score* p2)if(p1-c=p2-c)return p1-numnum;return p1-cc;bool cmp14(score* p1,score* p2)if(p1-c=p2-c)return p1-numnum;return p1-cp2-c;bool cmp05(score* p1,score* p2)if(p1-ph=p2-ph)return p1-numnum; return p1-phph;bool cmp15(score* p1,score*

8、 p2) if(p1-ph=p2-ph)return p1-numnum;return p1-php2-ph;bool cmp06(score* p1,score* p2) if(p1-sum=p2-sum)return p1-numnum; return p1-sumsum;bool cmp16(score* p1,score* p2) if(p1-sum=p2-sum)return p1-numnum; return p1-sump2-sum;bool cmp07(score* p1,score* p2) if(strcmp(p1-a,p2-a)=1)return 1;elsereturn

9、 0;bool cmp17(score* p1,score* p2) if(strcmp(p1-a,p2-a)=1)return 0;elsereturn 1;void ScoreSort(struct score *head,bool (*cmp)(score* p1,score* p2) struct score *p1,*p2; for(p1=head; 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 *hea

10、d)/int c=0;/system(cls);printf(=n); struct score *pri;pri=head;while(pri!=NULL)/printf(test %dn,c+);printf( 学号:%I64d姓名: %sn 语文:%d 数学:%d 英语:%dnc 语言:%d 物理 :%d n 总成绩 :%d 平均成绩 :%.2lfn=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

11、(struct score *head)struct score *p1,*p2,*newl;newl=(score*)malloc(sizeof(score);printf( 请依次输入学号,语文,数学,英语, c 语言,物理成绩 n); scanf(%I64d%d%d%d%d%d,&newl-num,&newl-ch,&newl-ma,&newl-en,&new l-c,&newl-ph);newl-sum=newl-ch+newl-ma+newl-en+newl-c+newl-ph;printf( 输入学生姓名 n); scanf(%s,newl-a);if(head=NULL)head

12、=newl; newl-next=NULL;return head;p1=head;p2=p1-next;if(newl-numnum)newl-next=head;return newl;while(p2!=NULL) if(newl-nump1-num&newl-numnum) newl-next=p2;p1-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)

13、;printf( 删除中 .r);Sleep(500);printf( 删除中 .r);Sleep(500);printf( 删除中 r);Sleep(500);printf( 删除中 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)

14、printf( 请输入学号 n); scanf(%I64d,&n);else if(ord=2)printf( 请输入姓名 n); scanf(%s,n1);elseprintf(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( 您要删除的学生姓名为 %s,是否删除? (Y/N),n1); scanf(%s,s);if(strcmp(s,Y)!=0) return h

15、ead; 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;elseif(p1-next=NULL) flag1=0; while(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=N

16、ULL)if(ord=1&p1-num=n)|(ord=2&strcmp(p2-a,n1)=0) p1-next=NULL; 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

17、=p1-next) 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,a;char b100;struct score *p1;pr

18、intf( 请输入需要修改信息的学号 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); scanf(%d,&a);if(a=1)printf( 该成员语文成绩为 %d,请输入修改值 n,p1-ch); scanf(%d,&n);p1-ch=n;printf( 修改成功! n);els

19、e if(a=2)printf( 该成员数学成绩为 %d,请输入修改值 n,p1-ma); scanf(%d,&n); p1-ma=n;printf( 修改成功! n);else if(a=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,请输入修改值 n,

20、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 a,b;/bool *cmp(score* p1,score* p2);printf( 输入 1 按语文成绩排列 n 输入 2 按数学成绩排列 n 输入 3 按英语成 绩排列n 输入 4按 C语言成绩

21、排列 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=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,cmp

22、13);if(a=4&b=0)ScoreSort(head,cmp04);if(a=4&b=1)ScoreSort(head,cmp14);if(a=5&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)

23、FILE *fp;score* pri=head;fp=fopen(a,w);while(pri!=NULL)%d %d%dfprintf(fp,%I64d %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;printf( 输入另存为的地址 n); scanf(%s,a);printf( 输入文件名称 n); scanf(%s,b); strcat(a,c);str

24、cat(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 datan);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

25、-en, &newl-c,&newl-ph)!=EOF)/printf(test %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-numnum)newl-next=head; head=newl;while(p2!=NULL) if(newl-nump1-num&newl-numnum) newl-next=p2;p1-next=newl;p1=p2; p2=p1

26、-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 #include #include #include #include #include #include use.husing 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 ScoreView(struct

温馨提示

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

评论

0/150

提交评论