您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页C++成绩管理系统

C++成绩管理系统

来源:飒榕旅游知识分享网


《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;jstrcpy(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; }

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].averagestrcpy(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; } }

3 源代码

#includechar class_0[20]; /*班级*/ int number; /*学号*/ char name[20]; /*姓名*/

float c_program; /*C++语言成绩*/ float english; /*大学英语成绩*/ float math; /*高等数学成绩*/ float summary; /*总分*/ float average; /*平均分*/ }Student; Student stu[100]; /*结构体数组变量*/

int menu() /*菜单函数*/ { char c; do {

system(\"cls\"); /*运行前清屏*/

cout<〈”**********学生成绩管理系统************\"<while(c<'0’||c〉'7’); return(c-'0'); /*返回选择*/ }

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〈<” 班级 学号 姓名 C++ 英语 数学 总分 平均分”〈cout<〈\"—--——-——-——---———-———-——————————--—--————-—--—-——--—-———-—————----———-—-————---—————”〈stud[i—1]。summary=stud[i—1]。c_program+stud[i-1].english+stud[i—1].math; stud[i-1]。average=stud[i—1].summary/3;

cout〈cout<〈”\\\”〈void Sort(Student stud[],int n) /*按平均分排序*/ {

int i,j,k; float s;

char t[20];

for(i=0;istrcpy(t,stud[j+1]。class_0); strcpy(stud[j+1].class_0,stud[j]。class_0); strcpy(stud[j]。class_0,t);

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<<”-————————-————--—————————----—————--————--———---——-

————-——--——-——-—-——--—-—-——--—”〈stud[i—1]。summary=stud[i-1].c_program+stud[i—1].english+stud[i-1]。math; stud[i—1]。average=stud[i-1]。summary/3; cout<int Insert(Student stud[],int n) /*插入一条记录*/ {

char x[10]; /*清除多余输入所用*/ cout〈〈”请输入学生的班级:”〈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); }

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<〈”=====〉提示:已成功删除!”〈void Search(Student stud[],int n) /*查找并显示一个记录*/ {

int s; int i=0;

cout<<\"输入需要查找学生的学号:\"<>s; while((stud[i]。number-s)!=0&&i〈n) i++; /*查找判断*/ if(i==n) {

cout<<\"=====〉提示:对不起,无法找到该学生的信息!”<〈endl;return; }

cout〈〈”—————-—--—----———--———---—-\"〈〈endl; cout<〈”班级:\"<〈stud[i].class_0〈void Modify(Student stud[],int n) { int s; int i=0; cout〈〈\"输入需要修改成绩学生的学号:”<〈endl; cin〉>s;

while((stud[i]。number—s)!=0&&i〈n) i++; /*查找判断*/

/*输入失败信息*/ if(i==n) { cout〈〈”=====〉提示:对不起,无该学生的成绩……”<〈endl; /*输入失败信息*/ return; }

cout〈<”————-——--——-————-—————-—-————该学生的信息——-—-—————————--—--—-——————-————-”〈cout〈<” 班级 学号 姓名 C++ 英语 数学 总分 平均分\"<stud[n+i].class_0; cout〈〈\"请输入学生的学号:”<stud[n+i]。number; cout<〈”请输入学生的姓名:”<〈endl; cin〉>stud[n+i]。name;

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〈〉 输入成绩 〈<====\"〈〈endl; /*输入若干条记录*/ n=Input(stu,n); break; case 2:

cout〈 显示所有记录 〈〈====\"〈〈endl; /*显示所有记录*/ Display(stu,n); break;

case 3:

cout<〉 按平均分降序排列 〈〈====”〈〈endl; Sort(stu,n); /*按学号排序*/ cout〈<”排序成功!”〈〈endl; cout〈<”\\\”;

system(”pause\"); break; case 4: cout〈〈endl〈<”====〉> 查找并显示一组成绩 〈<====”〈cout〈> 插入一组成绩 〈〈====”〈〈endl; n=Insert(stu,n); /*按姓名查找,删除一条记录*/ cout<〈\"\\\\"; system(”pause”); break; case 6: cout〈cout〈4 总结

通过学生成绩管理系统的编写,让我所学的C++知识应用于实际中,并加深了我对C++这种语言的理解和掌握,对于我的学习具有很大的帮助,让我认识到C++是一门具有很强实用性的学科,它不能只靠书本就能理解的,而应该多实践,多运行。以后我也会尽量的将所学知识应用于实践,在实践中掌握知识,加深对知识的理解,从而在实践中知真知.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务