c语言程序设计综合性设计实验报告,《c语言程序设计》-综合性实验实验报告(参考格式)...

这篇实验报告详细介绍了使用C语言设计一个班级成绩管理系统的全过程,包括学生信息的存储、成绩计算、排序和查找等功能。报告涵盖了程序设计的目的、要求、数据结构、模块划分以及关键函数的原型,旨在提升学生对C语言和程序设计的理解及应用能力。
摘要由CSDN通过智能技术生成

41528d3028836879cd698677c3999917.gif《c语言程序设计》-综合性实验实验报告(参考格式)

- 1 - 综合性实验报告课程名称: 《C 语言程序设计 》 实验题目: 班级成绩管理系统的设计与实现 姓名学号: (组长) 系 别: 专业班级: 指导教师:- 2 - 实验日期: 2012 年 06 月 01 日—06 月 20 日一、实验目的和要求 实验目的 1、利用所学的三种程序基本结构以及数组、用户自定义函数进行一个小型程序的设计, 进一步理解和掌握 C 语言的语法以及三种基本程序结构的综合应用。 2、通过程序中涉及到的排序、查找、求和等操作加深对算法、程序设计思路、常用程 序设计技巧的理解与掌握,逐步培养学生的程序开发能力。 实验要求 1、根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。 2、分小组协作实验时,要写明每一位学生负责的实验内容。 二、设计要求 (一)学生信息和程序功能 给定的原始数据和程序应实现的功能是该 C 程序开发的依据,此实验只处理一个班级 学生信息,最多学生数为 120 人。 1、学生信息和数据类型 最多学生人数和最多课程数定义为全局符号常量: #define Mmax 120 #define Nmax 3 (1)学生信息 学生信息包含:学号,姓名,三门课(语文,数学,英语)成绩和总分。 (2)数据类型 学号、姓名、课程三个信息为 char 型,课程分数和总分为 float 型,其余为 int 型。其 中,假设学号有 10 位数字字符(注意此时要求存储空间要 11 个字节),例如 2011023102 表示入学年份为 2011 年,023 是专业编码,102 是学生在班级中的排号。 2、测试数据 测试数据在定义数组时以初值形式提供,其中学生总成绩通过程序计算。 学号 姓名 语文 数学 英语 2011023001 Zhang 73.5 85 67 2011023002 Li 83 91.5 87 2011023003 Cheng 65 82 78- 3 - 2011023004 Wang 71 83 80.5 但是,在用单链表处理学生信息时,要求直接从键盘上接收数据。 3、程序功能 (1)学生信息(学号、姓名、成绩等)的显示(数据结构要求用数组) ; (2)按姓名查找学生(数据结构要求用数组) ; (3)计算各门课程的平均分(数据结构要求用数组) ; (4)计算学生总成绩,并按总成绩进行排序(数据结构要求用数组) ; (5)按总成绩降序显示学生信息; (6)学生记录的插入; (7)用单链表(结构体)处理班级学生信息(学号、姓名、成绩等) ,包括学生信息 输入(添加) 、学生信息浏览、学生总成绩计算和将学生信息存入文件。 其中第(7)为选作内容,如果学生能够做出来,实验成绩应给予加分奖励。 (二)程序总体设计 1、数据结构 依据给定的学生信息和数据类型,定义相应的数组和结构体类型分别如下:  课程名称定义为全局数组: char course[Nmax][50] = {“Chinese“,“Mathematic“,“English“};  学生结构体类型如下: struct student { char code[11]; /* 学号 */ char name[20]; /* 姓名 */ float score[Nmax]; /* 各课程成绩 */ float total; /* 总分 */ struct student *next; }; 以下的数组或变量均为局部类型的(可放在 main 函数中加以定义):  sno 数组存储学生学号,可事先加入初始数据若干条: char sno[Mmax][11]={“2011023001“,“2011023002“,“2011023003“,“2011023004“};  name 数组存储学生姓名,可事先加入初始数据若干条; namesearch 数组用于存储 要查找的学生姓名: char name[Mmax][20]={“Zhang“,“Li“,“Cheng“,“Wang“}, namesearch[20];  score 数组存储学生成绩;假设至多有 M 名学生,N 门课程,可事先加入初始数 据若干条; avecourse 数组存储每门课程的平均分,实际计算时可事先初始化: float score[Mmax][Nmax]={ {73.5,85,67}, {83,91.5,87},{65, 82, 78},{71,83,80.5}}; float avecourse[Nmax]={0};  tscore 数组存储每位学生成绩的总分: float tscore[Mmax]={0};- 4 -  index 数组为排名索引(约定为降序) ,存储每位学生总成绩在 tscore 数组中的名 次(即 index[0]存放了总分第一的学生在 tscore 数组中的下标, index[1]存放了总 分第二的学生在 tscore 数组中的下标,依次类推): int index[Mmax];  M 为实际学生数; N 为实际课程数; M 、N 的值要根据插入或删除学生记录情况加 以适时修改: int M=4, N=3; 2、模块划分 依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法, 描述该程序的层次结构。该程序可按给定的程序功能直接描述模块层次结构。该程序要求 保留一种排序状态:按总分排序。 图 1 模块层次结构 1-1 计 算 所 有 课 程 的 平 均 分 1-2 计 算 每 位 学 生 所 修 课 程 总 分 1-5 按 总 分 降 序 浏 览 全 部 学 生 信 息 1-6 添 加 新 的 学 生 记 录 1-4 浏 览 全 部 学 生 信 息 1-7 用 单 链 表 进 行 班 级 成 绩 管 理 1-3 按 姓 名 查 找 学 生 记 录 main 2-2 输入 和添 加学 生信 息 2-3 浏览 学生 信息 2-4 保存 学生 信息 2-1 按总 分递 减排 序- 5 - 在 C 语言中,模块用函数实现,函数原型清单如下(注意:以下各函数原型中很多地 方用到了指向一维数组的指针变量或指向二维数组的指针变量,也可以将之对应的定义为 形参数组的形式进行处理): 1-1 计算所有课程的平均分 void averagemark(float (*pscore)[Nmax], float *pavecourse, int m, int n) 1-2 计算每位学生所修课程总分 void totalmark(float (*pscore)[Nmax], float *ptscore, int m, int n) 1-3 按姓名查找学生记录 int retrievebyn(char (*pname)[20], char *pnamesearch, int m) 1-4 浏览全部学生信息 void displaystu(char (*psno)[11], char (*pname)[20], float (*pscore)[Nmax], float *ptscore, int m, int n) 1-5 按总分降序浏览全部学生信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSU 大一上 C语言实验报告 (1)教材第2章编程题第2题:编写计算球体体积的程序。 说明:本题声明适当变量,用户键入数据,运算并输出结果,较简单。 (2)教材第2章编程题第8题:编写程序计算第一、第二、第三月还贷后剩余贷款金额。 说明:本题要求用户输入总额、利率、每月还贷净额,输出每月剩余,对输入输出、类型定义考查。 (3)教材第3章编程题第2题:编写程序实现对用户输入的产品信息进行格式化。 说明:本题考查格式化输入输出、转义字符的运用。 (4)教材第4章编程题第4题:编写程序实现将输入的整数按八进制输出。 说明:本题重在考查简单的运算符和表达式运用。 (5)用户输入一个三位数,输出各位数字之和。 说明:本题重在考查如何从一个整数中取出每一个数字。 (6)教材第5章编程题第5题:编写程序计算用户输入所得额的税金。 说明:本题考查简单的选择结构。 (7)教材第5章编程题第11题:编写程序实现将用户输入的两位数转化为英文。 说明:本题考查switch语句的应用。 (8)教材第6章编程题第8题:编写程序显示单月日历,用户指定这个月的天数和该月起始日是星期几。 说明:本题考查循环结构和选择结构的综合应用,判断是否一个星期最后一天,换行符。 (9)教材第6章编程题第11题:编程序实现利用无穷级数法估计e的值。 说明:本题考查根据公式设计循环结构并实现。 (10)因子之和等于其本身的数称为完数,如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28为完数。编程序找出2~5000中的完数。 说明:本题利用变量i在2~5000中变化,判断其是否是完数。 (11)教材第7章编程题第12题:编程计算从左至右求值的表达式的值。 说明:本题考查对运算符和操作数的判断。 (12)教材第7章编程题第14题:编程序用牛顿计算法计算浮点数平方根。 说明:本题考查对循环结构的掌握,对表达式的合理运用,对基本类型的理解。 (13)教材第8章编程题第14题:编写程序颠倒句子中单词的顺序。 说明:本题考查对字符数组的处理,对一些循环选择结构的理解。 (14)教材第8章编程题第15题:编写程序实现凯撒密码加密。 说明:本题考查对字符数组的掌握,对字符处理的理解。 (15)编程序实现将用户输入的数字字符串转化为整数输出。 说明:本题考察对字符、整数关系的掌握与理解,对循环结构的熟练运用。 (16)教材第9章编程题第1题:编写选择排序的函数,并递归调用。 说明:本题利用函数简化程序、使得结构更清晰、熟练掌握。 (17)教材第9章编程题第7题:编写计算xn的函数。 说明:本题考查函数定义、调用,并初步考察递归运用。 (18)教材第10章编程题第6题:编写程序实现逆波兰运算。 说明:本题考查对程序每部分的理解、掌握,外部、内部变量,主函数,小函数的编写与应用。初步了解栈的一些实现函数。 (19)编程序找出2~5000中满足条件的数x:x是素数且x的每位数字是素数、每位数字之和是素数,如23、223、2333等。 说明:本题考查函数方法与循环选择结构的综合运用。 (20)教材第11章编程题第3题:用指针变量编写简化一个分数的函数。 说明:本题用来解决函数无法传回传递的实际参数,指针变量。 (21)教材第12章编程题第2题:编写函数读入用户输入的一条消息,检测是否是回文,分别用数组、指针来解决。 说明:本题可以体会到数组与指针的特点,利用指针的便利。 (22)利用指针编写程序,实现从键盘键入字符串,将此字符串从m个字符开始的n个字符复制成另一个字符串。 说明:本题用指针指向字符串,进行跟踪和复制操作。 (23)教材第13章编程题第5题:编写程序实现对输入命令行参数求和。 说明:本题加深对命令行参数的理解、考查知识的综合应用。 (24)教材第16章编程题第5题:用结构变量解决搜索离用户输入时间最近的航班信息,并输出。 说明:本题考查结构与数组的结合运用,有助于理解结构。首先,定义一个存储起飞、到达时间的结构,再定义一个该类型的数组,循环搜索即可。 (25)教材第17章编程题第5题:用指针数组存储键入的字符串,对数组排序。 说明:本题应用动态分配内存、数组排序,考查综合能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值