跪求一份C++的程序设计报告感想

作者&投稿:磨贡 (若有异议请与网页底部的电邮联系)
求一份C++程序设计报告 完整点的~

设计题目:成绩管理系统
有学生成绩信息,内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
A、功能要求:
(1) 信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),
统计出在此分数段的学生情况。
(4) 排序:能对用户指定的任意课程名,
按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)
以前做的一个程序,基本符合你的要求,你可以自己改一下。
---------By kuaidh00 ---2008/01/07----------
**********************************************/
//链表的练习。

#include
#include
#include
#include
using namespace std;

struct List
{
string m_Name;
string m_ID;//可能有的学号里有字母,所以用string类型。
short int m_Chinese;
short int m_Match;
short int m_English;
struct List *Next; //指针域。
};

typedef struct List Node;
typedef Node *Link;


//---------------函数声明-------------------
Link Create(Link Head);
Link Search(Link Head);
Link Search_front(Link Head);
void Release(Link Head);
void Display(Link Head);
void Display_One(Link Head);
void Display(Link Head,fstream& ofile);
Link AddInfo(Link Head);
Link DelInfo(Link Head);
Link Modify(Link Head);
void Grade_Stat(Link Head);
Link Sort(Link Head);
//---------------函数实现-------------------
Link Create(Link Head)
{
/*构造一个头节点*/
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败。"<<endl;
exit(-1);
}
Head->m_Name="";
Head->m_ID="";
Head->m_Chinese=0;
Head->m_Match=0;
Head->m_English=0;
Head->Next=NULL;
return Head;
}

Link Search(Link Head)
{
cout<<" 1.按姓名查询 2.按学号查询 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
ptr=Head;
if(select==1)
{
string name;
cout<<"请输入要查询的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;

}
else if(select==2)
{
string ID;
cout<<"请输入要查询的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return ptr;
}

Link Search_front(Link Head)
{//返回前驱节点。
cout<<" 1.按姓名删除 2.按学号删除 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
Link front;
ptr=Head->Next;
front=Head;
if(select==1)
{
string name;
cout<<"请输入要删除的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;

}
else if(select==2)
{
string ID;
cout<<"请输入要删除的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return front;
}

void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}

void Display(Link Head)
{
Link ptr;
ptr=Head->Next;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 所有学生信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
coutm_Name
m_ID
m_Chinese
m_Match
m_English<<endl;
ptr=ptr->Next;

}
}
void Display(Link Head,fstream& ofile)
{
Link ptr;
ptr=Head->Next;
ofile<<"----------------------------------------------------------------------"<<endl;
ofile<<"---------------------------- 所有学生信息 --------------------------"<<endl;
ofile<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
ofilem_Name
m_ID
m_Chinese
m_Match
m_English<<endl;
ptr=ptr->Next;

}
}


void Display_One(Link Head)
{
Link ptr;
ptr=Head;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 查询结果信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
coutm_Name
m_ID
m_Chinese
m_Match
m_English<<endl;
}

Link AddInfo(Link Head)
{
Link ptr;
ptr=Head;
while(ptr->Next!=NULL)
{
ptr=ptr->Next;
}
Link ptr2;
char again;
do
{
ptr2=(Link)new Node;
if(!ptr2)
{
cout<<"内存分配失败!"<<endl;
exit(-1);
}
//数据域
string Name,ID;
short int Chinese,Match,English;
cout<<"输入姓名:";
cin>>Name;
cout<<endl<<"输入学号:";
cin>>ID;
cout<<endl<<"语文成绩:";
cin>>Chinese;
cout<<endl<<"数据成绩:";
cin>>Match;
cout<<endl<<"英语成绩:";
cin>>English;

ptr2->m_Name=Name;
ptr2->m_ID=ID;
ptr2->m_Chinese=Chinese;
ptr2->m_Match=Match;
ptr2->m_English=English;

//指针域
ptr2->Next=NULL;//作为尾节点。
ptr->Next=ptr2;//连接入链表。
ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.

cout<<"是否继续输入?(Y/N) ";
cin>>again;

}while(again=='Y'||again=='y');
return Head;
}

