学籍管理系统(含附源代码)27_第1页
学籍管理系统(含附源代码)27_第2页
学籍管理系统(含附源代码)27_第3页
学籍管理系统(含附源代码)27_第4页
学籍管理系统(含附源代码)27_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安邮电学院C语言课程设计实验报告系别:电信系班级:科技0701班学号:05072027序号:27姓名:杨佳润时间:2023.06.20实验目的:〔1〕熟悉C语言运行环境和上机步骤。〔2〕学会系统的运用所学的C语言知识。〔3〕掌握C语言的根本方法。〔4〕了解给多文件程序的编译和运行。〔5〕学会对程序的调试。2.实验内容:运用C语言的知识编译学籍管理系统。3.程序分析:〔1〕程序由录入,保存,显示,添加,查询,删除,修改,排序,统计,9个模块构成。〔2〕录入模块输入学生的信息,通过保存模块保存到指定文件。〔3〕显示模块显示已输入的学生信息。〔4〕添加,删除,修改模块可以更新学生信息。〔5〕排序模块可以按成绩将学生排序。〔6〕统计模块将男,女生人数进行统计。4.实验设计:主函数主函数修改模块修改模块删除模块查询模块添加模块显示模块录入模块排序模块成绩排序成绩查询学号查询统计模块5.模块说明:〔1〕录入模块:输入学生的信息,学生的序号,姓名,生日,性别,年龄,成绩,专业,班级。保存模块:用数组将学生的信息保存到指定的文件。添加模块:添加学生的信息。查询模块按成绩查询:输入学生成绩,利用循环和数组在学生信息里查找并显按序号查询:输入学生序号,利用虚幻在学生信息里查找并显示。统计模块:通过循环,统计男生人数,女生人数。删除模块:可将学生信息删除。修改模块:先进行查找,查找到要修改的模块,再对学生信息进行修改。排序模块:通过循环,对学生成绩进行比拟,排序。6.流程图:开始输入提示信息choice=1?开始输入提示信息choice=1?choice=3?choice=2?choice=6?choice=4?录入模块显示信息添加模块查询模块统计模块choice=5?统计模块choice=5?删除模块删除模块choice=7?修改模块choice=7?修改模块choice=8?排序模块choice=8?排序模块choice=0?choice=0?退出退出开始录入模块:开始i=0i=0i<N?i<N?输入资料输入资料退出退出查询模块:开始开始输入信息输入信息输入信息输入信息退出Choice=??退出Choice=??按序号查询按成绩查询按序号查询按成绩查询统计模块:SEX=男?i=0输入提示信息开始I++K++不成立输入结果退出SEX=男?i=0输入提示信息开始I++K++不成立输入结果退出开始i<n?输出模块输出资料i<n?输出资料输出资料输出资料退出退出7.实验结果:经过屡次的调试,程序最后终于能正常的运行,到达了预定的目标。编程中遇到了很多的困难,本程序也模仿了书本上的程序。在今后编程过程中,我们应多注意细节问题,不能小看每一个小的环节,稍不留意,程序变会出问题。本次实验使我们学会了怎么去解决大的编程问题,把大的问题变成一个个小的模块,最后调用在一起。#include<stdio.h>#include<string.h>#defineN100#definePAGE3#definePRINT1printf("********************************\n")#definePRINT2printf("学号(100)——姓名——出生日期(年-月-日〕——性别——年龄——总成绩——专业——班级\n")#definePRINT3printf("%6d%10s%9d-%3d-%3d%4s%7d%7d%16s%5d\n",stu[i].num,stu[i].name,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.date,stu[i].sex,stu[i].age,stu[i].score,stu[i].speciality,stu[i].classno)intsum=0;/*定义出生日期结构体*/structbirthday_type{intyear;intmonth;intdate;};/*学生结构体类型*/structstu_type{intnum;charname[10];structbirthday_typebirthday;charsex[7];intage;intscore;charspeciality[16];intclassno;}stu[N];/*保存信息*/save_message(intsum){FILE*fp;inti;if((fp=fopen("hmily.txt","wb"))==NULL){printf("读文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&stu[i],sizeof(structstu_type),1,fp)!=1)printf("写文件错误!\n");fclose(fp);}/*录入模块*/input_message(){inti=0,flag,choice;clrscr();printf("\n\n录入学生信息\n");printf("**************************\n");do{stu[i].num=++sum;printf("\n学生序号%d:",sum);printf("\n学生姓名:");scanf("%s",stu[i].name);printf("\n出生年份:");scanf("%d",&stu[i].birthday.year);printf("\n出生月份:");scanf("%d",&stu[i].birthday.month);printf("\n出生日期:");scanf("%d",&stu[i].birthday.date);printf("\n性别:");scanf("%s",stu[i].sex);printf("\n年龄:");scanf("%d",&stu[i].age);printf("\n总成绩:");scanf("%d",&stu[i].score);printf("\n专业:");scanf("%s",stu[i].speciality);printf("\n班级:");scanf("%d",&stu[i].classno);i++;printf("\n是否继续?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){flag=1;printf("\n继续!\n");}elseflag=0;}while(flag==1&&i<N);printf("\n***%d学生信息输入完毕!***\n",i);printf("\n按任意键回主菜单!");bioskey(0);}/*读取信息*/read_message(){FILE*fp;inti=0;if((fp=fopen("hmily.txt","rb"))==NULL){printf("\n\n***暂时没有信息,按任意键回主菜单!****\n");return;}while(feof(fp)!=1){fread(&stu[i],sizeof(structstu_type),1,fp);if(stu[i].num==0)break;elsei++;return;}fclose(fp);}/*显示模块*/output_message(){inti=0,j=0,count,page=1;clrscr();printf("\n\n*****学生信息表*****第%d页\n\n",page);PRINT2;PRINT1;do{if(stu[i].num!=0){j++;if(j%PAGE!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(stu[i].num!=0){printf("按任意键继续!");bioskey(0);clrscr();printf("\n\n***学生信息表***第%d页\n\n",++page);PRINT2;PRINT1;}}}i++;}while(stu[i].num!=0);printf("按任意键返回主菜单!");bioskey(0);}/*按姓名查询*/inquire_name(){inti,choice,j=0;charinquire_name[10];clrscr();printf("\n输入要查询的学生姓名:");scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(stu[i].name,inquire_name)==0&&stu[i].num!=0){printf("\n***学生信息***\n");PRINT1;PRINT2;PRINT3;}elsej++;if(j==sum)printf("\n该学生不存在!");bioskey(0);}/*按序号查询*/inquire_num(){inti,choice,j=0,inquire_num;clrscr();printf("\n输入要查询的序号:");scanf("%d",&inquire_num);for(i=0;i<sum;i++)if(stu[i].num==inquire_num&&stu[i].num!=0){printf("\n****学生信息***\n");PRINT1;PRINT2;PRINT3;}elsej++;if(j==sum)printf("\n该学生不存在!");bioskey(0);}/*查询模块*/inquire_message(){intchoice;do{clrscr();printf("\n\n*******查询学生信息********\n\n");printf("1.按姓名查询\n\n");printf("2.按序号查询\n\n");printf("0.返回主菜单\n\n");printf("请选择:");scanf("%d",&choice);switch(choice){case1:inquire_name();break;case2:inquire_num();break;case0:break;}}while(choice!=0);}/*添加模块*/add_message(){inti=sum,j,flag=0;charchoice;clrscr();printf("\n\n添加一个学生信息\n");printf("**************************\n");do{stu[i].num=++sum;printf("\n新学生序号:%d",stu[i].num);printf("\n学生姓名:");scanf("%s",stu[i].name);printf("\n出生年份:");scanf("%d",&stu[i].birthday.year);printf("\n出生月份:");scanf("%d",&stu[i].birthday.month);printf("\n出生日期:");scanf("%d",&stu[i].birthday.date);printf("\n性别:");scanf("%s",stu[i].sex);printf("\n年龄:");scanf("%d",&stu[i].age);printf("\n成绩:");scanf("%d",&stu[i].score);printf("\n专业:");scanf("%s",stu[i].speciality);printf("\n班级:");scanf("%s",stu[i].classno);printf("\n是否继续?〔Y/N)\n");choice=getch();if(choice=='Y'||choice=='y'){printf("\n继续!\n");i++;flag=1;}elseflag=0;}while(flag==1);printf("\n按任意键返回主菜单!");bioskey(0);}/*删除模块*/del_message(){inti,j,choice,del_num;printf("\n请输入要删除序号:");scanf("%d",&del_num);for(i=0;i<sum;i++)if(stu[i].num==del_num){PRINT1;PRINT2;PRINT3;printf("确认要删除(Y/N)?");choice=getch();if(choice=='Y'||choice=='y'){for(j=i;j<sum;j++)stu[j]=stu[j+1];sum--;printf("\n成功删除!");for(i=0;i<sum;i++)stu[i].num=i+1;printf("\n按任意键回主菜单!");}elsereturn;}bioskey(0);}/*修改模块*/revise_message(){inti=0,choice,revise_num,flag;do{clrscr();printf("\n输入要修改的学生序号:");scanf("%d",&revise_num);for(i=0;i<sum;i++)if(stu[i].num==revise_num){printf("\n***学生信息***\n");PRINT1;PRINT2;PRINT3;printf("\n您要修改哪一项?\n");printf("\n1.姓名\n");printf("\n2.出生日期\n");printf("\n3.性别\n");printf("\n4.年龄\n");printf("\n5.成绩\n");printf("\n6.专业\n");printf("\n7.班级\n");printf("\n请选择:");scanf("%d",&choice);switch(choice){case1:printf("\n输入修改后的姓名:");scanf("%s",stu[i].name);break;case2:printf("\n输入修改后的出生日期:");printf("\n出生年份:");scanf("%d",&stu[i].birthday.year);printf("\n出生月份:");scanf("%d",&stu[i].birthday.month);printf("\n出生日期:");scanf("%d",&stu[i].birthday.date);break;case3:printf("\n输入修改后的性别:");scanf("%s",stu[i].sex);break;case4:printf("\n输入修改后的年龄:");scanf("%d",&stu[i].age);break;case5:printf("\n输入修改后的成绩:");scanf("%d",&stu[i].score);break;case6:printf("\n输入修改后的专业:");scanf("%s",stu[i].speciality);break;case7:printf("\n输入修改后的班级:");scanf("%d",&stu[i].classno);break;}PRINT1;PRINT2;PRINT3;break;}if(i==sum){printf("\n该学生不存在!");bioskey(0);}printf("\n要继续修改吗?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){flag=1;printf("\n继续!\n");}elseflag=0;}while(flag==1);printf("\n按任意键返回主菜单!");bioskey(0);}/*成绩排序*/sort_score(){structstu_typemyscore;inti,j,k;clrscr();printf("\n按成绩排序\n");PRINT1;PRINT2;for(i=0;i<sum;i++){for(j=i+1;j<sum;j++)if(stu[i].score<stu[j].score){myscore=stu[i];stu[i]=stu[j];stu[j]=myscore;}}for(i=0;i<sum;i++){PRINT3;PRINT1;}bioskey(0);}/*排序模块*/sort_message(){intchoice;do{clrscr();printf("\n\n**************学生排序信息************\n\n");printf("1.学生成绩排序\n\n");printf("0.返回主菜单\n\n");printf("请选择:");scanf("%d",&choice);switch(choice){case1:sort_score();break;case0:break;}}while(choice!=0);}/*统计模块*/count_message(){inti,j=0,k=0;structstu_type*p;p=stu;while(p->num!=0){if(strcmp(p->sex,"male")==0)j++;elsek++;p++;}printf("男生人数为:%d\n",j);printf("女生人数为:%d\n",k);bioskey(0);}/*主程序*/main(){intchoice;sum=read_message();bioskey(0);do{clrscr();printf("\n**************************学籍管理系统***********************\n\n");printf("1.录入学生信息\n\n");printf("

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论