
课程名称 面向对象程序设计
专业班级 软件1142
姓 名 严露露
学 号 **********
电气与信息学院
和谐 勤奋 求是 创新
实验教学考核和成绩评定办法
1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。
2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。
3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2 、0.4 、 0.4;原则上根据上述三个方面进行综合评定。学生未取得1)和2)项成绩时,第3)项成绩无效。
4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。
实验报告主要内容
一. 实验目的
二. 实验仪器及设备
三. 实验原理
四. 实验步骤
五. 实验记录及原始记录
六. 数据处理及结论
七. 实验体会(可选项)
注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。
2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。
3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。
4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。
5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。
| 实验题目 | 面向对象综合编程 | ||||
| 实验室 | 电信机房 | 实验时间 | 年 月 日 | ||
| 实验类别 | 验证 | 同组人数 | 1 | ||
| 成 绩 | 指导教师签字: | ||||
| 一、实验目的 二、实验内容 三、编程分析及运行结果 四、解决方法及难点 五、实验体会 【实验目的】 1.理解面向对象的设计思想,掌握编程方法。 2.利用面向对象系统分析与设计方法,对问题进行准确分析,设计一个适当的对象模型,进行编程。 3.设计合理的类结构与程序结构实现程序功能,用C++ 语言编写程序,进行测试,观察结果。 【实验内容】 设计一个小型学生信息或者成绩管理系统,对成绩可以进行录入、增加、删除、查询等功能。 【编程分析及运行结果】 #include #include #include class Student {private: int num; char name[10]; char sex; int age; char bri[20],tel[20],add[20],email[30]; public: Student(){}; friend void Daolu(); friend void Liulan(); friend void Chaxun(); friend void Xiugai(); friend void Shanchu(); ~Student(){}; }; Student stu[80]; void Daolu() {ofstream out; out.open("stu.txt",ios::ate); int m=1; for(int i=0;i<=79&&m==1;i++) {cout<<"请输入该学生学号: ";cin>>stu[i].num;cin.get(); cout<<"输入该学生姓名: ";cin.getline(stu[i].name,10); cout<<"输入该学生性别: ";cin>>stu[i].sex; cout<<"输入该学生年龄: ";cin>>stu[i].age;cin.get(); cout<<"输入该学生出生年月日: ";cin.getline(stu[i].bri,20); cout<<"输入该学生地址: ";cin.getline(stu[i].add,20); cout<<"输入该学生电话: ";cin.getline(stu[i].tel,20); cout<<"输入该学生e-mail地址:";cin.getline(stu[i].email,30); out.write((char *)&stu[i],sizeof(stu[i])); cout<<"是否继续输入?是按1,否按0:";cin>>m; } out.close(); } void Liulan() {ifstream in; in.open("stu.txt"); if(!in)cout<<"Can't open file!"< while(!in.eof()) { in.read((char *)&stu[i],sizeof(stu[i])); if(stu[i].num!=0) {cout<<"学生学号:"< } in.close(); } void Chaxun() {ifstream in; in.open("stu.txt"); if(!in)cout<<"Can't open file!"< while(!in.eof()) {in.read((char *)&stu[i],sizeof(stu[i]));i++;} do { cout<<" 按 学 生 学 号 查 询 请 按 1:"< if(x==1) {int m;cout<<" 请 输 入 查 询 的 学 生 的 学 号:";cin>>m; for(int j=0;j<=i;j++) if(stu[j].num==m) {cout<<"学生学号:"< if(n==0)cout<<" 无 该 学 号 学 生 的 信 息 ! "< else {char a[10];cout<<" 请 输 入 查 询 的 学 生 的 姓 名: ";cin.get();cin.getline(a,10); for(int j=0;j<=i;j++) if(strcmp(stu[j].name,a)==0) {cout<<"学生学号:"< if(n==0)cout<<" 无 该 学 生 的 信 息 !"< cout<<" 是 否 继 续 查 询?是 按 1,否 按 0:";cin>>x; }while(x==1); in.close(); } void Xiugai() {ifstream in; in.open("stu.txt"); if(!in)cout<<"Can't open file!"< while(!in.eof()) {in.read((char *)&stu[i],sizeof(stu[i]));i++;} in.close(); do {cout<<" 请 输 入 需 要 修 改 的 学 生 的 学 号 :";cin>>x; for(j=0;j<=i-1;j++) if(stu[j].num==x) {cout<<"学生学号:"< do {cout<<" 修 改 该 学 生 学 号 请 按 1:"< switch(c) { case 1:cout<<"请 输 入 正 确 的 学 号:";cin>>stu[j].num;break; case 2:cout<<"请 输 入 正 确 的 姓 名:";cin.get();cin.getline(stu[j].name,10);break; case 3:cout<<"请 输 入 正 确 的 性 别:";cin>>stu[j].sex;break; case 4:cout<<"请 输 入 正 确 的 年 龄:";cin>>stu[j].age;break; case 5:cout<<"请 输 入 正 确 的 出 生 年月 日:";cin.get();cin.getline(stu[j].bri,20);break; case 6:cout<<"请 输 入 正 确 的 地 址:";cin.get();cin.getline(stu[j].add,20);break; case 7:cout<<"请 输 入 正 确 的 电 话:";cin.get();cin.getline(stu[j].tel,20);break; case 8:cout<<"请 输 入 正 确 的 e-mail 地 址:";cin.get();cin.getline(stu[j].email,30);break; } cout< }while(c==1); } if(n==0)cout<<" 无 该 学 号 学 生 的 信 息 ! "< }while(x==1); ofstream out; out.open("stu.txt",ios::out); for(j=0;j<=i-1;j++) out.write((char *)&stu[j],sizeof(stu[j])); out.close(); } void Shanchu() {ifstream in; int n=1; do {in.open("stu.txt"); if(!in)cout<<"Can't open file!"< while(!in.eof()) {in.read((char *)&stu[i],sizeof(stu[i]));i++;} in.close(); cout<<" 请 输 入 需 要 删 除 的 学 生 的 学 号 :";cin>>x; for(j=0;j<=i-1;j++) if(stu[j].num==x)a=j; ofstream out; out.open("stu.txt",ios::out); for(j=0;j<=a-1;j++)out.write((char *)&stu[j],sizeof(stu[j])); for(j=a+1;j<=i-1;j++)out.write((char *)&stu[j],sizeof(stu[j])); out.close(); cout<<"是 否 继 续 删 除?是按1,否按0:";cin>>n; }while(n==1); } void main() {cout<<" 欢 迎 来 到 学 生 信 息 管 理 系 统 !"< do {cout<<" 录 入 学 生 信 息 请 按 1"< cin>>k; switch(k) { case 1:Daolu();break; case 2:Liulan();break; case 3:Chaxun();break; case 4:Xiugai();break; case 5:Shanchu();break; case 6:cout<<" 谢 谢 使 用 ! "< }while(k!=6); } 运行结果: 【解决方法及难点】 难点:对文件的内容的读写,以及类的实际应用。 解决方法:向老师寻求帮助 【实验体会】 理解如何设计一个学生管理系统,通过这次的实验学会了如何使类在文件中的应用,掌握了c++的基本编程方法,设计思想。 | |||||