Link DelInfo(Link Head)
{
Link ptr;
Link ptr2;
ptr=Head;
Link f_ptr;//前驱节点。
f_ptr=Search_front(ptr);

ptr2=f_ptr->Next;
f_ptr->Next=f_ptr->Next->Next;
delete ptr2;
return Head;
}

Link Modify(Link Head)
{
Link ptr;
ptr=Head;
ptr=Search(ptr);
cout<<"修改前信息为:"<<endl;
Display_One(ptr);
//cout<<"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"<<endl;
string name,ID;
float Chinese,Match,English;
cout<<"输入新姓名:";
cin>>name;
cout<<endl<<"输入新学号:";
cin>>ID;
cout<<endl<<"输入新语文成绩:";
cin>>Chinese;
cout<<endl<<"输入新数学成绩:";
cin>>Match;
cout<<endl<<"输入新英语成绩:";
cin>>English;

ptr->m_Name=name;
ptr->m_ID=ID;
ptr->m_Chinese=Chinese;
ptr->m_Match=Match;
ptr->m_English=English;

cout<<endl<<"修改后信息为:"<<endl;
Display_One(ptr);

return Head;
}

void Grade_Stat(Link Head)
{//成绩统计。
Link ptr;
ptr=Head;
cout<<"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."<<endl;
string name;
short int min,max;
int SwitchNum;
cout<<"课程名:";
cin>>name;
cout<<endl<<"分数下限:";
cin>>min;
cout<<endl<<"分数上限:";
cin>>max;
if(name=="chinese")
SwitchNum=1;
else if(name=="match")
SwitchNum=2;
else if(name=="english")
SwitchNum=3;
else
{
cout<<"请输入一个正确的课程名:"<<endl;
return;
}
while(ptr!=NULL)
{
switch(SwitchNum)
{
case 1:
if(ptr->m_Chinesem_Chinese>=min)
Display_One(ptr);
break;
case 2:
if(ptr->m_Matchm_Match>=min)
Display_One(ptr);
break;
case 3:
if(ptr->m_Englishm_English>=min)
Display_One(ptr);
}
}

}

Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
cout<<"请输入你想排序的课程名(用中文):";
string course_name;
cin>>course_name;
if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。
{
cout<<"数据节点数少于2个,不用排序!"<<endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->Next)
{
if(course_name=="语文")
{
if(ptr->m_Chinese>ptr_F->Next->m_Chinese)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="数学")
{
if(ptr->m_Match>ptr_F->Next->m_Match)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="英语")
{
if(ptr->m_English>ptr_F->Next->m_English)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
}//while(ptr_F->Next)
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;//表示插到有序链表的最后面了。
}

ptr=ptr_N;//归位,准备下一次排序。

}//while(ptr)
cout<<"从高到低,排序成功!"<<endl;
return Head;
}


//----------主函数----------------------
int main()
{

fstream ofile;
ofile.open("e:\\student.txt",ios_base::out);
if(!ofile)
{
cout<<"文件打开失败。"<<endl;
exit(-1);
}

Link head=0;
head=Create(head);

while(1)
{

cout<<"*****************************************************"<<endl;
cout<<"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"<<endl;
cout<<"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请选择正确的菜单项:";
int sel;
cin>>sel;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>sel;
}
switch(sel)
{
case 0:
exit(0);
case 1:
head=AddInfo(head);
break;
case 2:
head=Modify(head);
break;
case 3:
head=DelInfo(head);
break;
case 4:
Search(head);
break;
case 5:
Grade_Stat(head);
break;
case 6:
Sort(head);
break;
case 7:
Display(head);//在标准显示器上显示。
Display(head,ofile);//在文件中显示。
break;
default:
break;
}
}

Release(head);
return 0;
}

看看这本书吧《game programme all in one》里面有游戏编程范例,而且是用visual c++6.0环境,希望对你有用。

