C语言实训报告(终结版)改后

时间:2024.4.1

武汉职业技术学院

C语言程序设计实训报告

20##—20##学年第二学期

系 部:计算机

姓 名: 刘丹

   班 级:网络10307班

学 号:10CJ568

       

课 程:C语言

指导老师:贾学斌

实训名称:《C语言程序设计》

实训地点:凌峰楼B座511

  实训时间:二〇##年五月三十日—六月三日

课程设计项目一

一、   课程设计名称:学生成绩管理系统

二、 课程设计目的:  1.复习巩固C语言学过的知识

                           2.了解较大应用程序的综合处理方法

三、课程设计要求:1.以文本菜单界面选择功能

                           2.输出格式须对齐成表,有输入输出提示信息

                        和成绩输入过程,并有注释

                           3.各个功能须以函数形式实现

                           4.学生人数和课程数可以自定义

四、课程设计内容:

   输入N个学生5门课程的成绩,分别用函数实现:①学生成绩的输入 ②学生

成绩的修改 ③可根据学号查询其成绩及排名 ④每个课程的平均分⑤课程的总分

五、程序代码:

#include <conio.h>

#include <stdio.h>

FILE *fp;

int a[100][10];       /*定义一个二位数组用来存放学生成绩*/

int stu;

inputx()

{

gotoxy(15,13);

textcolor(RED);

printf("请输入你们班的学生数:");

scanf("%d",&stu);

}

input() /*输入学生成绩*/

{

int i;

for(i=1;i<=stu;i++)

{  scanf("%8d%8d%8d%8d%8d%8d",&a[i][1],&a[i][2],&a[i][3],&a[i][4],&a[i][5],&a[i][6]);

}

}

print1() /*输出成绩表,并求总分,平均分和排名次*/

{

int i,j;

int b[100],c[100];

int t,loc,k;

fp=fopen("成绩表.txt","w");

for(i=1;i<=stu;i++) /*求总分和平均分*/

{

 a[i][7]=0;

 for(j=2;j<=6;j++)

a[i][7]=a[i][7]+a[i][j];

 a[i][8]=a[i][7]/5;

}

for(i=1;i<=stu;i++) /*排名*/

{

 b[i]=a[i][7];

 c[i]=i;

}

for(i=1;i<=stu-1;i++)

{

 loc=i;

 for(j=i+1;j<=stu;j++)

if(b[j]>b[loc])

loc=j;

if(loc!=i)

{t=b[i];b[i]=b[loc];b[loc]=t;

 t=c[i];c[i]=c[loc];c[loc]=t;

}

}

for(i=1;i<=stu;i++)

for(k=1;k<=stu;k++)

if(c[k]==i)

{

 a[i][9]=k;

 break;

}

for(i=1;i<=stu;i++) /*输出成绩表*/

{

for(j=1;j<=9;j++)

printf("%-6d",a[i][j]);

printf("\n");

}

/*以下输出成绩表存到一个文件中*/

fprintf(fp,"学号  语文  数学  英语  物理  化学  总分  均分  名次\n");

for(i=1;i<=stu;i++)

{

for(j=1;j<=9;j++)

fprintf(fp,"%-6d",a[i][j]);

fprintf(fp,"\n");

}

}

print2() /*求各科总分和平均分*/

{

int i,j;

int m[3][6];

for(j=2;j<=6;j++)

{

 m[1][j-1]=0;

 for(i=1;i<=stu;i++)

m[1][j-1]=m[1][j-1]+a[i][j];

 m[2][j-1]=m[1][j-1]/stu;

}

for(i=1;i<=2;i++)

{

for(j=1;j<=5;j++)

printf("%-6d",m[i][j]);

printf("\n");

}

}

change()    /*修改学生成绩*/

{

int m,b,c,i,n=0;

printf("请输入您要修改的学生的学号:");

scanf("%d",&m);

printf("1,语文;2,数学;3,英语;4,物理;5,化学;\n");

printf("请选择您要修改的科目:");

scanf("%d",&b);

printf("请输入新的学生成绩:");

scanf("%d",&c);

for(i=1;i<=stu;i++)

if(m!=a[i][1]) n++;

else {

n++;

break;

}

a[n][b+1]=c;

printf("\n重新输出成绩表\n");

printf("学号  语文  数学  英语  物理  化学  总分  均分  名次\n");

print1();

go();

}

go()     /*选择菜单*/

{

int n;

printf("\n现在您将会遇到以下几种情况:\n");

printf("1,继续查询;2,修改数据;3,重新运行;4,结束程序;\n");

printf("请您根据需要按键选择:");

scanf("%d",&n);

if(n==1)find();

if(n==2)change();

if(n==3)main();

if(n==4){

clrscr();

printf("*********感谢您使用本程序*********\n");

printf("请多多指教");

printf("\n\n");

printf("再次感谢您的使用\n");

printf("------------ByeBye----------------");

}

getch();       

}

find1()      /*按名次查询学生成绩*/

{

int n,i;

printf("请输入您要查询的学生的名次:");

scanf("%d",&n);

printf("名次  学号  语文  数学  英语  物理  化学  总分  均分\n");

for(i=1;i<=stu;i++)

if(n==a[i][9])

{  printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][9],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8]);

 break;

}

printf("\n");

go();     

}

find2()        /*按学号查询学生成绩*/

{

int n,i;

printf("请输入您要查询的学生的学号:");

scanf("%d",&n);

printf("学号  语文  数学  英语  物理  化学  总分  均分  名次\n");

for(i=1;i<=stu;i++)

if(n==a[i][1])

{  printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8],a[i][9]);

 break;

}

printf("\n");

go();

}

find3_1(int n)    /*输出科目查询结果*/

{

int i;

printf("学号  名次  语文  数学  英语  物理  化学  总分  均分\n");

for(i=1;i<=stu;i++)

if(a[i][n+1]>=90)

{  printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][1],a[i][9],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8]);

 printf("\n");

}

go();

}

find3()     /*科目选择菜单*/

{

int n;

printf("现有以下五种科目供查询:\n");

printf("1,语文;2,数学;3,英语;4,物理;5,化学;\n");

printf("请按键选择:");

scanf("%d",&n);

find3_1(n);

}

find()     /*查询方式菜单*/

{

int m;

printf("根据您的要求,有以下3种查询方式: \n");

printf("1,按名次查询;\n");

printf("2,按学号查询;\n");

printf("3,查询某科成绩在90分以上的学生的情况;\n");

printf("现在,按照您的需要请按键:");

scanf("%d",&m);

if(m==1)find1();

if(m==2)find2();

if(m==3)find3();

}

main()         /*主函数运用文本编辑对欢迎界面进行排版*/

{

int i;

clrscr();        /*清屏*/

textcolor(YELLOW);

{

gotoxy(20,9);

printf("******欢迎使用学生成绩管理系统!******\n");

gotoxy(20,11);

printf("------------制作人:刘丹------------\n");

gotoxy(20,13);

printf("******欢迎阅读******\n");

gotoxy(20,15);

printf("***********网络10307班***********\n");

}

for(i=1;i<=44;i++)          /*输出用#组成的矩形以达到美观的效果*/

{

{

gotoxy(16+i,19);

printf("#");

}

{

gotoxy(16+i,7);

printf("#");

}

}

for(i=1;i<=13;i++)

{

{

gotoxy(16,6+i);

printf("#");

}

{

gotoxy(61,6+i);

printf("#");

}

}

getch();

clrscr();

inputx();

clrscr();

gotoxy(3,3);

printf("\n学生成绩管理系统\n\n");

printf("一,输入成绩\n");

printf("请输入学生的成绩:\n" );

printf("学号    语文    数学    英语    物理    化学\n");

input();

printf("\n");

printf("二,输出成绩表\n");

printf("学号  语文  数学  英语  物理  化学  总分  均分  名次\n");

print1();

printf("\n");

printf("三,输出各科总分及平均分\n");

printf("语文  数学  英语  物理  化学\n");

print2();

printf("\n");

printf("四,查询\n");

find();

}

六、运行结果如下:

⑴开始运行所看到的界面:

⑵输入学生人数:

⑶显示成绩情况:

⑷退出程序:

⑸退出结果:

课程设计项目二

一、 课程设计名称:幻方图案(要求有边框)

二、 课程设计目的:1.复习巩固C语言学过的知识

                           2.学习利用计算机编程来解决数学问题

三、课程设计要求:1.以文本菜单界面选择幻方图案

四、课程设计内容:输入一个大于N>=3的基数,输出一个N阶幻方。

五、程序代码:

#define N 12

main()

{int i,j,k=1,n=1,a[N][N];

while(n!=0)

{printf("please input a number:");

scanf("%d",&n);

if(n==0)break;

else

{i=n/2+1;

j=n;

a[i][j]=k++;

while(k<=n*n)

{if(k%n==1)j--;

else

{i=i%n+1;

j=j%n+1;}

a[i][j]=k++;}

printf("         ");

for(i=1;i<=3*n+1;i++)

printf("* ");

printf("\n         *");

for(i=1;i<=n;i++)

{for(j=1;j<=n;j++)

printf("  %-3d*",a[i][j]);

printf("\n");printf("         ");

for(j=1;j<3*n+1;j++)

printf("* ");

printf("*");

if(i==n)printf("\n");

else {printf("\n         ");

printf("*");}

}

printf("\n");}

k=1;}

}

