C++课程设计学校人员信息管理系统报告.docx

上传人:b****1 文档编号:1761711 上传时间:2023-05-01 格式:DOCX 页数:27 大小:133.48KB
下载 相关 举报
C++课程设计学校人员信息管理系统报告.docx_第1页
第1页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第2页
第2页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第3页
第3页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第4页
第4页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第5页
第5页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第6页
第6页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第7页
第7页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第8页
第8页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第9页
第9页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第10页
第10页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第11页
第11页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第12页
第12页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第13页
第13页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第14页
第14页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第15页
第15页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第16页
第16页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第17页
第17页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第18页
第18页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第19页
第19页 / 共27页
C++课程设计学校人员信息管理系统报告.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++课程设计学校人员信息管理系统报告.docx

《C++课程设计学校人员信息管理系统报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计学校人员信息管理系统报告.docx(27页珍藏版)》请在冰点文库上搜索。

C++课程设计学校人员信息管理系统报告.docx

C++课程设计学校人员信息管理系统报告

C++课程设计报告

 

课程设计题目:

学校人员信息管理系统

 

第一部分

1.目的及要求

目的:

要求学生达到熟练掌握C++语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,并且能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题.

要求:

利用面向对象的方法以及C++的编程思想来完成系统的设计;要求在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能.

2.设计题目描述

用c++设计一个大学教师和学生管理程序,教师包括编号(a),姓名(c),职称(d)和教研室数据(b)的数据输入输出;大学生包括编号(m),姓名(s),性别(t),班号(n),英语(e),高等数学(f)和数据结构(g)三门课程成绩输入输出和计算机平均分(ave);研究生包括编号,姓名,性别,班号,指导教师和研究方法数据输入输出;博士后数据的输入输出;博士后既是教师也是研究生.(用派生,继承的方法可以做)

3.解决方案及设计思路

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系包括属性和行为;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述(包括属性和方法);

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

 

4.系统分析与设计

(1)系统功能模块图:

图4-1系统功能模块图

1)信息录入功能模块:

信息录入模块是简单成绩管理系统首先要执行的一个基本模块.该模块的功能即教师、大学生、研究生、博士后的各项数据的输入,只有当数据存入才能进行其他的功能.

教师包括:

编号,姓名,职称和教研室数据,

大学生包括:

编号,姓名,性别,班号,英语,高等数学和数据结构,

研究生包括:

编号,姓名,性别,班号,指导教师和研究方法,

博士后包括:

编号,姓名,性别,班号,指导教师,研究方法,职称和教研室数据.

2)信息修改功能模块:

实现已录入信息的修改,用新输入的信息覆盖原来的信息.

3)信息删除功能模块:

通过编号删除已录入的成员信息.

4)信息查询功能模块:

通过编号查找已录入的成员信息.

5)求平均分功能模块:

该功能求出大学生英语、高等数学、数据结构三门的平均分.

6)成绩排序功能模块:

该功能实现大学生英语、高等数学、数据结构和总分的排序,此处用冒泡排序法实现.

(2)系统主函数流程图:

 

图4-2主函数流程图

 

(3)类的层次

图4-3类的层次图

其中:

1)teacher类的a-编号,c-姓名,d-职称,b-教研室数据,input1()为输入编号和姓名的成员函数,input2()为输入职称和教研室数据的成员函数,output1()为输出编号和姓名的成员函数,output2()为输出职称和教研室数据的成员函数,change()为修改教师资料数据的成员函数,delete()为删除教师资料数据的成员函数,search()为查找教师资料数据的成员函数.

2)undergraduate类的m-编号,s-姓名,t-性别,n-班号,e-英语成绩,f-高等数学成绩,g-数据结构成绩,z-总分,input3()为输入编号、姓名性别和班号的成员函数,input4()为输入英语、高等数学和数据结构成绩的成员函数,output3()为输出编号、姓名性别和班号的成员函数,output4()为输出英语、高等数学和数据结构成绩的成员函数,change()为修改大学生资料数据的成员函数,delete()为删除大学生资料数据的成员函数,search()为查找大学生资料数据的成员函数,getnum()为求得录入大学生人数个数的成员函数.

3)graduate_student类的director-指导教师,method-研究方法,input5()为输入指导教师和研究方法的成员函数,output5()为输出指导教师和研究方法的成员函数.graduate_student类是undergraduate类的继承,继承了其m-编号,s-姓名,t-性别,n-班号.

4)postdoctoral类继承了teacher类和graduate_student类.

第二部分

1.调试过程

2.部分关键代码

大学生资料修改的函数代码

voidChange(undergraduateu[],inti2)

