c语言程序设计和计算机网络技术是一本书的内容吗

c语言程序设计和计算机网络技术是一本书的内容吗,第1张

不是,C语言程序设计和计算机网络技术是两个不同的学科。C语言程序设计包括C语言程序的编写、调试和运行,而计算机网络技术涉及计算机网络的结构设计、网络安全和网络管理等内容。一本书可以涵盖这两个学科中的部分内容,但不可能覆盖全部内容及实现方式。

C语言程序设计用的是:Microsoftvisualc。

C语言考试满分为100分,其中选择题目40分,程序填空18分,程序修改18分,程序设计24分。通关的条件是总分达到60分以上而且选择题要达到20分以上。

全国计算机二级c语言考试内容主要包括:C语言程序的结构、数据类型及其运算、基本语句等12个内容。考试形式为上机考试,考试时长120分钟,满分100分。

扩展资料

全国计算机等级考试二级教程--C语言程序设计考试要点:

1、#include这行代码是一条C预处理器指令。通常,C编译器在编译前会对源代码做一些准备工作,即预处理;#include中的#符号表明,C预处理器在编译器接手之前处理这条指令。

2、声明注意事项:

(1)只可以用小写字母、大写字母、数字、下划线来命名,而且名称一个字符必须是字符或下划线,不能是数字;

(2)最好不要把初始化变量和未初始化的变量放在同一条声明中;

(3)大小写字母是被认为是两个不同的字符;

(4)用户标识符与关键字相同,则在对程序进行编译时系统将给出出错信息;如果用户标识符与预定义标识符相同,系统并不报错,只是该预定义标识符将失去原定含义;

(5)#define命令行的最后不得加分号。

本书采用“案例引导,任务驱动”的编写方式,深入浅出地讲解了C程序设计的基本方法;通过“案例展示—归纳总结—模仿练习—自主设计”的学习模式,使读者循序渐进地掌握C语言的编程方法和思想,提高动手能力。全书案例按照“任务要求—问题分析—程序详解—归纳总结”顺序组织,注重培养读者先进行算法描述后进行编程实践的良好编程习惯,使读者逐步掌握用计算机解决实际问题的方法。全书叙述严谨,实例丰富,内容详尽、难易适中、重点突出,并将指针等较难理解的知识分解到多章讲解,降低了读者学习的难度。

全书分为8章,主要内容包括C语言基础知识、算法、C程序的控制结构、数组与指针、函数、结构体与共用体、文件 *** 作和C语言课程设计。

本书适合作为高等院校计算机专业学生的教材,也可作为自学C语言程序设计的参考用书。

经过十分漫长的C++学习过程,我总算完成了我自己的C++心愿,看完了我想看的所有C++书籍,回

顾我C++的整个学习过程,颇有一些心得和经验,希望与各位分享,也希望给正处在摸索学习阶段的

XDJM一点学习参考。

首先看看我第一次接触编程语言,唔,那可能要追述上到世纪,在我小学4年纪的时候第一次接触到

BASIC,那个时候学习这个东西完全是为了要爸爸给我买一台386,没想到的是,BASIC开启了我对于计算

机的一切兴趣与追求。5年纪的时候参加少年的计算机奥赛,我用BASIC写的一个彩色立体可旋转移动的正

方体拿了一个铜牌,从此计算机编程成为了最大的爱好,现在我还保留着源代码,是保存在一盘普通单放

机的磁带上的,我估计很少有人用过录音机和串口的转换器吧,呵。我用BASIC写的第二个大程序是给我

妈妈用的财务程序,初中二年纪的时候,我妈妈在单位做出纳,我总看到妈妈每天晚上拿个计算机算一堆

表,所以我写了这个程序帮助妈妈快速完成她的工作,其实我的根本目的是为了一台打印机,因为这个程

序,生成了简单的报表,她可以直接打印,当然为了这个便利,她必须花钱给我买一台当时还算价值不低

的打印机。不过现在回顾起来,BASIC虽然是我编程的第一位启蒙老师,但是在我开始C++的学习之后,他

确实使我我思想上产生了很大的困绕,主要是OOP思想,我花费了将近1年多的时间才真正体会到什么是OO!

