C课程设计方案学生管理系统.docx
- 文档编号:24012481
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:21
- 大小:93.75KB
C课程设计方案学生管理系统.docx
《C课程设计方案学生管理系统.docx》由会员分享,可在线阅读,更多相关《C课程设计方案学生管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
C课程设计方案学生管理系统
课程设计目的
熟悉程序设计的基本流程,掌握程序设计基本方法,基本技巧、并能综合运用,提高程序设计能力。
通过实践,熟悉掌握C++语言中面向过程部分的内容,能够运用C++语言解决一个实际问题。
设计环境及语言
VC+集成开发环境(IDE)MicrosoftvisualC++6.0语言。
课题设计步骤
1.需求分析从软件使用者处获得用户需求,确定课题开发应具备的功能;
2.系统结构设计将整个系统功能分块,考虑各个功能模块应具备的功能,模块间的联系,划分不同的子系统进行设计;
3.数据设计设计系统中新的数据类型、存储类型;
4.代码设计在以上阶段的基础上编写代码;
5.软件测试使用实现设计好的测试用例、测试次数对编制的程序进行测试,发现存在错误(包括潜在的问题),加以修改,完善。
课程设计内容:
1.学生个人信息管理系统。
本课程设计通过建立、修改、查询、显示、排序等显示学生个人信息等功能,具体的技术有:
(1)结构、枚举类型的定义与使用;
(2)数组的定义使用;
(3)程序的三种基本控制流程的综合、灵活运用;
(4)普通指针和数组指针的定义和使用;
(5)各类函数的定义和调用;
(6)文件的输入/输出
(7)程序的调试。
2.具备的功能有:
(1)新增学生数据的添加:
姓名,成绩。
(2)修改学生信息:
输入姓名,根据姓名,修改该学生的三项学生信息数据并显示;
(3)删除一个学生信息:
输入姓名,根据学生姓名删除该生信息;
(4)根据学生姓名查询:
输入姓名,查找该学生并显示学生个人信息;
(5)显示全部学生信息;
(6)根据学生姓名首字母先后排序学生个人信息;
3.设计要求
(1)在VisualC++控制台应用程序方式下设计课题。
(2)设计的程序完成该课程规定的功能。
(3)程序具有一定的健壮性。
4.设计部分
#include
#include
#include
classstu//定义一个stu类
{
charname[20]。
doublemath,chinese,english,average,sum。
public:
stu()
{
}
stu(charn[20],doublema,doublechin,doubleeng)
{
strcpy(name,n)。
math=ma。
chinese=chin。
english=eng。
}
doublegetsum()
{
sum=chinese+english+math。
returnsum。
}
doublegetaver()
{
average=getsum()/3。
returnaverage。
}
friendvoidmain()。
}。
voidmain()
{
cout<<"请选择您需要的操作!
"< cout<<"操作: "< cout<<"(0)数据录入"< cout<<" (1)增加人员"< cout<<" (2)删除人员"< cout<<"(3)修改数据"< cout<<"查询: "< cout<<"(4)按总成绩查询"< cout<<"(5)按姓名查询"< cout<<"(6)输出所有学生的数据"< cout<<"成绩名词"< cout<<"(7)按总分查询排名"< cout<<"(8)按语文查询排名"< cout<<"(9)按数学查询排名"< cout<<"(y)按英语查询排名"< cout<<"选择相关操作请输入相对的括号里的阿拉伯数字! "< charp。 charw。 stu*s[50]。 ofstream*file[50]。 inti=0。 intj=0。 boolflag2=0。 do { cin>>p。 if((p>='0'&&p<='10')) flag2=1。 else cout<<"指令错误! 请重新输入: "< }while(flag2==0)。 do{ switch(p) { case'0': { charc。 charname[20]。 doublemath,chinese,english。 do{ cout<<"请输入姓名"< cin>>name。 cout<<"请输入数学成绩: "< cin>>math。 cout<<"请输入语文成绩: "< cin>>chinese。 cout<<"请输入外语成绩: "< cin>>english。 file[j]=newofstream("d: \\document",ios: : ate)。 *file[j]<<"姓名"< j++。 s[i]=newstu(name,math,chinese,english)。 i++。 cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c。 flag2=0。 do { if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } else flag2=1。 }while(flag2==0)。 }while(c=='y')。 break。 } case'4': { doublet。 charc。 do { intflag1=0。 cout<<"请输入你要查询学生的总成绩"< cin>>t。 for(intq=0。 q q++) { if(s[q]->getsum()==t) { flag1=1。 cout<<"您要查询的学生是: "<<(*s[q]).name< } } if(flag1==0) cout<<"对不起! 您要查询的学生不存在! "< cout<<"您想继续查询吗? (y/n)"< cin>>c。 if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } } while(c=='y')。 break。 } case'5': { charn[20]。 intj=0。 charc。 do{ intflag=0。 cout<<"请输入你要查询的学生姓名"< cin>>n。 for(intj=0。 j j++) { if(strcmp(n,(*s[j]).name)==0) { flag=1。 cout<<"您要查询的学生是: "<<(*s[j]).name< cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()< "<<(*s[j]).getaver()< } } if(flag==0) cout<<"对不起! 您要查询的学生不存在! "< cout<<"您想继续查询吗? (y/n)"< cin>>c。 if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } } while(c=='y')。 break。 } case'1': { charname[20]。 doublemath,chinese,english。 charc。 do { cout<<"请输入您要增加的学生的姓名: "< cin>>name。 cout<<"请输入数学成绩: "< cin>>math。 cout<<"请输入语文成绩: "< cin>>chinese。 cout<<"请输入外语成绩: "< cin>>english。 file[j]=newofstream("d: \\document",ios: : ate)。 *file[j]<<"姓名"< j++。 s[i]=newstu(name,math,chinese,english)。 i++。 cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c。 if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } }while(c=='y')。 break。 } case'2': { charname[20]。 boolflag3=0。 charc。 do{ cout<<"请输入您要删除的学生姓名: "< cin>>name。 for(inth=0。 h h++) { if(strcmp(name,s[h]->name)==0) { flag3=1。 i--。 do{ s[h]=s[h+1]。 h++。 }while(h<=i)。 } } if(flag3==0) cout<<"您要求删除的对象本来就不存在! 请检查输入的正确性! "。 cout<<"要继续删除吗? (y/n)"< cin>>c。 if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } }while(c=='y')。 break。 } case'3': { charname[20]。 doublemat,chin,eng。 flag2=0。 charc。 do { cout<<"请输入您要修改的学生的姓名: "< cin>>name。 for(inth=0。 h h++) { if(strcmp(name,s[h]->name)==0) { flag2=1。 cout<<"请输入新的数学成绩: "< cin>>mat。 cout<<"请输入新的语文成绩: "< cin>>chin。 cout<<"请输入新的外语成绩: "< cin>>eng。 s[h]->chinese=chin。 s[h]->math=mat。 s[h]->english=eng。 cout<<"数据修改成功! "。 } } if(flag2==0) { cout<<"您要修改的学生本来就不存在! 请检查重新输入! "< } cout<<"想继续修改吗(y/n)"< cin>>c。 if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c。 } }while(c=='y')。 break。 } case'6': { cout<<"本系统所有学生数据如下: "< if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "< for(intk=0。 k k++) { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""<<(*s[k]).getsum() <<"平均分: "<<""<<(*s[k]).getaver()< } break。 } case'7': { intt。 stub。 cout<<"本系统所以学生排名如下: "< for(intx=0。 x x++) { t=x。 for(inty=x+1。 y y++) { if((s[t]->getsum())<(s[y]->getsum())) t=y。 if(t! =x) { b=*s[x]。 *s[x]=*s[t]。 *s[t]=b。 } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "。 for(intk=0。 k k++) { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break。 } case'8': { intt。 stub。 cout<<"本系统所以学生语文排名如下: "< for(intx=0。 x x++) { t=x。 for(inty=x+1。 y y++) { if((s[t]->chinese)<(s[y]->chinese)) t=y。 if(t! =x) { b=*s[t]。 *s[t]=*s[x]。 *s[x]=b。 } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "。 for(intk=0。 k k++) { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break。 } case'9': { intt。 stub。 cout<<"本系统所以学生数学排名如下: "< for(intx=0。 x x++) { t=x。 for(inty=x+1。 y y++) { if((s[t]->math)<(s[y]->math)) t=y。 if(t! =x) { b=*s[t]。 *s[t]=*s[x]。 *s[x]=b。 } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "。 for(intk=0。 k k++) { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break。 } case'y': { intt。 stub。 cout<<"本系统所以学生英语排名如下: "< for(intx=0。 x x++) { t=x。 for(inty=x+1。 y y++) { if((s[t]->english)<(s[y]->english)) t=y。 if(t! =x) { b=*s[t]。 *s[t]=*s[x]。 *s[x]=b。 } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "。 for(intk=0。 k k++) { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } } break。 } cout<<"您想继续进行其他操作吗? (y/n)"< boolflag4=0。 do { cin>>w。 if(w! ='y'&&w! ='n') cout<<"指令错误! 请重新输入! "< else flag4=1。 }while(flag4==0)。 if(w=='y') cout<<"请输入操作代码(0录入/4按总分查询/5按姓名查询/1增加人员/2删除人员/3修改数据/6显示所有成员数据/7按总分排名/8按语文排名/9按数学排名/y按英语排名)"< cin>>p。 }while(w=='y')。 for(intx=0。 x x++) { deletes[x]。 cout<<"deleteallmembers! "< } } 程序运行结果图示: 图一程序运行后的菜单显示 图二“ (1): 增加学生”界面 图三“ (2): 修改学生信息”界面 图四“(3): 删除学生信息”界面 图五“(4): 查询学生信息”界面 图六“5: 显示所有学生信息”界面 图七“(6): 按总分排序”界面name<<chinese<<"数学:mathenglish<<"总分:name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计方案学生管理系统 课程设计 方案 学生 管理 系统