C++实训报告学生成绩管理系统.docx
《C++实训报告学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C++实训报告学生成绩管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
C++实训报告学生成绩管理系统
课程实训报告
课程名称:
C\C++语言程序
实训题目:
学生成绩管理系统
学生姓名
何莉
学号
0901830
专业:
计算机应用技术
班级
09软件一班
指导教师:
蔡茜
职称
助教
部门:
计算机与电子工程系
起止日期:
2010年6月28日至2010年7月5日
教务处制
一、系统简介
设计一个基于结构体数组的学生成绩管理系统,能实现对学生成绩信息进行录入、修改、删除、查询、显示总分和输出等基本操作。
二、需求分析
成绩管理系统应实现以下功能:
1、能录入学生的基本信息,包括学号、姓名、性别和语文、数学、英语三门课程的成绩。
2、能根据输入的学号和姓名分别查找学生,进行信息的修改。
3、能根据输入的学号和姓名从程序中删除学生的记录。
4、实现查询功能,能根据输入的学号或姓名在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
6、能将学生的信息永久的保存起来。
三、概要设计
1、系统功能结构图
根据期末课程设计要求,本组统划分成七个主功能模块:
录入学生信息及成绩模块、修改学生信息模块、删除学生信息模块、查询信息模块、输出模块和系统退出和保存模块。
系统功能结构图如下:
2、重要数据的数据结构设计
学生成绩管理的记录项用结构体book表示,包括6个属性name、number、post、x、y、z,分别代表学生的姓名、学号、性别和语文、数学、英语三门课程成绩;
classbook
{
stringname;//学生姓名
stringnumber;//学生学号
stringpost;//学生性别
floatx;//语文成绩
floaty;//数学成绩¨
floatz;//英语成绩};
};
3、函数设计
学生成绩管理系统程序采用了结构化程序设计的思想,由1个.h头文件和2个.c源文件组成。
程序中除了主函数外,共设计了以下7个函数,分别包含在2个.c源文件中。
以下是这些函数的函数原型及功能设计。
(1)charinter_face();
函数功能:
在屏幕上输出系统的主菜单。
(2)voidadd_person();
函数功能:
录入一条学生记录到记录数组的末尾。
(3)voidselect();
函数功能:
通过输入学号或姓名查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,否则输出没有找到相关记录。
(4)voiddel_person();
函数功能:
通过输入学号和姓名查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认删除后调用del_person()函数将其删除,否则输出没有找到相关记录。
(5)voidalter();
函数功能:
通过输入学号和姓名查询学生的相应记录信息,如果存在在屏幕上输出相
应学生记录,用户确认修改后调用alter()函数将其修改,否则输出没有找到相关记录。
(6)voidshow_all();
函数功能:
在屏幕上以列表方式显示所有学生的信息。
(7)voidQuit(void);
函数功能:
退出菜单系统,并调用exit(0)系统函数结束程序运行。
(8)voidsave_new();
函数功能:
将之前所有输入合法的数据保存起来。
以便下次调用。
4、小组成员分工
李川
inter_face()
龚雪梅
select()
吴玉丹
show_all()
曹凤
del_person()
何莉
alter()
王军
add_person()
张金
save_new()
四、详细设计
1、修改学生信息功能模块函数alter()设计
2、运行效果图:
五、调试分析
本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。
本系统程序由一个.h头文件和2个.c源文件构成。
系统调试主要在VC6下进行,采用分模块调试的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并生成可执行文件BOOK.exe。
六、用户手册
本系统是WIN32控制台程序,可在WINDOW和DOS环境下运行,执行文件名称:
BOOK.exe。
运行程序后,首先进入主功能菜单。
在主功能菜单中输入相应的数字可执行相应的程序功能,包括录入学生信息、修改学生信息、删除学生信息和输出所有学生信息,输入5可进行查询子菜单,可进行按学号查询和按姓名查询学生信息。
在主功能菜单按6可结束本系统的运行并自动关闭运行窗口。
七、附录
voidbook:
:
alter()
{
ofstreamoutData("temp.txt",ios:
:
out);
ifstreaminData("pbook.txt",ios:
:
in);//
if(!
outData||!
inData)
{
cout<!
!
"<system("pause");
return;
}
stringsign;
cout<";
cin>>sign;
stringstr1;
boolflag=true;
stringstr;
while(inData>>name>>number)
{
inData>>post>>x>>y>>z;
if((sign==name)||(sign==number))
{
cout<"<cout<:
left)<cout<"<姓名2:
学号3:
性别4:
语文5:
数学6:
外语"<inti;
cin>>i;
switch(i)
{
case1:
{cout<<"姓名:
";
cin>>name;
fflush(stdin);
break;}
case2:
{cout<<"学号:
";
cin>>number;
fflush(stdin);break;}
case3:
{cout<<"性别:
";
cin>>post;
fflush(stdin);break;}
case4:
{cout<<"语文:
";
cin>>x;
fflush(stdin);break;}
case5:
{cout<<"数学:
";
cin>>y;
fflush(stdin);break;}
case6:
{cout<<"外语:
";
cin>>z;
fflush(stdin);break;}
case7:
{
cout<<"姓名:
";
cin>>name;
fflush(stdin);
cout<<"学号:
";
cin>>number;
fflush(stdin);
cout<<"性别:
";
cin>>post;
fflush(stdin);
cout<<"语文:
";
cin>>x;
fflush(stdin);
cout<<"数学:
";
cin>>y;
fflush(stdin);}
cout<<"外语:
”
cin>>z;
fflush(stdin);
}
save_new();
flag=false;
break;
}
outData<:
left)<<<""<}
if(flag)
{
cout<!
!
!
"<}
else
{
while(getline(inData,str))
{
outData<}
outData.close();
inData.close();
ofstreamout("pbook.txt",ios:
:
out);
ifstreamin("temp.txt",ios:
:
in);
if(!
out||!
in)
{
cout<!
!
"<system("pause");
return;
}
while(getline(in,str))
{
out<}
out.close();
in.close();
cout<!
!
"<}
system("pause");
}
八、实训心得体会
通过这次实训我懂得了利用集体的力量完成一件事情,在实训过程中我遇到了很多的困难,程序反复反复的出现错误,让自己在过程中寸步难行,有时自己都有一种想要放弃的感觉,但是在老师和同组同学的帮助之下,困难解决了,而且还让我学到很多知识,还复习了很多以前的知识,但是这次实训同时也让我更加明白的认识到我们这学期学习的知识的不足,我们对这门课程的不了解,没有完全的去了解这门课程,对程序设计的技巧方面很欠缺,所以我觉得以后还要在这门课程上面多下心思。
重庆工商职业学院课程实训成绩评定
指导教师评语:
实训成绩:
指导教师签字:
年月日