在为期不到两周的课程设计中,我体会颇多,学到很多东西。我懂得了如何用 MFC编写可视化界面的应用程序,利用设计这次简单计算器的机会,我加强了对C++的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。从而对Microsoft Visual C++ 6.0又有了更深入的认识!在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设计、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。特别是学会了在Visual C++ 集成开发环境中如何调试程序的方法。当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中所有辅导老师对我的关心和帮助,诚心诚意感谢他们对我的鼓励与教导,是她们在我迷茫的时候给了我些许提示,激发了我编程的灵感;还有,我在此也十分感谢本次课程设计中同学们对我的帮助,尽管本次不是团队合作,但是他们也给了我不少的提示和帮助,是他们让我有信心坚持做下来,在此感谢他们!
这是我自己写的,拿出来奉献了,哈。见笑了。
下面是以前的一个,
通过完成本次面向对象程序设计的任务,使我熟练和掌握了这学期所学的有关visual c++中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。

面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。

此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。

当然,此次任务的完成,也体现出同学之间的团结精神。所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。

“实践是检验真理的唯一标准”。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。面向对象程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。

理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。总之,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。

不给分太不给面子了兄弟。哈!天天开心,新年快乐啊!!!

要想写好C++,必须有坚硬扎实的程序基础,之前有学过C语言上手就很快。
语法相似。

jsjsmsmsmsksj

报告老师,我不会写感想。

哎呀,现在的教育阿。