{

system("cls");

intchoice;

charnumber[20],name[20],sex,clas[20],c;

floatEnglish,math,date;

cout<<"请输入要修改的大学生的编号:

";

cin>>number;

for(inti=0;i

{if(strcmp(u[i].m,number)==0)

{

cout<<"1.编号2.姓名"<

cout<<"3.性别4.班号"<

cout<<"5.英语成绩6.高等数学成绩"<

cout<<"7.数据结构成绩"<

do

{

cout<<"请选择要修改的项目:

";

cin>>choice;

while(!

(choice>=1&&choice<=7))

{

cout<<"输入错误,请重新输入:

";

cin>>choice;

}

if(choice==1)

{

cout<<"请输入修改后的编号:

";

cin>>number;

strcpy(u[i].m,number);

}

if(choice==2)

{

cout<<"请输入修改后的姓名:

";

cin>>name;

strcpy(u[i].s,name);

}

if(choice==3)

{

cout<<"请输入修改后的性别:

";

cin>>sex;

u[i].t=sex;

}

if(choice==4)

{

cout<<"请输入修改后的班号:

";

cin>>clas;

strcpy(u[i].n,clas);

}

if(choice==5)

{

cout<<"请输入修改后的英语成绩:

";

cin>>English;

u[i].e=English;

}

if(choice==6)

{

cout<<"请输入修改后的高等数学成绩:

";

cin>>math;

u[i].f=math;

}

if(choice==7)

{

cout<<"请输入修改后的数据结构成绩:

";

cin>>date;

u[i].g=date;

}

cout<

cout<<"资料修改成功!

是否继续修改?

(Y/N):

";

cin>>c;

while(c!

='Y'&&c!

='N')

{

cout<<"输入错误,请重新输入:

";

cin>>c;

}

}while(c=='Y');

break;

}

}

if(i==i2)

{

cout<<"无此大学生的资料!

"<

cout<<"按任意键返回...";

getch();

}

}

教师资料删除的函数代码

voidDelete(teachert[],int*d1)

{

system("cls");

teachertt;

intr=*d1;

charnumber[20];

cout<<"请输入要删除的教师的编号:

";

cin>>number;

cout<

for(inti=0;i

{

if(strcmp(t[i].a,number)==0)

{

for(intj=i;j

{

tt=t[j];

t[j]=t[j+1];

}

(*d1)--;

cout<<"编号"<

"<

break;

}

}

if(i==r)

{

cout<<"无此教师的资料!

"<

}

}

学生成绩排名代码

voidsort(undergraduateu[],int*d2)

{

inta;

do

{

system("cls");

cout<<"---------1.英语成绩排名---------"<

cout<<"---------2.高等数学成绩排名---------"<

cout<<"---------3.数据结构成绩排名---------"<

cout<<"---------4.总分成绩排名---------"<

cout<<"---------5.返回主菜单---------"<

cout<<"请输入您的选择(1~5):

";

cin>>a;

if(a<1||a>5)

cout<<"输入错误,请重新输入!

";

if(a==1)

{

undergraduates;

for(inti=0;i<*d2;i++)

{

for(intj=0;j<*d2-i;j++)

if(u[j].e

{

s=u[j];

u[j]=u[j+1];

u[j+1]=s;

}

}

for(i=0;i<*d2;i++)

{

cout<<"编号:

"<

"

<

"<

cout<

}

cout<<"按任意键返回...";

getch();

}

if(a==2)

{......}

if(a==3)

{......}

if(a==4)

{......}

}while(a!

=5);

}

主函数

voidmain()

{

charc;

inti,m=0;

charb[7];

charpass[7]="111111";

cout<<"欢迎您使用学校人员信息管理系统"<

cout<<"管理人:

赖玉蕾"<

cout<<"***********************************************************************"<

cout<<"请输入6位密码登录:

";

do

{

for(i=0;i<6;i++)

{

c=getch();

b[i]=c;

cout<<"*";

}

getch();

b[6]='\0';

if(strcmp(pass,b)!

=0)

{

m++;

cout<

"<

}

else

{

cout<

-----------------"<

getch();

break;

}

}while(m<3);

if(m>=3)

{

system("cls");

cout<

cout<<"\t\t\t连续三次输入错误,强制退出程序!

"<

exit(0);

}

teachert[20];

undergraduateu[20];

graduate_studentg[20];

postdoctoralp[20];

intch,a,i1=0,i2=0,i3=0,i4=0,j;

int*d1=&i1,*d2=&i2,*d3=&i3,*d4=&i4;

charchoice;

do

{

system("cls");

menu1();

cout<<"请输入您的选择(1~8):

";

cin>>ch;

while(!

(ch>=1&&ch<=8))

{

cout<<"输入错误,请重新输入:

";

cin>>ch;

}

switch(ch)

{

case1:

do

{

system("cls");

menu2();

cout<<"请输入您的选择(1~5):

";

cin>>a;

while(!

(a>=1&&a<=5))

{

cout<<"输入错误,请重新输入:

";

cin>>a;

}

if(a==1)

{

do

{

system("cls");

cout<<"请输入教师信息:

"<

t[i1].input1();

t[i1].input2();

cout<

cout<<"是否继续录入?

(Y/N):

";

cin>>choice;

while(choice!

='Y'&&choice!

='N')

{

cout<<"输入错误,请重新输入:

";

cin>>choice;

}

i1++;

}while(choice=='Y');

}

if(a==2)

{

do

{

system("cls");

cout<<"请输入大学生信息:

"<

u[i2].input3();

u[i2].input4();

cout<

cout<<"是否继续录入?

(Y/N):

";

cin>>choice;

while(choice!

='Y'&&choice!

='N')

{

cout<<"输入错误,请重新输入:

";

cin>>choice;

}

i2++;

}while(choice=='Y');

}

if(a==3)

{

do

{

system("cls");

cout<<"请输入研究生信息:

"<

g[i3].input3();

g[i3].input5();

cout<

cout<<"是否继续录入?

(Y/N):

";

cin>>choice;

while(choice!

='Y'&&choice!

='N')

{

cout<<"输入错误,请重新输入:

";

cin>>choice;

}

i3++;

}while(choice=='Y');

}

if(a==4)

{

do

{

system("cls");

cout<<"请输入博士后信息:

"<

p[i4].input3();

p[i4].input2();

p[i4].input5();

cout<

cout<<"是否继续录入?

(Y/N):

";

cin>>choice;

while(choice!

='Y'&&choice!

='N')

{

cout<<"输入错误,请重新输入:

";

cin>>choice;

}

i4++;

}while(choice=='Y');

}

}while(a!

=5);

break;

case2:

do

{

system("cls");

cout<<"资料修改..."<

cout<

menu2();

cout<<"请输入您的选择(1~5):

";

cin>>a;

while(!

(a>=1&&a<=5))

{

cout<<"输入错误,请重新输入:

";

cin>>a;

}

if(a==1)Change(t,i1);

if(a==2)Change(u,i2);

if(a==3)Change(g,i3);

if(a==4)Change(p,i4);

}while(a!

=5);

break;

case3:

do

{

system("cls");

cout<<"资料删除..."<

cout<

menu2();

cout<<"请输入您的选择(1~5):

";

cin>>a;

while(!

(a>=1&&a<=5))

{

cout<<"输入错误,请重新输入:

";

cin>>a;

}

if(a==1)Delete(t,d1);

if(a==2)Delete(u,d2);

if(a==3)Delete(g,d3);

if(a==4)Delete(p,d4);

if(!

(a==5))

{

cout<<"按任意键返回...";

getch();

}

}while(a!

=5);

break;

case4:

do

{

system("cls");

cout<<"资料查询..."<

cout<

menu2();

cout<<"请输入您的选择(1~5):

";

cin>>a;

while(!

(a>=1&&a<=5))

{

cout<<"输入错误,请重新输入:

";

cin>>a;

}

if(a==1)Search(t,i1);

if(a==2)Search(u,i2);

if(a==3)Search(g,i3);

if(a==4)Search(p,i4);

if(!

(a==5))

{

cout<<"按任意键返回...";

getch();

}

}while(a!

=5);

break;

case5:

system("cls");

cout<<"教师信息:

"<

if(*d1==0)

cout<<"暂无!

"<

for(j=0;j<*d1;j++)

{

t[j].output1();

t[j].output2();

cout<

}

cout<

cout<<"大学生信息:

"<

if(*d2==0)

cout<<"暂无!

"<

for(j=0;j<*d2;j++)

{

u[j].output3();

u[j].output4();

cout<

}

cout<

cout<<"研究生信息:

"<

if(*d3==0)

cout<<"暂无!

"<

for(j=0;j<*d3;j++)

{

g[j].output3();

g[j].output5();

cout<

}

cout<

cout<<"博士后信息:

"<

if(*d4==0)

cout<<"暂无!

"<

for(j=0;j<*d4;j++)

{

p[j].output3();

p[j].output2();

p[j].output5();

cout<

}

cout<

cout<<"按任意键返回主菜单...";

getch();

break;

case6:

ave(u,d2);break;

case7:

sort(u,d2);break;

case8:

system("cls");

cout<

cout<<"---------------------感谢您的使用-------------------------"<

cout<

exit(0);

default:

cout<<"输入错误,请重新选择!

"<

}

}while(ch!

=8);

}

 

第三部分

1.总结:

通过本次课程设计,使我对C++有了更进一步的认识和掌握。

这让我对编程过程有了一个比较清晰的认识,拿到一个题目或一个项目,首先要对其进行深入的了解和分析,可通过查阅资料的方式完成这一步,其次,需要对这个系统设计一个整体的轮廓,再对其整体进行分解,分解成多个小部分,然后对各个小部分的功能的实现编写代码,编写完成之后把各个部分重新梳理合并起来,再一步步地进行功能的完善,最后就完成了该系统的编写和设计。

由于基础不是很好,在编写过程中困难重重,不过通过查阅资料以及在同学和老师的帮助下,多次修改和调试,最终还是顺利地完成了本次课程设计。

这让我学到了很多课堂上学不到的知识,这也是一种宝贵的经验。

编程需要的是细心和耐心,也需要一种精益求精的态度,这使得我锻炼了一番。

同时也发现了自

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2