ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:61.67KB ,
资源ID:17326406      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17326406.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统编码日记.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统编码日记.docx

1、学生成绩管理系统编码日记第一阶段:选择课题的阶段,刚开始老师布置下来大作业,一下子感觉到500行那么多,不知道写什么才能写到500行,尝试了多种程序的编写,但结果都不尽如人意,最后听到三班的张兄弟说要写一个图书馆的管理系统,我一下子就来了想法,想到写一个学生的成绩的管理系统。第二阶段:我开始着手进行代码的编写,因为平时用的更多的是面向过程的程序,所以刚开始写的时候就出现了好多问题目,比如说在继承的时候,有些调用就搞混了,这个时候我写了几个小类一个大类,小类是s_class , math, english,it,chinese 大类是 STUDENT ,下面具体把我的这一阶段的思路讲讲吧。这个时

2、候我的程序一开始遇到一个难题:1、就是怎么用类和对像来存储这么多的数据呢? 刚开始有尝试过对像数组之类的东西。但是写好一段较完整的代码后怎么编译都通不过,后来实现是没有办法,就重新拿起课本来看,看就看到上面有一首程序中是用类中的成员函数和数据成员的组合来实现这个存储的,我一下子恍然大悟,一下子就把输入的程序写了出来,但是编译的错误特别多,没有办法,只有一个一个地改了,把它给调试出来了。下面是这什么编译的比较重要的代码:class student:public s_class ,public math,public english,public it,public chinese public

3、:/数据都是从这个函数中输入的 char name8181; double sum81; char number8120; void getdata(int n) double score; int banjii; char xb; for(int i=1;i=n;i+) sumi=0; cout请输入第ibanjii; s_class:getdata(banjii,i); /* void getdata(int bj,int i) banjii=bj; int display(int i) return banjii; */ coutnumberi; coutnamei; coutxb; p

4、eople:getdata(xb,i); coutscore; sumi+=score; math:getdata(score,i); coutscore; sumi+=score; english:getdata(score,i); coutscore; sumi+=score; it:getdata(score,i); coutscore; sumi+=score; chinese:getdata(score,i); void display1(int n) /用来排序的(后来编译成功运行时,才知道这个根本实现不了排序) double a,b,c,d,f,e,g,h,k,w,su; int

5、 banj,banjii; char xh20;/ 学号 char xm20; /姓名 char se,se1;/ 性别 for(int i=1;i=n-1;i+) for(int j=i+1;jsumj) su=sumi; sumi=sumj; sumj=su; /change the sum; strcpy(xm,namei); strcpy(namei,namej); strcpy(namej,xm); /change the name strcpy(xh,numberi); strcpy(numberi,numberj); strcpy(numberj,xh); /change the

6、 number a=math:display(i); b=math:display(j); math:getdata(b,i); math:getdata(a,j); /change the score of math c=it:display(i); d=it:display(j); it:getdata(d,i); it:getdata(c,j); /change the score of it; e=english:display(i); f=english:display(j); english:getdata(f,i); english:getdata(e,j); /change t

7、he score of english; g=chinese:display(i); h=chinese:display(j); chinese:getdata(h,i); chinese:getdata(g,j); /change the score of chinese; se=people:display(i); se1=people:display(j); people:getdata(se1,j); people:getdata(se,i); /change the sex; banj=s_class:display(i); banjii=s_class:display(j); s_

8、class:getdata(banj,j); s_class:getdata(banjii,i); /change the banji; void display2(int n) /这个函数是用来输出每个同学的信息的 coutclass:tname:tnumber:tmath:tenglish:tIT:tchinese:tsum:endl; for(int i=1;i=n;i+) /*char t=people:display(i); if(t=f)cout女; else cout男; */ couts_class:display(i)tnamei tnumberitmath:display(

9、i) tenglish:display(i)ttit:display(i) tchinese:display(i)ttsumiendl; ; int main() student s; int num; coutnum; coutthe NO. of the student is: numendl; s.getdata(num); / 输入同学们的成绩 s.display1(num); /对同学们的成绩按总分从大到小进行排序 s.display2(num); / 输出排序后的同学们的成绩列表 int nn; 第三阶段; 这个阶段,我对程序的功能方面进行了相当的完善,主要是想开始实现这个小系统的

10、部分功能了,这阶段主要是在查找,修改,和计算方面的做了一些查试。1、还有个问题目就是有些功能的实现特别原始,就拿修改分数来说吧,这个时候我采用的还是把改后的某门分数和总分一起输进去。 后来解决我是在switch中设计了自动计算的代码,就达到了一定的智能化,也就是你只要输入哪门科目改为多少分,他们就会自己生成新的总分了。2、上图就是这个阶段遇到的又一个错误,函数太多,弄的乱七八糟了,连参数个数都搞乱了。所以写到这里,今天就没再写下去了。这一阶段重要代码如下: void student:display3(char *s,int n)/hunt for someone int i,t; for(i=

11、1;i=n;i+) if(strcmp(namei,s)=0) t=i;break; coutclass:tname:tnumber:tmath:tenglish:tIT:tchinese:tsum:endl; /* char tt=people:display(i); if(tt=f)cout女; else cout男; */对英文输入汉字输出作的改进 couts_class:display(i)tnamei tnumberitmath:display(i) tenglish:display(i)ttit:display(i) tchinese:display(i)ttsumiendl; v