到了大学,我才真正开始系统的学习编程。在此之间走过一些歪路,比如高中的时候研究HACKING,

之所以说学习hacking是条歪路,原因很简单,因为研究到一定的程度,没有十分稳固的编程基础,根本

的无法继续深入学习。中国联盟解体前,位列第三的kender给了我这方面很大的打击,从此我就退出了

,从此对于hacking我就不闻不问,从此看到那些下三烂的货色也要学hacking,我就感到可笑。第一次接

触的是C,没什么好说的,我C学的不好,因为我大二的时候经商去了,而且我觉得C能做的,我用BASIC都

能做到,为什么要学C?当然那个时候我成绩真是北大的BBS然后接触到的就是C++,教材的钱能的

《C++程序设计》,这本书其实还是很不错的,不过很多看了两本名著的朋友都对这本书嗤之以鼻,也许是

我天生很笨,在我看完了《C++PRIMER》后还经常番看《C++程序设计》。《C++程序设计》虽然出书的时

候ANSI C++还没有确定下来,不过它还是含盖了C++所有语法,建议对C++感兴趣却又没有任何基础的人先

从这本书开始,简单而高效,不要认为人家一上来就看《C++ PRIMER》或是《the c++ programming

language》就觉得自己的档次很低,你要确信,你肯定能超过他!这本书课后习题在我看来是典型的结构

化编程,即使到了CLASS,也全部可以用STRUCT代替。不过在这个阶段做习题十分必要,用处我不想敲了

,推荐使用的编译器就是书中所说到的编译器(我忘记叫什么了:P)看完之后,如果你想说C++很简单的话

,建议你在看完了《C++ PRIMER》或是《the c++ programming language》之后再说。这两本书都是基于

标准C++的,十分苛求的说,后者对标准的兼容性稍差:)。对这两本书,我的看法是,如果你确实想仔细

的学习,建议你看《C++ PRIMER》,如果你想跳过我将要写到的下面两本书的话,建议你看

《the c++ programming language》。对这两本书,前者最高到中文第三版,因为第四版,后者到特别版

。对于前者,我看后的感觉是它的优点在于解析,特别是函数,类,模板的解析,但是它并没有含盖C++

的方方面面,后者就不是这样。实际上我并没有仔细看过后者,只是同学总是拿这本书上的问题来与我商

量,所以有机会偷窥了几眼。暂定你选择的是前者继续学习,在看完后,也许你用C++编制普通的程序已

经能够运用自如,但是你仍然应该会有很多问题和遗憾,比如,类继承,虚拟继承,类访问控制,类继承

下的访问控制,还有虽然我已经对如何解析十分清楚,但是我仍然感觉我对语法掌握得不系统,遗憾的是

,书中出现了很多的库函数,我为什么都不知道?这个时候建议你看看《标准C++宝典》,这本书对于语

法正所谓事无巨细,一一道来啊,再就是回顾一下《C++ 程序设计》(钱能),对类的部分讲解的还是十

分精辟的。在掌握了一切牢固的语法基础之后,我选择的下一步不是STL,而是IOSTREAM,原因之一是因

为《C++ PRIMER》并没有把这一部分讲述的很好,对了,《C++ PRIMER》也没有把STL讲述的很好,所以

我看《C++ PRIMER》的时候这些章节都跳过了,我的目标是不求知道,只求精通。对于IOSTREAM,我选的

书是《Standard C++ IOStream and Locales》,我当时还是看的E文原版,事实证明,我错了,这本对于

当时的我,难度突然拔的太高,所以在看完了第一章之后我就放弃了,只是暂时的搁置下来了。对了,忘

记说,对于《C++ PRIMER》或是《the c++ programming language》的学习,你应该十分认真的选择编译

器了,我推荐3个首选dev-cpp最高4992,然后是vcnet(千万看清楚,不是vc60!),最后就是

borland c++ builder-X,具体我就不介绍了,相信你学习到这一步,自己应该已经掌握很多的信息了继

续,下一步,我的选择是〈深入探索C++对象模型〉,我是在图书馆借阅的,现在也有电子版了,不过我

