c语言设计-学生成绩管理系统内容摘要:
void SearchByname(Student *a,int n,char name[])。 void SortByTotal(Student*a,int n)。 void SortByMcu(Student*a,int n)。 void SortByMath(Student*a,int n)。 void SortByEnglish(Student*a,int n)。 void Sort(Student *a,int n,int course)。 int DeleteByNo(Student*a,int n,char no[])。 void save(Student *a,int n)。 void english(Student stu[] , int n )。 void math(Student stu[] , int n)。 void mcu(Student stu[] , int n)。 void englishaver(Student stu[],int n)。 void mathaver(Student stu[],int n)。 void mcuaver(Student stu[],int n)。 void totalaver(Student stu[],int n)。 int load(Student t[])。 //符号常量和变量说明 define N 100 // 学生最大人数 int length = 0。 // 学生实际人数 define ENGLISH 0 // 英语课程 define MATH 1 // 数学课程 define MCU 2 // 单片机课程 define TOTAL 3 // 总分 Student stu[N] = // 学生结构体数组,全局变量 { {12, 王小安 , 男 , {1980, 2, 14}, {15, 55,31}}, {1, 蒋华平 , 男 , {1989, 11, 24}, {100, 100, 100}}, {8, 张羽 , 女 , {1982, 9, 22}, {92, 83, 58}}, {9, 刘长根 , 男 , {1980, 2, 18}, {60, 65, 72}}, {23, 李利民 , 男 , {1981, 6, 29}, {90, 52, 76}}, {16, 上官屏 , 女 , {1980, 8, 9}, {57, 78, 92}} }。 endif 主函数及各功能函数 include void Init() { int i。 计应 084 蒋华平 学生信息管理系统 第 14 页 共 34 页 14 length=5。 for(i=0。 ilength。 i++) { stu[i].=stu[i].+stu[i]. +stu[i].。 } } void Menu() { 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( 8修改学生信息 \n)。 printf( 9保存学生信息文件 \n)。 printf( 10读入学生信息文件 \n)。 printf( 11查询不及格学生信息 \n)。 printf( 12查询 平均成绩 \n)。 printf( 0退出 \n)。 printf(=================================\n)。 printf(请选择 :)。 } void Print(Student *p) { printf(%s\t%s\t%s\t%d%d%d\t%\t%\t%\t%, pno,pname,psex, p,p,p, p,p,p,p)。 } Void PrintTablHeader () { printf(学号 \t 姓名 \t 性别 \t 生日 \t\t 英语 \t 数学 \t 单片机 \t 总分 \n)。 } void PrintAll(Student *a,int n) { int i。 PrintTablHeader()。 for(i=0。 in。 i++) { 计应 084 蒋华平 学生信息管理系统 第 15 页 共 34 页 15 Print(amp。 a[i])。 //调用 Print 函 数输出第 i 个学生信息 printf(\n)。 } } int SearchByNo(Student *a,int n,char no[]) 按学号查找学生成绩信息 { int p=1。 int i。 for(i=0。 in。 i++) { if(strcmp(a[i].no,no)==0) { p=i。 break。 } } return p。 } void SearchByname(Student *a,int n,char name[]) 按学号查 找学生成绩信息 { int i。 int flag=0。 PrintTablHeader()。 for (i=0。 in。 i++) { if(scrimp(a[i].name, name)==0) { flag=1。 Print(amp。 a[i])。 printf(\n)。 } } if (flag==0) printf(查询失败 !)。 } void SortByEnglish(Student*a,int n) 根据英语成绩进行排序 { int i,j。 //循环变量 float maxval。 //用于临时保存最大值 int maxpos。 //用于临时保存最大值的下标 计应 084 蒋华平 学生信息管理系统 第 16 页 共 34 页 16 Student temp。 //临时变量 //总共需要 N1 次选择和交换 for (i=0。 in1。 i++) { maxval=a[i].。 maxpos=i。 //在无序区寻找最大值 for (j=i。 jn。 j++) { if (a[j].maxval) { maxval=a[j].。 maxpos=j。 } } if (maxpos!=1) { temp=a[maxpos]。 a[maxpos]=a[i]。 a[i]=temp。 } } } void SortByMath(Student*a,int n) 根据数学成绩进行排序 { int i,j。 //循环变量 float maxval。 //用于临时保存最大值 int maxpos。 //用于临时保存最大值的下标 Student temp。 //临 时变量 //总共需要 N1 次选择和交换 for (i=0。 in1。 i++) { maxval=a[i].。 maxpos=i。 //在无序区寻找最大值 for (j=i。 jn。 j++) { if (a[j].maxval) { maxval=a[j].。 maxpos=j。 } 计应 084 蒋华平 学生信息管理系统 第 17 页 共 34 页 17 } if (maxpos!=i) { temp=a[maxpos]。 a[maxpos]=a[i]。 a[i]=temp。 } } } void SortByMcu(Student*a,int n) 根据单片机成绩进行排序 { int i,j。 //循环变量 float maxval。 //用于临时保存最大值 int maxpos。 //用于临时保存最大值的下标 Student temp。 //临时变量 //总共需要 N1 次选择和交换 for (i=0。 in1。 i++) { maxval=a[i].。 maxpos=i。 //在无 序区寻找最大值 for (j=i。 jn。 j++) { if (a[j].maxval) { maxval=a[j].。 maxpos=j。 } } if (maxpos!=1) { temp=a[maxpos]。 a[maxpos]=a[i]。 a[i]=temp。 } } } void SortByTotal(Student*a,int n) 根据学生总成绩进行排序 { int i,j。 //循环变量 float maxval。 //用于临时保存最大值 计应 084 蒋华平 学生信息管理系统 第 18 页 共 34 页 18 int maxpos。 //用于临时保存最大值的下标 Student temp。 //临时变量 //总共需要 N1 次选择和交换 for (i=0。 in1。 i++) { maxval=a[i].。 maxpos=i。 //在无序区寻找最大值 for (j=i。 jn。 j++) { if (a[j].maxval) { maxval=a[j].。 maxpos=j。 } } if (maxpos !=1) { temp=a[maxpos]。 a[maxpos]=a[i]。 a[i]=temp。 } } } void english(Student stu[]。c语言设计-学生成绩管理系统
相关推荐
i].num) n=i。 } fclose(fp)。 fp=fopen(,w)。 for(i=0。 im。 i++) { if(i!=n) { fprintf(fp,\n%3d %5d %8s %5d %11s,dan[i].num,dan[i].chepai,dan[i].name,dan[i].id,dan[i].time)。 /*把不要求删除的罚单信息在文件中输入 */ } }
7. searchEmployee(): S1: 定义 char name[30]。 int i。 S2: 输出 请输入要查询的员工的名字 : S3: 输入姓名 S4: i=0 S5: 如果 strcmp(employee[i].name,name)==0,输出姓名及其对应工资 S6: i=i+1 S7: 如果 ilength,返回 S5,继续执行,否则,执行 S8 S8: 系统暂停,返回 1
[需求分析 ] 该模块的功能是可以实现按车辆、驾驶员和开单交警查询。 打开文件 逐条显示文件中的处罚单信息 关闭文件 选择浏览还是返回主菜单 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 7 [查询模块流程图 ] ( 5)、统计模块 打开 文件 输入用户要查询的信息 x 让用户选择 关闭文件 选择浏览还是返回主菜单 显示“找不到此罚单信息 显示“找不到此罚单信息
ht==1)。 strcpy(StuInfo[found].Sex,sex)。 do { printf(\n 学号( 11 位) :)。 scanf(%s,sno)。 if(strlen(sno)!=11) { printf(输入错误,学号长度应为 11 位数 !\n)。 right=1。 getchar()。 } else right=0。 for(i=0。 inum。 i++) {
printf( %s\t,stu[i].name)。 printf(%s\t,stu[i].sex)。 printf(%4d\t%4d\t%4d\t%4d%8d\n,stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].total,stu[i].average)。 } } void sort(struct student stu[]) { int i
24 6 课程心得总结 通过这次亲自动手编写 C语言图书管理系统,从中收获了很多。 很多学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。 编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架 和编写源程序上面的一些问题。 在源程序编写好后,对源程序的检测花费了我很多时间,这也算是锻炼了我的耐心。