本文主要是介绍C语言课程设计-学生个人生活费管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 需求分析:
1.设计题目:学生个人生活费管理系统
2.系统功能需求分析:一直以来,一些学生自己的经济管理能力较差,为了方便学生进行管理生活费,选择设计编辑此程序。
- 概要设计:
系统总体设计框架
- 详细设计:
主要阐述功能模块的算法设计思路
(1)strcut student结构体变量
(2)int main()主函数
先通过学生生活费录入录入信息,在用下面(3)学生生活费统计函数(4)学生生活费排序函数(5)学生生活费筛选函数等三个函数进行运行,得出结果。
- void count()统计函数
- void sort1() void sort2() void sort3()排序函数
- void find筛选函数
- 调试分析过程描述:包括测试数据,测试分析结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)
(1)测试数据:
学号 | 姓名 | 支出1 | 支出2 | 支出3 | 支出4 |
20202805 | 小媛 | 450 | 510 | 220 | 250 |
20202798 | 小佳 | 500 | 560 | 230 | 280 |
20202901 | 小周 | 540 | 580 | 210 | 200 |
程序代码
#include<stdio.h>
#define N 3
struct student
{char num[20];char name[20];float score[4];float sum;float aver;
}stu[N];
int main()
{printf("******** made by lyy ********\n\n");printf("********学生个人生活费管理系统********\n\n\n");void count(struct student stu[]);//进行统计// void sort1(struct student stu[]);//进行排序:学号// void sort2(struct student stu[]);//进行排序:姓名//void sort3(struct student stu[]);//进行排序:总支出//void find(struct student stu[]);//进行查找发现// int i;float temp;for(i=0;i<N;i++){ printf("请输入第%d位的支出情况:\n",i+1);printf("学号: ");gets(stu[i].num);//从哪里调用//printf("姓名: ");gets(stu[i].name);printf("支出1(衣): ");scanf("%f",&temp);stu[i].score[0]=temp;printf("支出2(食): ");scanf("%f",&temp);stu[i].score[1]=temp;printf("支出3(住): ");scanf("%f",&temp);stu[i].score[2]=temp;printf("支出4(行): ");scanf("%f",&temp);getchar();stu[i].score[3]=temp;}printf("------统计消费记录------\n");count(stu);printf("\n");printf("------学号排序消费记录------\n");sort1(stu);printf("\n");printf("------姓名排序消费记录------\n"); sort2(stu);printf("\n");printf("------总和排序消费记录------\n");sort3(stu);printf("\n");find(stu);
}
void count(struct student stu[])
{ float sum;float aver; int i,j; for(i=0;i<N;i++) { sum=0; for(j=0;j<4;j++) {sum+=stu[i].score[j]; aver=sum/4.0; stu[i].sum=sum; stu[i].aver=aver; }} printf("学号 姓名 总支出 平均支出 \n");for(i=0;i<N;i++) printf("%-8s %-10s %.2f %.2f \n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}
void sort1(struct student stu[])
{ int i,j,k; struct student temp; for(i=0;i<N;i++){ k=i; for(j=i+1;j<N;j++) if(stu[k].num<stu[j].num) k=j; if(k!=i) { temp=stu[i]; stu[i]=stu[k]; stu[k]=temp; } } printf("学号 姓名 支出1 支出2 支出3 支出4 总支出 平均支出 \n"); for(i=0;i<N;i++) printf("%-8s %-10s %.2f %.2f %.2f %.2f %.2f %.2f \n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
void sort2(struct student stu[])
{ int i,j,k; struct student temp; for(i=0;i<N;i++){ k=i; for(j=i+1;j<N;j++) if(stu[k].name<stu[j].name) k=j; if(k!=i) { temp=stu[i]; stu[i]=stu[k]; stu[k]=temp; } } printf("学号 姓名 支出1 支出2 支出3 支出4 总支出 平均支出 \n"); for(i=0;i<N;i++) printf("%-8s %-10s %.2f %.2f %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
} void sort3(struct student stu[])
{ int i,j,k; struct student temp; for(i=0;i<N;i++){ k=i; for(j=i+1;j<N;j++) if(stu[k].sum<stu[j].sum) k=j; if(k!=i) { temp=stu[i]; stu[i]=stu[k]; stu[k]=temp; } } printf("学号 姓名 支出1 支出2 支出3 支出4 总支出 平均支出 \n"); for(i=0;i<N;i++) printf("%-8s %-10s %.2f %.2f %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
void find(struct student stu[]) { int i,j,sum,flag=0; printf("the student of two scores<230:\n"); for(i=0;i<N;i++) { sum=0; for(j=0;j<4;j++) if(stu[i].score[j]<230) sum++; if(sum>=2) { flag=1; printf("%-8s%-10s\n",stu[i].num,stu[i].name);}}if(flag==0) printf(" not exist!\n"); }
这篇关于C语言课程设计-学生个人生活费管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!