C语言课程设计之学生信息管路系统_第1页
C语言课程设计之学生信息管路系统_第2页
C语言课程设计之学生信息管路系统_第3页
C语言课程设计之学生信息管路系统_第4页
C语言课程设计之学生信息管路系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

题目:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以文本菜单方式工作,学生信息录入功能(学生信息最好用文件保存)---输入学生信息浏览功能---输出查询、排序功能---算法按学号查询按姓名查询学生信息的删除与修改(可选项) #include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<Windows.h>typedefstruct{ intID;//学生的学号 charname[20];//学生的名字 intage;//学生的年龄 charsex[5];//学生的性别 intyear;//学生出生年 intmonth;//学生出生月 charaddress[60];//学生的地址 charphone_number[20];//学生的电话号码 charE_mail[40];//学生的E-mail}Student;staticintstu_num;//记录学生总数voidinput_student_information(Studentstudent[]);//录入学生的基本信息voidoutput_student_information(Studentstudent[],intnum);//输出学生的基本信息voidsort_information(Studentstudent[],intnum);//对学生的信息以学号由低到高排序intsearch_information(Studentstudent[],intnum);//查询学生的信息voidcancle_information(Studentstudent[]);//删除学生的信息intjudge_number(intnum);//判断系统中剩下的学生数目intmain(){ Studentstudent[1000];//新建结构体变量 intchoice,counter,search_number,judge; charreply; system("color12");//设置背景色为蓝色,前景色为绿色 do { system("cls");//清理屏幕 /* ** 主操作菜单 */ printf("\n**********************************************************************\n"); printf(" ╔════════════════════════╗\n"); printf(" ║************欢迎使用学生信息管理系统************║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║1录入学生的的基本信息:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║2学生的信息浏览(输出所有学生信息):║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║3学生信息排序(按学号从小到大):║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║4按学号查询学生信息:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║5修改学生的信息:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║6学生信息注销:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║0退出系统:║\n"); printf(" ╚════════════════════════╝\n"); printf("\n****请输入您想要进行的操作的选项前面的数字:"); scanf("%d",&choice); printf("\n"); switch(choice) { case1: do { system("cls"); printf("******************************************************\n"); stu_num++; printf("请输入第%d位新学生的信息:\n",stu_num); input_student_information(student);//调用函数,录入学生的基本信息 printf("是否继续录入学生的信息?(Y/N)或者(y/n)"); scanf("%c",&reply); }while((reply=='Y')||(reply=='y')); system("cls"); break; case2: system("cls"); judge=judge_number(stu_num); if(judge)//若系统中没有学生信息,则退出子菜单,进入主菜单 { break; } for(counter=1;counter<=stu_num;counter++) { output_student_information(student,counter);//调用函数,输出学生的基本信息 printf("\n****************************************************\n"); } printf("按任意键返回主菜单:"); getch(); system("cls"); break; case3: system("cls"); judge=judge_number(stu_num); if(judge) { break; } sort_information(student,stu_num); for(counter=1;counter<=stu_num;counter++) { output_student_information(student,counter); printf("\n****************************************************\n"); } printf("按任意键返回主菜单:"); getch(); system("cls"); break; case4: do { system("cls"); judge=judge_number(stu_num); if(judge) { break; } search_number=search_information(student,stu_num);//用学号搜索学生的信息 output_student_information(student,search_number); printf("是否继续输入查询学生的信息?(Y/N)或者(y/n)"); scanf("%c",&reply); }while((reply=='Y')||(reply=='y')); system("cls"); break; case5: do { system("cls"); judge=judge_number(stu_num); if(judge) { break; } search_number=search_information(student,stu_num);//找到要修改的学生的学号 /* **修改学生信息菜单 */ printf("\n**********************************************************************\n"); printf(" ╔════════════════════════╗\n"); printf(" ║************欢迎使用学生信息管理系统************║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║1修改学生的学号:║\n"); printf(" ╠════════════════════════║\n"); printf(" ║2修改学生的姓名::║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║3修改学生的年龄:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║4修改学生的性别:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║5修改学生的出生年月:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║6修改学生的地址:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║7修改学生的电话:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║8修改学生的E-mail:║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║0完成修改,进入主菜单:║\n"); printf(" ╚════════════════════════╝\n"); printf("\n****请输入您想要进行的操作的选项前面的数字:"); scanf("%d",&choice); printf("\n"); switch(choice) { case1: printf("**请输入修改后的学号:"); scanf("%d",&student[search_number].ID); getchar(); break; case2: printf("**请输入修改后的姓名:"); scanf("%s",&student[search_number].name); getchar(); break; case3: printf("**请输入修改后的年龄:"); scanf("%d",&student[search_number].age); getchar(); break; case4: printf("**请输入修改后的性别:"); scanf("%s",&student[search_number].sex); getchar(); break; case5: printf("**请输入修改后的出生年月:"); scanf("%4d%2d",&student[search_number].year,&student[search_number].month); getchar(); break; case6: printf("**请输入修改后的地址:"); scanf("%s",&student[search_number].address); getchar(); break; case7: printf("**请输入修改后的电话:"); scanf("%s",&student[search_number].phone_number); getchar(); break; case8: printf("**请输入修改后的E-mail:"); scanf("%s",&student[search_number].E_mail); getchar(); break; default: break; } printf("是否继续输入修改学生的信息?(Y/N)或者(y/n)"); scanf("%c",&reply); }while((reply=='Y')||(reply=='y')); printf("按任意键返回主菜单:"); getch(); system("cls"); break; case6: do { system("cls"); judge=judge_number(stu_num); if(judge) { break; } cancle_information(student); printf("是否继续删除学生的信息?(Y/N)或者(y/n)"); scanf("%c",&reply); }while((reply=='Y')||(reply=='y')); system("cls"); break; case0: { getchar();//吸收进入子菜单时输入的回车符 printf("是否希望退出程序?(Y/N)或者(y/n)"); scanf("%c",&reply); getchar(); if((reply=='y')||(reply=='Y')) { exit(0); } } } }while(1);//程序未使用退出子菜单时,循环一直进行 getch(); return0;}voidinput_student_information(Studentstudent[]){ printf("****学号:");//录入学号 scanf("%d",&student[stu_num].ID); getchar();//吸收回车符 printf("****姓名(姓名之间不要插入空格):");//录入学生的姓名 scanf("%s",&student[stu_num].name); getchar(); printf("****年龄:");//录入学生的年龄 scanf("%d",&student[stu_num].age); getchar(); printf("****性别:");//录入学生的性别 scanf("%s",&student[stu_num].sex); getchar(); printf("****出生年月(例如:194901(1949年1月)):");//录入学生的出生日期 scanf("%4d%2d",&student[stu_num].year,&student[stu_num].month); getchar(); printf("****地址(地址之间不要插入空格):"); scanf("%s",&student[stu_num].address); getchar(); printf("****电话:"); scanf("%s",&student[stu_num].phone_number); getchar(); printf("****E-mail:"); scanf("%s",&student[stu_num].E_mail); getchar(); printf("━━━━━━━━━━━━━━━━━━━━\n"); printf("新学生信息录入成功,当前共有%d个学生记录。\n",stu_num); printf("━━━━━━━━━━━━━━━━━━━━\n");}voidoutput_student_information(Studentstudent[],intnum){ printf("第%d位学生信息:\n",num); printf("****学号:%d\n",student[num].ID); printf("****姓名:%s\n",student[num].name); printf("****年龄:%d\n",student[num].age); printf("****性别:%s\n",student[num].sex); printf("****出生年月:%d年%d月\n",student[num].year,student[num].month); printf("****地址:%s\n",student[num].address); printf("****电话:%s\n",student[num].phone_number); printf("****E-mail:%s\n",student[num].E_mail);}voidsort_information(Studentstudent[],intnum)//使用选择法排序{ Studenttemp; inti,j; for(i=1;i<num;i++) { for(j=i;j<=num;j++) { if(student[j].ID<student[i].ID) /* **当后一个学号小于目前默认的最小学号,则交换两个信息的位置 */ { temp=student[j]; student[j]=student[i]; student[i]=temp; } } }}intsearch_inf

温馨提示

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

评论

0/150

提交评论