完整word版C++教务管理系统程序报告.docx
《完整word版C++教务管理系统程序报告.docx》由会员分享,可在线阅读,更多相关《完整word版C++教务管理系统程序报告.docx(24页珍藏版)》请在冰豆网上搜索。
完整word版C++教务管理系统程序报告
二○一二~二○一三学年第二学期
信息科学与工程学院
面向对象C++语言课程设计报告
☆课程名称:
面向对象C++语言课程设计
目录
1.需求分析……………………………………………………3
2.总体设计……………………………………………………4
3.详细设计……………………………………………………5
4.调试测验……………………………………………………6
5.测试结果……………………………………………………6
6.心得体会……………………………………………………12
7.相关附录……………………………………………………13
Ⅰ.需求分析
(1)问题描述:
设计一个学生信息管理系统,能录入、修改、添加、删除、查询、显示学生信息。
并将学生信息在文件中保存。
(2)应用价值:
能作为一个有效管理学生信息的系统。
可以储存学生的姓名、学号、性别、年龄、住址、各科成绩。
这在现实中对学生信息的管理也有极其重要的应用价值。
可以有效的保存学生信息,应用于教务管理。
(3)限制条件:
因为刚接触C语言不到,两个学期。
所以所做程序难免会有一些瑕疵。
在次列举其中的一些限制条件。
我所设置的录入学生信息的函数必须由学号由小到大录入,这是为了配合后面的修改、添加、删除查询功能。
因为后面几个功能实现的方法就是由学号从小到达找所要修改的那一个结点。
另一个问题就是学号的首位不可以为零,否则的话就无法显示首位。
对于这一问题,我还没有想到更好的解决方法。
不过在现实应用中,很少出现学号首位为零的情况。
因此也就不会太影响使用价值。
最后一个问题,就是如果输入的数据类型与定义的不符,就可能引起系统崩溃。
因此,用户在录入信息时应特别注意数据类别。
Ⅱ总体设计
(1)程序设计组成框图
(2)流程图
Ⅲ详细设计
函数功能
student*creat(void)用于创建链表,不需要参数,返回链表头指针,在输入学生信息时调用。
student*del(student*,long)用于删除结点,参数为头指针及要删除学生的学号,返回头指针。
在删除学生信息时调用。
student*insert(student*,student*)用于插入结点,参数为头指针及类的指针,返回头指针。
插入学生信息时调用。
student*correct_num(student*,long)用于修改结点,参数为头指针及学号,返回头指针。
按学号修改学生信息时调用。
student*correct_nam(student*,string)按姓名修改学生信息时调用。
student*search_num(student*,long)用于查找结点,参数为头指针及学号,返回头指针。
按学号查找学生信息时调用。
student*search_nam(student*,string)用于查找结点,参数为头指针及学号,返回头指针。
按姓名查找学生信息时调用。
intsave(student*head)用于将指针数据存放到文件中。
voidprint(student*)参数为头指针,用于输出各结点数据。
Ⅳ调试测验
通过输入学生信息,再修改、删除、添加、查询,最后输出。
检查是否满足预期结果,不满足则重新完善。
过程中也遇到许多问题。
其中之一就是在执行查询、添加等功能是出现程序停止工作的情况。
最后才发现在进行判断时,将head==NULL误输为head=NULL,将链表转化为了空链表,当然无法工作啦。
在其他细节方面,也出现了类似的错误。
因此,编程要特别仔细,一个小小的错误,都可能使整个程序毁于一旦。
Ⅴ测试结果
(1)首页
(2)输入非选项中的的数字
(3)录入信息
(4)插入信息
(5)显示信息
(6)删除信息
(7)修改信息
(8)查询信息
(9)查询学生学号不存在时
(10)显示信息
(11)退出系统
Ⅵ心得体会
耗时将近两周的C++程序设计即将画上句号。
这也是我接触过的最复杂的程序。
要想一步完成如此繁琐的程序是不可能的。
因此必须有合理的规划,列出框架。
再分别用函数来实现各个功能。
然后就是细化的工作,要分别设计各个函数,这也是最关键的一步。
既要注意各个函数的独立性,又要注意他们之间的关系和在整个程序中的作用。
最后将各不分有机结合为宜各整体。
再通过不断的调试、完善,最后达到预期的效果。
当然,最困难的部分就是修改。
面对一个个问题,你需要不断的检查,在繁杂的程序中发现那一个错误。
这过程虽然是困难的,必须非常仔细,绞尽脑汁想各种错误的原因,最后解决问题。
当问题被解决的那一刻,心中会由然而生出一种成就感。
这也是程序设计带给我的快乐。
在今后的学习生活中,我将投入更多时间到C++程序设计中,这样设计程序将会更加得心应手。
程序设计就是这样一门神奇的课程,只有勤于思考,刻苦钻研,勇于创新才能,才能设计出满意的程序。
Ⅶ相关附录
#include
#include
#include
#include
usingnamespacestd;
#defineNULL0
classstudent//定义类
{public:
longnum;
charname[20];
intage;
charsex[20];
charaddress[30];
floatcomputer_score;
floatmath_score;
floatEnglish_score;
student*next;
};
intn;
//定义主函数
intmain()
{student*creat(void);
student*del(student*,long);
student*insert(student*,student*);
student*correct_num(student*,long);
student*correct_nam(student*,string);
student*search_num(student*,long);
student*search_nam(student*,string);
intsave(student*head);
voidprint(student*);
student*head=NULL,*stu;
longdel_numb,correct_numb,search_numb;
intchoose,a;
stringsearch_name,correct_name;
start:
cout<<"***************☆学生信息管理系统☆***************"<cout<<"**********★★★★★★★★★★★★★★★★********"<cout<<"***************★☆1.输入学生信息☆★***************"<cout<<"***************★☆2.插入学生信息☆★***************"<cout<<"***************★☆3.修改学生信息☆★***************"<cout<<"***************★☆4.删除学生信息☆★***************"<cout<<"***************★☆5.显示学生信息☆★***************"<cout<<"***************★☆6.查询学生信息☆★***************"<cout<<"***************★☆7.退出☆★***************"<cout<<"请输入您的选择(1--7):
"<cin>>choose;
switch(choose)//选择结构,选择要进行的操作
{case1:
system("cls");//系统清屏
cout<<"输入学生信息:
"<head=creat();//调用函数,建立链表
system("cls");
gotostart;//返回目录
break;
case2:
system("cls");
cout<";
stu=newstudent;//新建结点
cout<<"学生的学号:
";
cin>>stu->num;
cout<<"学生的姓名:
";
cin>>stu->name;
cout<<"学生的年龄:
";
cin>>stu->age;
cout<<"学生的性别:
";
cin>>stu->sex;
cout<<"学生的住址:
";
cin>>stu->address;
cout<<"学生的电脑成绩:
";
cin>>stu->computer_score;
cout<<"学生的数学成绩:
";
cin>>stu->math_score;
cout<<"学生的英语成绩:
";
cin>>stu->English_score;
while(stu->num!
=0)//结点学号不为空时插入
{head=insert(head,stu);//调用函数,插入结点
save(head);//将数据储存在文件中
cout<";
stu=newstudent;
cout<<"学生的学号:
";
cin>>stu->num;//输入结点相关信息
cout<<"学生的姓名:
";
cin>>stu->name;
cout<<"学生的年龄:
";
cin>>stu->age;
cout<<"学生的性别:
";
cin>>stu->sex;
cout<<"学生的住址:
";
cin>>stu->address;
cout<<"学生的电脑成绩:
";
cin>>stu->computer_score;
cout<<"学生的数学成绩:
";
cin>>stu->math_score;
cout<<"学生的英语成绩:
";
cin>>stu->English_score;}
system("cls");
gotostart;
break;
case3:
system("cls");
cout<cout<<"按学号查询输入1,姓名查询输入"<cin>>a;
if(a==1)
{cout<";
cin>>correct_numb;
head=correct_num(head,correct_numb);//按学号修改学生信息
save(head);
}
if(a==2)
{cout<";
cin>>correct_name;
head=correct_nam