看了以下,效果一般,但是可以和E文原版的电子版一起看。这本书看完。如果你是跟我一样,把

《C++ PRIMER》翻烂掉,能把《深入探索C++对象模型》的知识要点全部背出来的话,我恭喜你,你的

C++水平已经到中级了:)接下来,我的选择是对C++这门语言为我提供的所有服务设施通透的学习一边。

说穿了,就是库函数,C++库函数分两部分,一部分来自C语言,一部分就是STL,对于C语言部分,我建议

你可以买一本C++函数库的书,最近好象刚出了一本,不过我还没有机会看,我看的是〈C和C++代码精

粹〉,里面把C语言部分的库函数分为3类,这本书我也就看了这3个章节,其他的东西我知道,看他做

甚?而对于STL,你如果真想成为C++出类拔萃的高手,你应该看3本<<C++标准程序库>> <<泛型编程与

STL>> <<STL源码剖析>>,第一本主要讲的是如何使用STL,第二本将STL的一些设计理念,并指导你进

行泛型设计,所谓泛型说穿了就是指模板。看完这些书,如果你跟我一样,可以把STL全部重写一边的

话,那么恭喜你,你已经成为C++准高手,这个时候我的选择是回过头去看《Standard C++ IOStream

and Locales》,呵,现在才发现原来这本书这么简单!简直是naive!其实,我现在最想做的事情就是能

够把IO全部重写一边,不过还没有找到合适的编译器下手,感觉应该用GCC比较好,还没开始研究,我也

不清楚。好了,既然这么多本讲述C++技术的书籍你都搞完了,也不在乎多两本吧,呵呵。知道你应该看

什么吗?你应该看看<exceotional c++>还有<effective c++>,这两本书都有more版,不算太难,最后可

以看《高质量C++编程》,最后有一套练习题,做做,小菜一样。接下来我的选择是<C++编程思想> 〈设

计模式〉 〈大规模C++程序设计〉(最后一本我最近才看完:P)这3本书可不讲什么语法,第一本实在没

有必要介绍,似乎每一种语言的编程思想的的书籍都是说的如何用这门语言编程,第二本其实并不能说是

针对C++,所有语言通用的一本书,关键是程序设计的方式,第三本被称为〈设计模式〉的C++实践篇,其

意义毋庸多说。看完了吗?好吧,你应该选一个项目锻炼一下。如果你能在一个月内看完这所有的书,欢

迎你加入ISS_SQL开发团队,这个就是我近期想做的事情,我就是想写一个自己的数据库。不过如果你不

是外星人的话,我估计你不可能在一个月的时间内,看完我看了2年的书。对于我刚才说的SQL,我还在选

人,说实在的,现在我的同学里,真的是没有几个人的技术能让我看的上的,哎,得一知己难啊!还是继

续说编程,这个时候,你已经有了顶级的C++基础,想学什么不容易?JAVA,你学了一个月??开玩笑,

我看了一个星期的书就开始做项目了!其实我觉得到了这个时候是一个面临选择的时候,一个是做UNIX下

的开发,一个是做WINDOWS下的,不过我选择了第三条路,也就是我正在学的,算法,因为我的导师正在

做973计划中的数据挖掘项目,所以我也沾光,因为是基与weka,所以我用java,这个B语言真弱智,我已

经开始讨厌JAVA了,所以我才想用C++重写一个WEKA类的开源软件,不过我感觉用java写算法,的确不

错。前段时间,我一个同学为了一个C#问题苦恼,问题粗略说来是GIS设备返回串,要进行处理,提取数

据,因为串本身的复杂性,具体是怎么样的我也不知道,因为他的这个是商业项目。这个问题在C#下十分

困难,连正则表达式都无能为力,所以我给他的建议是写一个自动机,也不知道他最后的处理方式,不过

在java下,呵,大概不超过五十行代码吧。说远了。

最后说说人的问题。有一点点浮躁的人建议你千万别想学C++,直接学VB或者C#算了,希望在浩方有

个排名的人,我直接告诉你,你不应该学C++。

关于C++的学习,我就说这么多,其实也感觉没有说什么,只是把我学习C++看的每一门书都罗列出来

