2022年c++成绩系统程序代码 .pdf
《2022年c++成绩系统程序代码 .pdf》由会员分享,可在线阅读,更多相关《2022年c++成绩系统程序代码 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计课程设计一:面向对象程序设计课程设计的目的本课程设计是在学习面向对象基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析,用户界面设计,程序设计基本技能和计巧。1.能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能够设计出问题的有效算法和程序。2.提高程序设计和调试能力。通过上机实习, 保证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并修改,进步提高程序的正确与设计水平。二:源程序的基本代码。#include #include #include /*定义头文件 */ #define LEN si
2、zeof(strUCt scorenode)(*定义一个字符函数结构* )#define DEBUG #include struct scorenode int number;/*学号 */ char name10;/*姓名 */ float yuwen;/*语文成绩 */ float yingyu;/*英语成绩 */ float shuxue;/*数学成绩 */ struct scorenode *next; ; typedef struct scorenode score; int n,k;/*n,k为全局变量,本程序中的函数均可以使用它*/ /*=*/ score *creat2311(
3、void) /* 函数 creat2311,功能:创建链表,此函数带回一个指向链表头的指针*/ score*head; score *p1,*p2,*p3,*max; int i,j; float fen; char t10; n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; /*开辟一个新单元*/ printf(请输入学生资料,输0 退出! ); repeat1: printf(请输入学生学号 ( 学号应大于0):);/*输入学号,学号应大于0*/ scanf(%d,&p1-number); while(p1-numbernumber); /*输入学号为
4、字符或小于0 时,程序报错,提示重新输入学号*/ if(p1-number=0) goto end;/*当输入的学号为0 时,转到末尾,结束创建链表*/ else p3=head; if(n0) for(i=0;inumber!=p3-number) p3=p3-next; else printf(学号重复 , 请重输 ! ); goto repeat1; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ printf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名 */ printf(请输入语文成绩 (0100) :);/*输入语文成绩,成绩应在0-10
5、0*/ scanf(%f,&p1-yuwen); while(p1-yuwenyuwen100) getchar(); printf(输入错误,请重新输入语文成绩);/*输入错误,重新输入语文成绩直到正确为止*/ scanf(%f,&p1-yuwen); printf(请输入英语成绩 (0100) :);/*输入英语成绩,成绩应在0-100*/ scanf(%f,&p1-yingyu); while(p1-yingyuyingyu100) getchar(); printf(输入错误,请重新输入英语成绩);/*输入错误,重新输入英语成绩直到正确为止*/ scanf(%f,&p1-yingyu)
6、; printf(请输入数学成绩 (0100) :);/*输入数学成绩,成绩应在0-100*/ scanf(%f,&p1-shuxue); while(p1-shuxueshuxue100) getchar(); printf(输入错误,请重新输入数学成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ head=NULL; while(p1-number!=0) n=n+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共
7、19 页 - - - - - - - - - if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(score *)malloc(LEN); printf(请输入学生资料,输0 退出 ! ); repeat2:printf(请输入学生学号 ( 学号应大于0):); scanf(%d,&p1-number);/*输入学号,学号应大于0*/ while(p1-numbernumber); /*输入学号为字符或小于0 时,程序报错,提示重新输入学号*/ if(p1-number=0) goto end;/*当输入的学号为0 时,转到末尾,结束创建链表*/ else
8、 p3=head; if(n0) for(i=0;inumber!=p3-number) p3=p3-next; else printf(学号重复 , 请重输 ! ); goto repeat2; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ printf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名 */ printf(请输入语文成绩 (0100) :); scanf(%f,&p1-yuwen);/*输入语文成绩,成绩应在0-100*/ while(p1-yuwenyuwen100) getchar(); printf(输入错误,请重新输入语文成绩
9、); scanf(%f,&p1-yuwen);/*输入错误,重新输入语文成绩直到正确为止*/ printf(请输入英语成绩 (0100) :); scanf(%f,&p1-yingyu);/*输入英语成绩,成绩应在0-100*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - while(p1-yingyuyingyu100) getchar(); printf(输入错误,请重新输入英语成绩); scanf(%f,&p1-yi
10、ngyu);/*输入错误,重新输入英语成绩直到正确为止*/ printf(请输入数学成绩(0100) :); scanf(%f,&p1-shuxue);/*输入数学成绩,成绩应在0-100*/ while(p1-shuxueshuxue100) getchar(); printf(输入错误,请重新输入数学成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ end: p1=head; p3=p1; for(i=1;in;i+) for(j=i+1;jnext; if(max-numberp1-number) k=max-number; max-nu
11、mber=p1-number; p1-number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max-name); strcpy(max-name,p1-name); strcpy(p1-name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max-yuwen; max-yuwen=p1-yuwen; p1-yuwen=fen; /*交换前后结点中的语文成绩,使之与学号相匹配*/ fen=max-yingyu; max-yingyu=p1-yingyu; p1-yingyu=fen; /*交换前后结点中的英语成绩,使之与学号相匹配
12、*/ fen=max-shuxue; max-shuxue=p1-shuxue; p1-shuxue=fen; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - /*交换前后结点中的数学成绩,使之与学号相匹配*/ max=head;p1=head;/*重新使 max,p 指向链表头 */ p2-next=NULL;/*链表结尾 */ printf(输入的学生数为 :%d 个! ,n); return(head); /*=*/ /
13、*=*/ score *load2311(score *head) /* 函数 load2311 ,功能 : 从文件读入学生记录*/ score *p1,*p2; int m=0; char filepn10; FILE *fp; printf(请输入文件路径及文件名:); scanf(%s,filepn);/*输入文件路径及名称*/ if(fp=fopen(filepn,r+)=NULL) printf(不能打开文件 ! ); return 0; fscanf(fp, 考试成绩治理系统 ); fscanf(fp,作者 : 周纯钢班级:信息 023 学号: 11 ); fscanf(fp,-
14、); fscanf(fp,学号 姓名语文 英语数学 ); fscanf(fp,- );/*读入表格域 */ printf( 考试成绩治理系统 ); printf( 作者 : 周纯钢班级:信息 023 学号: 11 ); printf(- ); printf(学号姓名 语文英语 数学 ); printf(- );/*打印表格域 */ m=m+1; if(m=1) p1=(score *)malloc(LEN); /*开辟一个新单元 */ fscanf(fp,%d%s%f%f%f,&p1-number,p1-name,&p1-yuwen,&p1-yingyu,&p1-shuxue); printf
15、(%d %s %.1f %.1f %.1f ,p1-number,p1-name,p1-yuwen,p1-yingyu,p1-shuxue); /*文件读入与显示*/ head=NULL; do 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(score *)malloc(LEN); /*开辟一个新单元 */ fscanf(
16、fp,%d%s%f%f%f ,&p1-number,p1-name,&p1-yuwen,&p1-yingyu,&p1-shuxue); printf(%d %s %.1f %.1f %.1f ,p1-number,p1-name,p1-yuwen,p1-yingyu,p1-shuxue); /*文件读入与显示 */ while(!feof(fp); p2-next=p1; p1-next=NULL; n=n+1; printf(- );/*表格下线 */ fclose(fp);/*结束读入,关闭文件*/ return (head); /*=*/ /*=*/ score *add2311(sco
17、re *head,score *stu) /* 函数 add2311, 功能:追加学生资料, 并且将所有学生资料按学号排序*/ score *p0,*p1,*p2,*p3,*max; int i,j; float fen; char t10; p3=stu=(score *)malloc(LEN);/*开辟一个新单元 */ printf( 输入要增加的学生的资料!); repeat4: printf(请输入学生学号 ( 学号应大于0) :); scanf(%d,&stu-number); /*输入学号,学号应大于0*/ while(stu-numbernumber);/*输入错误,重新输入学号
18、*/ /*/ if(stu-number=0) goto end2;/*当输入的学号为0 时,转到末尾,结束追加*/ else p3=head; if(n0) for(i=0;inumber!=p3-number) p3=p3-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - else printf(学号重复 , 请重输 ! ); goto repeat4; /*当输入的学号已经存在,程序报错,返回前面重新输入*/
19、/*/ printf(输入学生姓名: ); scanf(%s,stu-name); /*输入学生姓名 */ printf(请输入语文成绩(0100) :); scanf(%f,&stu-yuwen); /*输入语文成绩,成绩应在0-100*/ while(stu-yuwenyuwen100) getchar(); printf(输入错误,请重新输入语文成绩); scanf(%f,&stu-yuwen); /*输入错误,重新输入语文成绩直到正确为止*/ printf(请输入英语成绩(0100) :); scanf(%f,&stu-yingyu);/*输入英语成绩,成绩应在0-100*/ whil
20、e(stu-yingyuyingyu100) getchar(); printf(输入错误,请重新输入英语成绩); scanf(%f,&stu-yingyu);/*输入错误,重新输入英语成绩直到正确为止*/ printf(请输入数学成绩(0100) :); scanf(%f,&stu-shuxue);/*输入数学成绩,成绩应在0-100*/ while(stu-shuxueshuxue100) getchar(); printf(输入错误,请重新输入数学成绩); scanf(%f,&stu-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ p1=head; p0=stu; if(
21、head=NULL) /* 当原来链表为空时,从首结点开始存放资料*/ else/*原来链表不为空 */ if(p1-next=NULL)/*找到原来链表的末尾*/ p1-next=p0; p0-next=NULL;/*将它与新开单元相连接*/ else while(p1-next!=NULL)/*还没找到末尾,继续找*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - p2=p1;p1=p1-next; p1-next=p0
22、; p0-next=NULL; n=n+1; p1=head; p0=stu; for(i=1;in;i+) for(j=i+1;jnext; if(max-numberp1-number) k=max-number; max-number=p1-number; p1-number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max-name); strcpy(max-name,p1-name); strcpy(p1-name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max-yuwen; max-yuwen=p1-yuwen;
23、p1-yuwen=fen; /*交换前后结点中的语文成绩,使之与学号相匹配*/ fen=max-yingyu; max-yingyu=p1-yingyu; p1-yingyu=fen; /*交换前后结点中的英语成绩,使之与学号相匹配*/ fen=max-shuxue; max-shuxue=p1-shuxue; p1-shuxue=fen; /*交换前后结点中的数学成绩,使之与学号相匹配*/ max=head;p1=head;/*重新使 max,p 指向链表头 */ end2: printf(现在的学生数为 :%d个! ,n); 名师资料总结 - - -精品资料欢迎下载 - - - - - -
24、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - return(head); /*=*/ /*=*/ score *search2311(score *head) /* 函数 search2311, 功能:查询学生成绩*/ int number; score *p1,*p2; printf(输入要查询的学生的学号,); scanf(%d,&number); while(number!=0) if(head=NULL) printf( 没有任何学生资料! );return(head); pri
25、ntf(- ); printf(学号 姓名语文 英语数学 ); printf(- );/*打印表格域 */ p1=head; while(number!=p1-number&p1-next!=NULL) if(number=p1-number) printf(%d %s %.1f %.1f %.1f ,p1-number,p1-name,p1-yuwen,p1-yingyu,p1-shuxue); printf(- );/*打印表格域 */ else printf(%d不存在此学生 ! ,number); printf(输入要查询的学生的学号,); scanf(%d,&number); pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年c+成绩系统程序代码 2022 c+ 成绩 系统 程序代码
限制150内