求一个C用语言写的学生证管理程序,使用Visual C++的集成开发环境 小学 ...
\/\/学生证管理程序 include"stdio.h"include"stdlib.h"include"conio.h"include"string.h"define N 20 typedef struct {char name[10];int num;}stu;void menu(){system("cls");printf("1.学生输入\\n");printf("2.显示\\n");printf("3.退出\\n");printf("请选择:");} void input(){...

求编一个C语言程序,明天的作业。在线等,100分嫌不够再加
效果图 程序源代码--- \/\/\/ C-Free 4.1\/\/ MinGW 3.4.5\/\/ veket的小号\/\/\/#include <stdio.h>struct a{char str[30];};int main(){char s[30] = "";struct a test[15];int i;int j;int k;int m;gets(s);i = 0;k = 0;while(s[i]!='\\0' && i<30){j...

求一个简单的C语言程序!
include "stdio.h"typedef struct { \/*姓名,学号,班级,科目 A B C D *\/ char name[10];char num[10];char Class[100];float A;float B;float C;float D;float allScore;} student;\/*计算一个学生的总成绩*\/ double countAllScore(student stu){ return stu.A+stu.B+stu.C+stu.D;...

求一个超简单的C语言编译的学生成绩管理程序
求一个超简单的C语言编译的学生成绩管理程序 功能要求,录入,查询,排序,最高分和最低分,越简单越好,最最简单的就好,多谢各位大神了用的是VS2013.多谢多谢... 功能要求,录入,查询,排序,最高分和最低分,越简单越好,最最简单的就好,多谢各位大神了用的是VS2013.多谢多谢 展开  我来答 ...

求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽...
include<stdio.h> int main(){int i,j,t,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};printf("原来的数组:\\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\\n");} for(i=0;i<2;i++)for(j=i+1;j<3;j++){t=a[i][j];a[i...

求一个C语言程序题:编写一个函数SWAP()实现交换两个数位置的功能
include <stdio.h> void swap(int *p, int *q);\/\/用传地址的方法交换 void main(){ int i, j;scanf("%d%d", &i, &j);\/\/从键盘输入两个交换的数 swap(&i, &j);\/\/传入i,j的地址 printf("i = %d, j = %d\\n", i, j);\/\/输出交换后的两个值 } void swap(int *p, int...

求一份C语言程序设计
printf("输入第%d个学生的学号:",i+1);scanf("%s",&(p->number));printf("姓名:");scanf("%s",&(p->name));printf("年龄:");scanf("%d",&(p->age));printf("两门成绩:");scanf("%d%d",&(p->score[0]),&(p->score[1]));p++;} p=a; \/\/在COUNT函数中输出个人...

一个c语言的程序题?
然后,在main()函数中定义一个头节点指针,并用它来存储整个链表 请点击输入图片描述 接下来,实现从键盘输入五个整数并将它们尾插入链表中 请点击输入图片描述 最后,实现链表中的插入和删除操作,并输出链表中的所有元素 下面是一个可行的c语言程序,该程序实现了从键盘输入五个整数并存储在链表中,...

求一个C语言的程序
}while(i<'1'||i>'9');printf("你选择了:%c\\n",i);}while(i=='7');\/\/回到读取数据 if(i=='1'){ for(j=0;j<n;j++){ if(num[j][0]=='\\0')break;}\/\/查找空的数组 printf("\\n操作数为:%d",j+1);printf("\\n请输入学号:");scanf("%s",num[j]);printf("请输入...

求编一简单的C语言程序
float c;float d;printf("输入商品价格");scanf("%f",&J);a=1000*J;b=2500*J;c=3000*J;d=4500*J;printf("输出依次为1000件2500件3000件与4500件价格");printf("a=%f\\n",a);printf("b=%f\\n",b);printf("c=%f\\n",c);printf("d=%f\\n",d);} 初学者,试着编了一下。

莘县17688878664: c++面向对象程序设计心得
巧亮美得: 心得就是:踏踏实实,一步一个脚印,有毅力(特别是自已一个人学习的时候) 不耻下问,多在电脑上写写代码 还有写代码的时候一定要看书上怎么写了,像变量命名规则一样,最好跟书上一致,虽然可以随便命名,但与书上的一致有很多好处:便于以后你阅读大量代码,还可以学习英语

莘县17688878664: 速求一份程序实训感想,比如对编程的感想,心得,学会了什么之类的.谢谢大家了 -
巧亮美得: 通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在...

莘县17688878664: 编程心得 -
巧亮美得: 编程 这是每个游戏编程FAQ里都有的问题.这个问题每星期都会在游戏开发论坛上被问上好几次.这是个很好的问题,但是,没人能给出简单的答案.在某些应用程序中,总有一些计算机语言优于其他语言.下面是几种用于编写游戏的主要编...

莘县17688878664: 求一篇C++的论文,关于“面向对象与面向过程程序设计的思考与理解”,3000字左右. -
巧亮美得: 面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户最后还要感谢在我写论文过程中提供无私帮助的人们,以及给我支持的家人和朋友

莘县17688878664: C++程序设计,写程序来交流编程心得.程序首先向屏幕谢一条心得,户输入另一条心得. -
巧亮美得: #include using namespace std; int main() { FILE * fp = NULL; char line[1024] = {0}; fp = fopen("data.txt", "r+"); if (fp == NULL) { coutreturn -1; } coutwhile (1) { if (feof(fp)) { break; } while (fgets(line, sizeof(line), fp)) { cout} } char enterLine = 0; ...

莘县17688878664: C++程序设计 实验报告 -
巧亮美得: 1.双击vc++图标/文件/new/工程/win32 Console Aplication/工程名称/确 定/new/C++ Source File/名称 #include<iostream.h> void main() { cout<<"hello world"<<endl; } 2.在classview中添加Location类vc自动生成Location class和他的构造函数和析...

莘县17688878664: 求一份c++通讯录系统程序设计报告 -
巧亮美得: 用C语言编写的通讯录,实践报告书该怎么写啊??哪位仁兄帮我一下啊~~~感激不尽!!!求救!~~~ 第一章 课程设计的目的 1 第二章 课程设计题目问题...

莘县17688878664: 有多个文件的程序,c++的心得 -
巧亮美得: 可以看C++之父的《C++程序设计语言》这本书里的一次定义原则ODR,一般情况下声明、类定义、inline定义、宏和常量放到头文件里;类和函数实现放到cpp文件中(不包括inline实现)

莘县17688878664: 跪求C++(经验心得,编程例子)谢谢!!! -
巧亮美得: 那你学过结构体没,类和它差不多,就是在自定义数据类型是增加了方法,即自身包含函数,类成员有public,privet,statist,属性.

莘县17688878664: 求一个完整的C语言程序设计报告!!!! -
巧亮美得: C语言课程设计报告--学生成绩管理系 C语言课程设计报告:学生成绩管理系统 系统需求 一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网