《C++面向对象程序设计》课程设计
题目:学生成绩管理 班级:计算机二专09级 姓名:刘玉方 学号:200801070712
2010年7月7日
1 需求分析
1。1功能需求分析:
简易学生成绩管理系统主要有5个大的模块:学生成绩的输入,学生成绩的删除,学生成绩的插入,学生成绩的查询,以及学生成绩的分类汇总。 1。11学生成绩输入模块
主要功能是输入学生成绩的操作。需要用户自己输入学生成绩信息。 1。12学生成绩删除模块
主要功能是删除学生成绩的操作。需要用户提供需要删除具体学生成绩的关联信息. 1。13学生成绩插入模块
主要功能是插入学生成绩的操作.需要用户提供插入位置和插入信息。 1。14学生成绩查询模块
主要功能是按照用户的要求查询学生的成绩。需要用户提供查询具体哪一个学生的信息.
1。15学生成绩的分类汇总模块
主要功能是输出每门学科的总分和平均分。
2功能模块
2.1学生成绩输入的实现;
运用cout、cin标准输出、输入流来实现学生成绩的输入。
cout〈<”请输入该学生『C++程序设计』的成绩:”; cin〉>stud[n+i]。c_program; cout〈〈\"请输入该学生『大学英语』的成绩:\"; cin〉〉stud[n+i].english; cout〈〈”请输入该学生『高等数学』的成绩:\"; cin>>stud[n+i]。math; 2。2学生成绩删除的实现;
运用for循环语句查找并删除用户提供的删除具体某个学生成绩的信息,并删除之。 for(j=i;j stud[j]。c_program=stud[j+1].c_program; stud[j].english=stud[j+1].english; stud[j]。math=stud[j+1]。math; } 2。3学生成绩插入的实现; int Insert(Student stud[],int n){ char x[10]; /*清除多余输入所用*/ cout〈〈\"请输入学生的班级:”<〈endl; /*交互输入*/ cin〉〉stud[n]。class_0; cout<〈”请输入学生的学号:\"; cin〉〉stud[n]。number; cout<〈\"请输入学生的姓名:”; cin>〉stud[n].name; cout<<”请输入该学生『C++程序设计』的成绩:\"; cin〉>stud[n]。c_program; cout〈〈\"请输入该学生『大学英语』的成绩:”; cin〉〉stud[n].english; cout<<”请输入该学生『高等数学』的成绩:”; cin>〉stud[n].math; stud[n].summary=stud[n]。c_program+stud[n]。english+stud[n]。math; stud[n].average=stud[n]。summary/3; gets(x); n++; Sort(stu,n); /*调用排序函数*/ cout〈<\"=====〉提示:插入成功!”〈〈endl; /*返回成功信息*/ return(n); } 2。4 成绩查询显示分类汇总模块 void Sort(Student stud[],int n){ int i,j,k; float s;char t[20]; for(i=0;i〈n—1;i++) /*冒泡法排序*/ for(j=0;j〈n-1—i;j++) if(stud[j].average stud[j+1].c_program=stud[j]。c_program; stud[j]。c_program=s; s=stud[j+1]。english; stud[j+1]。english=stud[j]。english; stud[j].english=s; s=stud[j+1].math; stud[j+1].math=stud[j]。math; stud[j]。math=s; s=stud[j+1].summary; stud[j+1]。summary=stud[j]。summary; stud[j].summary=s; s=stud[j+1]。average; stud[j+1].average=stud[j].average; stud[j]。average=s; } } 3 源代码 #include float c_program; /*C++语言成绩*/ float english; /*大学英语成绩*/ float math; /*高等数学成绩*/ float summary; /*总分*/ float average; /*平均分*/ }Student; Student stu[100]; /*结构体数组变量*/ int menu() /*菜单函数*/ { char c; do { system(\"cls\"); /*运行前清屏*/ cout<〈”**********学生成绩管理系统************\"< int Input(Student stud[],int n) /*输入若干条记录*/ { int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!=’n’&&sign!='N’) /*判断*/ { cout〈<”请输入学生的班级:\"; /*交互输入*/ cin〉>stud[n+i]。class_0; cout〈<”请输入学生的学号:\"; cin〉〉stud[n+i]。number; cout〈<”请输入学生的姓名:”; cin>>stud[n+i]。name; cout<〈”请输入该学生『C++程序设计』的成绩:”; cin〉〉stud[n+i]。c_program; cout〈〈”请输入该学生『大学英语』的成绩:”; cin>>stud[n+i]。english; cout〈〈”请输入该学生『高等数学』的成绩:”; cin>〉stud[n+i]。math; stud[n+i]。summary=stud[n+i].c_program+stud[n+i]。english+stud[n+i]。math; stud[n+i]。average=stud[n+i]。summary/3; cout〈<\"该学生的总分为:\"〈〈stud[n+i]。summary〈〈\"平均分为:\"<〈stud[n+i]。average〈〈endl; gets(x); /*清除多余的输入*/ cout〈〈\"=====>提示:继续写入成绩?(Y/N)”; cin〉>sign; /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; if(!stud)cout〈〈\"没有记录”; else{ cout<〈”-—--————-—--——————--————-—---————————-————--—-—-—————-——--—-————-——--—-————-—--—-—--”〈 cout〈 int i,j,k; float s; char t[20]; for(i=0;i k=stud[j+1].number; stud[j+1].number=stud[j]。number; stud[j].number=k; strcpy(t,stud[j+1]。name); strcpy(stud[j+1].name,stud[j]。name); strcpy(stud[j].name,t); s=stud[j+1]。c_program; stud[j+1]。c_program=stud[j].c_program; stud[j].c_program=s; s=stud[j+1]。english; stud[j+1].english=stud[j]。english; stud[j].english=s; s=stud[j+1]。math; stud[j+1].math=stud[j].math; stud[j].math=s; s=stud[j+1]。summary; stud[j+1].summary=stud[j].summary; stud[j].summary=s; s=stud[j+1]。average; stud[j+1].average=stud[j]。average; stud[j].average=s; } cout<<\"————-——-----—-—-——--—-——————---——---—--—--——--——-——-—-—-—-—--——————--———-—---—-——”<〈endl; cout<〈\" 班级 学号 姓名 C++ 英语 数学 总分 平均分”<〈endl; cout<<”-————————-————--—————————----—————--————--———---——- ————-——--——-——-—-——--—-—-——--—”〈 char x[10]; /*清除多余输入所用*/ cout〈〈”请输入学生的班级:”〈 cout〈<”请输入学生的姓名:”; cin〉〉stud[n].name; cout<〈”请输入该学生『C++程序设计』的成绩:”; cin〉>stud[n].c_program; cout〈〈”请输入该学生『大学英语』的成绩:”; cin〉〉stud[n].english; cout〈<\"请输入该学生『高等数学』的成绩:”; cin〉>stud[n].math; stud[n].summary=stud[n]。c_program+stud[n].english+stud[n].math; stud[n]。average=stud[n]。summary/3; gets(x); n++; Sort(stu,n); /*调用排序函数*/ cout<〈\"=====〉提示:插入成功!”<〈endl; /*返回成功信息*/ return(n); } int Delete(Student stud[],int n) /*按学号查找,删除一条记录*/ { int s; int i=0,j; cout<〈\"输入需要删除学生的学号:\"<〈endl; /*交互式问寻*/ cin〉>s; while((stud[i]。number-s)!=0&&i〈n) i++; /*查找判断*/ if(i==n) { cout〈<\"=====〉提示:对不起,无法找到改学号……\"〈〈endl; /*返回失败信息*/ return(n); } for(j=i;j〈n—1;j++) /*删除操作*/ { strcpy(stud[j]。class_0,stud[j+1]。class_0); stud[j]。number=stud[j+1].number; strcpy(stud[j]。name,stud[j+1].name); stud[j]。c_program=stud[j+1]。c_program; stud[j]。english=stud[j+1]。english; stud[j]。math=stud[j+1].math; } cout<〈”=====〉提示:已成功删除!”〈 int s; int i=0; cout<<\"输入需要查找学生的学号:\"< cout<<\"=====〉提示:对不起,无法找到该学生的信息!”<〈endl;return; } cout〈〈”—————-—--—----———--———---—-\"〈〈endl; cout<〈”班级:\"<〈stud[i].class_0〈 while((stud[i]。number—s)!=0&&i〈n) i++; /*查找判断*/ /*输入失败信息*/ if(i==n) { cout〈〈”=====〉提示:对不起,无该学生的成绩……”<〈endl; /*输入失败信息*/ return; } cout〈<”————-——--——-————-—————-—-————该学生的信息——-—-—————————--—--—-——————-————-”〈 cout<〈”请输入该学生『C++程序设计』的成绩:\"〈〈endl; cin>>stud[n+i]。c_program; cout〈〈\"请输入该学生『大学英语』的成绩:”<〈endl; cin〉>stud[n+i]。english; cout<<”请输入该学生『高等数学』的成绩:”〈〈endl; cin>>stud[n+i].math; stud[i]。summary=stud[i]。c_program+stud[i]。english+stud[i].math; stud[i]。average=stud[i]。summary/3; cout<〈\"该学生的总分为:”〈〈stud[i].summary〈<\"平均分为:\"〈〈stud[i]。average; } void main() /*主函数*/ { int n=0; for(;;) { switch(menu()) /*选择判断*/ { case 1: cout〈 cout〈 case 3: cout< system(”pause\"); break; case 4: cout〈〈endl〈<”====〉> 查找并显示一组成绩 〈<====”〈 通过学生成绩管理系统的编写,让我所学的C++知识应用于实际中,并加深了我对C++这种语言的理解和掌握,对于我的学习具有很大的帮助,让我认识到C++是一门具有很强实用性的学科,它不能只靠书本就能理解的,而应该多实践,多运行。以后我也会尽量的将所学知识应用于实践,在实践中掌握知识,加深对知识的理解,从而在实践中知真知. 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务