一,系统功能简介
1,
进入主界面:要求输入密码,输入三次错误系统锁定。
1,
进入主界面:要求输入密码,输入三次错误系统锁定。
1,
进入主界面:要求输入密码,输入三次错误系统锁定。
1, 进入主界面:要求输入密码,输入三次错误系统锁定。
2,输入记录:将学生的基本信息包括学号,姓名,性别,地区,分数等数据作为一个记录写入文件。
3,显示记录:显示学生的各项信息 。
4,增加记录: 增加多个学生的基本信息,位于之前的学生后面。 5,删除记录: 删除学生信息。
6,修改记录:可以修改学生的任何一项基本信息。
7,查找记录:可以根据学生的学号查找并显示出学生的信息。
8,统计记录: 统计全班通过情况和不及格情况。
9,退出系统。
二,函数的编写
定义、编写记录(数据)输入函数;
定义、编写记录(数据)显示函数;
定义、编写记录(数据)增加函数;
定义、编写记录(数据)删除函数;
定义、编写记录(数据)修改函数;
定义、编写记录(数据)统计函数;
定义、编写记录(数据)查找函数;
函数名称 函数功能
enter() 进入函数
input() 输入函数
display() 显示函数
add () 增加函数
delet() 删除函数
amend() 修改函数
preside (); 统计函数
fint (); 查找函数
output(); 退出函数
通过C语言联练习,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过练习,逐渐积攒了一些经验,有些错误可以较快看出来。
C语言是一个有序的学习,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,要从整体上把握。不过通过实训我也知道了自己的不足,存在的很多问题。希望能在以后的学习中,不断提高自己的能力,让问题越来越少。
改编学生管理系统(图书馆管理系统)
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> typedef int ; typedef struct bookinfo { char number[15]; char name[30]; float price; char auther[20]; isExit; char lendername[20]; char lendersex[2]; char lendernum[15]; }BOOKINFO; void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\:新进图书基本信息的输入\n"); printf("\t\t\:显示全部记录\n"); printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new() { char choice; *p; BOOKINFO newbook; system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(newbook.name); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!=‘\n‘); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:"); gets(newbook.lendersex); printf("输入借书人学号:"); gets(newbook.lendernum); printf("是否保存该条书目?(Y/N)\n"); choice=getch(); while(choice!=‘Y‘&&choice!=‘y‘&&choice!=‘N‘&&choice!=‘n‘) choice=getch(); if(choice==‘Y‘||choice==‘y‘) { newbook.isExit=1; p=fopen("c:\\bookinfo.data","ab"); fwrite(&newbook,sizeof(BOOKINFO),1,p); fclose(p); printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n"); } else { printf("\n本条书目未保存!\n"); } printf("\n是否继续添加书目?(Y/N)\n"); choice=getch(); while(choice!=‘Y‘&&choice!=‘y‘&&choice!=‘N‘&&choice!=‘n‘) choice=getch(); if(choice==‘Y‘||choice==‘y‘) continue; else break; } } void choice_2_display_all() { *p; int n; BOOKINFO bookinfo[100]; int booknumber=0; system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } /*booknumber--;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); booknumber--; if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { n=0; printf(" 图书信息如下\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); while(n<booknumber) { printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); n++; } } printf("\n\n按任意键回到主菜单!\n"); getch(); } void choice_3_search_according_name() { char search[20]="";/ int n; *p; char choice; BOOKINFO bookinfo[100]; int booknumber=0; system("cls"); p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--; fclose(p); while(1) { printf("输入要查询的书本名称:"); gets(search); if(booknumber==0) { printf("书库中没有任何信息!\n\n"); printf("按任意键回到主菜单!\n\n"); getch(); break; }/*if结束*/ else { for(n=0;n<booknumber;n++) if(strcmp(bookinfo[n].name,search)==0) { printf("该书的详细信息如下:\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); break; } if(n>=booknumber) printf("没有查找该书的任何信息!\n"); printf("\n\n是否继续查询?(Y/N)\n"); choice=getch(); while(choice!=‘Y‘&&choice!=‘y‘&&choice!=‘N‘&&choice!=‘n‘) choice=getch(); if(choice==‘Y‘||choice==‘y‘) continue; else break; }/*else结束*/ }/*while(1)结束*/ } void choice_4_delete_according_name() { char search[20]=""; int n,i; FILE *p; char choice; BOOKINFO bookinfo[100]; int booknumber; system("cls"); while(1) { printf("输入要删除的书本名称:"); gets(search); p=fopen("c:\\bookinfo.data","rb"); booknumber=0; while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumber==0) { printf("书库中没有任何信息!\n\n"); printf("按任意键回到主菜单!\n\n"); getch(); break; }/*if结束*/ else { for(n=0;n<booknumber;n++) if(strcmp(bookinfo[n].name,search)==0) { break; } if(n>=booknumber) printf("没有查找该书的任何信息!\n"); else { printf("是否确认需要删除该条书目?(Y/N)"); choice=getch(); while(choice!=‘Y‘&&choice!=‘y‘&&choice!=‘N‘&&choice!=‘n‘) choice=getch(); if(choice==‘Y‘||choice==‘y‘) { for(i=n;i<booknumber-1;i++) bookinfo[i]=bookinfo[i+1]; booknumber--; p=fopen("c:\\bookinfo.data","wb"); for(n=0;n<booknumber;n++) fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p); fclose(p); printf("删除成功!\n"); } else printf("\n\n该条书目没有被删除!"); } printf("\n\n是否继续进行删除操作?(Y/N)\n"); choice=getch(); while(choice!=‘Y‘&&choice!=‘y‘&&choice!=‘N‘&&choice!=‘n‘) choice=getch(); if(choice==‘Y‘||choice==‘y‘) continue; else break; }/*else结束*/ }/*while(1)结束*/ } void choice_5_sort_according_name() { FILE *p; int m,n; BOOKINFO temp; BOOKINFO bookinfo[100]; int booknumber; p=fopen("c:\\bookinfo.data","rb"); booknumber=0; system("cls"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { for(m=0;m<booknumber-1;m++) for(n=m+1;n<booknumber;n++) if(strcmp(bookinfo[m].name,bookinfo[n].name)>0) { temp=bookinfo[m]; bookinfo[m]=bookinfo[n]; bookinfo[n]=temp; } p=fopen("c:\\bookinfo.data","wb"); for(m=0;m<booknumber;m++) fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p); fclose(p); printf("\n\n完成排序!\n\n"); } printf("按任意键回到主菜单!\n"); getch(); } void choice_6_display_high_price() { float price; FILE *p; int n; int count=0; BOOKINFO bookinfo[100]; int booknumber; system("cls"); printf("请输入价格:"); scanf("%f",&price); p=fopen("c:\\bookinfo.data","rb"); booknumber=0; while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("没有任何图书信息!\n\n"); } else { for(n=0;n<booknumber;n++) { if(bookinfo[n].price>=price) count++; } if(count==0) printf("书库中没有比%.1f$价格高的图书!",price); else { printf(" 价格高于%.1f$的图书信息如下\n",price); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); for(n=0;n<booknumber;n++) { if(bookinfo[n].price>=price) printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); } } } printf("\n\n按任意键回到主菜单!\n"); getch(); } void choice_7_display_according_exitflag() { FILE *p; int n; int count=0; BOOKINFO bookinfo[100]; int booknumber; system("cls"); booknumber=0; p=fopen("c:\\bookinfo.data","rb"); while(!feof(p)) { fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p); booknumber++; } booknumber--; fclose(p); if(booknumber==0) { printf("书库中没有任何书目存在!\n"); } else { for(n=0;n<booknumber;n++) if(bookinfo[n].isExit==1) count++; if(count==0) printf("书库中的书籍全部借出!\n"); else { printf("书库中未被借出的图书信息如下:\n\n"); printf(" 图书信息 | 借书人信息 \n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n"); for(n=0;n<booknumber;n++) if(bookinfo[n].isExit==1) { printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); } } } printf("\n按任意键返回主菜单!\n"); getch(); } void main() { char choice; clock_t tm; FILE *p; if((p=fopen("c:\\bookinfo.data","rb"))==) { p=fopen("c:\\bookinfo.data","wb"); fclose(p); } while(1) { system("cls"); menu(); choice=getch(); switch(choice) { case ‘1‘:choice_1_input_new();break;/*输入新进的图书信息*/ case ‘2‘:choice_2_display_all();break;/*显示全部图书信息*/ case ‘3‘:choice_3_search_according_name();break;/*根据图书名称显示图书的信息*/ case ‘4‘:choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/ case ‘5‘:choice_5_sort_according_name();break;/*根据图书名称排序*/ case ‘6‘:choice_6_display_high_price();break;/*根据价格列出图书信息*/ case ‘7‘:choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/ case ‘8‘:printf("\n\n\t\t\t谢谢使用,再见!\n\t\t\t按任意键退出!\n");getch();return; default: printf("\n\n\t\t\t请输入菜单中的数字!(1~8)"); tm=clock(); while(clock()<tm+1800); break; } } }