(0039)《C语言程序设计》大作业A
- 格式:pdf
- 大小:206.96 KB
- 文档页数:3
//打开文件后,如下步骤写程序#include <stdio.h>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。
但是这个函数有且仅有一个int main(){//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面//比如我要实现打印HelloWorld字符,那么我就调用printf()标准输出语句printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return 语句返回一个int类型的值 0.}//这样就结束了。
一个简单的但又完整的C程序就有了,//下一步就是使用编译器编译成目标的可执行文件://如果是windows下的vc++,那么需要分别点击编译,链接两个按钮生成hello.exe可执行文件//如果是linux下直接在shell中使用gcc hello.c就可以编译成可执行文件a.out //最后就是运行了,windows下直接点击vc++的运行或双击hello.exe可以出现dos窗口运行,并显示结果,linux下使用“./a.out”可以直接运行,运行结果会显示在shell 中。
//这就是整个完整的流程,包括每一步。
调试过程:设置断点,调试命令,察看变量,查看内存,常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。
VC++ 和DEV C++都是C++语言的开发工具。
如果只是做些小程序,基本上看不出区别。
两者DEBUG 和RELEASE上的时间有所不同。
还有一点就是,通常如果是在VC++下编写的代码,不是很规范,拿到DEV C++上会报错。
课程设计说明书《C 程序设计大作业》 ——学生成绩管理系统班 级: 电信2009级集成班 学 生: 陈颖宏 学 号: ************ 序 号: 提交日期: 2010 年 3 月 27 日成绩评定:分 任课教师签名: 年月 日前言本课程设计题目是“学生成绩管理系统设计”,其内容是设计一个使用二进制文件方式存储数据,并且以菜单方式工作的管理系统。
设计目的是设计一个能够方便、直观地管理学生相关信息的系统。
该系统可以实现以下功能:○1能按学期、按班级完成对学生成绩的录入、修改;○2能按班级统计显示的成绩,计算学生的总分及平均分;○3能查询学生的成绩,不及格科目及学生名单;○4能按班级输出学生的成绩单。
正文1.需求分析:本程序主要用于输入、查询、统计、导入以及导出学生的成绩。
主要的输入方式是利用键盘输入,且输入的字符最好是英文及数字,输入中文时有时会出现错误。
程序的有效窗口大小一般为半个屏幕,以至于有些功能的版面出现显示方面的错误。
经测试,程序基本可以正常工作:当在主菜单输入“1”时,可以正常初始化,输入余下的菜单选项时也能按要求跳转到指定画面;各子菜单选项也都能正常运行;但是输入班级、姓名等字符时,有时会显示错误的字符。
2概要设计○1抽象数据类型的定义:学生结构体定义为struct stu,变量为student;学期数组定义为char term[7]; 班别数组定义为char banbie[20]; 学号数组定义为char no[15]; 姓名数组定义为char name[20]; 科目数组定义为int score[MAXSUB]; 总成绩变量定义为int sum; 平均成绩变量定义为float average。
○2抽象函数类型的定义:菜单选择程序“menu_select()”为int型; 初始化函数“initialize(student * [])”为void型;数据输入函数“input(student * [])”为void型;数据编辑函数“editmenu(student * [])”为void型; 数据查询查询函数“searchmenu(student * [])”为void型; 数据统计函数“total(student * [])”为void型; 数据导出函数“save(student * [])”为void型;数据导入函数“load(student * [])”为void型; 数据导出函数“output(student * [])”为void型;添加学生记录函数“add_record(student * [])”为void型;删除学生记录“delete_record(student * [])”为void型;修改学生记录函数“student * edit_record(student * [])”为void型;按学号查询函数“student * no_search(student * [])”为void型; 按姓名查询函数“student * name_search(student * [])”为void型。
[0039]《C语言》讲师:邹显春Z的值是3i=1,max=0或max=i=0;max=i; a[max]36、设int m=3;float n=12.6;char ch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是___ ________。
“%d,%f%c”,&m,&n,&ch37、设int i;float f=3.14;,执行i=(int)f;后,变量f的值是____________。
3.1438、若定义函数时类型缺省,则该函数默认的类型是____ _______。
extern39、设char s[]=”’Name\Address ”;,s的长度是___________。
1540、设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是____________。
(a+b=c)&&(a+c=b)&&(b+c>a)41、编写C语言程序的一般步骤什么?在VC环境下,调试程序的基本步骤有哪些?调试程序中常见的错误有哪些?如何解决发现这些错误?编写C语言程序的一般步骤:分析问题、构建算法、描述算法、编码、调试。
在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行调试程序中常见的错误有语法错误和逻辑错误。
其中语法错误通过编译来实现,逻辑错误通过单步追踪和设置断点的方法来发现逻辑错误。
42、在C语言为什么规定对所有用到的变量要"先定义,后使用”?这样的做有什么好处?对所有用到的变量进行"先定义,后使用”的原因:凡未被事先定义的,C语言不把他认作变量,这样的目的能是为了保证程序中的变量能被正确的使用。
好处:(1)每一个变量被指定为一个确定类型,在编译时C语言就能为其分配相应的存储单元。
(2)指定每一个变量属于一个类型,便于在编译时检查在程序变量进行的运算合法性。
学年学期: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个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。
查找学生成绩主要通过学号查询。
对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。
第四项功能是对学生成绩以表格的形式进行展示。
删除学生成绩是按照学号对表格中的数据进行删除。
1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。
二、数据结构定义一个11*10的二维数组。
三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。
2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。
6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。
7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。
8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
10.退出系统,结束任务。
四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。
2.系统要有一定的可靠性、稳定性,能够实现各功能模块。
2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。
一、选择题(共40分,每小题2分)题目1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
A. mainB. MAINC. nameD. function题目2C语言源程序文件的缺省扩展名为()。
A. cppB. exeC. objD. c题目3由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A. cppB. exeC. objD. c题目4程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车题目5每个C语言程序文件的编译错误被分为()。
A. 1类B. 2类C. 3类D. 4类题目6不符合C语言规定的复合语句是()。
A. {}B. {;}C. {x=0;}D. {y=10}题目7C语言程序中的基本功能模块为()。
A. 表达式B. 标识符C. 语句D. 函数题目8在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
A. 表达式B. 语句C. 参数表D. 函数体题目9在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。
A. 尖括号B. 双引号C. 单引号D. 花括号题目10在C语言程序中,多行注释语句使用的开始标记符为()。
A. //B. /*C. */D. **题目11在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。
A. charB. intC. floatD. double题目12在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。
A. 5B. 4C. 3D. 6转义字符'\\'表示的字符是()。
A. 单引号B. 双引号C. 反斜线D. 问号题目14枚举类型中的每个枚举常量的值都是一个()。
printf("请输入两个正的整数(之间用逗号隔开):\n");scanf("%d,%d",&int_num1,&int_num2);printf("int_num1=%d,int_num2=%d\n",int_num1,int_num2);printf("The maximun common divisor is%d\n",fun(int_num1,int_num2));}3.阅读下列程序,按照要求回答下列问题#include <stdio.h>int fun(int n){int s=0,i;for(i=1;i<=n;i++)s=s+i;return s;}int main( ){int i,n;int sum=0;printf("请输入一个正整数(n≥5):\n");scanf("%d", &n);for(i=1;i<=n;i++) sum=sum+fun(i);printf("1+(1+2)+(1+2+3)+ ......+(1+2+3+...+%d)=%d\n",n,sum); }(1)上述程序中函数fun的功能是什么?答:上述程序中函数fun的功能是求n之内的自然数求和(2)依据函数fun的功能画出其流程图。
(3) 当输入n的值为5时,其输出结果是什么?答:当输入n的值为5时,其输出结果是1+(1+2)+(1+2+3)+ ......+(1+2+3+...+5)=35二、大作业要求大作业共需要完成3个大题:第1题满分30分;第2题(1)-(6)小题任选两题完成,各15分,(7)小题必做,10分,满分40分;第3题(1)-(3)必做,满分30分。
1 (1)简单介绍程序设计基础,然后分别系统地介绍C语言的数据类型与运算符、C语言的3种程序结构、数组与函数、指针与文件等相关知识。
好用,可以用来做数学建模,试验算法;好学,几乎所有的程序功能的实现都可以从代码中读出,容易理解;对于不是靠编程来糊口的话,可以啦,但是如果你想玩点新潮的东西,有点力不从心。
(2)C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2、运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功能, 支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。
4、C是结构式语言#include<stdio.h>void main (void)//这个就是主函数,第一个void 就是返回类型:有void,int ,float等可以选择,//第二个是main就是函数名,这里是主函数,它名字固定的,其他的函数可以随//意定义,第三个是void,是就是参数类型,一样可以由void,int,float等等选择。
{ //中括号内就是函数体了,是函数的具体内容了int a,b;a=b=0;(3)1. 程序包含算法,算法就是程序的灵魂,一个需要实现特定功能的程序,实现它的算法可以有很多种,所以算法的优劣决定着程序的好坏。
程序员很熟练的掌握了程序设计语言的语法,进行程序设计,软件开发的时候就是设计好的算法,加上软件工程的理论才能做出较好的系统。
南昌大学软件学院C语言程序设计工程实训大作业班级:09软件技术(2)班学号:8001509107姓名:吴承增指导老师:危建国2010年12月10日系统说明书1.问题描述:该程序包内容包括以下的模块,均用子函数完成:(1)主菜单(2)输入若干条记录并保存文件(指学生的信息)(3)学生信息录入、修改、删除、查询、存储。
(4)学生信息的浏览及排序(冒泡排序算法)。
(5)学生成绩的录入、修改。
(6)统计及格和优秀人数(7)退出系统2.程序设计和程序流程图:解决方案:主函数流程图:各部分功能的流程图:录入学生成绩流程图:统计功能流程图如图3所示:图3 统计模块流程图冒泡排序流程图:排序学生信息流程图:删除学生成绩信息流程图:3.系统的基本功能(主要数据和函数功能描述):char xh[15]; //以字符串数组形式存储学生学号char name[25]// 以字符串数组形式存储学生姓名char sex[5]; //性别float sxcj; //数学成绩float yycj; //英语成绩float Cyycj; //C语言成绩float ave; //平均成绩float sum; //总成绩#define N 4 //宏定义学生#define MAX 60 //学生最大个数int nCOUNT=0; //记录当前学生个数struct student //定义结构体学生int ScoreNew() //录入学生成绩int average() //求平均数int xsxscj() //显示输入学生信息、将学生打印到屏幕上int xsxsxx() //显示学生信息int xhcjpx() //按学生学号排序学生信息int sxcjpx()按数学成绩排序学生信息int yycjpx()按英语成绩排序学生信息int Cyypx() //按C语言成绩排序学生信息int zcjpx()按总成绩排序学生信息int pxxsxx()//排序学生信息int axhcx() //按学号查询int axmcx() //按姓名查询int SearchStud() //查询学生成绩信息int zjxsxx() //增加学生信息int xgxsxx() //修改学生信息int scxsxx() //删除学生信息int gxxscj() //更新学生信息int tjxscj() //统计学生成绩int save() //保存到文件((fp=fopen("stu_list.txt","wb"))==NULL) //以只读方式打开文件stu_list.txt (fwrite(&str[i],sizeof(struct student),1,fp)!=1) //创建文件并以二进制形式打开int xswj() //显示文件信息int main() //主函数mainmemu4.拟采用开发平台:Visual C++,Borland C++等。
西南大学网络与继续教育学院课程考
试试题卷
类别:网教 专业:算机科学与技术,计算机应用技术 2015年12月
课程名称【编号】: C语言程序设计 【0039】 A卷
大作业 满分:100 分
一、大作业题目
1.通过你对C语言程序设计课程的学习,你认为C语言具有哪些特点?
并简要说明。
C语言有哪些局限性?针对这些局限性,是如何解决这些
问题的?
2.C语言是一种结构化程序设计语言,在C语言中是如何体现结构化程
序设计思想的?结构化程序设计方法有内容是什么?在模块化设计中,
划分模块的基本原则是什么?采用结构化程序设计方法的好处是什么?3.编程题
(1)编写程序,利用公式求的值。
(要求最后一项小于10-6为止)。
(2)编写程序输出100以内能被7整除的数。
(3)编写一个函数void sort(float a[],int n),其功能是对数组a中的n个数
据按照升序排列。
再写一个主函数调用该函数对输入10个学生的成绩从
高到低排序,并输出排序的结果。
4.依据下列提供的程序回答问题
#include <stdio.h>
void main()
{float x[1000],sum=0.0,ave,score;
int n=0,i;
printf("请输入一个学生的课程成绩(0-100):\n");
scanf("%f",&score);
while(score>=0)
{sum=sum+score;x[n]=score;n++;
printf("再输入一个学生的课程成绩(0-100):\n");
scanf("%f",&score);}
ave=sum/n;
printf("输出平均成绩:\n");
printf("ave=%5.0f\n",ave);
printf("输出低于平均分的学生成绩:\n");
for(i=0;i<n;i++)
if (x[i]<ave) printf("%5.0f",x[i]);
}
(1)所提供程序的功能是什么?
(2)请依据提供的程序画出其中的传统流程图或N-S图或自然语言描述。
(3)在VC6.0环境下,运行上述程序时,若输入数据如图所示(图中输入数据分别为56,78,89,65,58,34,45,-9),则输出结果是什么?
二、大作业要求
大作业共需要完成3个大题:
第1-2题选作一题,满分30分;
第3题(1)-(2)任选一题完成,(3)题必做,每个题20分,满分40分;
第4题(1)-(3)必做,满分30分。
答卷提交要求:考试题提前公布,学生下载试题和答题卷后,在答题卷上答题。
完成后需网上提交答卷。
答卷于11月20日--12月6日通过点击页面左侧导航栏内“我的考试”-“课程论文/大作业”提交。