六、运行结果如下:

七、实训心得:

 1.本学生成绩管理系统在应用函数与数组的基础上进行设计的,与我们所学的C语言的知识相当吻合。

对于这一程序的实现,让我对C语言的知识有了很好的巩固,也意识到函数与数组的重要性。不过学过的知识只有不断的巩固,才能掌握。

2.奇数阶的幻方的算法用C语言来实现,其特点是边框可以根据阶数的变化而变化。其中应用了宏代换的技巧。对于这一程序的实现,体现C语言的魅力。


第二篇:C语言实训报告(WORD版)


桂林电子科技大学信息科技学院

《C语言程序设计》课程设计

实验报告

题目:房产信息管理系统设计

专业: 班 级: 学号: 姓名:

完成日期: 2010 年 09 月 18 日

指导教师:

程序题目: 房产信息管理系统设计

房产管理信息包括:房产证编号、房屋所有人名称、房屋大小(平米)、房产期限(50年,70年。。。。。。)、所属区域(七星区,象山区。。。。)等

功能描述

1、新房产基本信息的输入。

2、房产基本信息的查询。(按名称,按所属区域等)

3、对房产基本信息的删除。

要求:使用二进制文件方式存储数据,系统以菜单方式工作

数据结构设计及用法说明:

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

? #include<stdio.h> #include<stdlib.h> #include<string.h> #include"conio.h" #define N 50 /*定义符号常量,代表房产信息的最大值*/ int count=0; /*全局变量,用于记录数组的当前位置*/ struct building /*定义结构体类型,代表学生信息*/ { char name[20]; /*房主姓名 */ char ID[50]; /*房产证号*/ float square; /*房屋大小*/ float limit; /*房产期限*/ char area[100]; /*房屋所属区域*/ }; void input(struct building *arr); /*函数声明,输入房产信息*/ void find(struct building *arr); /*函数声明,查找房产信息*/ void del(struct building *arr); /*函数声明,删除房产信息*/ void main() { int choice; /*定义局部变量,用于记录用户选择的功能编号*/ struct building buil[N]; /*定义结构体数组,用于记录房产信息*/ do /*利用循环显示界面*/ { system("cls"); /*清屏函数*/ printf("**********************************房产信息********************************\n"); printf(" | [1] 房产信息输入 |\n"); printf(" | [2] 房产信息查询 |\n"); printf(" | [3] 房产信息删除 |\n"); printf(" | [4] 退 出 |\n");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? printf("请输入一个(1~4)字母"); fflush(stdin); /*清空输入缓冲区*/ scanf("%d",&choice); /*接受用户选择的功能编号*/ switch(choice) /*输入不同功能编号调用相应函数来完成功能*/ { case 1: input(buil); /*调用输入房产信息函数,参数为房产信息数组名*/ break; case 2: find(buil); /*调用按房主名字和房产证号查找房产信息函数*/ break; case 3: del(buil); /*调用删除已输入的房产信息函数*/ break; } }while(choice!=4); /*判断是否退出*/ printf("\n\n\t\t\t-----------谢谢使用------------\n\n"); /*输出告别词*/ } void input(struct building *arr) /*定义输入房产信息函数*/ { char xx; /*用于接收用户指令*/ Do /*利用循环,由用户控制输入房产信息*/ { system("cls"); printf("\n输入第%d个房产的信息:\n输入房产证编号:",count+1); scanf("%s",arr[count].ID); printf("\n输入房屋所有人姓名:"); scanf("%s",arr[count].name); printf("\n输入房屋大小:"); scanf("%f",&arr[count].square); printf("\n输入房产期限:"); scanf("%f",&arr[count].limit); printf("\n输入房屋所属区域:"); scanf("%s",arr[count].area); count++; /*记录当前输入的房产信息的个数*/ printf("\n是否继续输入信息(y/n)\n"); fflush(stdin); /*清空输入缓冲区*/ xx=getchar(); }while(xx=='y'||xx=='Y'); /*判断用户指令,是否继续输入*/

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

