C语言课程设计报告参考封面.docx
- 文档编号:13063769
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:21
- 大小:151.59KB
C语言课程设计报告参考封面.docx
《C语言课程设计报告参考封面.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告参考封面.docx(21页珍藏版)》请在冰点文库上搜索。
C语言课程设计报告参考封面
《C语言》
课
程
设
计
报
告
班级:
电子111
学号:
20110996
设计人:
刘欣琦
指导老师:
周杨萍
时间:
第17周(2012.12.31~2013.1.4)
一、实训目的:
●C语言程序设计实训是C语言程序设计课程教学的重要组成部分。
本课程通过提供学生一个实训练习的机会,巩固、提高学生的基本编程能力,同时通过训练编写综合程序的方式,提高学生分析问题和解决问题的能力,为后续课程的学习打下良好的基础。
●根据所选题目首先进行算法分析,根据实现的功能进行数据分析,设计相应的数据结构,同时为贯彻“程序设计=算法+数据结构”的思想,要求学生在课下完成流程图的设计,然后根据流程图写出实训代码。
●训练学生使用结构体解决实际问题的能力,提高C语言的编程水平。
总体要求学生使用结构体数组实现对问题中数据的组织。
程序结构采用结构化程序设计方法。
main函数的编写应简洁、清晰,对数据的各个操作都用函数来实现。
程序的界面设计风格建议采用文字菜单的形式。
二、实训题目和程序清单(包括程序运行截图界面):
实训内容:
学生成绩管理系统。
参考运行主界面如下:
具体要求:
出现上述界面后,用户可以通过输入1-6之间的数字完成所提示的功能。
循环往复,直到输入7,退出系统。
提示:
在使用字符界面的菜单编程时,需要清屏,可以使用system("cls")函数将屏幕清屏。
需要退出系统时,可以使用exit(0)函数退出。
需要暂停程序的执行时,可以使用system("pause")函数暂停。
使用这些函数时应包含"stdlib.h"系统函数头文件。
本系统具有学生的基本信息(学号、姓名、性别、3门课程成绩、总分和平均分),能够根据需要追加、查询、修改、删除、统计人数并浏览学生的基本信息。
具体功能如下:
1.初始化信息(学生信息的输入,包括学号、姓名、性别和3门课程成绩);
2.追加学生信息(继续添加学生的基本信息,要求学号不重复);
3.根据学号查询(完成按学号查询指定学生的基本信息);
4.根据学号修改(完成按学号修改指定学生的基本信息);
5.根据学号删除(完成按学号删除指定学生的基本信息);
6.统计人数并浏览(完成按性别统计人数,并显示所有学生的信息);
7.退出(退出系统)。
运行过程截图
主界面初始化
追加学生信息
根据学号查询
根据学号修改
根据学号删除
统计人数并浏览
#include"stdio.h"//输入输出函数头文件
#include"stdlib.h"//系统函数头文件
#include"string.h"//字符串函数头文件
#defineN100//定义常量n的值为100
/*******定义结构体*********/
structstudent
{charxh[3];//学号
charname[20];//姓名
charsex[2];//性别
intscore[3];//三门课程
intsum;//总分
floatave;//平均分
}stu[N];
intcount=-1;//计数,统计人数
voidcsh()//初始化信息,输入几位学生的数据##难易程序:
容易##
{
strcpy(stu[0].xh,"01");//给第1位学生的学号赋值
strcpy(stu[0].name,"林");//给第1位学生的姓名赋值
strcpy(stu[0].sex,"男");//给第1位学生的性别赋值
stu[0].score[0]=80,stu[0].score[1]=76,stu[0].score[2]=67;//给第1位学生的三门课程赋值
stu[0].sum=stu[0].score[0]+stu[0].score[1]+stu[0].score[2];//统计第1位学生的个人成绩总分
stu[0].ave=(float)stu[0].sum/3;//统计第1位学生的个人成绩平均分
/*已对第一位学生的所有字段进行了初始化(赋值),请按此方法再输入几位学生的信息*/
strcpy(stu[1].xh,"02");
strcpy(stu[1].name,"俊");
strcpy(stu[1].sex,"男");
stu[1].score[0]=81,stu[1].score[1]=77,stu[1].score[2]=88;
stu[1].sum=stu[1].score[0]+stu[1].score[1]+stu[1].score[2];
stu[1].ave=(float)stu[1].sum/3;
strcpy(stu[2].xh,"03");
strcpy(stu[2].name,"杰");
strcpy(stu[2].sex,"男");
stu[2].score[0]=82,stu[2].score[1]=71,stu[2].score[2]=87;
stu[2].sum=stu[2].score[0]+stu[2].score[1]+stu[2].score[2];
stu[2].ave=(float)stu[2].sum/3;
strcpy(stu[3].xh,"04");
strcpy(stu[3].name,"大");
strcpy(stu[3].sex,"女");
stu[3].score[0]=82,stu[3].score[1]=97,stu[3].score[2]=77;
stu[3].sum=stu[3].score[0]+stu[3].score[1]+stu[3].score[2];
stu[3].ave=(float)stu[3].sum/3;
strcpy(stu[4].xh,"05");
strcpy(stu[4].name,"帅");
strcpy(stu[4].sex,"男");
stu[4].score[0]=82,stu[4].score[1]=77,stu[4].score[2]=87;
stu[4].sum=stu[4].score[0]+stu[4].score[1]+stu[4].score[2];
stu[4].ave=(float)stu[4].sum/3;
strcpy(stu[5].xh,"06");
strcpy(stu[5].name,"酷");
strcpy(stu[5].sex,"女");
stu[5].score[0]=72,stu[5].score[1]=97,stu[5].score[2]=67;
stu[5].sum=stu[5].score[0]+stu[5].score[1]+stu[5].score[2];
stu[5].ave=(float)stu[5].sum/3;
strcpy(stu[6].xh,"07");
strcpy(stu[6].name,"哥");
strcpy(stu[6].sex,"女");
stu[6].score[0]=77,stu[6].score[1]=67,stu[6].score[2]=67;
stu[6].sum=stu[6].score[0]+stu[6].score[1]+stu[6].score[2];
stu[6].ave=(float)stu[6].sum/3;
printf("\n******************初始化成功!
******************\n");
system("pause");
count=6;
}
voidadd()//追加学生数据(学号不能重复、成绩必须保证在0-100之间、性别必须是"男"或"女")##难易程序:
一般##
{inti;
charz;
system("cls");//清屏,清除屏幕上的所有信息
do
{
count++;
do
{
printf("请输入学生的学号:
");
scanf("%s",stu[count].xh);
for(i=0;i<=count-1;i++)
{if(strcmp(stu[i].xh,stu[count].xh)==0)
{
printf("输入学号重复,请重新输入:
^-^!
!
\n");
break;
}
}
if(i<=count-1)
continue;
else
break;
}
while
(1);
printf("请输入学生的姓名:
");
scanf("%s",stu[count].name);
do
{
printf("请输入学生的性别:
");
scanf("%s",stu[count].sex);
if(strcmp(stu[count].sex,"男")!
=0)
{if(strcmp(stu[count].sex,"女")!
=0)
{printf("××警告××:
性别输入有误,请重新输入!
!
\n");
continue;
}
}
break;
}
while
(1);
do
{
printf("请输入学生的第一门课程(0-100):
");
scanf("%d",&stu[count].score[0]);
if(stu[count].score[0]<0||stu[count].score[0]>100)//||stu[count].score[0]>='A'||stu[count].score[0]<='Z'||stu[count].score[0]>='a'||stu[count].score[0]<='z')
{
printf("输入有误,请重新输入!
!
\n");
continue;
}
break;
}
while
(1);
do
{
printf("请输入学生的第二门课程(0-100):
");
scanf("%d",&stu[count].score[1]);
if(stu[count].score[1]<0||stu[count].score[1]>100)
{
if(stu[count].score[1]>'A'||stu[count].score[1]<'z')
{
printf("输入有误,请重新输入!
!
\n");
continue;
}
}
break;
}
while
(1);
do
{
printf("请输入学生的第三门课程(0-100):
");
scanf("%d",&stu[count].score[2]);
if(stu[count].score[2]<0||stu[count].score[2]>100)
{
if(stu[count].score[2]>'A'||stu[count].score[2]<'z')
{
printf("输入有误,请重新输入!
!
\n");
continue;
}
}
break;
}
while
(1);
stu[count].sum=stu[count].score[0]+stu[count].score[1]+stu[count].score[2];
stu[count].ave=(float)stu[count].sum/3;
printf("还需要添加吗?
(y/n)");
scanf("\n%c",&z);
}
while(z=='y'||z=='Y');
}
voidfind()//根据学号查询(若有此学生则显示出来,否则给出相应提示)##难易程序:
较难##
{inti;
charnumber[3],z;
do
{
system("cls");//清屏,清除屏幕上的所有信息
printf("请输入要查找学生的学号:
");
scanf("%s",number);
for(i=0;i<=count;i++)
{if(strcmp(stu[i].xh,number)==0)
{printf("学号性名性别课程1课程2课程3总分平均分\n");
printf("--------------------------------------------\n");
printf("%s%s%s%d%d%d%d%.1f\n",stu[i].xh,stu[i].name,stu[i].sex,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);
break;
}
}
if(i>count)printf("查无此人!
\n");
system("pause");
printf("还需要查询吗?
(y/n)");
scanf("\n%c",&z);
}
while(z=='y'||z=='Y');
}
voidedit()//根据学号修改(若有此学生则显示出来,并且重新输入数据,否则给出相应提示)##难易程序:
较难##
{
inti;
charnum[3],z,q;
do
{
system("cls");//清屏,清除屏幕上的所有信息
printf("请输入要修改的学生学号:
");
scanf("%s",num);
for(i=0;i<=count;i++)
{if(strcmp(stu[i].xh,num)==0)
{printf("学号性名性别课程1课程2课程3总分平均分\n");
printf("--------------------------------------------\n");
printf("%s%s%s%d%d%d%d%.1f\n",stu[i].xh,stu[i].name,stu[i].sex,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);
printf("你确定要修改吗?
(y/n)");
scanf("\n%c",&q);
if(q=='y'||q=='Y')
{
printf("请输入学生的学号:
");
scanf("%s",stu[i].xh);
printf("请输入学生的姓名:
");
scanf("%s",stu[i].name);
printf("请输入学生的性别:
");
scanf("%s",stu[i].sex);
printf("请输入学生的第一门课程:
");
scanf("%d",&stu[i].score[0]);
printf("请输入学生的第二门课程:
");
scanf("%d",&stu[i].score[1]);
printf("请输入学生的第三门课程:
");
scanf("%d",&stu[i].score[2]);
stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];//统计第3位学生的个人成绩总分
stu[i].ave=(float)stu[i].sum/3;
printf("修改完毕!
!
!
");
break;
}
break;
}
}
if(i>count)printf("查无此人!
\n");
system("pause");
printf("还需要修改吗?
(y/n)");
scanf("\n%c",&z);
}
while(z=='y'||z=='Y');
}
voiddel()//根据学号删除(若有此学生则显示出来,并允许删除,否则给出相应提示)##难易程序:
较难##
{
inti,j;
charnumber[3],z,q;
do
{
system("cls");//清屏,清除屏幕上的所有信息
printf("请输入你要删除人的学号:
\n");
scanf("%s",number);
for(i=0;i<=count;i++)
{if(strcmp(stu[i].xh,number)==0)
{
printf("学号性名性别课程1课程2课程3总分平均分\n");
printf("--------------------------------------------\n");
printf("%s%s%s%d%d%d%d%.1f\n",stu[i].xh,stu[i].name,stu[i].sex,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);
printf("你确定要删除吗?
(y/n)");
scanf("\n%c",&q);
if(q=='y'||q=='Y')
{for(j=i;j<=count;j++)
{strcpy(stu[j].xh,stu[j+1].xh);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].score[0]=stu[j+1].score[0];
stu[j].score[1]=stu[j+1].score[1];
stu[j].score[2]=stu[j+1].score[2];
stu[j].sum=stu[j+1].sum;
stu[j].ave=(float)stu[j+1].ave;
}
strcpy(stu[count].xh,"\0");
strcpy(stu[count].name,"\0");
strcpy(stu[count].sex,"\0");
stu[count].score[0]=0;
stu[count].score[1]=0;
stu[count].score[2]=0;
stu[count].sum=0;
stu[count].ave=0;
count--;
printf("删除成功!
!
\n");
break;
}
}
}
system("pause");
printf("还需要删除吗?
(y/n)");
scanf("\n%c",&z);
}
while(z=='y'||z=='Y');
}
voidtj()//统计男女人数和总人数,并浏览所有学生的信息##难易程序:
一般##
{inti,n=0,m=0;
system("cls");
printf("\n");
printf("\n*************《学生成绩管理系统》**************\n");
for(i=0;i<=count;i++)
{
if(!
strcmp(stu[i].sex,"男"))
n=n+1;
else
m=m+1;
}
printf("制作人:
刘欣琦\n");
printf("\n");
printf("男:
%d女:
%d总数:
%d\n\n",n,m,n+m);
printf("-------------------------------------------------\n");
printf("》学号姓名性别课程1课程2课程3总分平均分《\n");
printf("-------------------------------------------------\n");
for(n=0;n<=count;n++)
printf("》%s%s%s%d%d%d%d%.1f《\n",stu[n].xh,stu[n].name,stu[n].sex,stu[n].score[0],stu[n].score[1],stu[n].score[2],stu[n].sum,stu[n].ave);
printf("-------------------------------------------------\n");
system("pause");
}
voidmain()//主函数,主界面
{intxz;
do
{system("cls");//清屏,清除屏幕上的所有信息
printf("\n\n");
printf("\n*************《学生成绩管理系统》**************\n");
printf("制作人:
刘欣琦\n");
printf("------------------------------------------------\n");
printf("1-----初始化信息\n");
printf("2-----追加学生信息\n");
printf("3-----根据学号查询\n");
printf("4-----根据学号修改\n");
printf("5-----根据学号删除\n");
printf("6-----统计人数并浏览\n");
printf("7-----退出\n");
printf("************************************************\n");
printf("请输入您的选择(1-7):
");
scanf("%d",&xz);
switch(xz)
{case1:
csh();break;//执行子函数csh(完成初始化功能)
case2:
add();break;//执行子函数add(完成追加学生信息)
case3:
find();break;//执行子函数find(完成根据学号查询)
case4:
edit();break;//执行子函数edit(完成根据学号修改)
case5:
del();break;//执行子函数del(完成根据学号删除)
case6:
tj();break;//执行子函数tj(完成统计并浏览)
case7:
printf("\n-----------谢谢,欢迎下次光临!
----------\n\n");
defa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 参考 封面