中国地质大学C语言课程设计题目(附参考代码)
中国地质大学(北京)《C++程序设计》作业二
地大《C++程序设计》作业二下列关于指针概念的描述中,错误的是( B )。
A:指针中存放的是某变量或对象的地址值B:指针的类型是它所存放的数值的类型C:指针是变量,它也具有一个内存地址值D:指针的值(非常量指针)是可以改变的参考选项:B下列关于语句的描述中,错误的是( A )。
A:C++程序中的函数是由若干条语句组成的B:每条语句都要实现某种操作C:条件语句是用来实现分支操作的D:循环语句是用来在一定条件下重复执行某段程序的参考选项:A下列关于面向对象概念的描述中,错误的是( C )。
A:面向对象方法比面向过程方法更加先进B:面向对象方法中使用了一些面向过程方法中没有的概念C:面向对象方法替代了结构化程序设计方法D:面向对象程序设计方法要使用面向对象的程序设计语言参考选项:C已知:char s[ ]="abcd";输出显示字符'c'的表达式是( C )。
A:sB:s+2C:s[2]D:s[3]参考选项:C下列表达式中,其值为0的是( A )。
A:2020/5/10B:!0C:2>4?0:1D:2E:int fun(int x=5, int =10);F:int fun(int x=5, int y);G:int fun(int x , int y=a+b);参考选项:C已知:char ss[ ][6]={"while", "for", "else", "break"};输出显示"reak" 字符串的表达式是(B)。
A:ss[3]B:ss[3]+1C:ss+3D:ss[3][1]参考选项:B下列关于引用概念的描述中,错误的是( A )。
A:引用是变量,它具有值和地址值B:引用不可以作数组元素C:引用是变量的别名D:创建引用时必须进行初始化参考选项:A已知:typedef char CH;下列描述中,正确的是( A )。
(完整版)C语言毕业课程设计题目及相关要求
C语言课程设计综合设计题目及相关要求说明1、选题考虑到时间比较紧张,同时也锻炼同学之间的团结协作能力,采用2人一组或1人一组选作一题。
课程设计题目见附2。
分组可采用自由组合或按学号顺序安排,分组名单及各小组选题名单,请学习委员于18周星期一晚交给任课教师,同一个题目不超过2个小组。
2、设计时间本学期17-18周,18周周五上交报告(电子版)及机房检查(运行演示及说明),并同时提交各小组开发系统源代码。
3、课程设计要求①完成相应课程设计题目的基本功能;②撰写课程设计报告(每人一份)③报告封面及内容要求见附1;④报告格式要求:(一)标题(二)目录(三)正文1.报告正文部分主要内容见正文参考2.报告正文排版要求第一层次题序和标题用小三号黑体字;第二层次题序和标题用四号黑体字;第三层次题序和标题用小四号黑体字;正文用宋体小四号(英文用新罗马体12号);参考文献宋体五号。
3.报告页面设置:报告一律用A4打印,页码一律用小5号字标明;正文采用18磅行距,标准字符间距,上边距25mm,下边距25mm,左边距28mm,右边距20mm。
4、综合课程设计评分标准附:1、课程设计学期成绩评定方式:平时(考勤)20%+平时实验(30%)+综合课程设计(50%)2、每人一份,本小组成员均围绕自己所承担的工作展开(即写自己完成的工作)。
综合设计报告出现完全一致或雷同度高,则所有涉及者成绩评定为0分。
附件1:信息学院课程设计Ⅰ报告课程名称___C语言程序设计_ __题目名称_____________________学生学院_ 信息学院_ __ __专业班级_ _学号______________________学生姓名______________________指导教师_______马瑜____ ____年月日目录参考1. 设计目的与要求 (X)1.1 题目与设计要求 (X)1.2 本程序涉及的知识点 (X)2.功能设计 (X)2.1总体设计 (X)2.2详细设计 (X)3. 程序实现 (X)3.1程序实现时应考虑的问题 (X)3.2 XX模块核心代码 (X)4.测试分析 (X)4.1 测试结果及分析 (X)5.总结 (X)参考文献 (X)正文具体内容参考1 设计目的与要求1.1 题目与设计要求题目:设计要求:例如主要实现功能,注意:在此标识出自己的主要工作1.2 本程序设计的知识点陈述开发过程中用到的知识点,如结构体、数组、指针等。
C语言课后实验设计题目及答案
C语⾔课后实验设计题⽬及答案C语⾔实验题⽬及答案1、实验项⽬⼀ C程序的编辑、编译、连接和运⾏题⽬:编写程序,要求屏幕上显⽰如下信息:***********************This is a C program .***********************程序:#includevoid main(){printf(“***********************\n”);printf(“This is a C programn .\n”);printf(“***********************\n”);}实验项⽬⼆数据类型、运算符、表达式题⽬(1)程序填空:输⼊1 个实数x,计算并输出其平⽅根(保留1 位⼩数)。
填空1.double x,root;2.root=sqrt(x);(2)输⼊⼀个⼤写英⽂字母,输出相应的⼩写字母。
填空1.ch=ch+32;1、#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){printf("This is a Cprogram\n");return 0;}#include "math.h"int main(int argc, char* argv[]) {double x;printf("x=");scanf("%lf",&x);printf("%lf\n",sqrt(x));return 0;}2、实验项⽬三顺序结构程序设计题⽬(1)编写程序,输⼊三⾓形的三边长a、b、c,求三⾓形⾯积area。
(2)设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。
中国地质大学C++指导书代码大全(精品)
第一章实习任务一#include <iostream>int main(){std::cout<<"I love C++ "<<"very much!"<<std::endl;std::cout<<"Programming C++ is easy and "<<"interesting.\n";return 0;}实习任务二#include <iostream>int main(){int a=5,b=5;std::cout<<"The sum is: "<<a+b<<std::endl;return 0;}实习任务三#include <iostream>double main(){const double PI = 3.14159265359;double r;std::cin>>r;double S = PI * r * r;double C = 2 * PI * r;std::cout<<"S="<<S<<std::endl;std::cout<<"C="<<C<<std::endl;return 0;}课后练习#include <iostream>int getArea( int width, int height );int main(){int area=0;int width=5, height=6;area = getArea( width,height );std::cout<<"Area:"<<area<<std::endl;return 0;}int getArea( int width, int height ){return width * height;}第二章实习任务一(1)#include<iostream>int main(){double numOne=2.5;int numTwo=3;double quotient=numOne/2;std::cout<<"Quotient:"<<quotient<<std::endl; quotient=numTwo/2;std::cout<<"Quotient:"<<quotient<<std::endl; return 0;}实习任务一(2)#include<iostream>int main(){int number=103;int digit,tens,hundreds;digit=number%10;tens=(number/10)%10;hundreds=(number/100)%10;std::cout<<"Hundreds:"<<hundreds<<",Tens:" <<tens<<",Digit:"<<digit<<std::endl;return 0;}实习任务二#include<iostream>int main(){int grade;std::cout<<"Enter a grade(1-100):";std::cin>>grade;if(grade>100||grade<0)std::cout<<"Try again\n";else if(grade<=100&&grade>=85)std::cout<<"Excellent\n";else if(70<=grade&&grade<85)std::cout<<"Pass\n";elsestd::cout<<"Fail\n";return 0;}实习任务三#include<iostream>float main(){float salary;const int s=3500;std::cout<<"Enter a salary(>0):";std::cin>>salary;if(salary>=0&&salary<=3500)std::cout<<"The Tax is"<<0<<std::endl;else if(salary<=5000)std::cout<<"The Tax is"<<(salary-s)*0.03<<std::endl;else if(salary<=8000)std::cout<<"The Tax is"<<(salary-s)*0.10-105<<std::endl;else if(salary<=12500)std::cout<<"The Tax is"<<(salary-s)*0.20-555<<std::endl;else if(salary<=38500)std::cout<<"The Tax is"<<(salary-s)*0.25-1005<<std::endl;else if(salary<=58500)std::cout<<"The Tax is"<<(salary-s)*0.30-2755<<std::endl;else if(salary<=83500)std::cout<<"The Tax is"<<(salary-s)*0.35-5505<<std::endl;else if(salary>83500)std::cout<<"The Tax is"<<(salary-s)*0.45-13505<<std::endl;return 0; }课后练习#include<iostream>int main(){int num1,num2,result;char op;std::cout<<"Enter the expression:";std::cin>>num1;std::cin>>op;std::cin>>num2;if(op=='+')result=num1+num2;else if(op=='-')result=num1-num2;else if(op=='*')result=num1*num2;else if(op=='/')result=result=num1/num2;else{std::cout<<"Error input!\n";return 0;}std::cout<<num1<<op<<num2<<"="<<result <<"\n";return 0;}第三章实习任务一(1)#include <iostream>void checkWeight(int height,int weight);int main(){int height,weight;std::cout<<"Enter your height(cm):"; std::cin>>height;std::cout<<"Enter your weight(Kg):"; std::cin>>weight;checkWeight(height,weight);return 0;}void checkWeight(int height,int weight) {int idealWeight=height-105;if(idealWeight==weight)std::cout<<"perfect!\n";else if(idealWeight>weight)std::cout<<"slim!\n";elsestd::cout<<"Fatty!\n";}实习任务一(2)#include <iostream>bool check(int score,int baseLine=60); int main(){int score;std::cout<<"Enter your score:"; std::cin>>score;if(check(score)==true)std::cout<<"Passed!\n";elsestd::cout<<"Failed!\n";if(check(score,70)==true)std::cout<<"Passed!\n";elsestd::cout<<"Failed!\n";return 0;}bool check(int score,int baseLine){if(score>=baseLine)return true;return false;}实习任务二#include <iostream>int max(int a,int b,int c);double max(double a,double b,double c); char max(char a,char b,char c);int main(){int ia,ib,ic; char ca,cb,cc;double da,db,dc;std::cout<<"Enter 3 int num:";std::cin>>ia>>ib>>ic;std::cout<<"Max of int:"<<max(ia,ib,ic)<<std::endl;std::cout<<"Enter 3 char num:";std::cin>>ca>>cb>>cc;std::cout<<"Max of char:"<<max(ca,cb,cc)<<std::endl;std::cout<<"Enter 3 double num:";std::cin>>da>>db>>dc;std::cout<<"Max of double:"<<max(da,db,dc)<<std::endl;return 0;}int max(int a,int b,int c){return(a>b?a:b)>c?(a>b?a:b):c;}double max(double a,double b,double c){double d;d=a>b?a:b;d=d>c?d:c;return d;}char max(char a,char b,char c){return (a>b?a:b)>c?(a>b?a:b):c;}实习任务三#include <iostream>#include <cmath>double getArea(double a,double b,double c); int main(){double a,b,c;std::cout<<"Enter 3 length:";std::cin>>a>>b>>c;double area=getArea(a,b,c);std::cout<<"Area:"<<sqrt(area)<<std::endl; return 0;}double getArea(double a,double b,double c) {double s,k;s=(a+b+c)/2;k=s*(s-a)*(s-b)*(s-c);return sqrt(k);}课后练习一#include<iostream>int menu();int main(){int num1=20,num2=6;int choice;int result;choice=menu();if(choice==1)result=num1+num2;else if(choice==2)result=num1-num2;else if(choice==3)result=num1*num2;else if(choice==4)result=num1/num2;else//非预期情况,通过return语句直接结束程序return 0;std::cout<<"result:"<<result<<std::endl;return 0;}int menu(){int choice;std::cout<<"1)add two number\n";std::cout<<"2)sub two number\n";std::cout<<"3)multiply two number\n";std::cout<<"4)divide two number\n";std::cout<<"0)quit\n";std::cout<<"Enter your choice:\n";std::cin>>choice;return choice;}课后练习二#include<iostream>#include<cmath>using namespace std;double getArea(double a,double b,double c); bool validate(double a,double b,double c); int main(){double a,b,c;cout<<"Enter 3 edges for the triangle:";cin>>a>>b>>c;bool isV alidate;isV alidate=validate(a,b,c);if(isV alidate==false){cout<<"IsV alidate Triangle\n";return 0;}double area;area=getArea(a,b,c);cout<<"The area is:"<<area<<endl;return 0;}double getArea(double a,double b,double c) {double p=(a+b+c)/2;return sqrt(p*(p-a)*(p-b)*(p-c));}bool validate(double a,double b,double c) {double d=a+b;double e=a+c;double f=b+c;if((a>0)&&(b>0)&&(c>0)){if((d>c)&&(e>b)&&(f>a))return true;elsereturn false;}return false;}课后练习三#include<iostream>#include<cmath>enumTriangleType{INV ALID,NORMAL,ISOSCEL ES,EQUILA TERAL};TriangleType checkTriangle(double a,double b,double c);bool validate(double a,double b,double c);int main(){double a,b,c;std::cout<<"Enter 3 length:";std::cin>>a>>b>>c;TriangleType type=checkTriangle(a,b,c);if (type==INV ALID)std::cout<<"Invalid Triangle!\n";else if (type==NORMAL)std::cout<<"Normal Triangle!\n";else if (type==ISOSCELES)std::cout<<"Isosceles Triangle!\n";else if (type==EQUILA TERAL)std::cout<<"Equilateal Triangle!\n";return 0;}bool validate(double a,double b,double c) {double d=a+b;double e=a+c;double f=b+c;if((a>0)&&(b>0)&&(c>0))if((d>c)&&(e>b)&&(f>a))return true;elsereturn false;}TriangleType checkTriangle(double a,double b,double c){bool Triangle;Triangle = validate(a,b,c);if (Triangle==false)return INV ALID;else if (a==b)if (b==c)return EQUILA TERAL;elsereturn ISOSCELES;else if (b==c)return ISOSCELES;else if (a==c)return ISOSCELES;elsereturn NORMAL;}第四章实习任务一(1)#include<iostream>int main(){int score;std::cout<<"Enter your score(0~100):";std::cin>>score;char level;switch(score/10){case 10:case 9:level='A'; break;case 8:level='B'; break;case 7:level='C'; break;case 6:level='D'; break;default:level='E'; break;}std::cout<<"Level:"<<level<<std::endl;return 0;}实习任务一(2)#include<iostream>int gcd(int m,int n);int main(){int m,n;int counter=0;while(counter<3){std::cout<<"Enter two number:";std::cin>>m>>n;int divisor=gcd(m,n);std::cout<<"Common divisor of "<<m<<"and"<<n<<"is:"<<divisor<<std::endl ;counter++;}return 0;}int gcd(int m,int n){int c;int d;if(n>m){c=m;m=n;n=c;}while(n!=0){d=m%n;m=n;n=d;}return m;}实习任务二#include<iostream>#include<cmath>bool isPrime(int num);int main(){int counter=0;int num=2;while(counter<100){if(isPrime(num)){std::cout<<num<<" ";counter++;}num++;} return 0;}bool isPrime(int num){bool flag=true;int r=static_cast<int>(sqrt(num));for(int i=2; i<=r;i++)if(num%i==0)break;if(i<=r) flag=false;else flag=true;return flag;}实习任务三#include<iostream>int main(){int big,mid,small;std::cout<<"Big\tMid\tSmall\n";for(big=0;big<=33;big++)for(mid=0;mid<=50;mid++)for(small=0;small<=100;small++){if(big+mid+small==100 && 3*big+2*mid+0.5*small==100)std::cout<<big<<"\t"<<mid<<"\t"<<small<<"\ n";}return 0;}课后练习一#include <iostream>#include <ctime>using namespace std;int gcd(int m, int n){if(n == 0)return m;return gcd(n, m % n);}int main(){int a, b;cout<<"请输入两个数:";cin>>a>>b;cout<<a<<"和"<<b<<"的最大公约数是:"<<gcd(a, b)<<endl;return 0;}课后练习二#include <iostream>#include <ctime>int menu();bool answerQuestion(int choice,int num1,int num2);int main(){int questionNum=0;int correctNum=0;srand((unsigned)time(NULL));//设置随机数序列的种子while(questionNum<10){int choice=menu();if(choice<1||choice>4) continue;if(choice==0)break;int num1,num2;num1=rand()%90+10;num2=rand()%90+10;if(answerQuestion(choice,num1,num2)= =true)correctNum++;questionNum++;}if(questionNum=0){std::cout<<"Y ou didn't answer any question!\n";}else{std::cout<<"Answer questions:"<<questionNum<<",correct:"<<cor rectNum<<"\n";}return 0;}int menu(){int choice;std::cout<<"1)add two number\n";std::cout<<"2)sub two number\n";std::cout<<"3)multiply two number\n";std::cout<<"4)divided two number\n";std::cout<<"0)quit\n";std::cout<<"Enter your choice:\n";std::cin>>choice;return choice;}bool answerQuestion(int choice,int num1,int num2){int result,answer;char operation;if(choice==2&&num1<num2){int temp=num1;num1=num2;num2=temp;}switch(choice){case 1:result=num1+num2;operation='+';break;case 2:result=num1-num2;operation='-';break;case 3:result=num1*num2;operation='*';break;case4:num1*=num2;result = num1/num2;operation='/';break;}std::cout<<num1<<operation<<num2<<" =?";std::cin>>answer;if(result==answer){std::cout<<"Great! Y our answer is absolutely correct!\n";return true;}std::cout<<"Sorry!\n";return false;}课后练习三#include<iostream>#include<ctime>#include<iomanip>int main(){srand((unsigned)time(NULL));int num,count;for(count=1;count<=100;count++){num=rand()%10000+1;std::cout<<std::setw(8)<<num;if(count % 5==0)std::cout<<"\n";}return 0;}实习任务一(1)#include<iostream>int main(){char word[50];std::cout<<"Enter a word:";std::cin>>word;for(int i=0;word[i]!='\0';++i){if(word[i]>='a' && word[i]<='z')word[i]-=32;}std::cout<<"Uppercase:"<<word<<std::endl;return 0;}实习任务一(2)#include<iostream>int main(){char word[50];std::cout<<"Enter a string:";std::cin>>word;int pos=0;for(int i=0;word[i]!='\0';++i){if(word[i]<'0' || word[i]>'9'){word[pos]=word[i];++pos;}}word[pos]='\0';std::cout<<"result:"<<word<<std::endl;return 0;}实习任务二(1)#include<iostream>int main(){const int COURSE_NUM=5;intscores[COURSE_NUM]={80,75,92,84,68};double aveScore=0;for(int i=0; i<COURSE_NUM;i++){aveScore+=scores[i];}aveScore=aveScore/COURSE_NUM;std::cout<<"A verageScore:"<<aveScore<<"\n";return 0;}实习任务二(2)#include<iostream>int main(){const int COURSE_NUM=5;int scores[COURSE_NUM];double aveScore=0;int i;for(i=0; i<COURSE_NUM;i++){std::cout<<"Inputscores["<<i+1<<"]";std::cin>>scores[i];}for(i=0; i<COURSE_NUM;i++){aveScore+=scores[i];}aveScore=aveScore/COURSE_NUM;std::cout<<"A verageScore:"<<aveScore<<"\n";return 0;}实习任务三#include<iostream>int main(){const int ArraySize=5;int array[ArraySize];int temp;int i,j;for(i=0;i<ArraySize;i++){std::cout<<"Enter array "<<i<<":";std::cin>>array[i];}for(i=0,j=ArraySize-1;i<j;i++,j--){temp=array[i];array[i]=array[j];array[j]=temp;}for(i=0;i<ArraySize;i++){std::cout<<array[i]<<" ";}std::cout<<std::endl;return 0;}课后练习一#include <iostream>int scoreToGradePoint(int score);int main(){const int CourseNum=5;int credit[CourseNum]={4,4,3,2,4};int score[CourseNum];int gradePoint[CourseNum];double aveGP=0;int i;for(i=0;i<CourseNum;i++){std::cout<<"Enter score"<<i<<":";std::cin>>score[i];gradePoint[i]=scoreToGradePoint(score[i ]);}double sum1=0.0, sum2=0.0;for(i=0;i<CourseNum;i++){sum1+=gradePoint[i]*credit[i];sum2+=credit[i];}aveGP=sum1/sum2;std::cout<<"the aveGP is :"<<aveGP<<"\n";return 0;}int scoreToGradePoint(int gradePoint){switch(gradePoint/10){case 10:case 9: gradePoint=4; break;case 8: gradePoint=3; break;case 7: gradePoint=2; break;case 6: gradePoint=1; break;default: gradePoint=0; break;}return gradePoint;}课后练习二#include<iostream>using namespace std;int main(){const int SIZE = 5;int array[SIZE], i, j;for(i=0;i<SIZE;i++){cout<<"输入元素"<<i<<":";cin>>array[i];}cout<<"排序前的数组:"<<endl;for(i=0;i<SIZE;i++){cout<<array[i]<<"\t";}cout<<endl;for(i=0;i<SIZE-1;i++){int pos=i;for(j=i+1;j<SIZE;j++){if(array[pos]>array[j]){pos=j;}}//j循环int tem;tem=array[pos];array[pos]=array[i];array[i]=tem;}//i循环cout<<"排序前的数组:"<<endl;for(i=0;i<SIZE;i++){cout<<array[i]<<"\t";}return 0;}课后练习三#include<iostream>#include<string>using namespace std;bool isV owel(char letter);int main(){string word, result;cout<<"请输入字符串:"<<endl;while(cin>>word){if(isV owel(word[0]))result= word + "ay";elseresult=word.substr(1)+word[0]+"ay";}cout<<result<<endl;return 0;}bool isV owel(char letter){if(letter=='a' || letter=='e' || letter=='i' || letter=='o' || letter=='u')return true;elsereturn false;}实习任务一(1)#include<iostream>class TempConvert{public:void setTempCelsius(double temp);void setTempFahrenheit(double temp);double getTempCelsius();double getTempFahrenheit();private:double tempCelsius;double celsiusToFahrenheit(double tempCelsius);double FahrenheitToCelsius(double tempFahrenheit);};void TempConvert::setTempCelsius(double temp){tempCelsius=temp;}void TempConvert::setTempFahrenheit(double temp){tempCelsius=FahrenheitToCelsius(temp); }double TempConvert::getTempCelsius(){return tempCelsius;}double TempConvert::getTempFahrenheit() {return celsiusToFahrenheit(tempCelsius); }doubleTempConvert::celsiusToFahrenheit(double tempCelsius){return tempCelsius*9.0/5.0+32;}doubleTempConvert::FahrenheitToCelsius(double tempFahrenheit){return 5.0/9.0*(tempFahrenheit-32);}int main() {TempConvert convertor;double temp;std::cout<<"Enter a Celsius temperature: ";std::cin>>temp;convertor.setTempCelsius(temp);std::cout<<"Celsius:"<<convertor.getTempCelsius()<<"\n";std::cout<<"Fahrenheit:"<<convertor.getTempFahrenheit()<<"\n";std::cout<<"Enter a Fahrenheit temperature: ";std::cin>>temp;convertor.setTempFahrenheit(temp);std::cout<<"Celsius:"<<convertor.getTempCelsius()<<"\n";std::cout<<"Fahrenheit:"<<convertor.getTempFahrenheit()<<"\n";return 0;}实习任务一(2)#include<iostream>class TempConvert{public:void setTempCelsius(double temp);void setTempFahrenheit(double temp);double getTempCelsius();double getTempFahrenheit();private:double tempFahrenheit;double celsiusToFahrenheit(double tempCelsius);double FahrenheitToCelsius(double tempFahrenheit);};void TempConvert::setTempCelsius(double temp){tempFahrenheit=celsiusToFahrenheit(tem p);}void TempConvert::setTempFahrenheit(double temp){tempFahrenheit=temp;}double TempConvert::getTempCelsius(){returnFahrenheitToCelsius(tempFahrenheit);}double TempConvert::getTempFahrenheit() {return tempFahrenheit;}doubleTempConvert::celsiusToFahrenheit(double tempCelsius){return tempCelsius*9.0/5.0+32;}doubleTempConvert::FahrenheitToCelsius(double tempFahrenheit){return 5.0/9.0*(tempFahrenheit-32);}int main(){TempConvert convertor;double temp;std::cout<<"Enter a Celsius temperature: ";std::cin>>temp;convertor.setTempCelsius(temp);std::cout<<"Celsius:"<<convertor.getTempCelsius()<<"\n";std::cout<<"Fahrenheit: "<<convertor.getTempFahrenheit()<<"\n";std::cout<<"Enter a Fahrenheit temperature: ";std::cin>>temp;convertor.setTempFahrenheit(temp);std::cout<<"Celsius:"<<convertor.getTempCelsius()<<"\n";std::cout<<"Fahrenheit:"<<convertor.getTempFahrenheit()<<"\n";return 0;}实习任务二#include<iostream>using namespace std;class Fraction{public:Fraction();Fraction(int n);Fraction(int n, int d);void setV alue(int n, int d);int getNum();int getDen();double getDoubleV alue();void output();private:int num;int den;};Fraction::Fraction(){num = 0;den = 1;}Fraction::Fraction(int n){num = n;den = 1;}Fraction::Fraction(int n, int d){num = n;den = d;}void Fraction::setV alue(int n, int d) {num = n;den = d;}int Fraction::getNum(){return num;}int Fraction::getDen(){return den;}double Fraction::getDoubleV alue(){return 1.0 * num / den;}void Fraction::output(){cout<<num<<"/"<<den<<endl;}int main(){Fraction f1, f2(2), f3(3, 4);f1.output();f2.output();f3.output();f1.setV alue(6, 4);f1.output();cout<<f1.getDoubleV alue()<<endl;return 0;}课后练习一#include<iostream>using namespace std;class RandomNum{public:RandomNum(unsigned int seed);int random();int random(int max);double frandom();};RandomNum::RandomNum(unsigned int seed){srand(seed);}int RandomNum::random(){return rand();}int RandomNum::random(int max){return rand() % max;}double RandomNum::frandom(){return rand() / double(RAND_MAX);}int main(){RandomNum randomGenerator(100);int i;for(i = 0; i < 100; ++i){cout<<randomGenerator.random(100)<<" ";}cout<<"\n";for(i = 0; i < 100; ++i)cout<<randomGenerator.frandom()<<" ";cout<<"\n";return 0;}课后练习二#include<iostream>using namespace std;class Time{public:Time();Time(int h, int m);void setTime(int h, int m);void output();int getHour();int getMinute();int getTotalMinutes();private:int hour;int minute;void normalizeTime();};Time::Time(){hour=0;minute=0;}Time::Time(int h,int m){hour=h;minute=m;normalizeTime();}void Time::setTime(int h,int m){hour=h;minute=m;normalizeTime();}void Time::output(){std::cout<<std::setfill('0');std::cout<<std::setw(2)<<hour<<':'<<std: :setw(2)<<minute<<std::endl;}int Time::getHour(){return hour;}int Time::getMinute(){return minute;}int Time::getTotalMinutes(){return hour*60+minute;}void Time::normalizeTime(){hour=hour+minute/60;minute=minute%60;hour=hour%24;}int main(){Time t1(12, 75);t1.output();t1.setTime(8, 65);t1.output();;return 0;}第七章实习任务一(1)Accumulator.cpp#include "accumulator.h"Accumulator::Accumulator(){total = 0;}Accumulator::Accumulator(double value) {total = value;}double Accumulator::getTotal() const {return total;}void Accumulator::addV alue(double value) {total += value;}void Accumulator::reset(){total = 0;}accumulator.h#include<iostream>using namespace std;class Accumulator{public:Accumulator();Accumulator(double value);double getTotal() const;void addV alue(double value);void reset();private:double total;};Main.cpp#include "accumulator.h"int main(){Accumulator myAcc;myAcc.addV alue(3);cout<<"Total:"<<myAcc.getTotal()<<"\n ";myAcc.addV alue(5);cout<<"Total:"<<myAcc.getTotal()<<"\n ";myAcc.reset();cout<<"Total:"<<myAcc.getTotal()<<"\n ";return 0;}实习任务一(2)Accumulator.cpp#include "accumulator.h"Accumulator::Accumulator(){total = 0;}Accumulator::Accumulator(double value) {total = value;}double Accumulator::getTotal() const{return total;}void Accumulator::addV alue(double value) {total += value;}void Accumulator::reset(){total = 0;}Accumulator.h#include<iostream>using namespace std;class Accumulator{public:Accumulator();Accumulator(double value);double getTotal() const;void addV alue(double value);void reset();private:double total;};Main.cpp#include "accumulator.h"int main(){const Accumulator myAcc(5);cout<<"Total:"<<myAcc.getTotal()<<"\n ";/*myAcc.addV alue(3);cout<<"Total:"<<myAcc.getTotal()<<"\n ";*/return 0;}实习任务一(3)Accumulator.cpp#include "accumulator.h"Accumulator::Accumulator(double value) {total = value;}double Accumulator::getTotal() const{return total;}void Accumulator::reset(){total = 0;}Accumulator.h#include<iostream>using namespace std; class Accumulator{public:Accumulator(){total = 0;}Accumulator(double value);double getTotal() const;void addV alue(double value);void reset();private:double total;};inline void Accumulator::addV alue(double value){total += value;}Main.cpp#include "accumulator.h"int main(){Accumulator myAcc;myAcc.addV alue(3);cout<<"Total:"<<myAcc.getTotal()<<"\n ";myAcc.addV alue(5);cout<<"Total:"<<myAcc.getTotal()<<"\n ";myAcc.reset();cout<<"Total:"<<myAcc.getTotal()<<"\n ";return 0;}实习任务二#include<iostream>class Fraction{public:。
地大c语言课程设计
地大c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量、数据类型、运算符、表达式等基本概念。
2. 学会使用C语言控制结构(如顺序、选择、循环)进行程序设计。
3. 掌握数组、函数和指针在C语言中的应用,并能运用解决实际问题。
4. 了解C语言中的模块化编程思想,能够阅读和编写简单的模块化程序。
技能目标:1. 培养学生运用C语言进行程序设计的能力,能够独立编写、调试和运行简单的C程序。
2. 培养学生运用C语言解决问题的能力,包括分析问题、设计算法、编写程序并验证结果。
3. 提高学生的编程实践能力,使其能够在实际操作中熟练使用C语言工具和开发环境。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神。
2. 培养学生的团队合作意识,使其在编程实践中学会交流、协作和分享。
3. 引导学生认识到编程对解决实际问题的意义,培养其运用计算机技术为社会服务的责任感。
课程性质:地大C语言课程设计是一门实践性强的课程,旨在帮助学生掌握C语言的基本知识和技能,培养编程思维和解决问题的能力。
学生特点:学生具备一定的计算机操作基础,对编程有一定兴趣,但编程实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,鼓励学生主动探索和解决问题。
在教学过程中,关注学生的个体差异,因材施教,提高课程的针对性和实用性。
通过本课程的学习,使学生能够达到上述课程目标,并在实际编程中展现所学成果。
二、教学内容1. C语言基础知识:变量、数据类型、运算符、表达式、输入输出函数等。
- 教材章节:第1章 C语言概述,第2章 数据类型与运算符。
2. 控制结构:顺序结构、选择结构(if、switch)、循环结构(for、while、do-while)。
- 教材章节:第3章 控制语句。
3. 数组:一维数组、二维数组、字符串数组。
- 教材章节:第4章 数组。
4. 函数:函数的定义、声明、调用、递归。
C语言课程设计参考题目
C语言课程设计参考题目C语言课程设计参考题目一、基本要求题目1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。
试编程推算肇事车的车牌号。
2、有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。
直到最后只剩下一个人为止。
问此人原来的位置是多少号。
3、编写一个程序,求3X4数组的转置矩阵。
要求在main函数里读数,在change 函数里把矩阵转置。
4、编写函数,求取两个整数m,n的最大公约数和最小公倍数。
5、用指向指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N 个整数在主函数中输入。
最后在主函数中输出。
6、有n个学生,每个学生的数据包括学号、姓名、年龄和两科成绩。
请编程用结构类型的数据处理方式实现如下目标:(1)在main 函数中输入原始数据;(2)在count 函数中输出各学生的总分和平均分;(3)输出总分最高的学生;(4)编写sort函数将各学生的数据按总分降序输出。
7、编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串8、文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密9、编写字串str1 中找出所有小写字母转成大写字母,大写字母转成小写字母后,结果依次存入字符数组 str2 中,str1 不变仍为原字串的程序。
例如,字符串str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc"。
10、编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。
地质大学(北京)2004年硕士研究生C++语言程序设计试题A
中国地质大学(北京)2004年硕士研究生C++ 语言程序设计试题(A卷)考试形式:闭卷考试考试时间:120分钟研究生学号姓名得分一、简答题(每小题3分,30分)1、什么叫计算机软件?2、请枚举指针运算的几种基本形式。
3、在C++语言中,有那几种常量?请给出实例。
4、在C++语言中,对象有那些存储类型?这些存储类型的含义是什么?5、请说出函数参数中,引用与地址传递参数方式两者之间的异同点。
6、请给出class类类型定义的一般形式。
7、class类类型中,构造函数应具有那些特征?8、类定义体中,有些函数之前有关键字friend的意义是什么?9、请说明class类类型和struct结构体类类型两种数据类型的异同点。
10、C++语言里,重载有那几种方式?二、数据与运算(每小题2分,共20分)1.若int x=2,y=0;则表达式(y = = x>>2)? x/++y : ++x的运算结果是什么?22.若int x=5, y(0), *p=&y ; 则经过y+=1, *p=++x+(- -y)的运算之后,cout<<x << “ ” << y<<endl; 的输出结果是什么?6 63.若unsigned char x=016, y =0xf0; 则x^~y; 的值是什么?000011101111000000001111000000014.若int x(0), y=1 ;则经过语句y+=x+2, x+=++y, x+=y- -; 的运算, 则x, y的结果值各是什么?8 35.若char x=’1’, y= ‟=‟ ; int z; z = x + = 3;则cout<< x<<"的ASCII码"<< y << z <<endl; 的输出结果是什么?4的ASCII码= 526.若int x, data[8]={1,2 ,3,4,5,6,7,8};则x=*(data+1)+*(&data[5]-2)之后,x存放的数是什么?67.若说明int a[8]={10,9,8,7,6,5,4,3}, *p=&a[1]; 则经过表达式*(p-3) += (*++p+=1, *++p+=1, a[5]+a[6] ); 运算之后,则数组a各元素的值是什么?19 9 9 8 6 5 4 38.若struct MyData { int a; float b ; char c[3]}; MyData x ={ 10, 1.0f, “ab”;}, *y=&x;则经过x . c[1]++, (y->b) += 10+x.a++ ;运算,x的各分量结果是什么?11, 21.0, ”ac”9.若定义union MyUnion{char x[2]; int y;}; (设int占4个字节),说明MyUnion MyKey, *pKey=&MyKey; pK ey->y=0, pK ey->x[0]= ‟1‟ ;则表达式(Key) . y 的结果是什么?10.若说明int a= -1; d ouble b(4) ; 则表达式(a<<2) * sizeof(b)的值是什么?-32三、给出下列程序的运行输出结果(每小题6分,共24分)1、void t(int &x,int &y,int &cp,int dp){ cp= - -x + y++;dp= x – y ;}#include “stdio.h”void main(void){ int a=4,b=3,c=5,d=6;t(a,b,c,d);printf("%d ,%d ,%d ,%d \n",a, b, c,d);}答案: 3 4 6 6 ;2、int d=1;#includ e “stdio.h”int fun(int p){ static int d=10 ;d +=p;printf("%d ",d);return(d);}void main( void ){int a=2;printf("%d \n",fun( fun(a) - fun(d) ));}答案:12 13 12 12 ;3、#include “iostr eam.h”void main(void){ char s1[64]= “AhCharacterString?”;char s2[64]= { …T‟, …e‟, …s‟, …t‟, …Y‟, …o‟, …u‟, ….‟, …\0‟ };char s[256] , *ps; int k;for(k=2; k<=16;k++) s[k-2]=s1[k] ;ps=s2; k =k-2;while( *ps++ != …\0‟) { s[k]=*ps ; ps++; k++; }s[k] = …\0‟ ;cout<< s ;}答案:CharacterString TestY ou. ;4、#include "iostr eam.h"#include "stdio.h"class CPerson{public:CPerson(char *pName= "", int m_Age=0);~ CPer son() { cout<< "我归天哪。
C语言课程设计报告书
中国地质大学(武汉) C语言课程设计报告书姓名:王友琪专业:地质学学号:20131000518指导老师:王茂才一、课设题目简要介绍已知文本文件f1.txt中存放了报考某校研究生的考生相关信息(不超过5000人),具体数据及存放格式为:每行存放一个考生的数据,数据之间用空格分隔,共有8项,依次为:考号、姓名、报考专业编号、政治课笔试成绩、英语课笔试成绩、专业课一笔试成绩、专业课二笔试成绩、面试成绩。
文本文件f2.txt中存放了该校50个专业当年的研究生招生计划,具体数据及存放格式为:每行存放一个专业的数据,数据之间用空格分隔,共有2项,依次为:专业编号、专业招生计划。
其中,考号为5位数字字符;姓名为长度不超过10个的字符;报考专业编号为两位数字字符,编号从01-50;政治课与英语课为0-100的整数;两门专业课为0-150的整数;面试成绩为0-100的整数。
该校的研究生录取标准及政策如下:录取分数线:根据专业录取计划,分专业划定录取分数线。
政治课及英语课,按全校录取计划的200%划定录取分数线,若政治或英语课的录取分数线低于45分,按45分划线;两门专业课,按专业录取计划的150%划定录取分数线,若专业课的录取分数线低于90分,按90分划线;总分,按专业录取计划的150%划定录取分数线,若总分的录取线低于280分,按280分划线。
录取基本条件:四门笔试课程及总分均通过录取分数线,面试成绩及格。
录取政策:在具备录取基本条件的考生中,笔试成绩占70%,面试成绩占30%,综合计算考生的总成绩,按专业排名从高到低录取。
请编写程序,根据文件f1.txt及f2.txt中的数据,划定各个专业的录取分数线并存入f3.txt文件中。
存放格式为:每行存放一个专业的录取分数线,数据之间用空格分隔,共有6项,依次为:专业编号、政治课录取分数线、英语课录取分数线、专业课一录取分数线、专业课二录取分数二、总分录取分数线。
根据f1.txt及f3.txt中的数据,将被录取考生的信息存入f4.txt文件中。
中国地质大学C语言课程设计题目(附参考代码)(367)
语言课程设计题目选题一(起评分分)高考招生录取程序已知文本文件中存放了某个省当年参加高考的个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。
假定当年该省的招生计划是:一类本科招生计划为%。
二类本科招生计划为%。
三类本科招生计划为%。
四类高职高专招生计划为%。
请编写程序,实现以下功能:()划定各批次录取分数线,结果可屏幕显示,也可存入文件。
()能够统计各批次中男生,女生的录取比例。
统计结果可屏幕显示,也可存入文件。
()确定每名学生的录取情况及录取批次。
()考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况。
说明:①系统程序要有界面②存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。
选题二(起评分分)《语言课程设计与学习指导》第章题目或第章题目任选其一成绩评定方式平时考勤:考试(即程序考核及检查):实习报告:违规违纪处理出现以下种情况中的任何一种,整个课程设计的成绩直接认定为不及格:.考勤抽查出现次(含)不在的情况。
.上机从事玩游戏、看电影等活动被抓住次(含)的情况。
.程序检查被认定为抄袭的情况。
.实习报告被认定抄袭或雷同的情况。
.不参加考试(即程序考核及检查)的情况.不交实习报告的情况。
语言课程设计报告撰写要求内容要求整个报告由六个部分构成:①课设题目②题目分析③设计思路④实现结果⑤课设汇总报告⑥附录(源代码)篇幅要求①⑤合计不低于页,⑥不低于页。
篇幅没有上限要求,但原则上要求不超过页。
标题字体字号格式:宋体,三号,加黑,单倍行距。
正文字体字号格式:宋体或,五号,单倍行距。
撰写要求严谨出现抄袭。
严谨出现雷同。
报告出现抄袭或雷同的,整个课程设计成绩一律按不及格论处。
其它封面格式附后。
中国地质大学(武汉)语言课程设计报告书姓名:班级:班级学号:指导老师:程序代码<><>{;[];[];;};[];***************排序模块*************** (){;;(<){(<)([]<[]){[];[][];[];}}}***************主函数***************** (){;[];*,*,*,*,*,*,*,*,*,*;("","");(<)(,"\"[][][][]);();();("","");(<)(," \"[][][][]);();("一本","");(,"高考招生一本录取情况\\");(<)(," \"[][][][]);();("二本","");(,"高考招生二本录取情况\\");(<*)(," \"[][][][]);();("三本","");(,"高考招生三本录取情况\\");(*<*)(," \"[][][][]);();("高职","");(,"高考招生高职录取情况\\");(*<*)(," \"[][][][]);();("未被录取","");(,"高考招生未被录取录取情况\\");(*<)(," \"[][][][]);();*********大循环查询模块***********(){: (" ***********************************\");(" * *\");(" * 主菜单 *\");(" * *\");(" * 查询整体录取情况请输入 *\");(" * *\");(" * 查询考生我信息请输入 *\");(" * *\");(" * 显示具体名单请输入 *\");(" * *\");(" * 退出请输入 *\");(" * *\");(" ***********************************\");("");("","");(){:{(<){(([],"男")) ;;}(<*){(([],"男")) ;;}(*<*){(([],"男")) ;;}(*<*){(([],"男")) ;;}(){(" **********************************\");(" * *\");(" * 菜单 *\");(" * *\");(" * 查询录取线请输入 *\");(" * *\");(" * 查询男女比例请输入 *\");(" * *\");(" * 返回输入 *\");(" * *\");(" **********************************\");("");(){("\一本线 \二本线 \三本线 \高职录取线 \"[][*][*][*]);("\男,女\男,女\男,女\男 , 女\",(),(),(),(),(),(),(),());};;}}:{(){(" ***********************************\");(" * *\"); (" * 菜单 *\"); (" * *\"); (" * 按考号查询请输入 *\"); (" * *\"); (" * 按姓名查询请输入 *\"); (" * *\"); (" * 返回输入 *\"); (" * *\"); (" ***********************************\"); ("");(){:{("","");(<)(,"\"[][][][])读取();("\请输入考生考号:");("");(<){([]){([]>) ("\ 一本\"[][][][]);([]>) ("\ 二本\"[][][][]);([]>) ("\ 三本\"[][][][]);([]>) ("\ 高职\"[][][][]);("\抱歉!你未被录取!\");}}};:{("","");(<)(,"\"[][][][]);();("\请输入考生姓名:");("");(<){(([])){([]>) ("\ 一本\"[][][][]);([]>) ("\ 二本\"[][][][]);([]>) ("\ 三本\"[][][][]);([]>) ("\ 高职\"[][][][]);("\抱歉!你未被录取!\");}}};;("\输入错误!请重新输入!\");}}};;:{(){(" ************************************\");(" * *\");(" * 菜单 *\");(" * *\");(" * 查询一本请输入 *\");(" * *\");(" * 查询二本请输入 *\");(" * *\");(" * 查询三本请输入 *\");(" * *\");(" * 查询高职请输入 *\");(" * *\");(" * 查询未录取请输入 *\");(" * *\");(" * 返回输入 *\");(" * *\");(" ************************************\");("");(){:{("一本","");(" *********高考招生一本录取情况*********\");(<)(" \"[][][][]);(); ;}:{("二本","");(" *********高考招生二本录取情况*********\");(<*)(" \"[][][][]);(); ;}:{("三本","");(" *********高考招生三本录取情况*********\");(*<*)(" \"[][][][]);(); ;}:{("高职","");(" *********高考招生高职录取情况*********\");(*<*)(" \"[][][][]);(); ;}:{("未录取","");(" *********高考招生未录取情况*********\");(*<)(" \"[][][][]);(); ;};("\输入错误!请重新输入!\");}}}("\输入错误!请重新输入!\");}}("\\ 谢谢使用\");}。
C语言课程设计选题
C语言课程设计选题一、c语言课程设计选题如下(每个题目不能超过五人选择)1、课题:设计一个万年历功能要求:1.输入年份,并分段返回全年日历(包括年、月和周)。
2.注意闰年2、课题:设计简单的计算器功能要求:1.通过菜单选择实现。
判断采用加减乘除法。
选择规则后,输入两个要计算的数字并输出计算结果。
3.主题:做一个猜谜游戏。
功能要求:1、计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直到我猜2、猜中后给出所用的时间和评语4、课题:将任一整数转换为二进制形式功能要求:将任意整数转换成二进制形式,输出5。
主题:小学生考试大纲的功能要求:1、电脑随机出10道题,每题10分,程序结束时显示学生得分2、不能有负数3.每个问题有三次输入答案的机会。
当输入错误答案时,提醒学生重新输入,若三次机会结束则输出正确答案4、对于每道题,第一次输入正确答案得10分,第二次输入正确答案得7分,如果你第三次输入正确答案,你会得到5分,否则你不会得到5分。
如果总分超过90分,则显示“智能”,80-90:good70-80:ok60-70:pass60以下:tryagain6.主题:24个游戏功能要求:输入四个一位数,通过加减乘除,允许加入括号,计算出24,显示计算过程,并提示成功信息7、课题:大数相乘功能要求:1.大整数指超过十位的十进制整数。
这里很简单,假设不超过50位。
由于超界溢出,这种大整数在C语言系统中无法直接表达和计算。
您可以使用数组来表示大整数,并在此基础上编写程序来乘以大整数。
8.主题:从十六进制到十进制的转换功能要求:实现输入一个十六进制,转换为十进制的设计9、课题:位数大小排序功能要求:输入一个五位整数,将该整数中的五个值从大到小排序,形成一个新的五位整数,并输出该整数。
10.主题:回文的形成功能要求:取任意十进制整数,将其加回原始整数,得到一个新整数,然后重复上述步骤,最终得到一个回文数。
请进行程序验证。
c语言课课程设计题目
c语言课课程设计题目一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单C程序的能力,提高学生运用C语言解决实际问题的能力。
1.掌握C语言的基本语法和规则。
2.理解数据类型、变量和常量的概念及使用。
3.熟悉各种运算符的用法及其优先级。
4.掌握顺序结构、分支结构、循环结构等控制结构的使用。
5.了解函数的定义、声明和调用。
6.能够使用C语言编写简单的程序,进行基本的输入输出操作。
7.能够利用C语言进行基本的数学计算和逻辑判断。
8.能够运用C语言进行数据的排序和查找等操作。
情感态度价值观目标:1.培养学生对计算机编程的兴趣,激发学生主动学习和探究的热情。
2.培养学生解决问题的能力和创新精神,提高学生自信心和自我成就感。
3.培养学生团队协作意识,增强学生沟通能力和合作精神。
二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.C语言概述:介绍C语言的历史、特点和应用范围。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型的使用,以及变量的声明和初始化。
3.运算符和表达式:介绍算术运算符、关系运算符、逻辑运算符等,以及表达式的组成和计算。
4.控制结构:讲解顺序结构、分支结构(if-else)、循环结构(for、while)的使用和嵌套。
5.函数:介绍函数的定义、声明和调用,包括主函数、递归函数等。
6.输入输出操作:讲解printf()和scanf()函数的使用,以及文件的读写操作。
7.编程实践:通过实例讲解和练习,使学生掌握C语言编程的基本技巧和方法。
三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本概念、语法和编程技巧,引导学生掌握知识要点。
2.案例分析法:通过分析典型实例,使学生了解C语言在实际问题中的应用,提高学生的编程能力。
中国地质大学C语言课程设计题目(附参考代码)
中国地质⼤学C语⾔课程设计题⽬(附参考代码)C语⾔课程设计题⽬选题⼀(起评分100分)⾼考招⽣录取程序已知⽂本⽂件f1.txt中存放了某个省当年参加⾼考的1000个考⽣的数据(考号、姓名、性别和考试成绩),存放格式是每⾏存放⼀个考⽣的数据,每个数据之间⽤空格隔开。
假定当年该省的招⽣计划是:⼀类本科招⽣计划为10%;⼆类本科招⽣计划为15%;三类本科招⽣计划为20%;四类⾼职⾼专招⽣计划为25%。
请编写程序,实现以下功能:(1)划定各批次录取分数线,结果可屏幕显⽰,也可存⼊⽂件。
(2)能够统计各批次中男⽣,⼥⽣的录取⽐例。
统计结果可屏幕显⽰,也可存⼊⽂件。
(3)确定每名学⽣的录取情况及录取批次。
(4)考⽣可以根据考号或姓名(⽀持重名)查询⾃⼰的成绩及录取情况;说明:①系统程序要有界⾯②存⼊⽂件的数据,每⾏存⼀种数据,每⾏之间的不同信息⽤空格分隔。
选题⼆(起评分85分)《C语⾔课程设计与学习指导》第4章题⽬或第5章题⽬任选其⼀成绩评定⽅式平时考勤:20%考试(即程序考核及检查):40%实习报告:40%违规违纪处理出现以下6种情况中的任何⼀种,整个课程设计的成绩直接认定为不及格:1.考勤抽查出现3次(含)不在的情况;2.上机从事玩游戏、看电影等活动被抓住2次(含)的情况;3.程序检查被认定为抄袭的情况;4.实习报告被认定抄袭或雷同的情况;5.不参加考试(即程序考核及检查)的情况6.不交实习报告的情况。
C语⾔课程设计报告撰写要求1 内容要求整个报告由六个部分构成:①课设题⽬②题⽬分析④实现结果⑤课设总结⑥附录(源代码)2 篇幅要求①-⑤合计不低于8页,⑥不低于8页。
篇幅没有上限要求,但原则上要求不超过25页。
标题字体字号格式:宋体,三号,加⿊,单倍⾏距。
正⽂字体字号格式:宋体或Times New Roman,五号,单倍⾏距。
3 撰写要求严谨出现抄袭。
严谨出现雷同。
报告出现抄袭或雷同的,整个课程设计成绩⼀律按不及格论处。
C语言程序设计实验及代码
西南林业大学C语言程序设计实验题、代码、输出结果编写目的:学生的痛,大家都明白,特别是学渣的痛。
呃,不过我渐渐从学渣成功逆袭,所以最后才会整理下这些信息,为了让后面的人在面对这C语言时不会那么脑大,不用像我们开始时候的茫然。
认真享受在课堂上GET知识的过程,接下去的事:作业考试也是水到渠成的事情,有的课程的却要花点时间,但就像那句话说的:No pain,no get. 付出不一定会有收获,但是不付出一定会让你后悔。
所以,认真听课,不仅仅只是C语言,还有其他的课程。
实验题目及代码、输出结果实验题目目录目录P1-----------------------P6Printf简单输出三角形-------------------------------------------------------P6给定圆半径值为5,编程求圆面积和圆周长---------------------------P6编写一个摄氏温度与华氏温度之间的转换程序-------------------P6编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。
-----------P7(有主函数子函数----------P26)使用两种指定的方法打印正三角形数阵-----------------------------P7从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。
-------------------------------------P8从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。
------------------------P8(指针变量----------------P19)输入三角形的三条边长,求三角形的面积。
--------------------P9从键盘任意输入3个整数,选出其中的最大数并打印。
中国地质大学计算机高级语言C++课设报告
《计算机高级语言C++》课程设计报告学号:班级序号:姓名:指导老师:刘袁缘中国地质大学(武汉)信息工程学院遥感系2016年12月实习题目二【问题描述及分析】问题描述:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。
百钱买百鸡,问鸡翁、母、雏各几何?问题分析:从现代数学观点来看,实际上是一个求不定方程整数解的问题。
解法如下:设公鸡、母鸡、小鸡分别为x、y、z 只,由题意得:①……x+y+z =100②……5x+3y+(1/3)z =100有两个方程,三个未知量,称为不定方程组,有多种解。
固定一个未知数,求剩下两个未知数。
【算法设计】先将题意转化为一个数学问题,然后列出相应的方程,化简方程,然后通过对剩下的变量进行穷举,输出符合条件的结果。
【调试报告】第一次运行时由于疏忽没有加入跳出循环的条件语句,导致枚举陷入死循环。
加上结束的条件后运行成功。
【附录】//第二题#include<iostream>using namespace std;int main(){int a = 0, b = 0, c = 0, m = 0, n = 0;//初始化for (m = 100 - 5 * a; m >= 0; a++){b = 0;c = 0;m = 100 - 5 * a;//除公鸡外的鸡for (n = 100 - 5 * a - 3 * b; n >= 0; b++){n = 100 - 5 * a - 3 * b;c = 3 * n;if ((a + b + c) == 100)//结束循环cout <<"公鸡:"<< a <<"只"<< ','<<" 母鸡:"<< b <<"只"<< ','<<"小鸡:"<< c <<"只"<< endl;}}return 0;}实习题目三【问题描述及分析】问题描述:将两个数组中的元素合并成一个并按降序排列问题分析:【算法设计】对数组中的元素一一进行比较,当A>B时,比较A中下一个元素与B的大小,直到所有元素都比较完。
电梯模拟C语言数据结构中国地质大学改进版
数据结构课程设计学生姓名:庞晓健学号:***********院(系):计算机学院专业:信息安全2014年 3月21日题目:电梯模拟1、问题描述:模拟某校九层教学楼的电梯系统。
该楼有一个自动电梯,能在每层停留,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。
乘客可随机地进出于任何层。
对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
模拟时钟从0开始,时间单位为0.1秒。
人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;电梯加速需要15t;上升时,每一层需要51t,减速需要14t;下降时,每一层需要61t,减速需要23t;如果电梯在某层静止时间超过300t,则驶回1层候命。
#include<stdio.h>#include<time.h>#include<stdlib.h>#include<malloc.h>#define MaxSize 5 //电梯所能承载的最大人数#define N 5typedef enum{Up,Down,Free} StateofElevator; //电梯的状态typedef struct //************************** 乘客结构体{int FloorofPerson; //乘客所在楼层int GoFloor; //乘客要去楼层int WaitingTime; //乘客的最大容忍等待时间int Direction; //方向int InorOut; //乘客是否已出电梯int Leave; //乘客是否离去int WaitedTime; //乘客已经等待的时间}Person;typedef struct //******************************电梯结构体{int Floor; //所在楼层StateofElevator State; //运行方向状态int NumberofPerson; //装载乘客人数}Elevator;Person Passenger[9][N]; //全局结构体二维数组保存整栋楼的乘客的相关信息Person PassengerInElevator[MaxSize]; //在电梯中的乘客的相关信息存储在结构体一维数组中int b[9]; //每层楼的人数int InCount[9]; //每层楼进入电梯的实际人数int OutCount[9]; //每层楼走出电梯的实际人数int tclock=0; //电梯运行时的全局软时钟int InTime[9]; //每层楼乘客进入电梯的时间int OutTime[9]; //每层楼乘客出电梯的时间int In(int y,int x,StateofElevator State1) //乘客进入电梯,每次乘客进入电梯后将该层的乘客重新排序( y表示电梯当前人数;x表示楼层){int m=y; //保存电梯当前人数int p,q,l,v=0,et;int d =1;if(State1==Up) // 电梯当前运行方向d =1;if(State1==Down)d =0;for(p=0;p<b[x];p++){if(Passenger[x][p].Direction==d &&Passenger[x][p].Leave==0)//该x层乘客p的方向与电梯方向一致且未离开,若电梯未满,则进电梯{if(m ==MaxSize){printf("电梯现在已经超载,请您等待片刻!\n");break; //该楼层的其他乘客等待一段时间}m ++; //电梯内人数增加for(q=0;q<MaxSize;q++){if(PassengerInElevator[q].InorOut==0)//如果电梯内乘客q已出电梯,则乘客p入电梯{PassengerInElevator[q]=Passenger[x][p];//乘客正式进入电梯PassengerInElevator[q].InorOut=1;//乘客已经进入电梯PassengerInElevator[q].Leave=1;PassengerInElevator[q].WaitedTime=0;PassengerInElevator[q].WaitingTime=0;Passenger[x][p].Direction=-2;Passenger[x][p].FloorofPerson=-2;Passenger[x][p].InorOut=-2;Passenger[x][p].Leave=-2;//printf("目标楼层:", Passenger[x][p].GoFloor);Passenger[x][p].WaitedTime=0;Passenger[x][p].WaitingTime=0;//进了电梯表明乘客即可到达目的地从而离开系统break;}}}}InCount[x]=m-y; //每层楼进入电梯的实际人数/*将本楼层的乘客信息重新排列,将该层剩余乘客信息放入全局结构体二维数组*/ Person *temp=(Person *)malloc((b[x]-InCount[x])*sizeof(Person)); //临时数组for(et=0;et<(b[x]-InCount[x]);et++)//电梯外剩余乘客{Passenger[x][et]=temp[et];}b[x]=b[x]-InCount[x];InTime[x]=InCount[x]*25;tclock+=InTime[x];printf("在%dt时刻第%d楼层有%d个人进入电梯!\n",tclock,x,(m-y));//printf("目标楼层\n", )return m;}int Out(int floor,int number) //乘客出电梯,每次乘客出电梯将全局数组中的乘客信息重新修改,floor表示楼层,number表示电梯内人数{int i;int k=number;//电梯内剩余的人for(i=0;i<MaxSize;i++){if(PassengerInElevator[i].GoFloor==floor&&PassengerInElevator[i].InorOut==1&&Passeng erInElevator[i].Leave==1){k--;PassengerInElevator[i].InorOut=0; //到站的乘客出电梯}}OutCount[floor]=number-k;OutTime[floor]=OutCount[floor]*25;tclock+=OutTime[floor];printf("在%dt时刻第%d楼层有%d个人已经到达地!\n",tclock,floor,OutCount[floor]);return k;}void Open() //电梯开门{tclock+=20;printf("电梯的门正在打开,请您稍候\n");printf("在%dt时刻电梯的门已经打开!\n",tclock);}void Close() //电梯关门{tclock+=20;printf("电梯的门正在关闭,请您稍候\n");printf("在%dt时刻电梯的门已经关闭!\n",tclock);}int Go(Elevator *ele) //电梯正在运行{Elevator *e=ele;if(e->State==Up){printf("电梯正在向上运行\n");printf("\n");e->Floor++;}if(e->State==Down){e->Floor--;printf("电梯正在向下运行\n");printf("\n");}tclock+=10;return (e->Floor);}int Initialize() //系统最开始的初始化{int i,j,k,m,n,s,c,u,v=0;srand(time(0)); //获取时间种子for(i=0;i<=8;i++) //每层楼的人数随机初始化b[i]=rand()%N;for(m=0;m<b[0];m++) //最底层楼的乘客信息初始化Passenger[0][m].Direction=1;Passenger[8][m].GoFloor=1+rand()%7;for(c=0;c<b[8];c++) //最高层的乘客信息初始化Passenger[8][c].Direction=0;Passenger[8][c].GoFloor=-1+rand()%8;for(n=1;n<=7;n++) //每层楼每个乘客方向初始化for(s=0;s<b[n];s++)Passenger[n][s].Direction=rand()%2;for(j=0;j<=8;j++) //每层楼的乘客的相关信息随机初始化for(k=0;k<b[j];k++){Passenger[j][k].FloorofPerson=j;Passenger[j][k].WaitingTime=100+rand()%100;Passenger[j][k].InorOut=0; //电梯外Passenger[j][k].Leave=0; //未离开Passenger[j][k].WaitedTime=0;if(Passenger[j][k].Direction==1)Passenger[j][k].GoFloor=(j+1)+rand()%(8-j);if(Passenger[j][k].Direction==0&&j!=1)Passenger[j][k].GoFloor=rand()%(j-1);if(Passenger[j][k].Direction==0&&j==1)Passenger[j][k].GoFloor=0;}for(u=0;u<=8;u++) // 遍历整栋楼,有人则返回1,没人返回0;if(b[u]==0)v++;if(v==9)return 0;elsereturn 1;}int Test() // 考查整栋楼有无请求,无返回0,有返回1;{int cs,cf=0;for(cs=0;cs<9;cs++)if(b[cs]==0)cf++;if(cf==9)return 0;elsereturn 1;}void OnFree(){printf("电梯现在在第一楼!电梯正处于空闲状态!!\n");}void Run(Elevator *left){Elevator *ts=left;int floor=ts->Floor; //保存电梯当前的所在楼层数int number=ts->NumberofPerson; //保存电梯当前的人数int ps,ms,ns,bs=0,ls=0,pt,yt;int loop=0;//循环次数while(loop!=15 ){if(Test()==0) //考查整栋楼有无请求,无返回0,有返回1;{OnFree(); //输出电梯现在在第一楼!电梯正处于空闲状态!}else{bs=0;printf("在%dt时刻电梯正在第%d层!\n",tclock,floor);for(ns=0;ns<number;ns++)if(PassengerInElevator[ns].GoFloor!=floor)bs++;if(b[floor]==0&&bs==number) //电梯外没人,没人下{//电梯不开门,继续上升或下降if(number!=0) //电梯里有人{if(PassengerInElevator[0].Direction==1&&floor<8)//往上{ts->State=Up;floor=Go(ts); //电梯移动if(floor==9){printf("在%dt时刻电梯正在%d楼层!\n",tclock,floor);Open();number=Out(floor,number); //乘客出电梯OutTime[floor]=OutCount[floor]*25; //乘客出电梯的耗时ts->State=Down;number=In(number,floor,ts->State);InTime[floor]=InCount[floor]*25; //乘客进入电梯的耗时Close();/*重新计算每层楼的正在等待的乘客的需等待时间*/for(ps=0;ps<=9;ps++)for(ms=0;ms<b[ps];ms++){if(Passenger[ps][ms].InorOut==0&&Passenger[ps][ms].Leave==0)Passenger[ps][ms].WaitedTime+=(50+OutTime[floor]+InTime[floor]);}if(number==0)floor=Go(ts);}}if(PassengerInElevator[0].Direction==0&&floor>0) //往下{ts->State=Down;floor=Go(ts);if(floor==0){printf("在%dt时刻电梯正在%d楼层!\n",tclock,floor);Open();number=Out(floor,number); //乘客出电梯OutTime[floor]=OutCount[floor]*25; //乘客出电梯的耗时ts->State=Up;number=In(number,floor,ts->State);InTime[floor]=InCount[floor]*25; //乘客进入电梯的耗时Close();/*重新计算每层楼的正在等待的乘客的需等待时间*/for(ps=0;ps<=9;ps++)for(ms=0;ms<b[ps];ms++){if(Passenger[ps][ms].InorOut==0&&Passenger[ps][ms].Leave==0)Passenger[ps][ms].WaitedTime+=(50+OutTime[floor]+InTime[floor]);}floor=Go(ts);}}}else //电梯里没有人{if(ts->State==Up){if(floor==8)ts->State=Down;elsefloor=Go(ts);}if(ts->State==Down){if(floor==0)ts->State=Up;elsefloor=Go(ts);}}for(pt=0;pt<=9;pt++)for(yt=0;yt<b[pt];yt++){if(Passenger[pt][yt].InorOut==0&&Passenger[pt][yt].Leave==0)Passenger[pt][yt].WaitedTime+=10;}}else{Open();number=Out(floor,number); //乘客出电梯OutTime[floor]=OutCount[floor]*25; //乘客出电梯的耗时number=In(number,floor,ts->State);InTime[floor]=InCount[floor]*25; //乘客进入电梯的耗时Close();/*重新计算每层楼的正在等待的乘客的需等待时间*/for(ps=0;ps<=9;ps++)for(ms=0;ms<b[ps];ms++){if(Passenger[ps][ms].InorOut==0&&Passenger[ps][ms].Leave==0)Passenger[ps][ms].WaitedTime+=(50+OutTime[floor]+InTime[floor]);}/*服务完本层,电梯正式运行*/ if(PassengerInElevator[0].Direction==1&&floor<9){ts->State=Up;floor=Go(ts);if(floor==9){printf("在%dt时刻电梯正在%d楼层!\n",tclock,floor);Open();number=Out(floor,number); //乘客出电梯OutTime[floor]=OutCount[floor]*25; //乘客出电梯的耗时ts->State=Down;number=In(number,floor,ts->State);InTime[floor]=InCount[floor]*25; //乘客进入电梯的耗时Close();/*重新计算每层楼的正在等待的乘客的需等待时间*/for(ps=0;ps<=9;ps++)for(ms=0;ms<b[ps];ms++){if(Passenger[ps][ms].InorOut==0&&Passenger[ps][ms].Leave==0)Passenger[ps][ms].WaitedTime+=(50+OutTime[floor]+InTime[floor]);}if(number==0)floor=Go(ts);}}if(PassengerInElevator[0].Direction==0&&floor>0){ts->State=Down;floor=Go(ts);if(floor==0){printf("在%dt时刻电梯正在%d楼层!\n",tclock,floor);Open();number=Out(floor,number); //乘客出电梯OutTime[floor]=OutCount[floor]*25; //乘客出电梯的耗时ts->State=Up;number=In(number,floor,ts->State);InTime[floor]=InCount[floor]*25; //乘客进入电梯的耗时Close();/*重新计算每层楼的正在等待的乘客的需等待时间*/for(ps=0;ps<=9;ps++)for(ms=0;ms<b[ps];ms++){if(Passenger[ps][ms].InorOut==0&&Passenger[ps][ms].Leave==0)Passenger[ps][ms].WaitedTime+=(50+OutTime[floor]+InTime[floor]);}floor=Go(ts);}}}}//乘客向电梯请求loop++;}}//主函数int main(){int number,floor,state;Elevator left;left.State=Free; //电梯初始化left.Floor=1;left.NumberofPerson=0;for(number=0;number<MaxSize;number++) //电梯内乘客信息初始化{PassengerInElevator[number].InorOut=0;PassengerInElevator[number].Direction=-1;PassengerInElevator[number].FloorofPerson=-1;PassengerInElevator[number].Leave=0;PassengerInElevator[number].GoFloor=rand;PassengerInElevator[number].WaitedTime=0;PassengerInElevator[number].WaitingTime=0;}for(floor=0;floor<=8;floor++){InCount[floor]=0;OutCount[floor]=0;InTime[floor]=0;OutTime[floor]=0;}state=Initialize();if(state==0)OnFree();else // 判断电梯最初运行方向{if(b[1]==0) // 1楼没人,而整栋楼有人{left.State=Up;Run(&left);}else{if(Passenger[1][0].Direction==1){left.State=Up;Run(&left);}if(Passenger[1][0].Direction==0){left.State=Down;Run(&left);}}}}。
c语言课程设计-高考录取分数线
中国地质大学(武汉)C语言课程设计报告书《姓名:班级:班级学号:指导老师:}一课设题目高考招生录取成绩已知文本文件中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。
假定当年该省的招生计划是:一类本科招生计划为10%;二类本科招生计划为15%;三类本科招生计划为20%;四类高职高专招生计划为25%。
$请编写程序,实现以下功能:1.划定各批次录取分数线,结果可屏幕显示,也可存入文件;2.能够统计各批次中男生,女生的录取比例。
统计结果可屏幕显示,也可存入文件;3.确定每名学生的录取情况及录取批次;4.考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况;5.系统程序要有界面;6.存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。
)…—二题目分析该程序题目已经很清楚的表达出要求编好的程序能够简单的实行高考招生功能,首先需要在导入含有一千个考生信息的txt文本,以能达到录取功能。
根据该题目我们还可以知道完成数据输入后,不仅要有比较整洁的界面,还要能根据用户要求界面显示出个批次中男女的比例以及录取线、可供用户查询(根据考生姓名或考号)某考生成绩及录取情况。
那么我们最好设置一个大循环,使得考生能实现只要不关闭程序或者按指定输入而结束程序就能一直查询下去,并且能用txt文本将个批次中录取的人的一系列信息从程序中生成出来。
;但作为艺术生,我的能力有限,只能从网络上寻找已经编好的程序进行理解,降低理解题目的难度。
`(三设计思路要编题目中要求的程序,就必须先将已经写好的一千个学生的信息的文本文件输入程序。
第一步为定义:#include <>}#include <>用结构体的形式将学生的一切信息表达出来:struct DATA{int ID;char name[4];char sex[3];int score;/};定义各个函数:void paixu(int*,DATA*,int);int sishewuru(double);void func1(int*,int*,DATA*,int*,int,int,int,int);D,&data[i].name,&data[i].sex,&data[i].score);pai[i]=i;}paixu(pai,data,length);core;er=data[pai[erben]].score;)san=data[pai[sanben]].score;si=data[pai[dazhuan]].score;设置界面:将“各类招生分数线”、“各批次男女比例”、“单个学生录取情况”、“退出系统输入”、“重新打印初试界面”输入指令分别设置为数字“0”~“4”:while(1){print();printf("\n请输入查询码:");for(input=getchar();;input=getchar())~{if(!(input>='0'&&input<='4')){printf("非法输入,请重新输入\n请输入:");fflush(stdin);}else break;}…实现“各类招生分数线”即“0”指令:getchar();switch(input){case '0':printf("\n一类本科招生线:%d\n二类本科招生线:%d\n三类本科招生线:%d\\n高职高专招生线:%d\n",yi,er,san,si);{printf("是否打印为文件(y/n):");if(getchar()=='y'){file1=fopen("各批次录取分数线.txt","w");fprintf(file1,"一类本科招生线:%d\n二类本科招生线:%d\\n三类本科招生线:%d\n高职高专招生线:%d\n",yi,er,san,si);fclose(file1);}'fflush(stdin);break;实现“各批次男女比例”即“1”指令:case '1':func1(male,female,data,pai,yiben,erben,sanben,dazhuan);printf("一本类本科招生线男女比例:%d:%d\n",male[0],female[0]);printf("二类本科招生线男女比例:%d:%d\n",male[1],female[1]);—printf("三类本科招生线男女比例:%d:%d\n",male[2],female[2]);printf("高职高专招生线招生线男女比例:%d:%d\n",male[3],female[3]);printf("是否打印为文件(y/n):");if(getchar()=='y'){file1=fopen("各批次录取男女比例.txt","w");fprintf(file1,"一类本科招生线男女比例:%d:%d\n",male[0],female[0]);fprintf(file1,"二类本科招生线男女比例:%d:%d\n",male[1],female[1]);{fprintf(file1,"三类本科招生线男女比例:%d:%d\n",male[2],female[2]);fprintf(file1,"高职高专招生线招生线男女比例:%d:%d\n",male[3],female[3]);fclose(file1);}fflush(stdin);break;实现“单个学生录取情况”即“2”指令:,case '2':printf("按考号查询输入0 按姓名查询输入1\n请输入查询码:");for(input=getchar();;input=getchar()){if(input!='0'&&input!='1'){printf("非法输入,请重新输入\n请输入:");fflush(stdin);!}else break;}getchar();int shuru,j,ss[10];ame,data[j].sex,data[j].score);if(data[j].score>=yi) printf("一本\n");else if(data[j].score>=er) printf("二本\n");else if(data[j].score>=san) printf("三本\n");{else if(data[j].score>=si) printf("高职高专\n");else printf("未过线,请继续努力!\n");printf("是否继续查询(y/n):");if(getchar()=='y'){fflush(stdin);goto start1;—}}else{start2: printf("请输入姓名:");j=func2(ss,length,data);D,data[ss[0]].name,data[ss[0]].sex,data[ss[0]].score);if(data[ss[0]].score>=yi) printf("一本\n");else if(data[ss[0]].score>=er) printf("二本\n");(else if(data[ss[0]].score>=san) printf("三本\n");else if(data[ss[0]].score>=si) printf("高职高专\n");else printf("未过线,请继续努力!\n");}else{printf("有多个考生姓名为%s,数据如下:\n",data[ss[0]].name);for(j=j-1;j>=0;j--):{printf("该生考号:%d 姓名:%s 性别:%s 分数:%d 录取情况:",data[ss[j]].ID,data[ss[j]].name,data[ss[j]].sex,data[ss[j]].score);if(data[ss[j]].score>=yi) printf("一本\n");else if(data[ss[j]].score>=er) printf("二本\n");else if(data[ss[j]].score>=san) printf("三本\n");else if(data[ss[j]].score>=si) printf("高职高专\n");else printf("未过线,请继续努力!\n");|}}printf("是否继续查询(y/n):");if(getchar()=='y'){fflush(stdin);goto start2;?}}break;实现“退出系统”即“3”指令:case '3':fclose(file);free(data);;return;实现“重新打印初始界面”即“4”指令:case '4':print();break;}}fclose(file);.free(data);}下面,则开始对开始定义的函数进行填充:根据1000名学生的成绩进行从高到底的排序:void paixu(int* pai,DATA* data,int length){-int i,j,temp;for(i=0;i<length;i++)for(j=i+1;j<length;j++)if(data[pai[i]].score<data[pai[j]].score){temp=pai[i];pai[i]=pai[j];pai[j]=temp;]}}计算各批次比例的四舍五入:int sishewuru(double l){if(l>1){|if((l-(int)l)< return (int)l;else return (int)l+1;}else return 1;}各批次男女比例:void func1(int* male,int* female,DATA* data,int* pai,int a,int b,int c,int d)){int i;for(i=0;i<4;i++) {male[i]=0;female[i]=0;}for(i=0;i<=a;i++){if(data[pai[i]].sex[0]==-60) male[0]++;else female[0]++;}…for(;i<=b;i++){if(data[pai[i]].sex[0]==-60) male[1]++;else female[1]++;}for(;i<=c;i++){if(data[pai[i]].sex[0]==-60) male[2]++;^else female[2]++;}for(;i<=d;i++){if(data[pai[i]].sex[0]==-60) male[3]++;else female[3]++;}}-界面:void print(){printf("--------------------------------高考招生录取程序-------------------------------\n");printf("今年招生计划:一类本科招生计划为10%\n 二类本科招生计划为15%\n\三类本科招生计划为20%\n 四类高职高专招生计划为25%\n");printf("查询:\n各类招生分数线输入0 各批次男女比例输入1\:\n单个学生录取情况输入2 退出系统输入3\n重新打印初试界面输入4\n");}根据考生的姓名或考号进行单个学生成绩查询:int func2(int* ss,int length,DATA* data){int i,j=0;char s[4];?while(1){i=scanf("%s",s);fflush(stdin);if(i!=1){printf("非法输入,请重新输入\n请输入:");continue;]}for(i=0;i<length;i++){if(data[i].name[0]==s[0]&&data[i].name[1]==s[1]&&data[i].name[2]==s[2]){ss[j++]=i;}}?break;}return j;}:—?[四、实现结果系统界面,各类招生录取成绩各批次男女比例((五课设总结{在进行几次上机实习后,我感觉c语言真是一门很神奇的学科,它在只借助一台计算机,一个vc++,就能带给人们那么多实用的东西!而且,我对c语言有了全新的认识,以前不知道的东西在上机之后完全了解了,以前一知半解的东西在上机之后感觉分变得更加明了了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计题目选题一(起评分100分)高考招生录取程序已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。
假定当年该省的招生计划是:一类本科招生计划为10%;二类本科招生计划为15%;三类本科招生计划为20%;四类高职高专招生计划为25%。
请编写程序,实现以下功能:(1)划定各批次录取分数线,结果可屏幕显示,也可存入文件。
(2)能够统计各批次中男生,女生的录取比例。
统计结果可屏幕显示,也可存入文件。
(3)确定每名学生的录取情况及录取批次。
(4)考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况;说明:①系统程序要有界面②存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。
选题二(起评分85分)《C语言课程设计与学习指导》第4章题目或第5章题目任选其一成绩评定方式平时考勤:20%考试(即程序考核及检查):40%实习报告:40%违规违纪处理出现以下6种情况中的任何一种,整个课程设计的成绩直接认定为不及格:1.考勤抽查出现3次(含)不在的情况;2.上机从事玩游戏、看电影等活动被抓住2次(含)的情况;3.程序检查被认定为抄袭的情况;4.实习报告被认定抄袭或雷同的情况;5.不参加考试(即程序考核及检查)的情况6.不交实习报告的情况。
C语言课程设计报告撰写要求1 内容要求整个报告由六个部分构成:①课设题目②题目分析③设计思路④实现结果⑤课设总结⑥附录(源代码)2 篇幅要求①-⑤合计不低于8页,⑥不低于8页。
篇幅没有上限要求,但原则上要求不超过25页。
标题字体字号格式:宋体,三号,加黑,单倍行距。
正文字体字号格式:宋体或Times New Roman,五号,单倍行距。
3 撰写要求严谨出现抄袭。
严谨出现雷同。
报告出现抄袭或雷同的,整个课程设计成绩一律按不及格论处。
4 其它封面格式附后。
中国地质大学(武汉)C语言课程设计报告书姓名:班级:班级学号:指导老师:程序代码#include <stdio.h>#include <string.h>#define N 1000struct student{int number;char name[10];char sex[5];int score;};struct student stu[N];/***************排序模块***************/void sort(){struct student temp;int i,j;for(i=0;i<N;i++){for(j=0;j<N-i;j++)if(stu[j].score<stu[j+1].score){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}/***************主函数*****************/void main(){int i,s,m1=0,w1=0,m2=0,w2=0,m3=0,w3=0,m4=0,w4=0,c,b,f,g;char u[10];FILE *fp,*fp1,*fp2,*fp3,*fp4,*fp5,*fp6,*fp7,*fp8,*fp9;fp=fopen("f1.txt","r");for(i=0;i<N;i++)fscanf(fp,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);fclose(fp);sort();fp1=fopen("f2.txt","w");for(i=0;i<N;i++)fprintf(fp1,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp1);fp5=fopen("一本.txt","w");fprintf(fp5,"高考招生一本录取情况\n\n");for(i=0;i<N/10;i++)fprintf(fp5,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp5);fp6=fopen("二本.txt","w");fprintf(fp6,"高考招生二本录取情况\n\n");for(i=N/10;i<N*25/100-1;i++)fprintf(fp6,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp6);fp7=fopen("三本.txt","w");fprintf(fp7,"高考招生三本录取情况\n\n");for(i=N*25/100;i<N*45/100+1;i++)fprintf(fp7,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp7);fp8=fopen("高职.txt","w");fprintf(fp8,"高考招生高职录取情况\n\n");for(i=N*45/100+1;i<N*70/100+2;i++)fprintf(fp8,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp8);fp9=fopen("未被录取.txt","w");fprintf(fp9,"高考招生未被录取录取情况\n\n");for(i=N*70/100+3;i<N;i++)fprintf(fp9,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp9);/*********大循环查询模块***********/while(1){loop: printf(" ***********************************\n");printf(" * *\n");printf(" * 主菜单 *\n");printf(" * *\n");printf(" * 查询整体录取情况请输入1 *\n");printf(" * *\n");printf(" * 查询考生个人信息请输入2 *\n");printf(" * *\n");printf(" * 显示具体名单请输入4 *\n");.printf(" * *\n");printf(" * 退出请输入9 *\n");printf(" * *\n");printf(" ***********************************\n");scanf("%d",&s);fp2=fopen("f2.txt","r");switch(s){case 1:{for(i=0;i<N/10-1;i++){if(strcmp(stu[i].sex,"男")==0) m1=m1+1;else w1=w1+1;}for(i=N/10;i<N*25/100-1;i++){if(strcmp(stu[i].sex,"男")==0) m2=m2+1;else w2=w2+1;}for(i=N*25/100;i<N*45/100+1;i++){if(strcmp(stu[i].sex,"男")==0) m3=m3+1;else w3=w3+1;}for(i=N*45/100+1;i<N*70/100+2;i++){if(strcmp(stu[i].sex,"男")==0) m4=m4+1;else w4=w4+1;}while(1){printf(" **********************************\n");printf(" * *\n");printf(" * 菜单 1 *\n");printf(" * *\n");printf(" * 查询录取线请输入1 *\n");printf(" * *\n");printf(" * 查询男女比例请输入2 *\n");printf(" * *\n");printf(" * 返回输入3 *\n");printf(" * *\n");printf(" **********************************\n");scanf("%d",&f);switch(f){case 1:printf("\n一本线%d \n二本线%d \n三本线%d \n高职录取线%d \n",stu[N/10-1].score,stu[N*25/100-1].score,stu[N*45/100+1].score,stu[N*70/100+3]. score);break;case 2:printf("\n男%f,女%f\n男%f,女%f\n男%f,女%f\n男 %f, 女%f\n",(float)m1/100,(float)w1/100,(float)m2/150,(float)w2/150,(float)m3/202,(flo at)w3/202,(float)m4/252,(float)w4/252);}break;case 3:goto loop;}}case 2:{while(1){printf(" ***********************************\n");printf(" * *\n");printf(" * 菜单 2 *\n");printf(" * *\n");printf(" * 按考号查询请输入1 *\n");printf(" * *\n");printf(" * 按姓名查询请输入2 *\n");printf(" * *\n");printf(" * 返回输入3 *\n");printf(" * *\n");printf(" ***********************************\n");scanf("%d",&c);switch(c){case 1:{fp3=fopen("f2.txt","r");for(i=0;i<N;i++)fscanf(fp3,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);/ /读取fclose(fp3);printf("\n请输入考生考号:");scanf("%d",&b);for(i=0;i<N;i++){if(b==stu[i].number){if(stu[i].score>=625)printf("\n%d %s %s %d 一本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=518) printf("\n%d %s %s %d 二本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=372)printf("\n%d %s %s %d 三本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=208) printf("\n%d %s %s %d 高职\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else printf("\n抱歉!你未被录取!\n");}}};break;case 2:{fp4=fopen("f2.txt","r");for(i=0;i<N;i++)fscanf(fp4,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);fclose(fp4);printf("\n请输入考生姓名:");scanf("%s",&u);for(i=0;i<N;i++){if(strcmp(u,stu[i].name)==0){if(stu[i].score>=625)printf("\n%d %s %s %d 一本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=518) printf("\n%d %s %s %d 二本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=372) printf("\n%d %s %s %d 三本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=208) printf("\n%d %s %s %d 高职\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else printf("\n抱歉!你未被录取!\n");}}};break;case 3:goto loop;default :printf("\n输入错误!请重新输入!\n");}}};break;case 9:goto end;case 4:{while(1){printf(" ************************************\n");printf(" * *\n");printf(" * 菜单 4 *\n");printf(" * *\n");printf(" * 查询一本请输入1 *\n");printf(" * *\n");printf(" * 查询二本请输入2 *\n");printf(" * *\n");printf(" * 查询三本请输入3 *\n");printf(" * *\n");printf(" * 查询高职请输入4 *\n");printf(" * *\n");printf(" * 查询未录取请输入5 *\n");printf(" * *\n");printf(" * 返回输入9 *\n");printf(" * *\n");printf(" ************************************\n");scanf("%d",&g);switch(g){case 1:{fp5=fopen("一本.txt","w");printf(" *********高考招生一本录取情况*********\n");for(i=0;i<N/10;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp5); break;}case 2:{fp6=fopen("二本.txt","w");printf(" *********高考招生二本录取情况*********\n");for(i=N/10;i<N*25/100-1;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp6); break;}case 3:{fp7=fopen("三本.txt","w");printf(" *********高考招生三本录取情况*********\n");for(i=N*25/100;i<N*45/100+1;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp7); break;}case 4:{fp8=fopen("高职.txt","w");printf(" *********高考招生高职录取情况*********\n");for(i=N*45/100+1;i<N*70/100+2;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp8); break;}case 5:{fp9=fopen("未录取.txt","w");printf(" *********高考招生未录取情况*********\n");for(i=N*70/100+3;i<N;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp9); break;}case 9:goto loop;default :printf("\n输入错误!请重新输入!\n");}}}default :printf("\n输入错误!请重新输入!\n");}}end:printf("\n\n 谢谢使用\n");}。