实 验 报 告 五
六学时
课 程 专业班级 姓 名 C语言程序设计 实验项目 综合应用实验 201431040093 2015.5.20 成 绩 批阅日期 指导教师 徐媛媛 2014级化学工程学 号 与工艺 王益欣 实验日期 一【实验目的】
以C语言程序设计语言为基础,完成具有一定难度的综合程序设计。通过编写、调试、运行程序,进一步
掌握C语言程序设计的基本方法和编程技巧,巩固所学知识,提高分析问题和解决问题的能力。
二【实验内容】
某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入)。定义结构体类型描述学生信息,每个学生信息包括:学号、姓名、多门课的成绩、总成绩和平均成绩。用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统。 (1) 录入每个学生的学号、姓名和各科考试成绩。 (2) 计算每门课程的总分和平均分。 (3) 计算每个学生的总分和平均分。
(4) 按每个学生的总分由高到低排出名次表。 (5) 按学号由小到大排出成绩表。 (6) 按姓名的字典顺序排出成绩表。 (7) 按学号查询学生排名极其考试成绩。 (8) 按姓名查询学生排名极其考试成绩。 (9) 按优秀(90~100)、良好(80~90)、中等(70~80)、及格(60~70)、不及格(0~59)5个类别,对每
门课程分别统计每个类别的人数以及所占的百分比。
(10) 输出每个学生的学号、姓名、各科考试成绩以及每门课程的总分和平均分。
要求程序运行后先显示如下菜单,并提示用户输入选项: 1. Input record
2. Caculate total and average score of every course 3. Caculate total and average score of every student
4. Sort in descending order by total score of every student 5. Sort in ascending order by number 6. Sort in dictionary order by name 7. Search by number 8. Search by name
9. Statistic analysis for every course 10. List record 0. Exit
Please input your choice:
三【题目分析】
该题主要考查数组、指针、结构体、函数调用相关操作,以及C语言算法的掌握,所以完成该题要求具有较强的程序设计能力,如何调试程序也非常关键,通过这个程序可以学到以前调试短程序没有的经验。系统中的每一功能几乎都对应一个子程序。
四【实验结果】
#include
void ReadScore(STU stu[], int n, int m);
void AverSumofEveryStudent(STU stu[], int n, int m); void AverSumofEveryCourse(STU stu[], int n, int m); void SortbyScore(STU stu[], int n, int m); void SwapFloat(float *x, float *y); void SwapLong(long *x, long *y); void SwapChar(char x[], char y[]);
void SortbyNum(STU stu[], int n, int m); void SortbyName(STU stu[], int n, int m); void SearchbyNum(STU stu[], int n, int m); void SearchbyName(STU stu[], int n, int m); void StatisticAnalysis(STU stu[], int n, int m); void PrintScore(STU stu[], int n, int m);
void main() { int ch; int n=0,m=0; STU stu[STU_NUM]; while(1) { ch=Menu(); switch(ch)
{
case 1: printf(\ scanf(\ printf(\ scanf(\ ReadScore(stu, n, m); break; case 2: AverSumofEveryCourse(stu, n, m); break; case 3: AverSumofEveryStudent(stu, n, m); break; case 4: SortbyScore(stu, n, m); printf(\ PrintScore(stu, n, m); break; case 5: SortbyNum(stu, n, m); printf(\ PrintScore(stu, n, m); break; case 6: SortbyName(stu, n, m); printf(\ PrintScore(stu, n, m); break; case 7: SearchbyNum(stu, n, m); break; case 8: SearchbyName(stu, n, m); break; case 9: StatisticAnalysis(stu, n, m); break; case 10: PrintScore(stu, n, m); break; case 0: printf(\ exit(0); default: printf(\
} } }
int Menu() { int itemSelected; printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ scanf(\ return itemSelected; }
void ReadScore(STU stu[], int n, int m) { int i,j; printf(\ for(i=0;i void AverSumofEveryStudent(STU stu[], int n, int m) { int i,j; for(i=0;i
相关推荐: