c语言程序设计课程设计。
专业: 电气工程及其自动化
班级。姓名。
学号。指导教师。
兰州交通大学自动化与电气工程学院。
2013 年 7月 18 日。
一基础题。1.1 题目。
编写一个程序,求3x4数组的转置矩阵。要求在main函数里读数,在change函数里把矩阵转置。
1.2 解题思路。
将数组名作为函数的参数,将原数组中的数行列互换放在另一空数组中实现矩阵转置,函数调用结束后,在主程序中输出已转置的矩阵。
1.3 流程图。yn
yn图1:基础题主函数流程图。yn
yny n
y n图2 change(a)函数流程图。
1.4 源程序:
#include<>
int b[4][3];
int main()
void change(int a[4]);
int a[3][4];
int i,j;
printf("请输入一个3*4的数组:");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
change(a);
printf("新的数组为:");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%5d",b[i][j]);
printf("");
return 0;
void change(int a[4])
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
b[i][j]=a[j][i];
1.5 调试报告:
变量定义时数组b未定义为全局变量,执行时输不出数值,经改动后正确。除此之外程序没有出现其他错误。
1.6 运行结果:
输入3*4数组后经调用函数后输出新的数组。
图3 基础题运行图。
二改错题。2.1 题目。
给定程序中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
程序如下:#include <>
int fun ()
int a [3] [3], sum;
int i, j;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf (〃d〃 a [i] [j]);scanf("%d", a[i][j]);
for (i=0; i<3; i++)
sum=sum*a[i] [i];
printf (〃sum=%dn〃, sum);
main ()
2.2 错误分析。
此程序中变量“sum”未赋初值,应在第六行横线处给“sum”赋初值1;且第十行的输入程序中,向数组中输入数据需要地址符,所以应在“a[i][j]”前面加上地址符“&”
2.3 流程图。
图4 改错题主函数流程图。
图5 改错题fun( )函数流程图。
2.4 原程序:
#include <>
int fun ()
int a [3] [3], sum;
int i, j;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf (〃d〃 a [i] [j]);scanf("%d", a[i][j]);
for (i=0; i<3; i++)
sum=sum*a[i] [i];
printf (〃sum=%dn〃, sum);
main ()
2.5 正确程序:
#include<>
int fun()
int a[3][3],sum;
int i,j;
sum=1;
for(i=0;i<3;i++)
for(i=0;i<3;i++)
sum=sum*a[i][i];
printf("sum=%dn",sum);
main()
fun();
2.6 调试报告:
改正错误后运行程序,执行时发现无法输出数值,检查发现第十行在数据输入时未加地址符,加入地址符后程序正确运行。
2.7 运行结果:
求主对角线乘积的程序运行结果如下:
图 6 改错题运行图。
三综合题 3.1 题目。
一、问题描述:
对一个有n个学生的班级,每个学生有m门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
二、功能要求:
1. 本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、m门课程名称。
2. 本系统显示这样的菜单:
请选择系统功能项:
a、 成绩录入。
b、 成绩显示。
c、 成绩保存。
d、 成绩排序。
e、 成绩修改(要求先输入密码)
f、 成绩统计。
1) 显示每门课程成绩最高的学生的基本信息。
2) 显示每门课程的平均成绩。
3) 显示超过某门课程平均成绩的学生人数。
g、 退出系统。
3. 执行一个具体的功能之后,程序将重新显示菜单。
4. 将学生成绩保存到文件中。
三、算法提示:
1、 数据结构:结构体类型数组。
2、 数据库结构:下表构成该系统的基本数据库。
四、测试数据:
学生人数n=10,课程数m=4。
五、其它:对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
3.2 解题思路。
建立一个学生信息的结构体,里面包含学号、姓名、性别、年龄、备注。设立主函数void main(),利用无限次循环例如if()while()和switch()语句实现各函数的调用,系统根据输入的数字选项来调用相应的函数;然后做出相应的子函数,如①输出函数void print()、密码验证函数bool check()、录入函数void getinfo()、显示函数void display()、保存函数void s**e()、修改函数void modify()、删除函数void delete()、查询函数void search()八个子函数。
子函数的功能有:①输出函数:打印基本信息控制系统的输入输出;②密码验证函数:
验证密码;③录入函数:用来录入学生的基本信息;④显示函数:把录入的学生基本信息直观的显示在桌面上;⑤保存函数:
可以保存学生信息;⑥删除函数:可以删除学生的错误信息;⑦修改函数:可以修改旧的信息,需要输入密码;⑧查询函数:
利用switch语句根据数字选项按照学号、性别、姓名、年龄进行查询。
3.3 流程图:
图7 综合题主函数流程图
图8 output函数流程图:
3.3 源程序:
#include<>
#include<>
#include<>
#define n 10学生人数*/
#define m 4课程数*/
#define pass 890508 /*修改密码*/
void input成绩输入*/
void output成绩显示*/
void s**e成绩保存*/
void rank成绩排序*/
void change成绩修改*/
C语言程序课程设计
重庆理工大学。课程设计。课程 c语言程序设计课程设计 题目职工信息管理系统设计。院系名称数学与统计学院。班级 110010101 学生姓名杨秋燕学号 11001010128 指导教师陈媛李娅。评阅教师。时间 2011 6 23 1 问题描述。5 1题目一 职工信息管理系统设计。职工信息包括职工号 姓...
C语言程序课程设计
作者 panhongliang 仅供个人学习。c语言程序设计。课程设计报告。完成任务 1 用二分法求方程根。2 矩阵求逆。3 链表制作。4 二十四点游戏。5 学籍管理程序。专业 计算机科学与技术。班级 计二班。学号 0705010225 姓名 李海波。本人于2008年9月1号在计算机中心6号机房25...
C语言程序课程设计
题目 院 系 计算机科学与工程学院。学科专业 网络工程 学生 潘佳伟。学号 090612110 指导教师 梁晨。2009年12月。目录。1课程设计的题目3 2课程设计的目的 设计要解决的问题 3 3概要设计 函数划分 总体设计4 4详细设计 流程图 程序5 5调试结果11 6课程设计总结11 7心得...