C++期末大作业
西电2022年秋季《面向对象程序设计(c++)》大作业及答案
学习中心/函授站姓名学号西安电子科技大学网络与继续教育学院2022 学年下学期《面向对象程序设计(C++)》期末考试试题(综合大作业)考试说明:1、大作业试题公布时间:(1)毕业班:2022 年10 月21 日;(2)正常班:2022 年11 月18 日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院2022 秋期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、在线上传时间:(1)毕业班学生于2022 年10 月21 日至2022 年11 月1 日在线上传大作业答卷;(2)正常班学生于2022 年11 月18 日至2022 年12 月5 日在线上传大作业答卷;5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。
一、简答题(10 分)1、运算符 new 和 delete 的功能分别是什么?(3 分)答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。
2、若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员?(3 分)答案:若派生类以private方式从一个基类派生,派生类的对象不能访问基类中的任何成员(1分);派生类的成员函数可以访问基类中的public和protected成员(2分)。
3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)答案:构造函数的作用是创建对象并对其进行必要的初始化。
(1分)构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。
(2分)二、填空题(每空 2 分,共 20 分)1、函数的返回值是通过函数体中的return语句带回的;若被调用函数被定义为 void 类型,则被调用函数不带回任何值。
2、表示逻辑关系“ a 大于等于8 或者 a 小于等于5”的C++表达式是。
c语言期末考试题及详细答案
c语言期末考试题及详细答案一、选择题(每题2分,共20分)1. 下列哪个关键字用于定义C语言中的函数?A. classB. functionC. voidD. int答案:D2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B4. C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B5. 在C语言中,哪个函数用于计算两个整数的乘积?A. powB. sqrtC. absD. multiply答案:D(注意:multiply不是C语言标准库函数,这里假设为题目中的自定义函数)6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. +=答案:A7. C语言中,哪个关键字用于循环结构?A. ifB. forC. whileD. switch答案:B8. 在C语言中,哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. 以上都是答案:D10. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:B二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。
答案:char2. C语言中,用于定义一个双精度浮点型变量的关键字是________。
答案:double3. C语言中,用于定义一个布尔型变量的关键字是________。
答案:_Bool(或int,取决于编译器)4. C语言中,用于定义一个无返回值函数的关键字是________。
C语言程序设计大作业
学年学期:20xx - 20xx 学年 1 学期课程名称:C语言程序设计综合训练课程学分:2分考核形式:大作业任课教师:xx题目:学生成绩统计程序学院:xx学院__________________________________ 专业班级:xx_______________________________________ 学号:_______ 学生姓名:提交日期:目录目录 (2)引言 (3)1. 学生成绩管理系统 (4)1.1系统简介 (4)1.2相关代码及知识点介绍 (4)2. 添加学生成绩功能 (5)3. 查找学生成绩功能 (6)4. 排序学生成绩功能 (7)5. 展示学生成绩功能 (9)6. 删除学生成绩功能 (10)7. 附页代码 (11)引言C语言是一种比较常见的计算机语言,许多大型应用软件都是用C语言编写而成的。
其简洁紧凑,灵活方便,数据结构丰富。
在一定程度上,C语言比汇编语言更实用,具有结构化语句,实现了结构化编程,使程序编写变得更容易、更快捷,可以编写出各种类型的程序。
同时,C语言是一门实践性强的学科,在学习的过程中,利用所学知识,编写一些与生活、学习相关的应用程序来提高程序编写能力,增强学习兴趣。
本次使用C语言设计一个学生成绩管理系统,可以实现学生成绩的添加,查找,排序及展示。
在作业中使用的是函数的模块化设计,将四个程序使用四个函数来实现。
与此同时,增加用户界面的交互,可供用户选择想要的功能,实现增删查排等操作。
1. 学生成绩管理系统1.1系统简介该系统主要实现学生成绩的添加,查找,排序,展示和删除五个功能,添加学生成绩主要有6个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。
查找学生成绩主要通过学号查询。
对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。
第四项功能是对学生成绩以表格的形式进行展示。
删除学生成绩是按照学号对表格中的数据进行删除。
c语言期末试题及答案及详解
c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
大一c期末考试题及答案
大一c期末考试题及答案大一C语言期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 在C语言中,以下哪个选项不是运算符?A. +B. -C. %D. :答案:D4. 若有定义:int a=5, b=3;,则表达式a%b的值是多少?A. 2B. 1C. 0D. 3答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "hello";B. char str[] = {'h', 'e', 'l', 'l', 'o'};C. char str[6] = "hello";D. char str[] = "hello";答案:D7. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A8. 下列哪个选项不是C语言中的数组?A. int a[5];B. int a[5] = {1, 2, 3, 4, 5};C. int a[] = {1, 2, 3};D. int a = {1, 2, 3};答案:D9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(int a);答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. printf()D. scanf()答案:A二、填空题(每空2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
大专c语言期末考试题及答案
大专c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,用于定义一个整型数组的语句是:A. int array[10];B. int [10] array;C. int array;D. int array[10]={0};答案:A3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. =D. ==答案:A4. 在C语言中,用于输入输出的函数库是:A. <math.h>B. <stdio.h>C. <string.h>D. <stdlib.h>答案:B5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. do-while答案:B6. C语言中,用于定义一个字符串的语句是:A. char str[] = "Hello";B. int str[] = "Hello";C. char *str = "Hello";D. char str = "Hello";答案:A7. 下列哪个选项是C语言中的文件操作函数?A. printf()B. scanf()C. fopen()D. fclose()答案:C8. C语言中,用于定义一个函数的关键字是:A. intB. voidC. functionD. define答案:B9. 下列哪个选项是C语言中的预处理命令?A. #includeB. #defineC. #importD. #export答案:A10. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于声明一个整型变量的关键字是________。
大一c程序设计期末考试题及答案
大一c程序设计期末考试题及答案在本次大一C程序设计的期末考试中,我们精心准备了以下题目,旨在考察同学们对C语言基础知识的掌握程度以及编程能力。
以下是考试题目及参考答案。
一、选择题(每题2分,共20分)1. C语言中,哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable-nameC. _variableD. variable$name答案:C3. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 若有以下代码片段:```cint a = 5;int b = 10;a = b;```执行后,变量a的值是多少?A. 5B. 10C. 15D. 0答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D6. C语言中,哪个函数用于输入字符?A. scanf()B. printf()C. getchar()D. getc()答案:C7. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. forD. do-while8. 在C语言中,哪个关键字用于定义数组?A. arrayB. listC. vectorD. int[]答案:D9. 下列哪个选项是C语言中的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" "World"D. 'Hello' 'World'答案:A10. 在C语言中,哪个函数用于输出格式化的字符串?A. printf()B. scanf()C. sprintf()D. fprintf()答案:A二、填空题(每空2分,共20分)1. 在C语言中,使用____关键字可以定义一个函数。
C大作业 Microsoft Word 文档
学生成绩管理系统每位学生至少包括学号,姓名,班级和四门课程的成绩和奖惩程序功能:1统计每个班每门课程平均成绩,最高分,最低分2对该专业所有学生进行排名,排名原则:按所有成绩之和进行排名同时要求参与排名的学生每门功课都及格若有不及格的不参与排名3评出专业优秀者与班级优秀者。
专业优秀者评选条件:专业总成绩排名前十,并且所有科目不低于85。
班级优秀者评选条件:所有课程不低于85或者有两门(包括两门)以上单科成绩是班级第一,并且在奖惩栏备注。
备注:编写程序时要有备注信息,即每个模块实现功能,以及引用变量的作用也可以在C++下完成,再此环境下注释采用中文所有结果均以文件形式保存。
#include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>#define N 75 /*专业学生总数*/struct student{int cl;char xh[20];char name[20];float mark[4]; /*四门成绩:数学成绩:mark[0] ,英语成绩:mark[1],计算机成绩:mark[2],物理成绩:mark[3]*/}stu[N];struct rank{char name[20];float mark;}gread[100];FILE *fp;float high[3][4]={0};void menu(){printf("********************************\n");printf("**提示:请输入的总人数不超过100人**\n");printf("1.输入学生成绩\n");printf("2.统计每个班每门课程平均成绩,最高分,最低分\n");printf("3.学生成绩的专业排名(不含有不及格科目的学生)\n");printf("4.专业评选结果\n");printf("5.班级评选结果\n");printf("0.退出程序\n");printf(" 请选择0-5:");printf("********************************\n");}void input() /*学生信息输入函数*/{int i;for(i=0;i<N;i++){ printf("请输入学生信息\n");printf("请输入班级(1,2,3),学号,姓名,数学成绩,英语成绩,计算机成绩,物理成绩:\n");scanf("%d%s%s%f%f%f%f",&stu[i].cl,stu[i].xh,stu[i].name,&stu[i].mark[0],&stu[i].mark[1],&st u[i].mark[2],&stu[i].mark[3]);}}void statistics() /*统计每个班每门课程平均成绩,最高分,最低分*/{ float sum[3][4]={0},low[3][4]={100,100,100,100,100,100,100,100,100,100,100,100};float ave[3][4];int i,j;int num[3]={0};for(i=0;i<N;i++){switch(stu[i].cl){ case 1: sum[0][0]+=stu[i].mark[0]; /*一班数学成绩总和*/sum[0][1]+=stu[i].mark[1];/*一班英语成绩总和*/sum[0][2]+=stu[i].mark[2];/*一班计算机成绩总和*/sum[0][3]+=stu[i].mark[3];/*一班物理成绩总和*/if(high[0][0]<stu[i].mark[0]) high[0][0]=stu[i].mark[0];if(high[0][1]<stu[i].mark[1]) high[0][1]=stu[i].mark[1];if(high[0][2]<stu[i].mark[2]) high[0][2]=stu[i].mark[2];if(high[0][3]<stu[i].mark[3]) high[0][3]=stu[i].mark[3];if(low[0][0]>stu[i].mark[0]) low[0][0]=stu[i].mark[0];if(low[0][1]>stu[i].mark[1]) low[0][1]=stu[i].mark[1];if(low[0][2]>stu[i].mark[2]) low[0][2]=stu[i].mark[2];if(low[0][3]>stu[i].mark[3]) low[0][3]=stu[i].mark[3];num[0]++;break;case 2: sum[1][0]+=stu[i].mark[0]; /*二班数学成绩总和*/sum[1][1]+=stu[i].mark[1];/*二班英语成绩总和*/sum[1][2]+=stu[i].mark[2]; /*二班计算机成绩总和*/sum[1][3]+=stu[i].mark[3];/*二班物理成绩总和*/if(high[1][0]<stu[i].mark[0]) high[1][0]=stu[i].mark[0];if(high[1][1]<stu[i].mark[1]) high[1][1]=stu[i].mark[1];if(high[1][2]<stu[i].mark[2]) high[1][2]=stu[i].mark[2];if(high[1][3]<stu[i].mark[3]) high[1][3]=stu[i].mark[3];if(low[1][0]>stu[i].mark[0]) low[1][0]=stu[i].mark[0];if(low[1][1]>stu[i].mark[1]) low[1][1]=stu[i].mark[1];if(low[1][2]>stu[i].mark[2]) low[1][2]=stu[i].mark[2];if(low[1][3]>stu[i].mark[3]) low[1][3]=stu[i].mark[3];num[1]++;break;case 3: sum[2][0]+=stu[i].mark[0];sum[2][1]+=stu[i].mark[1];sum[2][2]+=stu[i].mark[2];sum[2][3]+=stu[i].mark[3];if(high[2][0]<stu[i].mark[0]) high[2][0]=stu[i].mark[0];if(high[2][1]<stu[i].mark[1]) high[2][1]=stu[i].mark[1];if(high[2][2]<stu[i].mark[2]) high[2][2]=stu[i].mark[2];if(high[2][3]<stu[i].mark[3]) high[2][3]=stu[i].mark[3];if(low[2][0]>stu[i].mark[0]) low[2][0]=stu[i].mark[0];if(low[2][1]>stu[i].mark[1]) low[2][1]=stu[i].mark[1];if(low[2][2]>stu[i].mark[2]) low[2][2]=stu[i].mark[2];if(low[2][3]>stu[i].mark[3]) low[2][3]=stu[i].mark[3];num[2]++;break;}}for(i=0;i<3;i++)for(j=0;j<4;j++)ave[i][j]=sum[i][j]/num[i];for(i=0;i<3;i++){ printf("班级:%d \n",i+1);fprintf(fp,"班级:%d \n",i+1);for(j=0;j<4;j++){ ave[i][j]=sum[i][j]/num[i];printf("平均成绩:math\tenglish\tcomputer\tphysics\n");printf("平均成绩:%.2f\t%.2f\t%.2f\t%.2f\n",ave[i][0],ave[i][1],ave[i][2],ave[i][3]);printf("最高分:math\tenglish\tcomputer\tphysics\n");printf("最高分:%.2f\t%.2f\t%.2f\t%.2f\n",high[i][0],high[i][1],high[i][2],high[i][3]);printf("最低分:math\tenglish\tcomputer\tphysics\n");printf("最低分:%.2f\t%.2f\t%.2f\t%.2f\n",low[i][0],low[i][1],low[i][2],low[i][3]);fprintf(fp,"平均成绩:math\tenglish\tcomputer\tphysics\n");fprintf(fp,"平均成绩:%.2f\t%.2f\t%.2f\t%.2f\n",ave[i][0],ave[i][1],ave[i][2],ave[i][3]);fprintf(fp,"最高分:math\tenglish\tcomputer\tphysics\n");fprintf(fp,"最高分:%.2f\t%.2f\t%.2f\t%.2f\n",high[i][0],high[i][1],high[i][2],high[i][3]);fprintf(fp,"最低分:math\tenglish\tcomputer\tphysics\n");fprintf(fp,"最低分:%.2f\t%.2f\t%.2f\t%.2f\n",low[i][0],low[i][1],low[i][2],low[i][3]);}}}void ranking() /*专业学生成绩排名从高到低去(除不及格的)排名*/{int i,j;int t=0;float n;char ch[20];for(i=0;i<N;i++)for(j=0;j<4;j++){ if(stu[i].mark[j]<60) break;else{gread[t++].mark=stu[i].mark[0]+stu[i].mark[1]+stu[i].mark[2]+stu[i].mark[3];strcpy(gread[t].name,stu[i].name);}}for(i=0;i<t-1;i++)for(j=0;j<t-1-i;j++)if(gread[j].mark>gread[j+1].mark){n=gread[i+1].mark;strcpy(ch,gread[i+1].name);gread[i+1].mark=gread[i].mark;strcpy(gread[i+1].name,gread[i].name);gread[i].mark=n;strcpy(gread[i].name,ch);}for(t-1;t>=0;t--){ printf("Performance ranking results(high to low):\n");fprintf(fp,"Performance ranking results(high to low):\n");printf("%s\t%.2f\t%d\n",gread[i].name,gread[i].mark,i+1);fprintf(fp,"%s\t%.2f\t%d\n",gread[i].name,gread[i].mark,i+1);}}void apraised1() /*专业优秀选奖*/{struct reward1{char name[20];float mark[4];int flag;}stu1[10];int i,j,k;for(i=0;i<10;i++)stu1[i].flag=1;for(i=0;i<10;i++){ strcpy(stu1[i].name,gread[i].name);for(j=0;j<N;j++)if(strcmp(stu1[i].name,stu[j].name)==0)for(k=0;k<4;k++)stu1[i].mark[k]=stu[j].mark[k];}for(i=0;i<10;i++)for(j=0;j<4;j++)if(stu1[i].mark[j]<85) stu1[i].flag=0;for(i=0;i<10;i++)if(stu1[i].flag==1){printf("奖励%s\n",stu1[i].name);fprintf(fp,"奖励%s\n",stu1[i].name);}}void apraised2() /*班级优秀评选*/{ int i,m1=0,n1=0,m2=0,n2=0,m3=0,n3=0,l1=0,l2=0,l3=0,k;charreward1[10][20],reward2[10][20],reward3[10][20],reward4[10][20],reward5[10][20],reward6[10] [20];for(i=0;i<N;i++)switch(stu[i].cl){case1:if(stu[i].mark[0]>=85&&stu[i].mark[1]>=85&&stu[i].mark[2]>=85&&stu[i].mark[3]>=85) strcpy(reward1[m1++],stu[i].name);elsefor(k=0;k<4;k++){if(stu[i].mark[k]==high[0][k]) l1++;if(l1>=2) strcpy(reward2[n1++],stu[i].name);}case2:if(stu[i].mark[0]>=85&&stu[i].mark[1]>=85&&stu[i].mark[2]>=85&&stu[i].mark[3]>=85) strcpy(reward3[m2++],stu[i].name);elsefor(k=0;k<4;k++){if(stu[i].mark[k]==high[1][k]) l2++;if(l2>=2) strcpy(reward4[n2++],stu[i].name);}case3:if(stu[i].mark[0]>=85&&stu[i].mark[1]>=85&&stu[i].mark[2]>=85&&stu[i].mark[3]>=85) strcpy(reward5[m3++],stu[i].name);elsefor(k=0;k<4;k++){if(stu[i].mark[k]==high[2][k]) l3++;if(l3>=2) strcpy(reward6[n3++],stu[i].name);}}printf("一班\t");printf("每门成绩不低于85分:");for(i=0;i<m1;i++)printf("%s\n",reward1[i]);printf("至少有两门单科第一:");for(i=0;i<n1;i++)printf("%s\n",reward2[i]);fprintf(fp,"一班\t");fprintf(fp,"每门成绩不低于85分:");for(i=0;i<m1;i++)fprintf(fp,"%s\n",reward1[i]);fprintf(fp,"至少有两门单科第一:");for(i=0;i<n1;i++)fprintf(fp,"%s\n",reward2[i]);printf("二班\t");printf("每门成绩不低于85分:");for(i=0;i<m2;i++)printf("%s\n",reward3[i]);printf("至少有两门单科第一:");for(i=0;i<n2;i++)printf("%s\n",reward4[i]);fprintf(fp,"二班\t");fprintf(fp,"每门成绩不低于85分:");for(i=0;i<m2;i++)fprintf(fp,"%s\n",reward3[i]);fprintf(fp,"至少有两门单科第一:");for(i=0;i<n2;i++)fprintf(fp,"%s\n",reward4[i]);printf("三班\t");printf("每门成绩不低于85分:");for(i=0;i<m3;i++)printf("%s\n",reward5[i]);printf("至少有两门单科第一:");for(i=0;i<n3;i++)printf("%s\n",reward6[i]);fprintf(fp,"三班\t");fprintf(fp,"每门成绩不低于85分:");for(i=0;i<m3;i++)fprintf(fp,"%s\n",reward5[i]);fprintf(fp,"至少有两门单科第一:");for(i=0;i<n3;i++)fprintf(fp,"%s\n",reward6[i]);}void main(){ int choice;fp=fopen("学生信息","w");while(1){ menu();scanf("%d",&choice);switch(choice){ case 1: input(); break;case 2: statistics(); break;case 3: ranking(); break;case 4: apraised1(); break;case 5: apraised2(); break;case 0: exit(0); break;}}fclose(fp);}。
C语言大作业全
#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct student) #define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("stu.bin", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}}//将数据存入文档中void check(struct student * head,struct student * p1) {struct student *h=head;for(m=0;m<n;m++,h=h->next ){if(strcmp( h->num,p1->num)==0){printf("输入号码重复\n");printf("请重新输入学号:");scanf("%s",p1->num);getchar();check(head,p1);}}}//检验学号是否重复struct student * creat(){struct student * head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(LEN); printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);head=NULL;while(strcmp(p1->num,"0")!=0){n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);//检查输入的学号是不是重复且是不是重复输错 printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);}p2->next=NULL;save(head);return(head);}//录入数据并将其保存至文档void print(struct student *head){struct student * p;printf("\n这%d个学生的成绩为:\n",n);printf("学号姓名年龄专业数学英语 C语言平均成绩\n");p=head;if(head==NULL)printf("The info error\n");if(head!=NULL)while(p!=NULL){p->ave=ave(p);printf("%s%8s%8d%13s%9d%10d%9d%10.2f",p->num,p->name,p->age,p->profession,p->maths,p->engl ish,p->C_program,p->ave);printf("\n");p=p->next;}}//输出链表//struct student* read(){struct student *head = NULL;struct student *p2 = head;struct student record;FILE *infile;infile = fopen("stu.bin", "rb");n=1;if(infile == NULL){printf("\nFile error.");}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile))//fread返回数据个数,结束和出错返回0;{p2->next = (struct student *)malloc(sizeof(struct student));memcpy(p2->next, &record, sizeof(record)); //复制结构体数据p2 = p2->next;n=n+1;}p2->next=NULL;fclose(infile);}return head;}//从文件中读取数据struct student * search_num(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->num)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此学号不存在\n");return(head);}//按学号查询数据//]struct student * search_name(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->name)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->name)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此姓名不存在\n");return(head);}//按姓名查询数据//struct student * change(struct student * head,char array[20]){struct student *p1;p1=head;if(head==NULL){printf("打开错误!");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)) {p1=p1->next;} //找到相应的学号if(strcmp(array,p1->num)==0){printf("请输入更改的学号:\n");printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);save(head);}else printf("所查学号不存在\n");return(head);}//修改数据//struct student * del(struct student * head,char array[20]) {struct student * p1,* p2;if(head==NULL){printf("\nlist null!\n");return head;}p1=head;while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}//找到相应的学号、if((strcmp(array,p1->num)==0)){if(strcmp(array,head->num)==0)head=p1->next;elsep2->next=p1->next;}elseprintf("你查询的学号(%s)不存在!",p1->num);save(head);return(head);}void add(struct student * head){struct student *p1;printf("\n请输入添加学生的信息:\n");p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);FILE *outFile;outFile = fopen("stu.bin", "ab");if (outFile == NULL) {printf("\n打开错误.");}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"C_program")==0){while(p1!=NULL)if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n");scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n"); scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n"); printf("\t\t");printf("************4.英语成绩排序;****************\n"); printf("\t\t");printf("************5.C语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_pro gram")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}//选择功能void menu(){int i;printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************\n" );printf("是否已经录入信息?\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n");c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。
西工大C++程序设计期末大作业
学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (3)2.1程序结构 (3)2.2主要功能 (4)2.3函数实现 (5)2.4开发日志 (8)3 程序调试及运行 (9)3.1程序运行结果 (9)3.2程序使用说明 (9)3.3程序开发总结 (9)4 附件(源程序) (10)1 摘要1.1 设计题目基于opengl的windows地形显示系统1.2 设计内容从地形高度图中读取相应信息,使用opengl针对不同的地形进行绘制。
并可以根据键盘输入调节摄像头位置和视角,达到动态效果1.3 开发工具VC6.01.4 应用平台Windows 2000/XP/Vista 32位2 详细设计2.1 程序结构主要函数功能介绍:Loadpic参数:无功能:将terrain.dat的高度信息读取到缓存中,并绑定至texture_2d中,设置好相应的WRAP ,FILTER 等参数。
Init参数:无功能:清屏。
设置depth参数。
设置shademode。
设置雾效果。
设置modelview proj viewport参数。
Reshape参数:无功能:设置modelview,projection,viewport参数。
Drawscene参数:无功能:清屏。
计算摄像头坐标。
绘制地形。
Swapbuffer。
打印fps。
Key:参数:无功能:根据键盘输入进行相应的opengl参数设置。
Special参数:无功能:这对SPECIAL KEEY INPUT 设置视角。
2.2 主要功能本次大作业采用opengl作为图形绘制接口,在window平台上实现了一个基本的地形绘制系统。
主要包括以下几个主要环节:1.系统初始化。
此部分分两个步骤:A)从terrain.dat高度文件中读取需要绘制的地形的各个坐标高度值。
将该地形缓存绑定至GL_TEXTURE_2D纹理中,然后对此纹理的WRAP FILTER ENV_MODE进行相应的设置B)初始化其他参数。
C语言综合期末作业
一、C语言课程设计题任选下面一题完成1. 假定有N门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课周学时、授课周数、实验学时、学分、开课学期等信息,学生可按照要求(如总学分不少于60)自由选课。
试设计一个选修课程系统,使之至少能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(3)课程信息浏览功能(4)查询某个学生的选修课程、总学分、成绩等(6)查询某门课程选修的学生、成绩等(7)退出2.假设每个学生记录包括学生的学号、姓名、3门课成绩、平均成绩等信息。
试设计一个学生成绩管理系统,要求至少提供如下功能:(1)系统以菜单方式工作(2)学生记录录入功能(3)全部学生信息浏览功能(4)查询功能:分别能按姓名、学号或成绩等查询(5)排序功能:按学生平均成绩进行排序(6)插入功能:按平均成绩高低插入一条学生记录(7)删除功能:如果输入错误,可以删除学生记录(8)退出3.设计一个通讯录管理系统,要求自我设计通讯录的数据项和格式,至少提供通讯录常有的录入、查询、维护(修改、删除、插入)等管理功能,菜单方式工作。
4. 自选题,要求程序规模和难度不得低于前面3题。
二、考核方式1. 提交系统源程序和一份课程设计报告,报告格式及主要内容见下页。
2. 自述3-5分钟。
3. 考核标准包括:a.设计态度; b.程序设计是否良好结构性和良好程序设计风格,实用性、通用性、可扩充性如何; c.动手能力,创新精神;4. 设计报告。
C程序设计课程设计报告院系:计算机科学学院专业: 10计算机应用技术班级: 2班学号: 2010033335131 姓名:刘美佳日期: 12月5日题目:学生成绩管理系统1.题目内容和要求设计一个学生成绩管理系统,要求至少提供如下功能:(1)菜单功能:系统以菜单方式工作(2)录入功能:分别录入学号、姓名、语数英三科成绩(3)显示功能:将录入的学生成绩信息供读者浏览(4)查询功能:分别能按姓名、学号或成绩等查询(5)删除功能:如果输入错误,可以删除学生记录(6)排序功能:按学生平均成绩进行排序(7)插入功能:按平均成绩高低插入一条学生记录(8)保存功能:将插入的信息保存起来(9)退出功能:结束运行2.总体设计3.详细设计(主要模块和函数)main( )主函数主函数功能比较简单,用while循环语句和s witch多重选择语句来显示主界面和调用函数。
c语言大一期末考试题库及详解答案
c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中的合法标识符?A. 3aB. intC. _aD. float答案:C2. C语言中,哪个关键字用于定义一个函数?A. ifB. whileC. functionD. void答案:D3. 在C语言中,以下哪个语句可以用于输入数据?A. scanf()B. printf()C. coutD. cin答案:A二、填空题1. 在C语言中,______关键字用于声明一个变量的存储类型。
答案:static2. 一个C语言程序的执行从______函数开始。
答案:main3. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储相同数据类型的多个元素。
数组的定义格式为:类型名数组名[常量表达式];其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组的元素个数。
数组的初始化可以使用花括号{}将初始值包围起来,例如:int arr[5] = {1, 2, 3, 4, 5}。
2. 描述C语言中的指针和引用的区别。
答案:C语言中的指针是一个变量,它存储了另一个变量的内存地址。
指针可以被重新赋值为其他地址,并且可以进行算术运算。
引用在C语言中不存在,但在C++中,引用是别名,它为另一个已存在的变量提供了另一个名字。
引用一旦被初始化后,不能被重新赋值为其他变量的引用,也不能进行算术运算。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现对一个字符串进行反转。
c++期末大作业
C++语言是面向对象的语言,它可以相当方便并且十分有效地帮你达到目的。
与C相比,C++定义了类这种对象的组织形式,提供了程序在不同部分之间更好的共享数据及进行函数控制的方法。
封装不仅提供了更大范围的控制,而且使得在源代码中公有/私有区别更加清晰。
多态完成了分散化控制,重载(函数重载、运算符重载)实现了使用同一运算符实现不同功能,使得程序更简便。
以下列程序的实现为例具体说明。
学校人员信息管理程序,管理学生和教师的基本信息。
程序完成功能:(1) 分类浏览 (2) 增加(3) 查询 (4)输出到文件(5)其他要求:1、定义一个学生类Student。
需要存储每个学生的姓名、学号、性别等信息。
定义教师类Teacher,存储每个教师的编号、姓名、性别、职称等信息。
定义抽象类Person,保存人员的基本信息,如姓名、性别等。
定义一个班级类Class,每个学生在一个班级中学习,每个教师负责多个班级的教学辅导。
2、定义各类的成员函数:分别实现获取、修改信息等相关操作。
3、通过在基类Person建立纯虚函数,实现按姓名输出教师或学生的信息。
4、重载流提取运算符,使能对Student类的对象进行输出操作。
5、根据需要,适当添加其他必要的数据成员和成员函数,如构造函数、拷贝构造函数、析构函数、运算符重载,按学号或姓名排序等。
分析:学校人员包括学生和教师,学生和教师都应该储存姓名、性别、年龄、身份证号码等基本信息,初步可以建立三个类,可建立抽象类Person,用于实现姓名、性别、身份证号码、电话等基本信息的储存。
学生与教师的区别在于学生有学号,只有一个所在班级,而教师有职称,编号,每个教师会负责多个班级。
定义学生类Student,继承Person类的功能,增加学生的学号、所在班级、宿舍号;定义教师类Teacher,继承Person类的基本功能,增加教师的编号、职称。
另外需定义一个班级类Class,每个学生属于一个班级,可用一个成员函数X实现,一个教师负责多个班级的教学辅导,可用成员函数Y来实现。
c程序设计大作业
c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。
本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。
一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。
- 图书馆管理系统:图书借阅、归还、查询等。
- 简易计算器:实现基本的加减乘除运算。
- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。
- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。
3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。
- 变量命名应清晰,避免使用无意义的缩写。
- 代码结构清晰,逻辑性强。
4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。
- 源代码:按照题目要求编写的C语言代码。
- 用户手册:简要说明如何使用程序。
5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。
二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。
2. 需求分析:明确程序需要实现的功能和性能要求。
3. 设计:设计程序的总体结构和各个模块的详细设计。
4. 编码:根据设计文档编写程序代码。
5. 测试:对编写的程序进行测试,确保功能正确无误。
6. 调试:根据测试结果进行必要的调试,修正程序中的错误。
7. 文档编写:编写程序设计说明书和用户手册。
8. 提交:按照要求提交所有材料。
三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。
2. 代码质量:代码是否规范、清晰、易读。
大一c语言设计期末考试题及答案
大一c语言设计期末考试题及答案大一C语言设计期末考试题及答案一、选择题(每题1分,共10分)1. 下列哪个选项是C语言中的关键字?A. autoB. intC. voidD. main答案:B2. C语言中,以下哪个是正确的变量声明?A. int num = 10;B. var num = 10;C. int num = "ten";D. num 10;答案:A3. 以下哪个语句可以正确地在C语言中定义一个数组?A. int arr[] = {1, 2, 3};B. int arr[3] = 1, 2, 3;C. int arr = {1, 2, 3};D. int arr[3] = {1, 2};答案:A4. 在C语言中,哪个函数用于计算两个数的和?A. sum(int a, int b)B. add(int a, int b)C. calculate(int a, int b)D. None of the above答案:D5. 下列哪个选项是C语言中的控制语句?A. ifB. switchC. forD. All of the above答案:D6. 在C语言中,以下哪个是正确的函数定义?A. int function add(int a, int b) { return a + b; }B. int add(int a, int b) { return a + b; }C. function int add(int a, int b) { return a + b; }D. int add(int a, int b) { a + b; }答案:B7. C语言中,哪个关键字用于指定函数的返回类型?A. returnB. typeC. valueD. None of the above答案:D8. 下列哪个选项不是C语言的输入输出函数?A. printf()B. scanf()C. coutD. getchar()答案:C9. 在C语言中,哪个语句用于循环执行一系列语句?A. do-whileB. forC. whileD. All of the above答案:D10. C语言中,以下哪个是正确的字符串定义?A. char str[] = "Hello";B. string str = "Hello";C. char str = "Hello";D. str = "Hello";答案:A二、填空题(每空1分,共10分)1. 在C语言中,使用________关键字来声明一个变量。
c语言大作业(西工大)
标准型大作业题目下面10个题目中任选其一完成。
【难度系数:7】1.设计一个简单的学生成绩管理程序,要求根据菜单处理相应功能。
(1)管理功能包括列表,求平均成绩、查找最高分。
(2)可以实现按指定的性别筛选列表,或按高于指定的个人平均分筛选列表;(3)可以实现按平均成绩排序;(4)求平均成绩可按个人或科目进行;(5)查找可按最高个人平均分进行,或按指定科目的最高分进行;(6)每个学生的信息包括:序号、学号、性别、成绩1、成绩2、成绩3、成绩4;(7)基本功能为:建立文件、增加学生记录、新建学生信息文件、删除/修改学生记录2.先建立一个有三个学生的链表,每个结点包含:学号、姓名、3门考试成绩(英语、数学、计算机)。
要求利用菜单的形式进行管理。
菜单为:1.排序(按学号);2.插入(输入一个学生的信息将它插入链表中,假定链表按学号有序);3.查找(输入一个学生学号,输出其各科成绩);4.删除(从链表中按输入的学号删除该学生)5.统计(若按1,则输入学生的学号统计该生的总分及平均分;若按2,则输入课程求该门课程的总平均分)6.存盘(将建立起来的链表以文件的形式存盘)7.读入(将原来已经存盘的文件读入内存,进行管理)3.设计菜单处理程序,对一维数组进行不同的操作。
(1)操作项目包括求数组最大植、最小植、求和、求平均值、排序、二分查找、有序插入;(2)设计并利用字符菜单进行操作项目的选择,程序一次运行可根据选择完成一项或多项操作;通过菜单“退出”来结束程序的运行;(3)数组的输入、输出可支持命令行输入文件名、界面输入文件名从数据文件中输入和输出;也支持界面录入;4.打印指定年份的公历表和农历表(1)输入年份为1990~2050;(2)可以选择输出公历表或农历表;(3)农历表包括二十四节气;5.请设计一个学生证的管理程序。
该程序应该具有下列功能:(1) 通过键盘输入某位学生的学生证信息。
学生证包含的信息请参看自己的学生证;(2) 给定学号,显示某位学生的学生证信息;(3) 给定某个班级的班号,显示该班所有学生的学生证信息;(4) 给定某位学生的学号,修改该学生的学生证信息;(5) 给定某位学生的学号,删除该学生的学生证信息;(6) 提供一些统计各类信息的功能。
青海大学c++期末大作业
C++期末大作业选题集合大作业说明:1、题目难度分3档:一般、中等、较高,一般难度的总分值为85分,中等难度的总分值为90分,较高难度的总分值为100分。
2、作业严禁抄袭,如果抄袭,分数依次减10分,直到0分为止。
3、提交说明:要求去掉不必要的sdf,ipch,debug等文件,提交作业源代码工程压缩文件,文件统一命名为:姓名+题目名称4、所有程序如果有UI,可以额外加分!5、要求撰写大作业报告,报告包括:实验设计、实验分析、实现难点解决方案实验总结等。
实验报告要求转换为pdf格式与工程文件一并压缩提交。
一、一般难度题目题目1: 图书管理系统设计1、问题描述定义图书类,属性有:书名、出版社、ISBN号、作者、库存量、价格等信息和相关的对属性做操作的行为。
主要完成对图书的销售、统计和图书的简单管理。
2、功能要求(1)销售功能。
购买书籍时,输入相应的ISBN号,并在书库中查找该书的相关信息。
如果有库存量,输入购买的册数,进行相应计算。
如果库存量不够,给出提示信息,结束购买。
(2)图书简单管理功能。
添加功能:主要完成图书信息的添加,要求ISBN号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加。
查询功能:可按书名、ISBN号、作者、出版社进行查询。
若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”。
修改功能:可根据查询结果对相应的记录进行修改,修改时注意ISBN号的唯一性。
删除功能:主要完成图书信息的删除。
输入要删除的ISBN号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。
(3)统计功能。
输出当前书库中所有图书的总数及详细信息;可按书的价格、库存量、作者、出版社进行统计,输出统计信息时,要按从大到小进行排序。
题目2:实现集合的并、交、差运算1、问题描述集合元素类型可以是整数、字符串和小数,实现集合的交、并、差运算。
2、功能要求(1)用户能够输入两个集合元素;(2)能够完成集合的的交、并、差运算;(3)集合元素的类型可以为整数、字符串和小数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选题
1) 我爱记单词 2) 简单生态仿真系统 3) 唐诗三百首 4) 记忆游戏
关于成绩
大作业成绩每次为 45 分,其中包括程序的完成情况,报告,教师提问 3 个部分。 作业提交时间:待定(初步定在 18 周) 成绩在提交作业时,由答辩课教师当堂给出。
面向对象的程序设计 B(C++)
期末大作业
题 名: 综合练习
教 师: 李绘卓
目 的:
1) 全面练习类的定义,成员变量、成员方法的定义; 2) 全面练习类的对象的定义,对象对成员变量、成员方法的访问; 3) 全面练习类的继承和派生的使用; 4) 全面练习多态的应用; 5) 全面练习 STL 的应用; 6) 全面练习文件流的应用 要 求:
1) 提供例句辅助单词记忆。 2) 提供语音朗诵。(可以采用 Microsoft Speech API) 3) 提供图像化界面。
2. 编程要求
1) 程序要求综合全面应用面向对象程序设计课程内容(类、继承、多态、流、STL)。 2) 界面设计友好,给出菜单选项,及输入提示。(可以采用 MFC 或 QT 等编码)
扩展需求:
1) 提供语音朗诵。(可以采用 Microsoft Speech API) 2) 提供图像化界面。
2. 编程要求
1) 程序要求综合全面应用面向对象程序设计课程内容(类、继承、多态、流、STL)。
2) 界面设计友好,给出菜单选项。(可以采用 MFC 或 QT 等编码)
4/5
西南科技大学计算机科学与技术学院
参考用户界面如下:
2/5
西南科技大学计算机科学与技术学院
2nd.简单1 生态仿真系统
1. 需求 设计并实现一个简单的二维生态仿真系统。系统中至少包含多种对象:一种为捕食者,一种为被捕食者,
及植物。它们在某个时钟(或者计数器)的驱动下进行统一的移动,同时捕食者每移动一步其生命值减一。 当被捕食者移动到捕食者的捕食范围(捕食范围由其生物品种和其生命值确定,生命值高扑食范围广)内时, 捕食者将对其进行捕杀,被捕食者的生命期结束,同时捕食者的生命值恢复到最佳。如果捕食者在一定的 时钟周期内没有完成任何捕食活动,生命值将减为0,此时捕食者的生命也将结束。
3) 软件可以管理多个用户的学习记录。 4) 用户可以分阶段进行学习。 5) 软件可以自动记录用户的学习情况。 6) 用户可以添加单词到生词本。 7) 软件可以提醒用户需要复习的单词。 8) 软件具有设置功能,方便用户设置复习时间,日学习单词量等。 9) 软件可以通过图像表现用户的学习记录。
扩展需求:
基本需求:
1) 软件可以根据用户选择加载诗词。 2) 诗词库通过文件加载。
文件可在网络下载文本文件(如:.tw/300/all/ALLFRAME.htm)。
3) 软件可以管理多个用户的学习记录。 4) 用户可以分诗词的时间、分作者选择进行学习。 5) 程序需提供文本、拼音显示。 6) 软件可以自动记录用户的学习情况。 7) 程序可以提供背景音乐播放。 8) 程序需提供设置功能,提供背景音乐、最喜爱作者、显示(文本、拼音)选项等。
1)单人完成选择题目; 2)选题可在下列题目中选取,也可自拟。要求若选择题目,则设计开发中突出各自设计特色。若自拟题目, 则题目需理论课老师同意; 3)提交材料包括:报告、带注释的源码。 日 期: 2012/4/20
概要
在 VC6.0 或者 VS2008、VS2010 下建立 win32 control application 项目,在完成下列项目。在 其过程中学习类、对象的基本编程方法,同时巩固 C 语言课程学习的基本编程知识。选题规则为 :
扩展需求:
1) 提供生态系统的人工干预,如加入人工捕食、自然灾害等。干预动物们的生活。 2) 提供图像化界面。(可以采用 MFC 或 OpenCV 或 QT 等编码)
参考用户界面如下:
3/5
西南科技大学计算机科学与技是一款帮助大家学习唐诗宋词的软件。软件功能如下:
1) 每类生物都具有位置信息, 性别、年龄等基本信息。 2) 每类生物都有一定的生存规则,如运动规则,繁殖规则(年龄、性别),死亡规则(生老病死),捕食规
则(可以通过位置判定可以捕食)等。 3) 程序初始化时,需要初始化食物链的规模(即每类生物的数量)、随机生成每个生物的基本信息。并打印
输出。 4) 通过键盘输入食物链的运行时间。 5) 程序根据运行时间运行,各类生物按照自己的生存规则运行。 6) 程序需要输出生存期间的重要时间(如捕食、繁殖等)。 7) 程序可自动加载及存储生物基本信息文件。
扩展需求:
1) 提供背景音乐选项。 2) 提供图像化界面。
2. 编程要求
1) 程序要求综合全面应用面向对象程序设计课程内容(类、继承、多态、流、STL)。 2) 界面设计友好,给出菜单选项,及输入提示。(可以采用 MFC 或 OpenCV 或 QT 等编码)
5/5
西南科技大学计算机科学与技术学院
4th. 记1忆游戏
1. 需求
该程序提供考察你记忆能力的小游戏。 1) 游戏提供字母、数字、图形等考察记忆的类型。 2) 游戏需提供记忆长度的选项(或者分级)。 3) 程序能随机生成记忆考核题目。 4) 程序同键盘输入记忆内容。 5) 程序根据考察情况给出成绩并输出。 6) 程序可建立多个用户账户。 7) 程序需记录每个级别的最高记录。
1/5
西南科技大学计算机科学与技术学院
1st. 我1爱记单词
1. 需求
我爱记单词是一款帮助大家记忆英语单词的软件。软件功能如下:
基本需求:
1) 软件可以根据用户选择加载单词库。 2) 单词库通过文件加载单词。
文件可在网络下载文本文件(如:/soft/41172.html)。