,虽有显摆之嫌,但也确实希望给那些如曾经的我一样迷茫的摸索者,那些希望学习C++且追求完美技术

的人指一条明路。简单的说,你认真看完我上面说的所有书,你就是C++高手!

新手入门:如何学好c++

下面的是学C++时要注意的。

1把C++当成一门新的语言学习(和C没啥关系!真的。);

2看《Thinking In C++》,不要看《C++变成死相》;

3看《The C++ Programming Language》和《Inside The C++ Object

Model》,不要因为他们很难而我们自己是初学者所以就不看;

4不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;

5不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;

6会用Visual C++,并不说明你会C++;

7学class并不难,template、STL、generic

programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;

8如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;

9看Visual C++的书,是学不了C++语言的;

10浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?

11浮躁的人容易问:我到底该学什么;——别问,学就对了;

12浮躁的人容易问:XX有钱途吗;——建议你去抢银行;

13浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

14浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;

15浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;

16把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

17C++不仅仅是支持面向对象的程序设计语言;

18学习编程最好的方法之一就是阅读源代码;

19在任何时刻都不要认为自己手中的书已经足够了;

20请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;

21看得懂的书,请仔细看;看不懂的书,请硬着头皮看;

22别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;

23请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;

24不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;

25和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;

26请看《程序设计实践》,并严格的按照其要求去做;

27不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;

28C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;

29请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;

30读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;

31学习编程的秘诀是:编程,编程,再编程;

32请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;

33记住:面向对象技术不只是C++专有的;

34请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;

35把在书中看到的有意义的例子扩充;

36请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;

37经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;

38不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;

39C++语言和C++的集成开发环境要同时学习和掌握;

40既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;

41就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;

42当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);

43别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;

44决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;

45每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;

46记录下在和别人交流时发现的自己忽视或不理解的知识点;

47请不断地对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100XX;

48保存好你写过的所有的程序——那是你最好的积累之一;

49请不要做浮躁的人;

50请热爱C++!

补充:

对c++学习的一点感想,希望对初学者能有些帮助

1如果你以前从来没有接触过c++,那么选择的第一本c++教程就显得尤为重要,我认为你可以参照以下的标准进行选择:

a对标准c++进行讲解,毕竟c++比从前发生了很大的变化。

b要求全面,但不要很深,这要有助于你对于c++有一个全面的认识,打好基础,并且易懂的教材还能加快学习的进度,让自己保持一种成就感。

c要有完整的范例来讲解每一个知识点如何运用,请注意这里所说的完整,并不是一个个代码片断。因为由于你以前从未接触过用c++进行编程,完整的代码可以使你有一个整体的概念,并且能够很快去进行大量的实践,因为变编程是从模仿开始,完整的代码恰恰告诉你了一个完整的步骤。不必自己去揣测。

d推荐:《c++ primer plus》

2当你有了一定的基础以后,就要选择一些书来迅速提高自己。这类书的特点是不仅仅教你如何去运用,而且要叫你如何去思考,并且你读起来也不是那么轻松。它意味深远,并不是你读一遍就能掌握的。

推荐:《thinking in c++》《effective c++》《more effective c++》

《c++ programming language》《c++ 沉思录》

3接下来就是对第二步所介绍的书籍进行反复的阅读,并且进行实践。由于这些书一位深远,每个人基于自己的基础都会有不同的收获,例如如果你的基础还没有达到某一高度,那么你就对一些精深的技术视而不见,不信?你可以试试,看看当自己有了一定提高之后再来读从前的一本书,你会发现许多新的东西。

什么是C语言?C语言的简介。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。

这种东西很多了,随便搜索一大堆:这是个学生成绩的!

#include <iostreamh>

#include <iomaniph>

#include <fstream>

#include <vector>

#include <malloch>

#include <stdlibh>

#include <string>

#include <processh>

#include <stdioh>

//#define NULL 0

int const Q=20;

#define LEN sizeof(struct student)

using namespace std;

int n=0; //定义一个全局变量统计学生人数

//——--------->定义一个学生考试信息的结构体

struct student

{

char name[Q]; //用来存放姓名的

char sex[Q]; //用来存放性别的

long int id; //用来存放准考证号的

int score[4]; //用来存放分数的

int total; //用来存放总分数的

struct student next;

};