12、oid student:display4(char *s,double gaifen,int k,double d,int n)/change the score int i,t; for(i=1;i=n;i+) if(strcmp(namei,s)=0) t=i;break; switch(k)/主要是用于转为哪一科目 case 1: math:getdata(gaifen,t);sumt=d;break; case 2: it:getdata(gaifen,t);sumt=d;break; case 3: chinese:getdata(gaifen,t);sumt=d;break; ca

13、se 4: english:getdata(gaifen,t);sumt=d;break; void student:display5(double fen,double wei,int n) /算通过某分数段的通过率。 coutclass:tname:tnumber:tmath:tenglish:tIT:tchinese:tsum:endl; int flag=0; for( int i=1;i=fen&sumi=wei) +flag; couts_class:display(i)tnamei tnumberitmath:display(i) tenglish:display(i)ttit:

14、display(i) tchinese:display(i)ttsumiendl; cout这个分数的通过率为: flag/nnn) if(nn=1) char na20; coutna; s.display3(na,num); else if(nn=2) char sa20 ;/ 要改的人的名字 int ss; /改的 科目 double tt,gg; /改后的分数是多少 coutsa; couttt; coutss; coutgg; /char *s,double gaifen,int k,double d s.display4(sa,tt,ss,gg,num); else if(nn=3

15、) double fen,wei; coutfenwei; if(fenwei) double kk; kk=fen; fen=wei; wei=kk; s.display5(fen,wei,num); return 0; 第四阶段:这个阶段终于把程序给运行起来了,便是出现了一个特别大的问题。1、花了我好几十行的排序函数居然没能起到作用。当时真的好想放弃这个函数的使用了,因为这个函数我已经花了N 长的时间了,没有办法,这个时候的就是怎么改进程序和增加功能了,因为还没有到达500行呀。2、这个时候也发现了好多其它的问题,比如说,当要搜索一个人的信息的时候,出来的信息太少了。后来我脆把姓名 性别,

16、总分 排名,各科成绩全输出来了,加起来四百几十多行。3、这中间遇到一个问题就是:一次性把一个的人记录全输出来,是很难在一行间对齐的。后来没有办法,我只好化成两部分分开输出了。4、我还把性别用用英文输入转化为中文输出。唯一的遗憾就是程序的排序没有实现。但是加了好多功能。查各个科目的平均分情况,查各科目的具体情况,而且还来了个小游戏。5、加了一个SCHOOL类,只是想体现一现构造函数,用来构造这个系统的属性的。6、加了一个进入系统的密码。以下是这个阶段的代码:#include#includeclass mathpublic: int i; double score81; void getdata(

17、double val,int i) scorei=val; double display(int i) return scorei; void show3(int n)/增加的用来算各科目的平均分的。 cout输出所有人的IT成绩endl; int g=0; double sum=0; double av=0; for(int i=1;i=n;i+) coutscorei=60) g+; coutendl; cout这科的班级总分是:sumendl; cout这科的平均分是:sum/nendl; cout这科的及格率是:(double)g/nendl; ;/ void display3(cha

18、r *s,int n); void display4(char *s,double gaifen,int k,double d,int n); void display5(double fen,double wei,int n); void display6(int k,int n); void display7(int n); ; void student:display6(int k,int n) /算各科目的平均分 double shuxue1=0; double english1=0; double IT1=0; double chinese1=0; for(int i=1;i=n;i

19、+) shuxue1+=math:display(i); english1+=english:display(i); IT1+=it:display(i); chinese1+=chinese:display(i); double t; if(t=1) cout数学平均分是:;shuxue1/=n;coutshuxue1endl; else if(t=2) cout英语平均分是:;english1/=n;coutenglish1endl; else if (t=3) coutIT平均分是:;IT1/=n; coutIT1endl; else if(t=4) cout语文平均分是:;chines

20、e1/=n; coutchinese1endl; /* switch(k) case1: displaybreak; case2: cout英语平均分是:; t=english1/=n;break; case3: cout英语平均分是:; t=english1/=n;break; case4: cout语文平均分是:;t=chinese1/=n;break; */ int main() /*people pe; s_class s_c; math ma; english en; chinese che; it it1; student *p; */ student s; int num; ch

21、ar xiaoming23; school A(华东交通大学);/为系统还增加了别的属性 cout欢迎使用学生成绩管理系统endl; cout请您六位数输入密码mima) if(strcmp(mima,123456)=0) cout欢迎进入!endl;break; else cout您输入的密码有误,请再输入一次!endl; cout ; A.out(); coutnum; coutthe NO. of the student is: numnn) char ye5; cout您确定进入吗 yes or no?ye; if(strcmp(ye,yes)!=0)continue; if(nn=1

22、) char na20; coutna; s.display3(na,num); else if(nn=2) char sa20 ;/ 要改的人的名字 int ss; /改的 科目 double tt,gg; /改后的分数是多少 coutsa; couttt; coutss; coutgg; /char *s,double gaifen,int k,double d s.display4(sa,tt,ss,gg,num); cout是否输出修改后的数据(yes/no)dd; if(strcmp(dd,yes)=0)s.display2(num); else if(nn=3) double fe

23、n,wei; coutfenwei; if(fenwei) double kk; kk=fen; fen=wei; wei=kk; s.display5(fen,wei,num); else if(nn=4) int ct; cinct; s.display6(ct,num); else if(nn=5) int su; cinsu; switch(su) case 1:s.show3(num);break;/math case 2:s.show4(num);break;/ english case 3:s.show5(num);break;/it case 4:s.show6(num);break; / chinese

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2