c++课题研究报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++程序设计报告书
课题名称:教务管理系统
成 员:杨世贵 刘为02310103
班 级:计本三班 计本四班
指导教师:任一凡
一.程序设计目的
本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是程序设计的综合训练,包括问题分析、总体结构设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼:
constintb_long=10;
constintyear_long =5;
constintmonth_long=2;
constintday_long=2;
structstudent{
charid[id_long];
charname[name_long];
intmajor;
charbirthplace[b_long] ;
cout<<"输入出生地:";
cin>>setw(b_long)>>birthplace;
cout<<"输入教课班级:";
cin>>setw (class_long)>>classs;
cout<<"输入工资:";
cin>>setw(pay_long)>>pay;
cout<<"输入教课专业:";
cin>>setw(classmajor_long)>>classmajor;
# include<fstream>
# include<iomanip>
# include<cstring>
constintclass_long=10;
constintpay_long=19;
constintclassmajor_long=20;
constintlen1_long=12;
structstudentteacher{
stringname;
stringsex;
Datebirth;
};
#endif
#ifndefSTUDENT_H
#defineSTUDENT_H
#include"Human.h"
#include<fstream>
usingnamespacestd;
constintid_long =10;
constintname_long =5;
fstreamio_file;
};
#endif
#ifndefSTUTEA_H
#defineSTUTEA_H
#include"students.h"
#ifndefSTUTEA_H
#defineSTUTEA_H
#include"students.h"
#include"Teacher.h"
# include<iostream>
各项功能说明:
(1)基本信息的录入和保存:
这部分的功能主要包括信息的录入和保存。首先进入主菜单界面,按照界面的提示选择进入录入信息功能,按照程序的提示分别录入教师、学生和助教生的基本信息,在录入信息的同时系统会自动以文本的形式存储录入的信息,并最终自动保存到文件名分别为:人员资料.txt,student.txt,stuTea.txr的文件中。
voidprintallmajor();
StutTea
+ id:char
+Name:char
+Major: int
+birthplace:char
+Year:char
+month:char
+Day:char
+Classs:char
+ pay:char
+ len1:char
+StuTea()
+Time():int
注:Date类是Human类的一个内嵌类。
N
Y
N
Y
五.课题代码
实验代码:
#ifndefDATE_H
#defineDATE_H
classDate{//日期类
public:
Date();//默认构造
Date(inty,intm,intd);//带参构造
voidset();//设置数据函数
intyear;
(2)录入人员信息的浏览:
此功能是将录入并保存的人员信息读出,并在屏幕中显示出来。
(3)教师信息查询:
在系统提示下直接查询所有教师的信息并在屏幕上显示。
(4)按学生的学号和助教生的ID号查询此学生和助教生信息:
此功能可以根据用户输入的要查询的学生的学号和助教生的ID号查询此学生和助教生信息并在屏幕上输出该学生或助教生的所有信息。
charyear[year_long],month[month_long],day[day_long];
};
classstudents:publicHuman{
public:
students();
students (constcharfilename[]);
~students();
boolis_open()const;
intmonth;
intday;
};
#endif
#ifndefHUMAN_H
#defineHUMAN_H
#include<string>
#include"Date.h"
usingnamespacestd;
classHuman{
public:
Human();//默认构造
voiddataIn();
private:
1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
二.课程设计内容
学生信息包括:姓名、性别、学号、专业、出生年月等,教师信息包括:姓名
+find(charid[],student&st):int
+put_at(intindex,student&st):bool
add_student():bool
+ edit_major():bool
voidprintstudentinfo(conststudent*ps);
voidmainmenu();
charid[id_long],name[name_long];
intmajor;
charbirthplace[b_long];
charyear[year_long],month[month_long],day[day_long];
charclasss[class_long];
charpay[pay_long];
}
~stuTea(){io_file.close();}
boolis_open()const{returnio_file.is_open();}
intfind(charid[],studentteacher&st){
intindex=0;
io_file.seekg(0);
io_file.read((char*)&st,sizeof(st));
while(!io_file.eof()){
if(strcmp(st.id,id)==0)
returnindex;
index++;
io_file.read((char*)&st,sizeof(st));
}
return-1;
}
boolput_at(intindex,studentteacher&st){
性别、工作ID号、任教科目、负责班级、薪资等;助教生信息包括学生及教师的全部信息。程序提供一下功能:
(一)系统提供简单的菜单方便功能的使用。
(二)功能:
1.教师学生及助教生信息录入功能(全部录入信息以文件保存)
2.所有已录入教师的信息全部输出显示
3.通过学号或工作号查询学生及助教生信息
三.课程总体设计
cout<<"目前任教年数:";
cin>>setw(len1_long) >>len1;
cout<<"输入专业代号:"<<endl;
printallmajor();
cin>>major;
strcpy(st.id,id);
strcpy(,name);
strcpy(st.birthplace,birthplace);
return!io_file.fail();
}
booledit_major(){
charid[id_long];
intmajor;
cout<<"输入要查找助教生的学号:"<<endl;
cin>>setw(id_long) >>id;
studentteacherst;
inti=find(id,st);
cout<<"ID号:"<<ps->id<<" "<<"姓名"<<ps->name<<" "<<"出生地"<<ps->birthplace<<" "<<"出生年月"<<ps->year<<"年"<<ps->month<<"月"<<ps->day<<" 日"<<endl;
io_file.seekp(index*sizeof(st));
if(io_file.fail())returnfalse;
io_file.write((char*)&st,sizeof(st));
io_file.flush();
return!io_file.fail();
}
booladd_student(){
charid[id_long];
charname[name_long];
intmajor;
charbirthplace[b_long] ;
charyear[year_long],month[month_long],day[day_long];
charclasss[class_long];
charpay[pay_long];
if(i==-1){
cout<<"没有ID号为"<<id<<"的助教生"<<endl;
returnfalse;
}
else{
cout<<"学生基本信息为:"<<endl;
printstudentinfo(&st);
cout<<endl;
}
}
voidprintstudentinfo(conststudentteacher*ps){
strcpy(st.pay,pay);
strcpy(st.classs,classs);
strcpy(st.classmajor,classmajor);
strcpy(st.len1,len1);
st.major=major;
io_file.seekp(0,ios::end);
io_file.write((char*)&st,sizeof(st));
intfind(charid[],student&st);
boolput_at(intindex,student&st);
booladd_student();
booledit_major();
voidprintstudentinfo(conststudent*ps);
voidmainmenu();
voidprintallmajor();
此功能可以根据用户输入的要删除的学生的学号或姓名,在文件中删除该生的所有信息。
(5)退出系统,结束任务。
四.课题UML图
Date
+ year:int
+month:int
+day:int
Date()
Date(int x,int m,int d)
Set() :void
Human
-name:string
-sex:string
-birth:Date
-age:int
+Human()
+dataIn():void
Teacher
-id:int
-subject:string
-charge:string
-pay:float
+Teacher()
+dataIn():void
+search(int id):void
Students
-id:int
-major:string
-classNumber:int
-attendenceRate:
-fee:float
-gpa:float
+search(int id):void
+students();
+students (constcharfilename[]);
+~students();
+is_open()const:bool
charlen1[len1_long];
charclassmajor[classmajor_long];
};
classstuTea:publicstudents,publicTeacher{
public:
stuTea(constcharfilename[]){
io_file.open(filename,ios::in|ios::out|ios::binary);
charlen1[len1_long];
charclassmajor[classmajor_long];
studentteacherst;
cout<<"输入ID号(最长10个字符):";
cin>>setw(id_long)>>id;
cout<<"输入姓名(最长5个字符):";
cin>>setw(name_long)>>name;
相关文档
最新文档