大一C语言课程设计
C语言课程设计报告
班 级: 电气1004
学 号: 201009334
姓 名: 雷海燕
指导教师: 王果
2011 年 07 月 18 日
1 基本题目
1.1题目
1.1 题目
有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。
1.2 题目分析
创建一个指针变量,指针变量中的初值为0至16。然后通过for循环将指针变量中所指的值是三的倍数的变量赋值为0,最后找出所要找的值。
1.3 程序
#include
#define N 17
int main()
{
int i,j,k,a[N+1],*p;
for(i=0,p=a;p<=a+N;i++,p++)
*p=i;
p=a+1;
k=N;
for(i=0,j=1;k!=1;j++)
{
if(p>(a+N))
p=a+1;
if(*p!=0)
i++;
if(i%3==0&&i!=0)
{
*p=0;i=0;k--;
}
p++;
}
for(i=1;i<=N;i++)
if(a[i]!=0)
printf("最后留下的是%d\n",a[i]);
return 0;
}
1.4流程图
图1.1 基本题目的流程图
1.5程序的运行结果
基本体运行结果如图1.2所示:
图1.2 基本题目运行结果
2 改错题目
2.1 改正后程序
#include
int main()
{
int x=1; int y;
y=x++;
printf("y=%d ",y);
int z;
z=++x;
printf("z=%d\n",z)
return 0;
}
2.2 程序运行结果
程序完成的功能:用x的初始值算出y与z的值。
改正后的运行结果如图2.1所示:
图2.1 改正后的运行结果
3.综合题目
3.1 题目
班级成绩管理系统,对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
3.2 程序的主要功能
本程序实现对一个班学生某几门课程的录入,成绩的显示、成绩的保存、对成绩进行排、对成绩进行修改、对成绩进行统计(包括每门课程的最高分、平均分、超过每门平均分的人数等),运行程序后退出程序。
3.3 各函数的功能
(1)input函数
利用嵌套循环语句,实现对N位学生,M门课程的输入。
(2)output函数
实现对先前输入学生成绩的输出。
(3)save函数
将输入数据存入指定文件中。
(4)rank函数
计算出所有学生的成绩总分,并按照分数从高到低,进行输出。
(5)change函数
判断密码是否正确,并对选中学生成绩进行修改。
3.4程序流程图
图3.1 综合题目的流程图
3.4 源程序
#include
#include
#include
#define N 10/*学生人数*/
#define M 4/*课程数*/
#define PASS 890508/*修改密码*/
void input();/*成绩输入*/
void output();/*成绩显示*/
void save();/*成绩保存*/
void rank();/*成绩排序*/
void tran();/*成绩修改*/
void coun();/*成绩统计*/
void errorinput();/*出错输出*/
struct student/*成绩数据结构体*/
{
char name[10];
int num;
float score[M];
double sum;
}
stud[N];
char subject_name[N][10];
int main()
{
char x;
while(1)
{
system("cls");
printf(" __________________________________________________