C课程设计报告-正文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
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)WINDOWS XP系统
(2)Visual C++
2.4 开发语言
C语言
3 分析和设计
3.1 模块设计
定义结构体类型struct 表示学生信息(包括:姓名、学号、年龄、性别及五门课成绩),定义一个结构体数组STU student[M],用来存放M个学生的信息,假设M为10。如下所示:
#define M 10
typedef struct
{char name[9],
number[11];
int age;
char sex;
int score[S+1];}STU;
STU student[M];
定义一个void sum()函数,本函数的功能是将计算每个学生的总分。定义一个void sort()函数,本函数的功能是按总分从高到低排序。
3.2 系统流程图
图3.1 系统流程图
3.3 主要模块的流程图
图3.2 sort流程图
图3.3 sum流程图
4 具体代码实现
#include"stdio.h"
#include"string.h"
#define M 10
#define S 5
/*用结构体存放一个学生信息(姓名、学号、年龄、性别及5门课的成绩)*/ typedef struct
{char name[9],number[11];
int age;
char sex;
int score[S+1];}STU;
STU student[M];
void input(),sum(),sort(),outputs(),outputf(),save();
void main()
{char choice;
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");}}}
void input()/*是从键盘输入10名学生的信息:姓名、学号、年龄、性别及5门课的成绩*/
{int i,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");}