C++程序实验设计高分悬赏!!!程序的函数要简单,我们学的是C程序设计(第三版)谭浩强著

某班级一共有学生N名,本学期一共选修了M门课程,设计一个成绩测评系统,功能要求如下:
(1) 输入学生基本信息,并用文件存储;
(2) 能逐一输入某门功课学生的成绩;
(3) 计算某门课程的平均分;
(4) 对某门课程按成绩,降序输出;
(5) 输入某个学生的学号,查询其各课考试情况;
(6) 输入学生学号,修正某门课程的成绩;
(7) 统计课程不同分数段的人数;
求高手编程好啊,小弟不是学计算机的,这是结课的设计。帮帮忙发个编好的吧!!!

一、高维数组

有时,数组的维数并不止一维,例如一个记录消费中心在第一季度里各个月的收入数据就可以用二维数组来表示。定义二维数组的方法是在一维数组定义的后面再加上一个用方括号括起来的维数说明。例如:
float array[3][8];
实际上,这个数组可以看成3个连续的一维数组,每个一维数组具有8个元素。该数组在内存中的存储格式为最左边的维数相同的元素连续存储,也即按行存储的。首先存储第一行8个元素,其次是第二行,最后是第三行。
main()
{
int array[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
它的输出结果为:
1 2 3
4 5 6
7 8 9
可以看出,二维数组元素是按行存储的。

我们也可以对数组进行赋值,而不是初始化。
main()
{
int array[3][3];
int i,j;
for(j=0;j<3;j++)
for(i=0;i<3;i++) scanf(%d,&array[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
当输入1 2 3 4 5 6 7 8 9<回车>
输出为:
1 4 7
2 5 8
3 6 9

数组可以是二维、三维甚至是更高维数的,虽然C语言对维数的处理没有上限,但是处理高维数组是很头疼的事。一般尽量避免处理四维和四维以上的数组。下面看一个三维数组的例子:
main()
{
int array[2][3][4];
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
for(k=0;k<4;k++) array[i][j][k]=i*12+j*4+k;
}
这个三维数组可以看成2个二维数组,每个二维数组又可以看成3个一维数组。可以在头脑里想象成两个平行平面,每个平面内有3*4个点。所以共有24个元素。

二、字符串数组
上面讲的都是存放数值的,有一类数组,用来处理字符串的,我们叫字符串数组。其实字符串数组也是二维数组,只是它的特殊性,才单独拿出来说的。
main()
{
char s[10][10];
int i;
for(i=0;i<10;i++) scanf(%s,s[i]);
}

先看它的输入特性,前面在说输入语句的时候说过,遇到字符串输入,可以不加'&',现在只要记住这个特性就可以,以后说指针的时候再讲为什么。但是这儿为什么用s[i],可能很多人不太明白。我们定义的是二维数组,而输入的时候,却使用一维数组的形式。这是因为字符串在内存里地址可以用它的名字表示,就好象这种形式:
main()
{
char s[10];
scanf(%s,s);
}
定义的是一维数组,输入语句用变量形式表示一样。通过前面的'%s'形式可以看出,s[i]是一个数组,所以s就是二维数组了。
这里要注意一点,scanf()函数在输入字符串时候不能支持空格,看下面的例子:
main()
{
char s[3][10];
int i;
for(i=0;i<10;i++)
scanf(%s,s[i]);
for(i=0;i<3;i++)
printf(%s\n,s[i]);
}
我们输入:1111
2222 3333
4444
我们是想把1111赋值给s[0],2222 3333赋值给s[1],4444赋值给s[2]。可实际上编译器是这样做的,把1111赋值给s[0],把2222赋值给[1],把3333赋值给s[2]。
实际输出:1111
2222
3333
在输入字符串的时候,如果使用scanf(),就把空格当作下一个输入了。那么我们怎么解决这个问题呢?毕竟很多情况下,一行字符串肯定有空格出现的。我们使用新的函数gets()。这个函数是专门接受字符串输入的,它跳过了空格的影响。把上面的输入语言修改为gets(s[i])即可。
我们定义了char s[3][10],超过10个字符肯定不行,如果少于10个字符,电脑怎么处理呢?电脑是在每个字符串的后面自动补上'\0',作为字符串的结束标志。
我们经常在填写一些可选择的内容时经常发现,待选的字符串都是按字母排列好的,我们怎么用C语言实现这个功能?在C语言里,字符串的排序是按照字符的ASCII码来的,如果第一个字符一样,则比较第二个,依次类推。
main()
{
char s1[6]=addfgh,s2[5]=asdlg;
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)
{
if(s1[i] {
printf(s1 exit(1);
}
else if(s1[i]>s2[i])
{
printf(s1>s2\n);
exit(1);
}
else ;
}
if(s1[i]=='\0' && s2[i]!='\0') printf(s1 else if(s2[i]=='\0' && s1[i]!='\0') printf(s1>s2\n);
else printf(s1==s2\n);
}

上面的例子就是比较两个字符串大小的,先比较第一个,如果相同,接着比较第二个,如果不相同,则分出大小。一直往后比较,直到其中某一个到'\0',你也可以先用strlen()函数找出最小的长度。
exit()函数的作用是退出程序,具体它的用法可以看看相关资料。

其实C语言把我们经常需要的字符串处理函数都做好了,我们只需要调用它即可。如strcmp()用来比较、strcpy()用来拷贝等等。看看它们的用法:
#include string.h
main()
{
char s1[10],s2[10],s2[10];
int k;
gets(s1);
gets(s2);
k=strcmp(s1,s2); /*比较s1和s2大小*/
if(k==0) printf(s1==s2\n);
else if(k>0) printf(s1>s2\n);
else printf(s1 strcpy(s3,s1); /*把s1拷贝到s3*/
printf(%s\n,s3);
}

可以看出,比较大小时,如果k<0,则s10,则s1>s2;如果k=0,则s1=s2。实际上这是一个函数,具体什么是函数,以及为什么写成那种形式,我们下节再说。这些函数都包含在string.h头文件中,所以在程序的开头,都要写上#include string.h。
字符串处理有很多函数,你们可以看看相关的书,也可以看看Turbo C的帮助。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-06
自己慢慢做吧,不难的!
第2个回答  2010-11-06
难道是老师留的作业……恩,100行左右就搞定啦。这种程序就是要练习自己的编程能力,不多加练习可是提高不了成绩的。这道题不难,逻辑清晰的话很快的。祝你成功^_^
第3个回答  2010-11-20
有偿可以帮你写。

C++从入门到进阶的系列书籍推荐
1.1 C语言程序设计(谭浩强)本书被广泛采用为学习C语言的教材,通俗易懂,是初学者的必备读物。我在解决编译问题时,翻阅了该书的相关章节,精准的表述让我恍然大悟,很多学生时代未理解的内容,有了工作经验后,豁然开朗。1.2 C++ Primer 中文版(第5版)这是一本学习C++语言的经典入门教材,详细...

我们大二要学C语言,但我对编程很感兴趣,现在大一就想自学,我是学C好还...
首先编程有两个大的方向,就是微软的C,和sun的java,如果你打算走微软的路,最基本的就是c了,先学他好了。之后还有很多东西呢呵呵,由于你每走一步可能都要做选择去学什么东西,所以那些还是等你遇到并且明白是怎么回事的时候在学,也因此现在你最好学最基本的c语言了。个人建议,仅供参考。

高分悬赏...vc++发展史
由Bjarne Stroustrup设计的C++语言建立在C语言的基础之上。Stroustrup向C语言中加入了面向对象程序设计需要的新的关键字和语法。通过向流行的C语言加入面向对象特性,Stroustrup使得成千上万的程序员转向OOP成为可能。随着C++语言的创建,程序设计的新纪元完全实现了。用一个权威人士的话来说,Stroustrup创建了世界上功能最强大...

c语言相关的几个问题
1.C语言永远不会过时,它是所有编程的基础,着种算法,可以变成很多的程序,但是有一定的局限性,所有有了C++2.完全可以的,C语言是基础,学好了C,学其他的语言就简单了,不过要有很大的耐心的,因为做程序设计的很累的3.C是算法着重过程,而c++是面向对象的,两者不冲突,没有C也可以学C++,c可以编才程序c++也可以编...

高分悬赏!
还有要有一套自己的思维方法。 5.生物、历史、地理(类似于小学的自然\/科学): 上课认真听讲是不争的事实,不必做太多练习题,在这些科目上花费太多时间。最后结合图片\/地图背重点,平时不会就问。漫谈学习方法 周总理生前教导我们:“活到老,学到老。”人离不开学习,生命不息,学习不止。学习是一个人终生获得知识,...

高分悬赏!!!用C语言编一程序。将大写26个字母,小写26个字母,0到9十个...
void main(){srand((unsigned)time(NULL));char a[8];int x=0;char b[70]="a%bcdYe01fgh2ijklmLMnoCDTWpqrst56uvUVwxy67zAB!EFHI8JGKN$OPQRSXZ3479.";while(x<10){ for(int i=0;i<8;i++)a[i]=b[rand()%66];for(int j=0;j<8;j++)printf("%c",a[j]);printf("\\n")...

c++是哪个公司出的
虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO\/IEC 1988-1998。C++是具有国际标准的编程语言,通常称作ANSI\/ISO C++。1998年是...

帮帮忙吧 高分悬赏!!
《C语言程序设计》,清华大学出版社,谭浩强主编,第三版 (五)821计算机基础 《数据结构》,清华大学出版社,严蔚敏,吴伟民主编,1997.4,第1版 《计算机组成原理》,科学出版社,白中英主编,2000.11,第3版 《数据通信与网络》,机械工业出版社,王嘉祯等译,2005.1,第1版 (六)830通信基础...

c++的入门书籍介绍几本..
一般来说,清华大学出版社的计算机书是最好的,主要有 1.《C++语言基础教程(第2版)》出版社:清华大学出版社 作者:吕凤翥 书中全面、系统地讲述了 C++语言的基本概念、基本语法和编程方法,较详尽地讲述了 C++语言面向对象的重要特征: 类和对象、继承和派生类、多态性、虚函数、函数模块和类模板等...

C语言编写一个程序,急用!!高分悬赏(正确答案追加分数)
void Menu();void Plus();void Minus();void Multiply();void Dir();int main(){ int n, flag = 0;while(1){ Menu();do { flag = 0;scanf("%d", &n);switch(n){ case 1: Plus(); break;case 2: Minus(); break;case 3: Multiply(); break;case 4: Dir(); ...

相似回答
大家正在搜