C课程设计报告正文.docx
- 文档编号:15321101
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:16
- 大小:228.41KB
C课程设计报告正文.docx
《C课程设计报告正文.docx》由会员分享,可在线阅读,更多相关《C课程设计报告正文.docx(16页珍藏版)》请在冰点文库上搜索。
C课程设计报告正文
目录
1前言1
2需求分析1
2.1课程设计目的1
2.2课程设计任务1
2.3设计环境1
2.4开发语言1
3分析和设计1
3.1模块设计1
3.2系统流程图3
3.3主要模块的流程图5
4具体代码实现7
5课程设计总结11
5.1程序运行结果/预期运行结果11
5.2课程设计体会12
参考文献12
致谢13
1前言
编写一个程序来处理学生成绩管理。
通过一个结构体数组来存放输入的每一位学生的信息(包括姓名、学号、性别、年龄、五门课成绩及总分)。
可以键入学生信息,保存学生信息到文件,计算学生总分,将其总分排名,显示及保存排名后的结果。
2需求分析
2.1课程设计目的
学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础
2.2课程设计任务
1.编写一个菜单驱动的学生成绩管理程序。
实现如下管理功能:
(1).计算每个学生的总分。
(2).按总分从高到低排序。
2.课程设计交流(每天写课程设计日记,通过邮件、电话等方式向老师汇报课程设计情况);按要求写好课程设计论文。
2.3设计环境
(1)WINDOWSXP系统
(2)VisualC++
2.4开发语言
C语言
3分析和设计
3.1模块设计
定义结构体类型struct表示学生信息(包括:
姓名、学号、年龄、性别及五门课成绩),定义一个结构体数组STUstudent[M],用来存放M个学生的信息,假设M为10。
如下所示:
#defineM10
typedefstruct
{charname[9],
number[11];
intage;
charsex;
intscore[S+1];}STU;
STUstudent[M];
定义一个voidsum()函数,本函数的功能是将计算每个学生的总分。
定义一个voidsort()函数,本函数的功能是按总分从高到低排序。
3.2系统流程图
图3.1系统流程图
3.3主要模块的流程图
图3.2sort流程图
图3.3sum流程图
4具体代码实现
#include"stdio.h"
#include"string.h"
#defineM10
#defineS5
/*用结构体存放一个学生信息(姓名、学号、年龄、性别及5门课的成绩)*/
typedefstruct
{charname[9],number[11];
intage;
charsex;
intscore[S+1];}STU;
STUstudent[M];
voidinput(),sum(),sort(),outputs(),outputf(),save();
voidmain()
{charchoice;
while
(1)
{printf("\t\t\t~~~学生成绩管理系统~~~\n");
printf("\t\t\t1.输入十个学生信息\n");
printf("\t\t\t2.保存十个学生信息到文件data1.txt\n");
printf("\t\t\t3.计算学生总分\n");
printf("\t\t\t4.对学生总分排序\n");
printf("\t\t\t5.显示结果\n");
printf("\t\t\t6.保存结果到data2.txt\n");
printf("\t\t\t7.退出程序\n");
printf("请输入1~7选择:
\n");
scanf("%c",&choice);
switch(choice)
{case'1':
input();break;
case'2':
save();break;
case'3':
sum();break;
case'4':
sort();break;
case'5':
outputs();break;
case'6':
outputf();break;
case'7':
exit(0);break;
default:
printf("错误!
请重新选择\n");}}}
voidinput()/*是从键盘输入10名学生的信息:
姓名、学号、年龄、性别及5门课的成绩*/
{inti,j;
for(i=0;i {do{printf("请输入第%d个学生的姓名: ",i+1); gets(student[i].name);gets(student[i].name);} while(strlen(student[i].name)<=0||strlen(student[i].name)>=8); do{printf("请输入第%d个学生的学号: ",i+1); gets(student[i].number);} while(strlen(student[i].number)! =10); do{printf("请输入第%d个学生的年龄[0,200]: ",i+1); scanf("%d",&student[i].age);} while(student[i].age<0||student[i].age>200); do{printf("请输入第%d个学生的性别(f,F,m,M): ",i+1); scanf("%c",&student[i].sex);} while(student[i].sex! ='m'&&student[i].sex! ='M'&&student[i].sex! ='f'&&student[i].sex! ='F'); printf("请输入第%d个学生的五门课成绩: \n",i+1); for(j=0;j {do{printf("\t\t\t第%d门成绩[0,100]: ",j+1); scanf("%d",&student[i].score[j]);} while(student[i].score[j]<0||student[i].score[j]>100);} printf("\n\n");} printf("数据输入完成\n\n");} voidsave()/*本函数的功能是将这10名学生的信息输出到data.txt文件中*/ {inti,j; FILE*fp; if((fp=fopen("d: \\data1.txt","w"))==NULL) {printf("不能打开文件");exit(0);} for(i=0;i {fprintf(fp,"%10s%11s%2d%c",student[i].name,student[i].number,student[i].age,student[i].sex); for(j=0;j fprintf(fp,"\n");} fclose(fp); printf("\n数据已经写入文件data1.txt.\n\n");} voidsum()/*本函数的功能是将计算每个学生的总分*/ {inti,j,s; for(i=0;i {s=0; for(j=0;j s+=student[i].score[j]; student[i].score[j]=s;} printf("\n该学生成绩总分已完成计算\n\n");} voidsort()/*本函数的功能是按总分从高到低排序*/ {inti,j; STUt; for(i=0;i for(j=i+1;j if(student[i].score[S] t=student[i],student[i]=student[j],student[j]=t; printf("\n学生成绩已排序。 \n\n");} voidoutputs()/*本函数的功能是把最后结果输出到屏幕上*/ {inti,j; printf("\t\t学生管理基本界面\n"); printf("---------------------------------------------------------------------------\n"); printf("姓名学号年龄性别语文数学英语物理化学总分\n"); for(i=0;i {printf("%9s%11s%5d%5c",student[i].name,student[i].number,student[i].age,student[i].sex); for(j=0;j printf("%7d",student[i].score[j]); printf("\n\n");}} voidoutputf()/*本函数的功能是把最后结果输出到data2.txt文件中*/ {inti,j; FILE*fp; if((fp=fopen("d: \\data2.txt","w"))==NULL) {printf("不能打开文件\n");exit(0);} fprintf(fp,"\t\学生管理基本界面\n"); fprintf(fp,"---------------------------------------------------------------------------\n"); fprintf(fp,"姓名学号年龄性别语文数学英语物理化学总分\n"); for(i=0;i {fprintf(fp,"%10s%11s%5d%5c",student[i].name,student[i].number,student[i].age,student[i].sex); for(j=0;j fprintf(fp,"%7d",student[i].score[j]); fprintf(fp,"\n");} fclose(fp); printf("\n学生管理基本界面已经写入文件data2.txt\n\n");} 5课程设计总结 5.1程序运行结果/预期运行结果 菜单界面 总分计算完成 成绩排序完成 5.2课程设计体会 在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。 在为期两周的时间中,我们同组的同学共同的感受是: C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。 好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。 在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。 通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。 参考文献 [1]张福祥.C语言程序设计[M].沈阳: 辽宁大学出版社,2010.1 [2]张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳: 辽宁大学出版社,2010.1 [3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京: 中国铁道出版社,2008 致谢 在这次课程设计的撰写过程中,我得到了许多人的帮助。 首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。 在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。 其次,我要感谢帮助过我的同学,她们慷慨的借电脑给我用,使我能顺利的完成此次课程设计。 最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 正文