//student向量容器

vector <student> stu;

//-------------->学生类

class Information

{

public:

Information() ; //构造函数

~Information() ; //析构函数

student creat();//建立链表函数。

void output(student head);

int count(student head);//定义函数count()统计考生总数

student insert(studenthead);//指针函数insert()用来添加考生信息

student cancel(student head,long int num);//指针函数cancel()用来删除考生信息

student find(student head,long int num); //指针函数find()用来查找考生信息

void inorder(student head);//定义inorder()函数将考生的总分从大到小排列并输出

void average( student head);//求学生成绩的平均分的函数

void save(student head);//保存函数

student Read();//读取函数

private:

student p1,p2,p3,head,st;

};

Information::Information()

{

cout<<" \n";

cout<<" ------------------------<<欢迎您使用学生成绩管理系统>>------------------------\n";

cout<<" \n\n";

}

Information::~Information()

{

cout<<" \n";

cout<<" ------------------------<<谢谢您使用学生成绩管理系统>>------------------------\n";

cout<<" \n";

}

student Information::creat(void)

{//定义一个指向struct student的结构体指针函数creat()用来增加考生信息

char ch[Q];n=0; //用来存放姓名的

p1=p2=(student )malloc(LEN);//调用malloc()函数用来开辟一个新的存储单元

cout<<" -------------<<请建立学生考试信息表,在姓名处键以 ! 结束输入。>>--------------"<<endl;

cout<<" 姓名:";

cin>>ch;

head=NULL; //给指针head赋初值

while (strcmp(ch,"!")!=0)

{//调用字符比较函数strcmp()用来判断是否继续输入

char str[10];

int flag=0;

p1=(student )malloc(LEN);//调用malloc()函数用来开辟一个新的存储单元

strcpy(p1->name,ch); //将循环结构前面输入的姓名复制到结构体名为p1的数组name中

cout<<" 性别:";

cin>>p1->sex;

cout<<" 准考证号(8位):";

do{

cin>>str;

if(atol(str)>99999999 || atol(str)<1)

cout<<"对不起,请正确输入!!!\n";

else

{

p1->id=atol(str); flag=1;

}

}while(flag==0);

flag=0;

cout<<" 计算机组成原理成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{

p1->score[0]=atoi(str); flag=1;

}

}while(flag==0);

flag=0;

cout<<" 概率统计成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[1]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout<<" 英语成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[2]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout<<" C++成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[3]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

p1->total=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3];//计算总分

if(n==0)head=p1;//如果是输入第一组学生考试信息就将指针p1赋给指针head

else p2->next=p1;//否则将p1赋给p2所指结构体的next指针

p2=p1;//将指针p1赋给指针p2

n++; //将n的值加1

cout<<" 姓名:";

cin>>ch;//将输入的姓名存放到字符数组ch中

}

p2->next=NULL;//将p2所指结构体的next指针重新赋空值

return (head);//将输入的第一组学生考试信息返回

}

//--------------->定义output()函数将考生的信息从头指针所指内容开始输出

void Information::output(student head)

{

if(head==NULL) cout<<" 这是一个空表,请先输入考生成绩\n";

else{

cout<<"-------------------------------------------------------------------------------\n";

cout<<" 学生考试成绩信息表\n";

cout<<"-------------------------------------------------------------------------------\n";

cout<<"准考证号 姓 名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分\n";

cout<<"-------------------------------------------------------------------------------\n";

p1=head;//将头指针赋给p

do

{

cout<<setw(8)<<p1->id

<<setw(9)<<p1->name

<<setw(8)<<p1->sex

<<setw(13)<<p1->score[0]

<<setw(16)<<p1->score[1]

<<setw(10)<<p1->score[2]

<<setw(9)<<p1->score[3]

<<setw(6)<<p1->total/40

<<setw(11)<<p1->total<<endl;

cout<<"-------------------------------------------------------------------------------\n";

p1=p1->next;//将下一组考生信息的next指针赋给p

}while(p1!=NULL);//若指针p非空则继续,目的是把所有的考生信息都传给指针p然后输出

}

}

