C++课程设计报告完结.docx

上传人:b****6 文档编号:8895671 上传时间:2023-02-02 格式:DOCX 页数:19 大小:139.99KB
下载 相关 举报
C++课程设计报告完结.docx_第1页
第1页 / 共19页
C++课程设计报告完结.docx_第2页
第2页 / 共19页
C++课程设计报告完结.docx_第3页
第3页 / 共19页
C++课程设计报告完结.docx_第4页
第4页 / 共19页
C++课程设计报告完结.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++课程设计报告完结.docx

《C++课程设计报告完结.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告完结.docx(19页珍藏版)》请在冰豆网上搜索。

C++课程设计报告完结.docx

C++课程设计报告完结

课程设计报告

 

课程名称:

程序设计基础课程设计

学院名称:

计算机科学与工程学院

专业:

计算机科学与技术

学期:

08-09-2日期:

09-6-8~09-6-19

班级:

08计三W学号:

08141310

姓名:

周倩倩教师姓名:

罗烨

学分:

2成绩:

 

《程序设计基础》

课程设计指导书(第二版)

罗烨李秉璋著

 

江苏技术师范学院计算机科学与工程学院

2007年3月

1、课程设计目的

《程序设计基础》课程设计是在学习完《程序设计基础》课程后开设的一门实践性课程。

要求学生以个人为单位,在教师指导下,运用理论课所学知识,借助参考书籍,选择一个课题,使用C++语言,完成一个功能相对完整,具有应用价值的软件。

达到加深理解课堂教学内容,熟悉程序设计的基本流程、掌握程序设计基本方法,基本技巧、并能综合运用,提高程序设计能力。

通过本课程的实践,熟练掌握C++语言中面向过程部分的内容,能够运用C++语言解决一个实际问题。

课程设计属于研究型、创新型、自主型学习。

学生可以根据自己的兴趣、爱好、特长,或者以前已经接触过的内容,自行确定课程设计课题。

也可完成老师提供的参考课题。

2、设计环境及语言

VisualC+集成开发环境(IDE)C++语言。

3、课题设计步骤

3.1需求分析从软件使用者处获得用户需求,确定课题开发应具备的功能;

3.2系统结构设计将整个系统功能分块,考虑各个功能模块应具备的功能,模块间的联系,划分成不同的子系统进行设计;

3.3数据设计设计系统中新的数据类型、存储类型;

3.4代码设计在上述3个阶段的基础上编写代码;

3.5软件测试使用事先设计好的测试用例、对编制的程序进行测试,发现存在错误(包括潜在的问题),加以修改,完善。

4、课程设计提交材料

4.1电子版的所有.cpp文件和.h文件。

每个学生以自己的名字建了一个文件夹,通过网络提交。

4.2课程设计报告内容包括;

1)课题设计内容、具备的功能;

2)模块(函数)的划分、各模块(函数)的功能;

3)采用的自定义的数据类型;

4)程序设计过程、调试中过程中所用的测试用例、程序运行的结果;

5)在课程设计中遇到的问题和解决的方法,还没有能解决的问题;

6)通过课程设计的体会、收获。

5、参考课题

5.1参考课题内容及知识点

“学生成绩表”是一个参考课题。

本课题通过建立、修改、查询、排序、显示学生成绩等功能,具体要求掌握的技术有:

1)结构、枚举类型的定义与使用;

2)数组的定义使用;

3)程序的三种基本控制流程的综合、灵活运用;

4)普通指针和数组指针的定义和使用;

5)各类函数的定义和调用;

6)文件的输入/输出;

7)程序的调试。

5.2功能要求

1)新增学生数据的添加:

学号,姓名,性别,3门课程成绩,计算总成绩并显示;

2)修改学生成绩数据:

输入学号,根据学号,修改该生的3项成绩数据计算总成绩并显示;

3)删除一个学生:

输入学号,根据学号删除该生;

4)根据学号查询:

输入学号,查找该生并显示学生数据;

5)显示全部学生数据;

6)根据学号排序学生数据;

7)根据总成绩排序学生数据;

8)退出:

保存学生总数文件及学生数据文件,然后结束程序运行。

5.3设计要求

1)在VisualC++控制台应用程序方式下设计课题。

2)设计的程序要求完成5.2节规定的功能。

3)程序应具有一定的健壮性。

即程序必须具有必要的检查和出错处理,如在新增学生数据时检查输入的学号是否相同。

删除、查询学生时检查输入的学号是否存在等。

5.4参考课题部分设计

1)建立student工程

2)在头文件中,设计Student结构类型,成员为

charNo[5]学号

charName[8]姓名

charGender[7]性别

