付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.【学生成绩管理】实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。能实现对学生信息的简单管理。具体要求:建立一个 4 个学生的信息登记表,每个学生的信息包括:学号,姓名,和 3 门课程的成绩( FOX,C,ENGLISH)。程序运行时显示一个简单的菜单,例如:(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 <stdio.h>#include <windows.h>void Meau()printf("-欢迎使用学生信息管理系统-n-n 输入指令完成命令:n1. 打印信息n2. 插入新信息 n3. 删除学生信息 n4. 查找学生 n5. 更改学生信息 n6. 排序显示学生
3、信息 n7. 文件另存为 ne. 保存并退出 n-n 请输入指令 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("Saveing.r");Sleep(500);printf("Sa
4、veing.r");void ZhuangBExit()int c=6;while(c-)printf("Saved!And he program will be close in %d second.r",c); Sleep(1000);Object.h#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>struct scorelong long num;char a10;int ch;int ma;int en;i
5、nt 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->en=t;t=p1->c;p1->c=p2->c;p2->c=t;t=p1
6、->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->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 cmp1
7、1(score* p1,score* p2)if(p1->ch=p2->ch)return p1->num<p2->num;.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<p
8、2->num;return p1->ma>p2->ma;bool cmp03(score* p1,score* 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*
9、p2)if(p1->c=p2->c)return p1->num<p2->num;return 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&l
10、t;p2->ph;.bool cmp15(score* p1,score* p2)if(p1->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->
11、;sum)return p1->num<p2->num;return p1->sum>p2->sum;bool cmp07(score* p1,score* p2)if(strcmp(p1->a,p2->a)=1)return 1;elsereturn 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*
12、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 *head)/int c=0;/system("cls");printf("=n");struct score *pri;pri=head;while(pri!=NULL)/printf("test %dn",c+)
13、;printf(" 学号 :%I64d姓名: %sn 语文 :%d数学 :%d英语 :%dnc 语言 :%d物理 :%dn总成绩 :%d平均成绩 :%.2lfn=n",pri->num,pri->a,pr i->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
14、,*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,&newl->c,&newl->ph);newl->sum=newl->ch+newl->ma+newl->en+newl->c+newl->
15、;ph;printf(" 输入学生姓名 n");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->ne
16、xt=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);printf(" 删除中 .r");Sleep(500);printf(" 删除中 .r");Sleep(500);printf(" 删除中 .r");Sleep(500);printf(
17、" 删除中 .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");sc
18、anf("%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("
19、您要删除的学生姓名为 %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;elseif(p1->next=NULL) flag1=0;while(flag1!=0&
20、&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=NULL;free(p2);flag=1;if(
21、flag=0|flag1=1)printf("Error:Not Found!n");elseZhuangBDel();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)if(p1->num=n)printf(" 姓名:%
22、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;struc
23、t 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");scan
24、f("%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=
25、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,请
26、输入修改值 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");elseprintf(" 输入错误,退出修改 n");void ScoreView(struct score *head)
27、int 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
28、,&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,cmp13);if(a=4&&b=0)ScoreSort(head,cmp04);if(a=4&&b=1)ScoreSort(head
29、,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)FILE *fp;score* p
30、ri=head;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"printf(&qu
31、ot; 输入另存为的地址 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 datan");return
32、 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("test %dn",c+);newl-&
33、gt;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->num&&newl->num<p2-&g
34、t;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 <stdio.h>#include <stdlib.h>#inclu
35、de <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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 库房商品差异奖惩制度
- 学生会学术部奖惩制度
- 前介工程部考核奖惩制度
- 中学生背书奖惩制度
- 物业中介员工奖惩制度
- 行政机关驾驶员奖惩制度
- 秸秆禁烧工作奖惩制度
- 保安绩效考核奖惩制度范本
- 个人租赁公司奖惩制度
- 数字货币操作奖惩制度
- 零碳产业园区实施路径规划
- 机电排灌培训
- 格宾笼技术教学课件
- 农业烘干设备租赁合同(2025年风险承担)
- 胆总管结石课件
- 档案方面的课题申报书范文
- 收纳劳动课件
- 2025浙江绍兴市原水集团有限公司下属企业招聘1人考试笔试备考试题及答案解析
- GB/T 46605-2025硫化橡胶或热塑性橡胶动态耐切割性能的测定
- 2025年10月自考05677法理学试题及答案含评分参考
- 2025年建筑工程项目管理综合能力测评题库附答案
评论
0/150
提交评论