//------------>统计学生人数的函数

int Information::count(struct student head)//定义函数count()统计考生总数

{

if(head==NULL)

return(0);//若指针head为空返回值为0

else return(1+count(head->next));//函数的递归调用

}

//----------->插入学生的成绩的函数

student Information::insert( student head)

//插入新结点定义一个指向struct student的结构体指针函数insert()用来添加考生信息

{

char str[10];

int flag=0;

cout<<"\t----------------<<请输入新增学生成绩信息>>----------------\n"<<endl;

p1=(student )malloc(LEN); //使p1指向插入的新结点

cout<<" 姓名:";

cin>>p1->name; //将输入的姓名存放到结构体名为p1的数组name中

cout<<" 性别:";

cin>>p1->sex;

cout<<" 准考证号(8位):";

do{

cin>>str;

if(atol(str)>99999999 || atol(str)<1)

cout<<"对不起,请请正确输入!!!\n";

else

{p1->id=atol(str); flag=1; }

}while(flag==0);

flag=0;

cout<<" 计算机组成原理成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[0]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout<<" 概率统计成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[1]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout<<" 英语成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[2]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

cout<<" C++成绩:";

do{

cin>>str;

if(atoi(str)>100 || atoi(str)<1)

cout<<"对不起,请输入1-100之间的数字!!\n";

else

{ p1->score[3]=atoi(str); flag=1;}

}while(flag==0);

flag=0;

p1->total=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3];//计算总分

p2=head;//将头指针赋给p2

if(head==NULL) //若没调用次函数以前的头指针head为空

{

head=p1;p1->next=NULL;

}//则将p1赋给头指针head并将p1所指结构体成员指针next赋空值

else

{

while((p1->id>p2->id)&&(p2->next!=NULL))

{

p3=p2;//p3指向原p2指向的结点

p2=p2->next;

}//p2后移一个结点

if(p1->id<=p2->id)

{

if(head==p2)

{

p1->next=head;

head=p1;

} //插入到第一个结点之前

else

{

p3->next=p1;

p1->next=p2;

} //插入到p3所指结点之后

}

else

{

p2->next=p1;

p1->next=NULL;

} //插入到尾结点之后

}

n++;//将学生人数加1

cout<<"\t你输入的学生信息已经成功插入"<<endl;

return (head);

}

//------------>删除函数

student Information::cancel(student head,long int num)//定义一个指向struct student的结构体指针函数delete()用来删除考生信息

{

if(head==NULL)//若调用次函数以前的头指针head为空

{

return(head);

}

else

{

p1=head;//否则将头指针赋给p1

while(num!=p1->id&&p1->next!=NULL)//寻找要删除的结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空

{

p2=p1;

p1=p1->next;

}//p2指向原p1指向的结点p1后移一个结点

if(num==p1->id)//如果输入的学生准考证号是p1所指的学生准考证号//结点找到后删除

{

if(p1==head) head=p1->next;//如果head指针和p1指针相等则将下一个结点赋给指针head

else

p2->next=p1->next;//否则将p1所指结点赋给p2所指结点将要删除的学生信息跳过去

cout<<" 删除准考证号为"<<num<<"的学生\n";

n--;//将学生人数减1

}

return(head);//将头指针返回

}

}

//------------>查找函数

student Information::find(student head,long int num)

//定义一个指向struct student的结构体指针函数find()用来查找考生信息

{

if(head==NULL)//若调用次函数以前的头指针head为空

{

cout<<" 这是一个空表,请先输入考生成绩\n";

return(head);

}

else

{

p1=head;//否则将头指针赋给p1

while(num!=p1->id&&p1->next!=NULL)

//寻找结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空

{

p1=p1->next;

}//p2指向原p1指向的结点p1后移一个结点

if(num==p1->id)//如果要查找的学生准考证号是p1所指的学生准考证号

{

cout<<"------------------------------------------------------------------------------\n";

cout<<"准考证号 姓名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分 \n";

cout<<"------------------------------------------------------------------------------\n";

cout<<setw(8)<<p1->id

<<setw(9)<<p1->name

<<setw(8)<<p1->sex

<<setw(13)<<p1->score[0]

<<setw(16)<<p1->score[1]

<<setw(10)<<p1->score[2]

<<setw(9)<<p1->score[3]

<<setw(6)<<p1->total/40

<<setw(11)<<p1->total<<endl;

cout<<"------------------------------------------------------------------------------\n";

}

else

cout<<" 没找到准考证号为"<<num<<"的学生\n"; //结点没找到

return(head);

}

}