intScore[4]3门课程成绩及总成绩

3)设计下列函数

intEnterChoice();//输入选项

voidInit();//数据文件初始化

voidAdd();//增加一个学生

voidUpdate();//修改学生成绩

voidDelete();//删除一个学生

voidQuery();//查询学生数据

voidDisplay();//显示全部学生

voidDisplay(Student*);//显示一个学生的重载函数

voidSortNo();//按学号排序(从小到大)

voidSortScore();//按成绩排序

intCheckNo(char*);//检查学号是否存在,存在返回序号,不存在返回-1

4)设计主函数main(),运行后,屏幕显示功能菜单

1:

addstudent2:

updatestudent

3:

deletestudent4:

querystudent

5:

displaystudents6:

SortstudentbyNo

7:

Sortstudentbyscore8:

end

用户输入选择后,程序运行相应的处理函数Add()、Update()、Delete()、Query()、Display()、SortNo()、SortScore()。

运行主函数main(),调用Init()函数,从文件count.dat生总数,从文件student.dat中读取学生数据。

然后等待用户输入选项,进行相应处理。

程序运行结束前,调用Save()函数保存学生总数到文件count.txt数据到文件student.txt中。

设计除main()主函数和Init()函数、Add()、SortNo()、CheckNo()、EnterChoice()、GetData()函数之外的Display()、Update()、Delete()、Query()、SortScore()等函数。

附件:

参考课题部分源程序

//结构定义文件

//student.h

#ifndefSTUDENT_H

#defineSTUDENT_H

structStudent

{

CharNo[9];

CharName[9];

CharGender[7];

intScore[4];

};

#endif

//函数实现文件

//student.cpp

#include

#include

#include

#include

#include"student.h"

usingnamespacestd;

intEnterChoice();

voidInit();

voidAdd();

voidUpdate();

voidDelete();

voidQuery();

voidSortScore();

voidDisplay();

voidDisplay(Student*);

voidSortNo();

voidSaveTxt();

intCheckNo(char*);

voidPrintTitle();

voidGetData(Student*);

externconstintMaxNum=100;

externintCurNum;

externStudentstudent[MaxNum];

intEnterChoice()

{

cout<<"\nEnteryourChoice\n"

<<"1:

addstudent2:

updatestudent\n"

<<"3:

deletestudent4:

querystudent\n"

<<"5:

displaystudents6:

SortstudentbyNO\n"

<<"7:

Sortstudentbyscore8:

end\n";

intChoice;

cin>>Choice;

returnChoice;

}

voidInit()

