C++课程设计报告Word格式.docx
《C++课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
1.课程设计目的
《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。
通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
通过课程设计,掌握使用一种面向对象程序设计语言开发工具如BorlandC++或VisualC++等;
培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力;
通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:
⑴通过调查研究和上机实习,收集和调查有关技术资料。
⑵掌握设计课题的基本步骤和方法。
⑶根据课题的要求进行上机实验调试。
2.任务要求
⑴所设计的管理系统可实现对学生信息和每个学生成绩的管理,并实现对教师信息的简单管理。
⑵设计数据的存储方式,使得用户输入的数据能够保存到磁盘,并在下一次打开时可以读入已经存储的数据。
当第一次使用无存盘数据时应自动创建磁盘数据记录文件。
⑶设计学生、教师、成绩三个类,并通过类中包含的方法录入或从文件读入数据。
⑷设计简单易懂的操作界面,使用户可以很方便的操作系统管理学生信息、教师信息、学生成绩等。
3.设计方案
复数计算器的总体思路如下流程图:
4.设计内容
4.1.层次(调用)关系
输入选择输入选择
文件内容修改屏幕信息输出
图4-1运算层次关系图
4.2.类设计图:
Teacher
public:
voidsetinfo();
voiddisplay();
voidsetscore(Student&
S,stringname);
voidaddcourse(Student&
S);
stringreadTno();
stringreadTname();
voidsetTno(stringno);
voidsetTname(stringname);
private:
stringTno;
//教师编号
stringTname;
//教师姓名
Student
voidprintscore();
intselect(stringname);
boolseach(stringno);
stringreadSno();
stringreadSname();
boolreadsex();
vector<
Course>
readcourse();
voidsetSno(stringno);
voidsetSname(stringname);
voidsetsex(bools);
voidsetcourse(Course&
C);
stringSno;
//学生学号
stringSname;
//学生姓名
boolsex;
//学生性别,真为男,假为女
course;
//学生课程信息列表
friendTeacher;
Course
stringgetname();
intgetscore();
voidsetname(stringname);
voidsetscore(intscore);
stringCname;
intCscore;
【基本要求】
1、将学生、教师、成绩分别定义成类Student、Teacher、Course。
2、每个类中的私有成员变量需通过get、set、read等方法获取值或设置值。
3、设计程序入口main()使用各类中的方法管理数据和信息。
4、设计读入文件和写入文件的代码。
4.3先设计各类的方法,最后设计main函数让其正常工作。
4.4调试:
通过调试找到一种数据存储到文件的方法,能正常写入和读出。
成功通过编译。
4.5结果:
4.6程序源代源
#include<
iostream>
fstream>
vector>
string>
usingnamespacestd;
classStudent;
classCourse;
classTeacher
{
};
classStudent
classCourse
voidTeacher:
:
setinfo()
cout<
<
"
请输入教师编号:
;
cin>
>
Tno;
请输入教师姓名:
Tname;
}
display()
Tno<
\t\t"
Tname<
endl;
setscore(Student&
S,stringname)
intscore,i=S.select(name);
if(-1!
=i)
{
cout<
修改学生"
S.Sname<
(编号"
S.Sno<
)的"
S.course[i].getname()<
成绩为:
cin>
score;
S.course[i].setscore(score);
}
elsecout<
不存在该课程\n"
addcourse(Student&
S)
Courseco;
co.setinfo();
S.course.push_back(co);
stringTeacher:
readTno()
returnTno;
readTname()
returnTname;
setTno(stringno)
Tno=no;
setTname(stringname)
Tname=name;
voidStudent:
请输入学生编号:
Sno;
请输入学生姓名:
Sname;
请输入学生性别(0为女,1为男):
sex;
Sno<
Sname<
if(sex)cout<
男"
女"
printscore()
编号\t\t姓名\t\t性别\n"
display();
____________________\n"
课程名\t\t成绩\n"
for(inti=0;
i<
course.size();
i++)
course[i].display();
intStudent:
select(stringname)
if(course[i].getname()==name)returni;
return-1;
boolStudent:
seach(stringno)
if(Sno==no)return1;
return0;
stringStudent:
readSno()
returnSno;
readSname()
returnSname;
readsex()
returnsex;
vector<
Student:
readcourse()
returncourse;
setSno(stringno)
Sno=no;
setSname(stringname)
Sname=name;
setsex(bools)
sex=s;
setcourse(Course&
C)
course.push_back(C);
voidCourse:
请输入课程名称:
Cname;
请输入课程成绩:
Cscore;
setscore(intscore)
Cscore=score;
stringCourse:
getname()
returnCname;
intCourse:
getscore()
returnCscore;
setname(stringname)
Cname=name;
Cname<
Cscore<
inttoint(stringtemp)
if("
100"
==temp)return100;
99"
==temp)return99;
98"
==temp)return98;
97"
==temp)return97;
96"
==temp)return96;
95"
==temp)return95;
94"
==temp)return94;
93"
==temp)return93;
92"
==temp)return92;
91"
==temp)return91;
90"
==temp)return90;
89"
==temp)return89;
88"
==temp)return88;
87"
==temp)return87;
86"
==temp)return86;
85"
==temp)return85;
84"
==temp)return84;
83"
==temp)return83;
82"
==temp)return82;
81"
==temp)return81;
80"
==temp)return80;
79"
==temp)return79;
78"
==temp)return78;
77"
==temp)return77;
76"
==temp)return76;
75"
==temp)return75;
74"
==temp)return74;
73"
==temp)return73;
72"
==temp)return72;
71"
==temp)return71;
70"
==temp)return70;
69"
==temp)return69;
68"
==temp)return68;
67"
==temp)return67;
66"
==temp)return66;
65"
==temp)return65;
64"
==temp)return64;
63"
==temp)return63;
62"
==temp)return62;
61"
==temp)return61;
60"
==temp)return60;
59"
==temp)return59;
58"
==temp)return58;
57"
==temp)return57;
56"
==temp)return56;
55"
==temp)return55;
54"
==temp)return54;
53"
==temp)return53;
52"
==temp)return52;
51"
==temp)return51;
50"
==temp)return50;
49"
==temp)return49;
48"
==temp)return48;
47"
==temp)return47;
46"
==temp)return46;
45"
==temp)return45;
44"
==temp)return44;
43"
==temp)return43;
42"
==temp)return42;
41"
==temp)return41;
40"
==temp)return40;
39"
==temp)return39;
38"
==temp)return38;
37"
==temp)return37;
36"
==temp)return36;
35"
==temp)return35;
34"
==temp)return34;
33"
==temp)return33;
32"
==temp)return32;
31"
==temp)return31;
30"
==temp)return30;
29"
==temp)return29;
28"
==temp)return28;
27"
==temp)return27;
26"
==temp)return26;
25"
==temp)return25;
24"
==temp)return24;
23"
==temp)return23;
22"
==temp)return22;
21"
==temp)return21;
20"
==temp)return20;
19"
==temp)return19;
18"
==temp)return18;
17"
==temp)return17;
16"
==temp)return16;
15"
==temp)return15;
14"
==temp)return14;
13"
==temp)return13;
12"
==temp)return12;
11"
==temp)return11;
10"
==temp)return10;
9"
==temp)return9;
8"
==temp)return8;
7"
==temp)return7;
6"
==temp)return6;
5"
==temp)return5;
4"
==temp)return4;
3"
==temp)return3;
2"
==temp)return2;
1"
==temp)return1;
intmain()
Student>
st;
Teacher>
te;
请稍等...正在读取数据...\n"
ifstreaminfile;
infile.open("
data.dat"
);
if(infile.good())
stringtemp;
intstnum=-1;
while(!
infile.eof())
{
getline(infile,temp);
if("
[Student]"
==temp)
{
StudentStemp;
getline(infile,temp);
Stemp.setSno(temp);
Stemp.setSname(temp);
boolsextemp;
if("
==temp)sextemp=1;
elsesextemp=0;
Stemp.setsex(sextemp);
st.push_back(Stemp);
stnum++;
}
[Course]"
CourseCtemp;
Ctemp.setname(temp);
Ctemp.setscore(toint(temp));
st[stnum].setcourse(Ctemp);
[Teacher]"
TeacherTtemp;
Ttemp.setTno(temp);
Ttemp.setTname(temp);
te.push_back(Ttemp);
}
infile.close();
数据文件不存在!
\n"
intc;
while(c!
=0)
********************信息管理系统********************\n"
1、增加学生信息2、增加教师信息\n"
3、修改学生成绩4、输出学生信息\n"
5、输出教师信息6、增加学生课程\n"