//------------定义inorder()函数将考生的总分从大到小排列并输出

void Information::inorder(student head)

{

int i,k,m=0,j;

student p[Q];//定义一个指向struct student的结构体指针数组p

if(head!=NULL)//如果头指针是空则继续

{ m=count(head);

cout<<"------------------------------------------------------------------------------\n";

cout<<"学生考试成绩统计表\n";

cout<<"------------------------------------------------------------------------------\n";

cout<<"准考证号 姓 名 性别 计算机组成原理 概率统计 英语 C++ 平均分 总分 名次\n";

cout<<"------------------------------------------------------------------------------\n";

p1=head;

for(k=0;k<m;k++)

{

p[k]=p1;

p1=p1->next;

}

for(k=0;k<m-1;k++) //选择排序法

for(j=k+1;j<m;j++)

if(p[k]->total<p[j]->total)

{

p2=p[k];

p[k]=p[j];

p[j]=p2;

} //从大到小排列的指针

for(i=0;i<m;i++)

{

cout<<setw(8)<<p1->id

<<setw(9)<<p1->name

<<setw(8)<<p1->sex

<<setw(13)<<p1->score[0]

<<setw(16)<<p1->score[1]

<<setw(10)<<p1->score[2]

<<setw(9)<<p1->score[3]

<<setw(6)<<p1->total/40

<<setw(11)<<p1->total<<endl;

cout<<"------------------------------------------------------------------------------\n";

}

}

}

//------------>求各科平均分成绩的函数

void Information::average(student head)

{

int k,m;

float arg1=0,arg2=0,arg3=0,arg4=0;

if(head==NULL)//如果头指针是空则继续

{

cout<<" 这是一个空表,请先输入考生成绩\n";

}

else

{

m=count(head);

p1=head;

for(k=0;k<m;k++)

{

arg1+=p1->score[0];

arg2+=p1->score[1];

arg3+=p1->score[2];

arg4+=p1->score[3];

p1=p1->next;

}

arg1/=m;arg2/=m;arg3/=m;arg4/=m;

cout<<"全班单科成绩平均分\n";

cout<<"------------------------------------------------------------------------------\n";

cout<<" 计算机组成原理平均分:"<<setw(7)<<arg1

<<" 概率统计平均分:"<<setw(7)<<arg2

<<" 英语平均分:"<<setw(7)<<arg3

<<" C++平均分:"<<setw(7)<<arg4<<endl;

cout<<"------------------------------------------------------------------------------\n";

}

}

//------------------->保存函数

void Information::save(student head)

{

ofstream out("datatxt",ios::out);

out<<count(head)<<endl;

while(head!=NULL)

{ out<<head->name<<"\t"

<<head->id<<"\t"<<"\t"

<<head->sex<<"\t"

<<head->score[0]<<"\t"

<<head->score[1]<<"\t"

<<head->score[2]<<"\t"

<<head->score[3]<<"\t"

<<head->total<<endl;

head=head->next;

}

}

//———————————>读取函数的实现

student Information::Read()

