为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机高级语言

2017-10-13 41页 doc 217KB 10阅读

用户头像

is_977556

暂无简介

举报
计算机高级语言计算机高级语言 计算机高级语言(C++)实习报告 实验一、成绩管理系统 实验二、 MyString类定义和应用 学生姓名:靳庆琛 学 号:20111001524 指导老师:马丽 中国地质大学(武汉)机械与电子信息学院 2013 年 6月 实验一、成绩管理系统 一、 设计任务与要求: 1、 设计三个结构体:学生类(存储学生的基本信息,如学生姓名Stu_Name、学生学号 Stu_ID、学生性别Stu_Sex等,采用结构体);课程科目Course(存储课程名称 Cou_Name,课程编号Cou_ID,开课学...
计算机高级语言
计算机高级语言 计算机高级语言(C++)实习报告 实验一、成绩管理系统 实验二、 MyString类定义和应用 学生姓名:靳庆琛 学 号:20111001524 指导老师:马丽 中国地质大学(武汉)机械与电子信息学院 2013 年 6月 实验一、成绩管理系统 一、 设计任务与要求: 1、 设计三个结构体:学生类(存储学生的基本信息,如学生姓名Stu_Name、学生学号 Stu_ID、学生性别Stu_Sex等,采用结构体);课程科目Course(存储课程名称 Cou_Name,课程编号Cou_ID,开课学期Cou_Term,授课老师Cou_Teacher等,采用 结构体);选课情况Sel_Course(课程编号Cou_ID, 学生学号Stu_ID,成绩Score 等,采用结构体)。 2、 实现功能: a、计算平均值Avg:包括每门课程的平均值,和每个学生所有课程的平均值。 b、计算最高分Max:包括每门课程的最高分,和学生平均分的最高分,并给出最高 分对应的学生姓名和学号。 c、计算最低分Min:包括每门课程的最低分,和学生平均分的最低分,并给出最低 分对应的学生姓名和学号。 d、计算每门课程成绩不及格(<60分)以及优秀(大于90分)的学生个数Count。 e、计算每门课程的方差Variance。 f、查询功能Query:可以根据输入的学生姓名或者学号,查询该学生的所有课程的 成绩。 g、排序功能Sort:按照从高到低的顺序,对每门课程的成绩进行排序,对学生平均 分进行排序,并给出排序后成绩所对应的学生姓名和学号。 提示: 把初始化部分和7个功能设置为可以选择的菜单方式,也就是每次运行程序,可以让用户选择实现某个功能,各个功能用函数来实现,有些函数需要重载。 每个功能的输出可以输出到屏幕,也可以输出到文件。 二、课程设计的要求: 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序(对给出的程序源代码要给出各部分的详细注释(自己根据能力及需要添加相应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计,数据库中的、视图(如果使用)、索引的结构和定义、触发器、存储过程、课程设计体会。 三、系统分析(需求分析): 1、需求分析: a、能对学生按学生姓名,学号和各科成绩进行录入:。 b、能按学号和姓名查询学生信息。 c、能统计学生所有课程的平均分并排序,统计各科成绩的最高分和最低分,优秀和不及格人数,各科成绩的平均分和方差。 2、系统性能要求: a、系统安全、可靠; b、功能齐全; c、操作方便、界面友好; d、易于维护和扩充。 3、系统的功能分析: 资料维护:系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。 系统功能:可以对数据表中的信息进行浏览。 系统查询:可以对学生的信息进行查询。 4、系统功能模块 学生成绩查询系统有:学生成绩信息输入模块,数据统计模块,查询模块,排序显示构成。 四、系统设计与实现 1、界面设计 程序运行后会出现一个简捷的窗口,便于用户查询数据。 2、功能设计与实现 通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括记录编辑和记录查询等功能模块。记录编辑功能完成学生成绩记录编辑和记录查询功能。记录查询功能可以对数据各分类的记录进行查询。 五、系统运行截图: 六、: 此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。 附源程序: #include #include #include #include #include #include using namespace std; ifstream fin; ofstream fout; struct student { char stu_name[10]; char studynumber[12]; int score[5]; }; student stu[10]; void new_line( ); void putin ( student a[],int size); void average( student a[],int size); void max(student a[],int size); void min( student a[],int size); void bujige( student a[],int size); void variance( student a[],int size); void query( student a[],int size); void sort(); void main() { using namespace std; ifstream fin1,fin2; using namespace std; fin1.open("score1.txt"); //fin2.open("score2.txt"); if(fin1.fail()) { cout<<"open score1.txt \n"; exit(1); } for(int i=0;i<10;i++) { fin1>>stu[i].stu_name>>stu[i].studynumber>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2 ]>>stu[i].score[3]>>stu[i].score[4]; } char choise; Menu: cout << endl; cout << "~~~~~~~~~~~~~~成绩管理系统~~~~~~~~~~~~~" << endl; cout << "0.退出系统Exit System"<<" " ; cout << "1.求平均值 " << endl; cout << "2.计算最高分Max" <<" "; cout << "3.计算最低分Min " << endl; cout << "4.计算每门课程成绩不及格及优秀的人数" <<" "; cout << "5.计算每门课程的标准方差 " << endl; cout << "6.查询功能Query " <<" "; cout << "7.排序功能Sortt " << endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<max_stu) { max_stu=c[i]; q=i; } cout<<"************************************最高分 ************************************\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" | 学号 | 名字 | 平均分 |\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" "<max_crouse[k]) max_crouse[k]=a[i].score[k]; cout<<"-------------------------------------------------------------------------------\n"; cout<<" | 数学 | 语文 | 英语 | 物理 | 化学 |\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" "<90) youxiu[k]++; } cout<<"****************************统计不及格和优秀人数 *******************************\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" | 数学 | 语文 | 英语 | 物理 | 化学 |\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" 不及格 "<>d; switch( d ) { case '1': cout << "请输入所查询的姓名" << endl; cin >>name; for ( i=0;i<10;i++) if(strcmp(name,a[i].stu_name)==0) //找到要查询学生的信息,将其输出 { q=i; cout<<"************************************查询结果 ************************************\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" | 学号 | 名字 | 数学 | 语文 | 英语 | 物理 | 化学 | \n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" "<>number; for ( i=0;i<10;i++) if(strcmp(number,a[i].studynumber)==0) { q=i; cout<<"************************************查询结果 ************************************\n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" | 学号 | 名字 | 数学 | 语文 | 英语 | 物 理 | 化学 | \n"; cout<<"-------------------------------------------------------------------------------\n"; cout<<" "<)和小于(<)操作符,用来比较两个MyString类型的字符串(可 以用友元函数实现,也可以用成员函数)。 (7)定义输入操作符(>>)和输出操作符(<<),用来将MyString类型的字符串输入 和输出(只能用友元函数实现)。并且,选择合适的流参数,使得既可以从键盘输入,也可 以从文件输入,既可以输出到屏幕,也可以输出到文件。 (8)定义成员函数length,用来得到MyString类型字符串的长度。 (9)定义成员函数c_str(),用来将MyString类型的字符串转变为C字符串。 (10)定义成员函数input_line,用来输入一行MyString类型的字符串。既可以从键 盘输入,也可以从文件输入。 (11)定义成员函数substr,用来得到并返回MyString类型调用对象的一个子字符串, 该子字符串开始于调用对象的某位置position,长度是length(包含length个字符)。 (12)定义成员函数find,返回某一个字符串在调用对象中首次出现的位置。 要求: (1)使用三个文件:类的接口文件;类的实现文件;应用程序文件。 (2)给自己定义的类创建一个命名空间。 (3) main部分中,要对类中的成员函数和友元函数进行使用和测试。 二、接口文件: #include using namespace std; namespace myname { class MyString { public: MyString( ); MyString(char par[]) ; MyString(const MyString& mystring_object); //复制构造函数 ~MyString( ); //析构函数 void operator = (const MyString& right_side); void operator = (const char right_side[ ]); friend bool operator ==(const MyString& left_side, const char right_side[ ]); friend bool operator ==(const MyString& left_side, const MyString& right_side); friend MyString operator +( MyString& string1, MyString& string2); friend MyString operator +( MyString& string1, char string2[ ]); friend bool operator >( MyString& string1, MyString& string2); friend bool operator <( MyString& string1, MyString& string2); friend istream& operator >>(istream& ins, MyString& the_object); friend ostream& operator <<(ostream& outs, const MyString& the_object); int length( ) const; const char* c_str( ) const; istream& input_line(istream& ins); MyString substr(const int& position,const int& length); int find(MyString& string); private: char *p; int str_length; }; } 三、实现文件: #include #include #include "mystring.h" using namespace std; using namespace myname; namespace myname { /*--默认构造函数,使得对象为空字符串,字符串长度为0--*/ MyString::MyString( ) : str_length(0) { p = new char[1]; p[0]='\0'; } /*--参数化构造函数,接收一个C字符串作为参数,使得对象初始化为该参数的值--*/ MyString::MyString(char par[]) { int k=0; while(par[k]!='\0') { k++; } str_length=k; p= new char[str_length+1]; for(int j=0;j( MyString& string1, MyString& string2) //重载>操作符 { int n; if(string1.str_length>string2.str_length) n=string2.str_length; else n=string1.str_length; for(int i=0;istring2.p[i]) return 0; } return 0; } bool operator <( MyString& string1, MyString& string2) //重载<操作符 { int n; if(string1.str_length>string2.str_length) n=string2.str_length; else n=string1.str_length; for(int i=0;istring2.p[i]) //阿斯克码与字母顺序相反 return 1; else if(string1.p[i]>(istream& ins, MyString& the_object)//重载输入函数 { char next; char a[100]; int i=0; ins.get(next); while(next!='\n') { a[i]=next; i++; ins.get(next); } the_object.str_length=i; delete [] the_object.p; the_object.p= new char[i+1]; for(int j=0;j #include #include "mystring.h" using namespace std; using namespace myname; int main( ) { char ch[20]="marry new year!"; MyString mystring1,mystring2(ch),mystring3(mystring2); cout<操作符 if(mystring8>mystring2) cout<<"Yes"<>操作符 cin>>mystring9; cout<>的重载问题。
/
本文档为【计算机高级语言】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索