? } void find(struct building *arr) /*定义查找房产信息的函数*/ { int a; char name[20]; /*用于接收用户输入的房主姓名*/ char ID[50]; /*用于接收用户输入的房产证号*/ system("cls"); /*清屏函数*/ printf("\n请输入要查找房产信息:\n"); printf("\n房主姓名:\n"); scanf("%s",name); printf("\n房产证编号:\n"); scanf("%s",ID); for(a=0;a<count;a++) /*使用字符串比较函数查找兵书出符合条件的房产信息*/ { if((strcmp(name,arr[a].name)==0)&&(strcmp(ID,arr[a].ID)==0)) { printf("\n户主姓名\t房产证编号\t房屋大小\t房产期限\t所属区域\t\n");

printf("%-9s\t%-9s\t%-9.2f\t%-9.1f\t%-s\n",arr[a].name,arr[a].ID,arr[a].square,arr[a].limit,arr[a].area,a+1);

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

? break; } } if(a>=count) /*如果没找到,会从循环条件退出*/ printf("\n未找到该房产信息,请核对后重新查找!\n"); fflush(stdin); printf("\n回车键返回上一功能菜单\n"); /*清空输入缓冲区*/ getchar(); } void del(struct building *arr) /*定义删除函数*/ { char id[50]; /*用于接收用户输入的房产证号*/ char c; int flag=-1; printf("请输入要删除的房产证编号:"); scanf("%s",id); for(int i=0;i<count;i++) { if(strcmp(id,arr[i].ID)==0){flag=1;break;} } if(flag==1) { printf("\n\t户主姓名\t房产证编号\t房屋大小\t房产期限\t所属区域\t\n");

?

printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",arr[i].name,arr[i].ID,arr[i].square,arr[i].limit,arr[i].area,i+1);

printf("请确认是否是次号,请确认是否删除Y|N");

c=getch();

if(c=='y'||c=='Y')

{

for(int j=i;j<count-1;j++)

arr[j]=arr[j+1];

printf("\n删除成功!");

count--;

}

}

else printf("\n没有此号,请查询后再输!");

printf("\n按任意键继续!");

getch();

} ? ? ? ? ? ? ? ? ? ? ? ? ? ?

更多相关推荐:
C语言实训报告

C语言实训报告做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!虽然…

C语言实训心得总结

C语言实训心得10903090113李新程在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有…

C语言实训报告(模版)

《C语言程序设计》实训报告课题名称:学生成绩管理系统专业:软件技术班级:软件A091学号:****20XX-7-2一课程设计目的2二课程设计题目3三课程设计报告内容3四总结7五心得与感想8六附录:(源程序)10…

C语言实训报告

北京联合大学课程设计报告课程名称C语言程序设计实训项目名称电子生词库系统学院管理学院专业信息管理与信息系统姓名邹冬梅张晶缐珊珊学号20xx11030212920xx11030211120xx110302115指...

C语言实训报告

甘肃机电职业技术学院C语言程序设计实实习时间指导教师学生姓名学号专业班级报告20xx年x月x日至20xx年x月x日止朱七二杨雪曼65计算机信息与管理G093501班训一、课题名称:简单计算器设计一个简单的…

c语言实训报告

C语言程序设计实训报告课题名称专业班级学号姓名指导教师学生成绩管理系统软件技术软件A091刘好青王云晓20xx720目录一课程设计目的2二课程设计题目3三课程设计报告内容3四总结7五心得与感想8六附录源程序10...

C语言实训报告

苏州市职业大学实习实训报告名称20xx年6月8日至20xx年6月14日共1周学院部计算机工程学院班级计算机网络技术姓名xxxxx学院部负责人系主任指导教师目录一实训目的与要求3二题目说明3三总体设计431软件模...

C语言实训报告

成都航空职业技术学院C语言程序设计课程设计报告设计题目C语言应用能力系别航空电子工程系专业应用电子班级213344班学号1320xx学生姓名李佳指导教师万蓉老师完成时间日课程设计评价表学生姓名李佳说明1工作态度...

C语言课程实训报告样本

HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC语言程序设计课程实训报告课设题目学生信息管理系统专业电气工程及其自动化班级学生信息管理系统姓名成绩完成日期20xx年12月28日20x...

c语言实训报告

1实训报告题目人力资源管理系统院系信息科技学院专业计算机科学与技术姓名黄富云学号1151210119指导教师王小琼日期20xx年9月15日桂林电子科技大学信息科技学院2前言课程设计环节是应用型本科院校非常重要的...

c语言实训报告 (2)

HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC语言程序设计实训报告实训题目汽车零部件质检管理系统专业软件工程班级K13733姓名王扶夏成绩完成日期20xx118指导教师陈艳海课设报...

C语言实训报告

实训报告题目学生成绩管理系统院系信息科技学院专业计算机科学与技术姓名学号指导教师吕元长日期20xx年9月15日桂林电子科技大学信息科技学院目录一课程设计目的4二课程设计题目4三课程报告设计内容431需求分析43...

c语言实训报告总结(28篇)