{ int i=0;

p1=p2=( student )malloc(LEN);

head=NULL;

ifstream in("datatxt",ios::out);

in>>i;

if(i==0){cout<<" datatxt 文件中的数据为空,请先输入数据。"<<endl; return 0;}

else {

cout<<" …………………………………………………………………………………………"<<endl;

for(;i>0;i--)

{ p1=(student )malloc(LEN);

cin>>stname>>stid>>stsex

>>stscore[0]>>stscore[1]>>stscore[2]>>stscore[3]

>>sttotal;

strcpy(p1->name,stname);

p1->id=stid;

strcpy(p1->sex,stsex);

p1->score[0]=stscore[0];

p1->score[1]=stscore[1];

p1->score[2]=stscore[2];

p1->score[3]=stscore[3];

p1->total=sttotal;

if(n==0)head=p1;//如果是输入第一组学生考试信息就将指针p1赋给指针head

else p2->next=p1;//否则将p1赋给p2所指结构体的next指针

p2=p1;//将指针p1赋给指针p2

n++; //将n的值加1

//显示读入数据

cout<<" "<<p1->name<<"\t"

<<p1->id<<"\t"<<"\t"

<<p1->sex<<"\t"

<<p1->score[0]<<"\t"

<<p1->score[1]<<"\t"

<<p1->score[2]<<"\t"

<<p1->score[3]<<"\t"

<<p1->total<<endl;

cout<<" …………………………………………………………………………………………"<<endl;

//

}

cout<<" 数据已经成功读取完毕。"<<endl;

p2->next=NULL;

return (head);

}

}

//------------------------------>主函数

int main(void)

{

Information person;

student head=NULL;

char str[10];

int flag=0;

int choice;

long int i;

head=personRead();

do{

cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓";

cout<<"┃ 学生成绩管理系统主菜单界面 ┃";

cout<<"┃ 读取数据请输入数字零 ┃";

cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫";

cout<<"┃ ①输入学生成绩 ┃";

cout<<"┃ ②显示学生成绩 ┃";

cout<<"┃ ③排序统计成绩 ┃";

cout<<"┃ ④查找学生成绩 ┃";

cout<<"┃ ⑤增加学生成绩 ┃";

cout<<"┃ ⑥删除学生成绩 ┃";

cout<<"┃ ⑦保存退出系统 ┃";

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛";

cout<<"请输入您的选择(1--7):( )\b\b";

cin>>str;

if(atoi(str)>7 || atoi(str)<1)

cout<<"对不起,请输入1-7这几个数字!!\n";

else

{

choice=atoi(str);

switch(choice)

{

case 1:

head=personcreat();

break;

case 2:

personoutput(head);

break;

case 3:

personinorder(head);

personaverage(head);

cout<<" 参加考试的学生人数为:"<<personcount(head)<<"人\n";

break;

case 4:

cout<<" 请输入要查找的准考证号(8位):";

do{

cin>>str;

if(atol(str)>99999999 || atol(str)<1)

cout<<"对不起,请输入正确输入!!!\n";

else

{i=atol(str); flag=1; }

}while(flag==0);

flag=0;

personfind(head,i);

break;

case 5:

head=personinsert(head);

personoutput(head);

break;

case 6:

cout<<" 请输入要删除的准考证号(8位):";

do{

cin>>str;

if(atol(str)>99999999 || atol(str)<1)

cout<<"对不起,请输入正确输入!!!h\n";

else

{i=atol(str); flag=1; }

}while(flag==0);

flag=0;

head=personcancel(head,i);

personoutput(head);

break;

case 7:

personsave(head);

cout<<"文件已保存!可以安全退出!!!"<<endl;

break;

default :cout<<" 对不起,您的输入有误,请重新输入。\n";

break;

}

}

}while(choice!=7);

return 0;

}

谭浩强系列的c语言教程,都是教c语言的入门知识和编一些小程序(是程序而不是软件)。要想设计软件,可不是那么简单的,一个软件的设计,语言只是其中的一个组成部分,还需要有好的思路和精密的设计方法等等。

如果想用c语言设计软件,首先一定要把基础学精。然后才可以试着设计软件。

另外,c语言设计程序,主要原理是先构思一个算法,然后将算法转化为计算机语言(个人观点,仅供参考)。

区别是:功能不同。

浙江省高校计算机等级考试c程序设计和办公软件高级应用技术的区别是很明显的,它们软件内部的功能和内容都是有所不同的。

区别的意思是把两个以上的对象加以比较,认识它们不同的地方。当两种相似的事物作比较时,它们的不同点便是区别。

以上就是关于c语言程序设计和计算机网络技术是一本书的内容吗全部的内容,包括:c语言程序设计和计算机网络技术是一本书的内容吗、c程序设计用什么软件好(c语言程序设计用什么软件)、c语言程序设计的内容简介等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9986462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存