{

ifstreaminCount,inStudent;

ofstreamoutCount,outStudent;

inCount.open("count.txt",ios:

:

in);

if(!

inCount)

{

inCount.close();

outCount.open("count.txt",ios:

:

out);

outCount<

outCount.close();

}

else

{

inCount>>CurNum;

inCount.close();

}

if(CurNum)

{

inStudent.open("student.txt",ios:

:

in);

for(inti=0;i

{

inStudent>>(student+i)->No;

inStudent>>(student+i)->Name;

inStudent>>(student+i)->Gender;

inStudent>>(student+i)->Score[0];

inStudent>>(student+i)->Score[1];

inStudent>>(student+i)->Score[2];

inStudent>>(student+i)->Score[3];

}

inStudent.close();

}

else

{

outStudent.open("Student.txt",ios:

:

out);

outStudent.close();

}

}

voidAdd()

{

charno[9];

cout<<"No=";

cin>>no;

inti=CheckNo(no);

if(i>=0)

cout<<"No.repeated,inputagain"<

else

{

strcpy(student[CurNum].No,no);

cout<<"Name=";

cin>>(student+CurNum)->Name;

cout<<"Gender=";

cin>>(student+CurNum)->Gender;

GetData(student+CurNum);

PrintTitle();

Display(student+CurNum);

CurNum++;

}

}

voidSortNo()

{

Studenttemp;

intflag;

for(inti=0;i

{

flag=1;

for(intj=0;j

{

if(strcmp(student[j+1].No,student[j].No)<0)

{

flag=0;

temp=student[j+1];student[j+1]=student[j];student[j]=temp;

}

}

if(flag)break;

}

Display();

}

voidPrintTitle()

{

cout<

:

left);

cout<

}

voidDisplay()

{

if(CurNum)

{

PrintTitle();

for(inti=0;i

Display(student+i);

}

else

cout<<"Thelistempty!

"<

}

voidDisplay(Student*stu)

{

cout<

:

left);

cout<No;

cout<Name;

cout<Gender;

cout<

:

left);

cout<Score[0];

cout<Score[1];

cout<Score[2];

cout<Score[3]<

}

voidSave()

{

ofstreamoutCount,outStudent;

outCount.open("count.txt",ios:

:

out);

outCount<

outCount.close();

outStudent.open("student.txt",ios:

:

out);

for(inti=0;i

{

outStudent<<(student+i)->No<<"";

outStudent<<(student+i)->Name<<"";

outStudent<<(student+i)->Gender<<"";

outStudent<<(student+i)->Score[0]<<"";

outStudent<<(student+i)->Score[1]<<"";

outStudent<<(student+i)->Score[2]<<"";

outStudent<<(student+i)->Score[3]<<"";

outStudent<

}

outStudent.close();

}

intCheckNo(char*no)

{

for(inti=0;i

if(strcmp(student[i].No,no)==0)

returni;

return-1;

}

voidGetData(Student*stu)

{

for(inti=0;i<3;i++)

{

cout<<"Score"<

cin>>stu->Score[i];

}

stu->Score[3]=stu->Score[0]+stu->Score[1]+stu->Score[2];

}

voidSortScore()

{

Studenttemp;

inti,j,max;

for(i=0;i

{max=i;

for(j=i;j

if(student[max].Score[3]

max=j;

if(max!

=i){

temp=student[max];

student[max]=student[i];

student[i]=temp;

}

}

Display();

}

voidUpdate()

{

charno[9];charc;

cout<<"inputno:

";

cin>>no;

inti=CheckNo(no);

if(i<0)

cout<<"Thenumberdosenotexist!

\n";

else{

cout<<"UpdateScore[0]?

(y/n)\n";

cin>>c;

if(c=='y'||c=='Y')

{

cout<<"InputScore[0]:

";

cin>>student[i].Score[0];

}

cout<<"UpdateScore[1]?

(y/n)\n";

cin>>c;

if(c=='y'||c=='Y')

{

cout<<"InputScore[1]:

";

cin>>student[i].Score[1];

}

cout<<"UpdateScore[2]?

(y/n)\n";

cin>>c;

if(c=='y'||c=='Y')

{

cout<<"InputScore[2]:

";

cin>>student[i].Score[2];

}

student->Score[3]=student->Score[0]+student->Score[1]+student->Score[2];

}

PrintTitle();

Display(student+i);

}

voidDelete()

{

charno[9];charc;

cout<<"Inputno:

";

cin>>no;

inti=CheckNo(no);

if(i<0)

cout<<"Thenumberdosenotexist!

(y/n)\n";

else

{

cout<<"Areyousure?

(y/n)\n";

cin>>c;

if(c=='y'||c=='Y')

{

for(intj=i+1;j

student[j-1]=student[j];

CurNum--;

}

}

Display();

}

voidQuery()

{

charno[9];

cout<<"inputno:

";

cin>>no;

inti=CheckNo(no);

if(i<0)

cout<<"Thenunberdosenotexist!

\n";

else

{

PrintTitle();

Display(student+i);

}

}

//主函数文件

//main.cpp

#include

#include

#include

#include

#include"Student.h"

usingnamespacestd;

intEnterChoice();//输入选项

voidInit();//数据文件初始化

voidAdd();//增加一个学生

voidDisplay();//显示全部学生

voidDisplayOne(Student*);//显示全部学生

voidSortNo();//按学号排序(从小到大)

voidSave();//保存数据

intCheckNo(char*);//输入学号

voidPrintTitle();//显示表头

voidGetData(Student*);//读取学生成绩数据

voidUpdate();//修改学生成绩

voidDelete();//删除一个学生

voidQuery();//查询学生数据

voidSortScore();

enumChoices{ADD=1,UPDATE,DELETE,QUERY,DISPLAY,SORTNO,SORTSCORE,END};

constintMaxNum=100;

intCurNum;

Studentstudent[MaxNum];

voidmain()

{

Init();

intchoice;

while((choice=EnterChoice())!

=END)

{

switch(choice){

caseADD:

Add();

break;

caseUPDATE:

Update();

break;

caseDELETE:

Delete();

break;

caseQUERY:

Query();

break;

caseDISPLAY:

Display();

break;

caseSORTNO:

SortNo();

break;

caseSORTSCORE:

SortScore();

break;

default:

cerr<<"Incorrectchoice\n";}

}

Save();

}

程序运行结果图示:

图1程序运行后的菜单显示

图2“1:

addstudent”界面

图3“2:

updatestudent”界面

图4“3:

deletestudent”界面

图5“4:

querystudent”界面

图6“5:

displaystudent”界面

图7“6:

sortstudentbyNo”界面

图8“7:

Sortstudentbyscore”界面

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1