第一篇:c语言课程设计-学籍管理系统(含源代码)
课 程 设 计 课程设计名称: C语言程序设计 题 目:学籍管理系统 学 生 姓 名: 学生学号 : 学 院(系): 软件学院 专 业 班 级: 112021 指 导 教 师:
设计时间: 2012 年 9 月 日 2012 年 9月_ 14 日
实验题目:学籍管理系统一、实验目的
综合应用所学的C语言程序设计知识,自行设计并实现一个较为完整的小型管理信息系统。通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握软件系统的设计方法和步骤,提高灵活运用程序语言进行软件开发的技能,提高程序设计水平和分析问题、解决问题的能力。
二、实验内容
1):熟悉C语言的开发环境,按照给定的上机步骤练习完成;
2):熟悉C程序的编辑,编译,链接和运行的过程。3):编译一个应用系统程序,形成一个软件系统。
三.实验要求
1.1、分析系统功能
(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的
应的选项就可进行相应的操作.其主要功能有:
1、录入学生信息
2、删除学生信息
3、查询学生信息
4、学生信息排序
5、改学生信息
6、保存退出系统
(2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。
四、使用说明
学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。
1,用户打开程序,进入主界面,输入学生信息如图
2,按回车进入主菜单,列出各项功能如图
输入1,是查询整个班级的学生的信息,如图
输入2,是查询个别学生的信息,如查询第一学生的信息,如图
输入3,是删除个别学生的信息,如删除第一个学生,如图
输入4,是插入某些学生的信息,如插入第三个,如图
输入5,是修改某个同学的信息,如删除第一个,如图
三、心得体会
两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。
正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。
经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。
四,程序编码
/*做一个学生的学籍管理系统,有输入,查询,删除,增加,修改等功能*/ #include
#include
/*声明数组的大小,可以任意改动*/ int board[50][50];/*声明一个表格的数组*/ int cur_x, cur_y;/*定义坐标*/
void init();/*声明一个初始化界面的函数*/ void clear();/*清除界面的函数*/
void draw_board();/*声明一个函数画表格*/ struct student{/*创建一个学生的结构体*/
char stuNo[8];
/*学生的学号*/
char name[10];/*学生的姓名*/
char sex[2];/*学生的性别*/
char score[4];
/*学生的分数*/
char address[10];/*学生的地址*/ };void init()/*初始化函数*/ {
int gdriver, gmode, i, j;
gdriver = DETECT;/*图形界面的驱动声明*/
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver, &gmode, “");
for(i = 0;i < 10;i ++)
for(j = 0;j < 10;j++)/*声明坐标的间距*/
board[i][j] = 0;
cur_x = 1;
cur_y = 1;}
void destroy()/*关闭图形驱动器*/ {
closegraph();}
void draw_board(int n)/*画表格的函数*/ {
int i, j;
for(i = 20;i <=5*160+80;i += 90)/*划横线的循环*/
{
line(i, 20, i,(n+1)*60+20);
}
for(i = 20;i <=(n+1)*60+30;i += 60)/*划纵线的循环*/
{
line(20, i, 5*110+10, i);
} }
void main(){
struct student stu[SIZE],stu_temp;/*声明结构体变量*/
FILE *fp;
/*声明文件型的指针*/
int i,j,n,m,h;
int c=1;/*c为循环次数*/
h=0;
fp=fopen(”c:list.txt“,”wb+“);/*打开写入文件*/
init();/*调用函数*/
draw_board(SIZE);
if(fp==NULL)/*验证文件是否为空*/
{
printf(”cannot open this filen“);
exit(0);
}
printf(”input all %d students's data.n“,SIZE);/*画输入学生信息的表*/
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”address“);
for(i=0;i { gotoxy(7,4*(i+2)); printf(”%d“,i); gotoxy(17,4*(i+2)); scanf(”%s“,&stu[i].stuNo); gotoxy(29,4*(i+2)); scanf(”%s“,&stu[i].name); gotoxy(41,4*(i+2)); scanf(”%s“,&stu[i].sex); gotoxy(52,4*(i+2)); scanf(”%s“,&stu[i].score); gotoxy(63,4*(i+2)); scanf(”%s“,&stu[i].address); } for(i=0;i if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) { printf(”file write error!“); exit(0); } rewind(fp); clrscr(); for(c=1;c<100;c++)/*创建一个图形界面*/ { textbackground(0); textcolor(1); gotoxy(29,7); printf(”read->1“); gotoxy(29,9); printf(”find->2“); gotoxy(29,11); printf(”delete->3“); gotoxy(29,13); printf(”insert->4“); gotoxy(29,15); printf(”modify->5“); gotoxy(29,17); printf(”plese enter j= “); scanf(”%d“,&j); clrscr(); if(j==1)/*当输入为1时,显示整个班级 {的学生信息*/ draw_board(SIZE); gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); for(i=0;i { fread(&stu_temp,sizeof(struct student),1,fp);出每个学生的信息*/ gotoxy(7,4*(i+2)); printf(”%d“,i); gotoxy(17,4*(i+2)); printf(”%s“,stu[i].stuNo); gotoxy(29,4*(i+2)); printf(”%s“,stu[i].name); gotoxy(41,4*(i+2)); printf(”%s“,stu[i].sex); gotoxy(52,4*(i+2)); printf(”%s“,stu[i].score); gotoxy(63,4*(i+2)); printf(”%s“,stu[i].address); } fclose(fp); /*关闭文件*/ getch();/*留在当前界面*/ clrscr();/*清屏*/ } if(j==2)/*当输入为2时,查找某个学生的 {信息*/ rewind(fp);/*移动指针到最前*/ printf(”look up the nth(n<4)student,plese enter n= :n“);/*输入要查找的学生 scanf(”%d“,&i);位置*/ clrscr(); draw_board(1);/*画表格*/ gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); fseek(fp,(i-1)*sizeof(struct student),0);/*打开文件查找,读出信 fread(&stu_temp,sizeof(struct student),1,fp);息*/ gotoxy(7,8); printf(”%d“,i); gotoxy(17,8); printf(”%s“,stu[i].stuNo); gotoxy(29,8); printf(”%s“,stu[i].name); gotoxy(41,8); printf(”%s“,stu[i].sex); gotoxy(52,8); printf(”%s“,stu[i].score); gotoxy(63,8); printf(”%s“,stu[i].address); } fclose(fp); getch(); clrscr(); if(j==3)/*当输入为3,删除某个学生的信息*/ { h=h-1;/*表格少画一格*/ printf(”you want delete nth student,plese enter n= “); scanf(”%d“,&n); draw_board(SIZE+h);/*调用函数画表格*/ gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); for(m=n;m { strcpy(stu[m].stuNo,stu[m+1].stuNo); strcpy(stu[m].name,stu[m+1].name); strcpy(stu[m].sex,stu[m+1].sex); strcpy(stu[m].score,stu[m+1].score); strcpy(stu[m].address,stu[m+1].address); } for(i=0;i { fread(&stu_temp,sizeof(struct student),1,fp);个表格*/ gotoxy(7,4*(i+2)); printf(”%d“,i); gotoxy(17,4*(i+2)); printf(”%s“,stu[i].stuNo); gotoxy(29,4*(i+2)); printf(”%s“,stu[i].name); gotoxy(41,4*(i+2)); printf(”%s“,stu[i].sex); gotoxy(52,4*(i+2)); printf(”%s“,stu[i].score); gotoxy(63,4*(i+2)); printf(”%s“,stu[i].address); } fclose(fp); getch(); clrscr(); } if(j==4)/*当输入为4时,增加一个学生 {信息*/ h=h+1; printf(”you want insert nth student,plese enter n= “); scanf(”%d“,&n); for(m=n;m {息*/ strcpy(stu[m+1].stuNo,stu[m].stuNo); strcpy(stu[m+1].name,stu[m].name); strcpy(stu[m+1].sex,stu[m].sex); strcpy(stu[m+1].score,stu[m].score); strcpy(stu[m+1].address,stu[m].address); } draw_board(1);/*调用函数画表格*/ gotoxy(7,4*2); printf(”%d“,n); gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); gotoxy(17,8);/*输入一个新学生的 scanf(”%s“,&stu[n].stuNo);信息*/ gotoxy(29,8); scanf(”%s“,&stu[n].name); gotoxy(41,8); scanf(”%s“,&stu[n].sex); gotoxy(52,8); scanf(”%s“,&stu[n].score); gotoxy(63,8); scanf(”%s“,&stu[n].address); gotoxy(7,8); printf(”%d“,i); gotoxy(17,8); printf(”%s“,stu[n].stuNo); gotoxy(29,8); printf(”%s“,stu[n].name); gotoxy(41,8); printf(”%s“,stu[n].sex); gotoxy(52,8); printf(”%s“,stu[n].score); gotoxy(63,8); printf(”%s“,stu[n].address); clrscr(); draw_board(SIZE+h); gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); for(i=0;i { fread(&stu_temp,sizeof(struct student),1,fp);表格*/ gotoxy(7,4*(i+2)); printf(”%d“,i); gotoxy(17,4*(i+2)); printf(”%s“,stu[i].stuNo); gotoxy(29,4*(i+2)); printf(”%s“,stu[i].name); gotoxy(41,4*(i+2)); printf(”%s“,stu[i].sex); gotoxy(52,4*(i+2)); printf(”%s“,stu[i].score); gotoxy(63,4*(i+2)); printf(”%s“,stu[i].address); } fclose(fp); getch(); clrscr(); } if(j==5)/*当输入为5,修改某个学生 {信息*/ printf(”you want to modify nth student information,plese enter n= “); scanf(”%d“,&n); /*输入修改的学生的位置*/ draw_board(1); draw_board(1); gotoxy(7,4*2); printf(”%d“,n); gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); gotoxy(17,8); /*输入新的学生信息*/ scanf(”%s“,&stu[n].stuNo); gotoxy(29,8); scanf(”%s“,&stu[n].name); gotoxy(41,8); scanf(”%s“,&stu[n].sex); gotoxy(52,8); scanf(”%s“,&stu[n].score); gotoxy(63,8); scanf(”%s“,&stu[n].address); gotoxy(7,8); clrscr(); draw_board(SIZE); gotoxy(17,4); printf(”stuNo“); gotoxy(29,4); printf(”name“); gotoxy(41,4); printf(”sex“); gotoxy(52,4); printf(”score“); gotoxy(63,4); printf(”address“); for(i=0;i { fread(&stu_temp,sizeof(struct student),1,fp); gotoxy(7,4*(i+2)); printf(”%d“,i); gotoxy(17,4*(i+2)); printf(”%s“,stu[i].stuNo); gotoxy(29,4*(i+2)); printf(”%s“,stu[i].name); gotoxy(41,4*(i+2)); printf(”%s“,stu[i].sex); gotoxy(52,4*(i+2)); printf(”%s“,stu[i].score); gotoxy(63,4*(i+2)); printf(”%s",stu[i].address); } fclose(fp);/*关闭文件*/ getch();/*保留在这个界面上*/ clrscr();/*清屏*/ } } } #include //编号// char name[20]; //起点和终点// char time[5]; //出发时间// int price; //车票价格// int amount; //剩余数量// struct Node *next;}Node;//创建链表并输入数据// struct Node *creat(){ struct Node *head,*r,*s; int i=0; char choice; head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;r=head;do { s=(struct Node *)malloc(sizeof(struct Node));s->next=NULL;printf(“请输入第%d种火车票的信息:n”,++i);printf(“请输入火车的编号:”); scanf(“%d”,&s->num); printf(“起点和终点:”);scanf(“%s”,s->name);printf(“出发时间:”);scanf(“%s”,s->time);printf(“车票价格:”);scanf(“%d”,&s->price);printf(“剩余数量:”);scanf(“%d”,&s->amount); r->next=s; r=s; printf(“Continue?(Y/N)”);scanf(“%s”,&choice);}while(choice=='Y'||choice=='y'); r->next=NULL;return(head);} //将单链表中的信息保存到文件1.txt中// void save(struct Node *h){ struct Node *s;FILE *fp; char filename[10]=“1.txt”; fp=fopen(“1.txt”,“wt”);if(fp==NULL){ printf(“n写文件出错,按任意键退出!”);getchar();exit(1);} for(s=h->next;s!=NULL;s=s->next) fprintf(fp,“%d %s %s %d %d n”,s->num,s->name,s->time,s->price,s->amount); getchar();fclose(fp);} // 从文件1.txt中读取信息并存入单链表中// struct Node *read(){ struct Node *head,*r,*s;FILE *fp;char filename[10]=“zl.txt”;fp=fopen(“1.txt”,“rt”);if(fp==NULL){ printf(“读文件错误,按任意键退出!”);getchar();exit(1);} head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;r=head;while(!feof(fp)){ s=(struct Node *)malloc(sizeof(struct Node));fscanf(fp,“%d %s %s %d %d”,&s->num,s->name,s->time,&s->price,&s->amount); r->next=s;r=s; } r->next=NULL;fclose(fp); return head;} //将链表中的数据输出// void print(struct Node *h){ struct Node *s; printf(“n火车票信息如下:n”); printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n”);printf(“编号 起点和终点 出发时间 车票价格 剩余票数:n”); for(s=h->next;s->next!=NULL;s=s->next){ printf(“ %d %10s %5s %10d %6dn”,s->num,s->name,s->time,s->price,s->amount);} } //链表查询// struct Node * find(struct Node *h){ int i,j;char s[20];printf(“tt 查询方法有以下几种:n”);printf(“tt 1.火车票编号n”);printf(“tt 2.起点和终点n”);printf(“tt 3.出发时间n”);printf(“tt 4.车票价格n”);printf(“tt 5.剩余票数n”);printf(“请输入您要查询的方法的序号:”);scanf(“%d”,&i);switch(i){ case 1:printf(“请输入你要查询火车票的编号:”);scanf(“%d”,&j); while(h->next!=NULL) { h=h->next; if(h->num==j)return h; } return NULL;break;case 2:printf(“请输入您要查询火车票的起点和终点:”);scanf(“%s”,s);while(h->next!=NULL){ h=h->next;if(strcmp(h->name,s)==0) return h; } return NULL;break;case 3:printf(“请输入您要查询火车票的时间:”); scanf(“%s”,s); while(h->next!=NULL) { h=h->next; if(strcmp(h->time,s)==0) return h; } return NULL; break;case 4:printf(“请输入你要查询火车票的价格 :”);scanf(“%d”,&j); while(h->next!=NULL) { h=h->next; if(h->price==j) return h; } return NULL; break;case 5:printf(“请输入你要查询火车票的剩余票数:”);scanf(“%d”,&j); while(h->next!=NULL) { h=h->next; if(h->amount==j) return h; } return NULL; break;} } //修改信息// change(struct Node *h,int k){ int j;struct Node *p;p=find(h);printf(“------------n”);printf(“t 您要修改哪一项?n”);printf(“t 1.火车编号n”);printf(“t 2.起点和终点n”);printf(“t 3.出发时间n”);printf(“t 4.车票价格n”); printf(“t 5.剩余票数n”);printf(“t 0.退出系统n”); printf(“------------n”);printf(“请输入您要修改项的编号:”);scanf(“%d”,&j);switch(j) { case 1: printf(“修改后的火车编号:”); scanf(“%d”,&p->num); break; case 2: printf(“修改后的起点和终点:”); scanf(“%s”,p->name); break; case 3: printf(“修改后的出发时间:”); scanf(“%s”,p->time); break; case 4: printf(“修改后的车票价格:”); scanf(“%d”,&p->price); break; case 5: printf(“修改后的剩余票数:”); scanf(“%d”,&p->amount); break; case 0:break;} } //删除信息// delete(struct Node *h){ struct Node *p; int j; printf(“请输入您要删除的火车票的编号:”);scanf(“%d”,&j);p=h->next; if(p==NULL) return 0;while(p!=NULL){ if(p->num==j){ h->next=p->next; free(p); return 1;} h=p;p=p->next; } return 0;} //添加信息// void append(){ struct Node *p; FILE *fp; fp=fopen(“1.txt”,“at+”); if(fp==NULL) { printf(“写文件出错,按任意键返回.n”);getchar();exit(1); } printf(“请输入要添加的火车票的信息:火车编号,起点和终点,出发时间,车票价格,剩余票数:n”);scanf(“%d%s%s%d%d”,&p->num,p->name,p->time,&p->price,&p->amount);fprintf(fp,“%d %s %s %d %dn”,p->num,p->name,p->time,p->price,p->amount);getchar();fclose(fp);} //数据的统计// void count(struct Node *h){ struct Node *s;s=h;int i,j,k,n=0;printf(“*****************************************************************************n”); printf(“tt 请选择您要统计项目的序号:n”); printf(“tt 1.车票价格n”); printf(“tt 2.剩余票数n”);printf(“tt 0.退出界面n”); scanf(“%d”,&i);switch(i) { case 1: printf(“请输入您要统计车票的价格的标准:”); scanf(“%d”,&j); printf(“tt 请选择低于或高于标准:n”); printf(“tt 1.价格低于%d的个数n”,j); printf(“tt 2.价格高于%d的个数n”,j); scanf(“%d”,&k); if(k==1) { for(s=h->next;s->next!=NULL;s=s->next) if(s->price n++; printf(“车票价格低于%d的个数有%d个.n”,j,n); } else { for(s=h->next;s->next!=NULL;s=s->next) if(s->price>j) n++; printf(“车票价格低于%d的个数有%d个.n”,j,n); } break; case 2: printf(“请输入您要统计剩余票数的数量:”); scanf(“%d”,&j); printf(“tt 请选择低于或高于所输票数:n”); printf(“tt 1.票数低于%d的个数n”,j); printf(“tt 2.票数高于%d的个数n”,j); scanf(“%d”,&k); if(k==1) { for(s=h->next;s->next!=NULL;s=s->next) if(s->amount n++; printf(“剩余票数低于%d的个数有%d个.n”,j,n); } else { for(s=h->next;s->next!=NULL;s=s->next) if(s->amount>j) n++; printf(“剩余票数高于%d的个数有%d个.n”,j,n); } break; case 0:break; } } //保存用户和密码到文件2.txt中// void save_user(){ char file[10]=“2.txt”;FILE *fp;char name[20];char pwd[10];fp=fopen(“2.txt”,“at+”);if(fp==NULL){ printf(“n写文件出错,按任意键退出.n”); getchar();exit(1);} printf(“请输入用户名:”); scanf(“%s”,name);printf(“请输入密码:”); scanf(“%s”,pwd); fprintf(fp,“%s %sn”,name,pwd); getchar(); fclose(fp); printf(“用户注册成功!n”);} //检验用户和密码是否匹配// int check(char *name,char *pwd){ char name1[20];char pwd1[10];FILE *fp;char file[10]=“2.txt”;if((fp=fopen(“2.txt”,“rt”))==NULL){ printf(“读文件出错,按任意键退出!n”); getchar(); exit(1);} while(!feof(fp)){ fscanf(fp,“%s %s”,name1,pwd1); if(strcmp(name1,name)==0&&strcmp(pwd1,pwd)==0) return 1;} return 0;} //数据排序// void sort(struct Node *h){ struct Node *s,*p,*m,*n;int t,t1,t2,t3;char s1[20];char s2[10]; printf(“车票价格由小到大排序如下:n”);for(s=h->next;s->next!=NULL;s=s->next)for(p=s->next;p->next!=NULL;p=p->next) if(s->price>p->price) { t1=s->num;s->num=p->num;p->num=t1; t2=s->price;s->price=p->price;p->price=t2; t3=s->amount;s->amount=p->amount;p->amount=t3; strcpy(s1,s->name);strcpy(s->name,p->name);strcpy(p->name,s1); strcpy(s2,s->time);strcpy(s->time,p->time);strcpy(p->time,s2); } print(h);printf(“nn剩余车票数量由多到少排序如下:n”);for(s=h->next;s->next!=NULL;s=s->next) for(p=s->next;p->next!=NULL;p=p->next) if(s->amount amount) { t1=s->num;s->num=p->num;p->num=t1; t2=s->price;s->price=p->price;p->price=t2; t3=s->amount;s->amount=p->amount;p->amount=t3; strcpy(s1,s->name);strcpy(s->name,p->name);strcpy(p->name,s1); strcpy(s2,s->time);strcpy(s->time,p->time);strcpy(p->time,s2); } print(h);} void main(){ struct Node *head,*p;int i,j,k;head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;char name[20];char pwd[10];printf(“n***************欢迎进入火车票管理系统******************n”);printf(“tt 1.用户登录n”);printf(“tt 2.用户注册n”);printf(“tt 0.退出系统 n”);printf(“请输入所选序号:”);scanf(“%d”,&k); switch(k){ case 1: printf(“请输入用户名:”); scanf(“%s”,name); printf(“请输入密码:”); scanf(“%s”,pwd); if(check(name,pwd)) { printf(“密码正确.n”); do { printf(“nntt*********************欢迎进入火车票管理系统***********************n”); printf(“tt 1.录入火车票信息tt 2.添加火车票信息n”); printf(“tt 3.修改火车票信息tt 4.删除火车票信息n”); printf(“tt 5.打印火车票信息tt 6.查询火车票信息n”); printf(“tt 7.统计火车票信息tt 8.火车票销售排行n”); printf(“tt 0.退出系统n”); printf(“请输入您要进入菜单的序号(0-8):”); scanf(“%d”,&i); switch(i) { case 1: printf(“请录入火车票信息nn”); head=creat(); save(head); head=read(); break; case 2: append(); break; case 3: printf(“请输入您要修改的火车票的编号:”); scanf(“%d”,&j); change(head,j); save(head); break; case 4: head=read(); if(delete(head)) { printf(“已正确删除!n”); save(head); } else printf(“要删除的结点不存在!n”); break; case 5: head=read(); print(head); break; case 6: printf(“请输入您要查询火车票的编号(以0结束):”); scanf(“%d”,&j); { p=find(head); printf(“编号 起点和终点 出发时间 车票价格 剩余票数:n”); printf(“%d %10s %5s %10d %6dn”,p->num,p->name,p->time,p->price,p->amount); printf(“请继续输入序号(以0结束):”); scanf(“%d”,&j); } break; case 7: head=read();count(head);break; case 8: sort(head);break; case 0: printf(“************************用!*****************************n”);break; } }while(i!=0); } else printf(“密码错误或用户名不存在.n”); break;case 2:save_user();break;case 0:break;} 谢 谢 使 #include string name;};class Student:public Person { public: Student(string n,int num,string ss):Person(n),number(num),address(add),str1(ss){} virtual void show(); void input_stu(); void display_stu(); void display_qu(); ~Student(){} protected: string str1; int number; string address;};void Student::show(){ cout<<“向老师提出的问题是:”;cin>>str1;} void Student::display_qu(){ cout< void Student::input_stu(){ cin>>Student::name;cin>>Student::number;cin>>Student::address;} void Student::display_stu(){ add,string cout<<“姓名:”< Teacher(string n,string sub,string sdf):Person(n),subject(sub),str2(sdf){} virtual void show(); void input_t(); void display_t(); void display_an(); ~Teacher(){} protected: string subject; string str2;};void Teacher::display_an(){ cout< void Teacher::show(){ cout<<“我的回答是:”;cin>>str2;} void Teacher::input_t(){ cin>>Teacher::name;cin>>Teacher::subject;} void Teacher::display_t(){ cout<<“姓名:”< Admin(string n,int tel,string ssfs):Person(n),telphone(tel),str3(ssfs){} virtual void show(); void input_ad(); void display_ad(); void display_gg(); ~Admin(){} protected: int telphone; string str3;};void Admin::display_gg(){ cout<<“公告:”;cout< void Admin::show(){ cout<<“公告是:”;cin>>str3;} void Admin::input_ad(){ cin>>Admin::name;cin>>Admin::telphone;} void Admin::display_ad(){ cout<<“姓名是:”< int main(){ int z,h,m;z=0;h=0;m=0; Student stu(“guochun”,20150311,“qlu”,“sdss”); Teacher tea(“cuiyu”,“math”,“dsdf”); Admin ad(“steve jobs”,178641,“sdfs”); while(1) { int x; cout<<“*******************”< cout<<“1.学生”< cout<<“2.教师”< cout<<“3.管理员”< cout<<“*******************”< cout<<“选择你的身份”< cin>>x; if(x<=0||x>3) cout<<“输入错误!”< else { switch(x) { case 1: cout<<“请选择你要干什么”< case 1:stu.display_stu();break; case 2:stu.input_stu(); } cout<<“修改后的个人信息为:”< { stu.Student::show(); z=1;} break; } break; case 2: cout<<“请选择你要干什么”< cout<<“学生有问题提问”< ad.display_gg();} cout<<“___________________”< cout<<“发生错误!”;else { switch(q) { case 1:tea.display_t();break; case 2:tea.input_t(); cout<<“修改后的个人信息为:”< tea.display_t();break; case 3: { if(z==1) { cout<<“学生的问题是:”; stu.display_qu(); tea.Teacher::show(); h=1; } } break; } } break; case 3: cout<<“请选择你要干什么”< cout<<“___________________”< cout<<“1.显示个人信息”< cout<<“发生错误!”; else { switch(l) { case 1:ad.display_ad();break; case 2:ad.input_ad(); cout<<“修改后的个人信息为:”< ad.display_ad();break; case 3: { ad.Admin::show(); m=1; } break; } } break; } } } return 0;} #include //包含access函数的头文件 #define N 9999 //定义最多的航班数 #define PRINT “%dtt%stt%stt星期%stt%dn ”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式 struct air //定义结构体数组 { int num; //定义航班号 char start[20];//航班起始站 char over[20];//终点站 char time[10];//飞行时间 int count; //机票数量 }s[N]; int i,m=0; //定义全局变量 char ii[10]; void add();//函数声明增加航班信息函数 void print(); //显示航班信息 void search();//查找航班信息 void dingpiao();//订票业务 void tuipiao();//退票 void read();//读取文件 void save();//保存文件 void output();//输出格式 void paixu();//航班排序 void chushihua();//系统初始化 void build();//建立数据文件 void paixu1();//按航班号从小到大排序 void paixu2();//从大到小 void main()//主函数 { int j; chushihua();//系统初始化判断是否存在原始数据文件 printf(“ 欢迎使用飞机订票系统n”);//打印出系统主界面 do { printf(“================================== ”); printf(“1.增加航班信息n” “t2.浏览航班信息n” “tt3.查找航班信息(按航班号)tt╮(╯_╰)╭n” “ttt4.航班排序(按航班号)n” “tttt5.订票业务n” “to(︶︿︶)ottt6.退票业务n” “tttttt0.退出n”);printf(“================================== ”); printf(“请在0-6中选择以回车键结束: ”);scanf(“%d”,&j);switch(j){ case 1: add();//调用增加航班函数 break; case 2:print();//调用显示模块 break; case 3:search();//调用查找模块 break; case 4:paixu();//调用排序函数 break; case 5:dingpiao();//调用订票模块 break; case 6:tuipiao();//调用退票模块 break; case 0: //退出系统 save(); printf(“谢谢使用,再见!”); break;} }while(j!=0);//判断是否调用其他函数 } void chushihua()//定义系统初始化函数 { if(access(“hangban.dat”,0)){ build();} else read();} void build()//定义建立数据文件函数 { FILE *fp;//定义文件指针 if((fp=fopen(“hangban.dat”,“wb”))==NULL)//打开文件并判定是否出错 { printf(“创建文件失败!”);//打印出错提示 getchar(); return;} printf(“请依次输入航班信息(以回车键结束):n”); //打印提示信息 printf(“------------n”);for(i=0;i printf(“请输入航班号: ”); scanf(“%d”,&s[i].num);//输入航班号 printf(“请输入起始站: ”); scanf(“%s”,s[i].start);//输入起始站 printf(“请输入终点站: ”); scanf(“%s”,s[i].over);//输入终点站 printf(“请输入时间(星期几): ”); scanf(“%s”,s[i].time);//输入时间 printf(“请输入机票数: ”); scanf(“%d”,&s[i].count);//输入机票数 fwrite(&s[i],sizeof(struct air),1,fp); m++; printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”); scanf(“%s”,ii); if(strcmp(ii,“y”)!=0) //判断是否继续添加航班信息 { fclose(fp); //关闭文件 return; } } } void read() //定义读取文件函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“r”))==NULL){ printf(“创建文件失败!”); getchar(); return;} i=0;while(!feof(fp)){ fread(&s[i],sizeof(struct air),1,fp);//逐块读取数据 i++; m++;//计算存在航班数 } m--;fclose(fp);} void save()//定义保存函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“wb”))==NULL) { printf(“创建文件失败!”); getchar(); return;} for(i=0;i //逐块保存数据 fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);} void add()//定义增加航班信息函数 { do{ printf(“请依次输入您要增加的航班信息(以回车键结束): n”); //打印提示信息 printf(“------------n”); printf(“请输入航班号: ”); scanf(“%d”,&s[m].num);//读取航班号 printf(“请输入起始站: ”); scanf(“%s”,s[m].start);//读取起始站 printf(“请输入终点站: ”); scanf(“%s”,s[m].over);//读取终点站 printf(“请输入时间: ”); scanf(“%s”,s[m].time);//读取时间 printf(“请输入机票数: ”); scanf(“%d”,&s[m].count);//读取机票数 m++; printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”); scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判断是否继续添加 } void output()//定义输出格式函数 { printf(“航班号tt起始站tt终点站tt时间tt机票数n”);//信息标题 for(i=0;i printf(PRINT);//打印出信息 } void print()//定义显示航班信息函数 { printf(“n目前我们有如下航班:n”);output(); //调用输出格式函数 printf(“n请按回车键返回上层菜单 ”);getchar();getchar();} void search()//定义查询函数 { int n; do { printf(“n请输入航班号: ”); scanf(“%d”,&n);//输入查询的航班号 for(i=0;i { if(s[i].num==n)//按航班号判定输出条件 { printf(“n您所查找的航班信息为:n ”); printf(“航班号tt起始站tt终点站tt时间tt机票数 nn”); printf(PRINT);//显示信息 printf(“n查询完毕,按回车键继续”); getchar(); getchar(); return; } } printf(“n对不起,没有您需要的信息!n ”);printf(“是否重新查找?请键入y或n以回车键结束 ”);scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判定是否重新查找 } void dingpiao()//定义订票业务函数 { int n;char a[10]=“y”;do { search();//调用查询模块 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能订票。n”);//未查找到所需航班 printf(“n请按回车键返回上层菜单 ”); getchar(); getchar(); strcpy(ii,“n”); break; } do { printf(“请输入您要订的机票数(以回车键结束): ”); scanf(“%d”,&n);//输入所订机票数 if(n<=0) //判定机票数是否出错 { printf(“输入错误!至少需订1张机票。n”); } else if(s[i].count==0)//判定机票是否售完 { printf(“对不起,你所选择的航班的机票已售完!n”); break; } else if(s[i].count!=0&&s[i].count>=n)//判定机票数是否大于等于订票数 { s[i].count=s[i].count-n; printf(“订票成功!”); break; } else if(s[i].count { printf(“对不起,你所选择的航班只剩 %d张机票n”, s[i].count); printf(“是否需要重新输入机票数?请输入y或n以回车键结束: ”);//判定是否重新输入订票数 scanf(“%s”,a); } }while(!strcmp(a,“y”)); printf(“是否需要订其他航班的机票?请输入y或n以回车键结束: ”); scanf(“%s”,a);}while(!strcmp(a,“y”));//判定是否继续订票 } void tuipiao()//定义退票函数 { int n;char a[10];do { search();//调用查询函数 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能退票。n”); printf(“n请按回车键返回上层菜单 ”); getchar(); getchar(); strcpy(ii,“n”); break; } printf(“请输入您要退的机票数目: ”); scanf(“%d”,&n);//输入所退票数 if(n<=0) //判定票数是否有效 printf(“输入错误!至少需退1张机票。”); else { s[i].count=s[i].count+n; printf(“退票成功!”); } printf(“是否继续? 请键入y或n以回车键结束: ”);//判定是否继续退票 scanf(“%s”,a);}while(!strcmp(a,“y”));//判定并跳出循环 } void paixu()//定义排序函数 { int n; printf(“n******************************************************************************** ”); printf(“1.按航班号从小到大排序n” “t2.按航班号从大到小排序n”);printf(“******************************************************************************** ”); printf(“请在1-2中选择以回车键结束: ”);scanf(“%d”,&n);//输入排序方式 switch(n){ case 1:paixu1();//调用从小到大排序函数 break; case 2:paixu2();//调用从大到小排序函数 break;} printf(“排序后的航班信息为:n”);output(); //显示排序后航班信息 printf(“n请按回车键返回上层菜单 ”); getchar(); getchar();} void paixu1()//定义从小到大排序函数 { int k,j;struct air t;for(i=0;i { k=i; for(j=i+1;j if(s[k].num>s[j].num) k=j; if(i!=k) { t=s[k]; s[k]=s[i]; s[i]=t; } } } void paixu2()//定义从大到小排序函数 { } int k,j;struct air t;for(i=0;i if(s[k].num k=j;if(i!=k){ t=s[k]; s[k]=s[i]; s[i]=t;} } 数据结构大作业 121279044 伍杨 数据结构大作业 图书管理系统 工程管理 121279044 伍杨 目录一、二、三、题目要求...................................................................2 总体设计...................................................................2 编码实现...................................................................3 1)定义图书结构体.......................................................3 2)登记操作...............................................................4 3)查看操作...............................................................8 4)删除操作.............................................................11 5)Main函数...........................................................20四、五、六、调试与测试..............................................................26 五心得体会..............................................................28 用户手册.................................................................28 数据结构大作业 121279044 伍杨 一、题目要求 1)目的要求 本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。2)题目要求 实现图书管理信息系统的设计。要求实现图书添加、显示全部图书、查询、借阅和归还。主要考查利用文件的操作! 二、总体设计 数据结构大作业 121279044 伍杨 三、编码实现 1)定义图书结构体 struct book{ char bookname[20]; //书名 int NO; //书编号 char type[20]; //类型 int date; //到书日期 };struct person{ char name[10]; //姓名 char classes[20]; //班级 int number; //学号 char telephone[12]; //联系电话 int NO; //书编号 char bookname[20]; //书名 int borrowdate; //借书日期 int returndate; //还书日期 数据结构大作业 121279044 伍杨 2)登记操作 void new_book(){ FILE *fp;struct book b;//登记新书 int i,j; printf(“请朱老师输入此次收到的书本总数:”);if((fp=fopen(“shuku.txt”,“a”))==NULL){ printf(“File open error!n”);exit(0);} scanf(“%d”,&i); for(j=0;j printf(“请朱老师输入书名:”);scanf(“%s”,b.bookname);fprintf(fp,“%s”,b.bookname);printf(“请朱老师输入书编号:”);scanf(“%d”,&b.NO);fprintf(fp,“ %d”,b.NO);printf(“请朱老师输入类型:”);scanf(“%s”,b.type); 数据结构大作业 121279044 伍杨 } } fprintf(fp,“ %s”,b.type);printf(“请朱老师输入到书日期:”);scanf(“%d”,&b.date);fprintf(fp,“ %d”,b.date);if(fclose(fp)){ } printf(“Can not close the file!n”);exit(0);void new_person() { FILE *fp;struct person p;char choice; //登记借书 if((fp=fopen(“jieshujilu.txt”,“a”))==NULL){ printf(“File open error!n”);exit(0);} 数据结构大作业 121279044 伍杨 printf(“请朱老师输入借书人姓名:”);scanf(“%s”,p.name);fprintf(fp,“%s”,p.name);printf(“请朱老师输入借书人班级:”);scanf(“%s”,p.classes);fprintf(fp,“ %s”,p.classes);printf(“请朱老师输入借书人学号:”);scanf(“%d”,&p.number);fprintf(fp,“ %d”,p.number);printf(“请朱老师输入借书人联系电话:”);scanf(“%s”,p.telephone);fprintf(fp,“ %s”,p.telephone);printf(“请朱老师输入书编号:”);scanf(“%d”,&p.NO);fprintf(fp,“ %d”,p.NO);printf(“请朱老师输入书名:”);scanf(“%s”,p.bookname);fprintf(fp,“ %s”,p.bookname);printf(“请朱老师输入借书日期:”);scanf(“%d”,&p.borrowdate);fprintf(fp,“ %d”,p.borrowdate); 数据结构大作业 121279044 伍杨 printf(“请朱老师输入还书日期:”);scanf(“%d”,&p.returndate);fprintf(fp,“ %d”,p.returndate);printf(“nt您想继续吗?(y/n)”);scanf(“ %c”,&choice);if(choice=='Y'||choice=='y'){ } system(“cls”);new_person();if(fclose(fp)){ } printf(“Can not close the file!n”);exit(0);}实现程序对文件的读取 void Read(){ int i=0;int j=0;ifstream in(“Libra.txt”,ios::out);in>>i; 数据结构大作业 121279044 伍杨 nt; } all=i;if(i>0&&i<=Max){ in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].coufor(j=1;j<=i;j++){ } } in.close(); 3)查看操作 v void see_book(){ FILE *fp;long NO;char bookname[20];char type[20];long date;//查看书库记录 数据结构大作业 121279044 伍杨 } if((fp=fopen(“shuku.txt”,“r”))==NULL){ } printf(“File open error!n”);exit(0);while(!feof(fp)){ fscanf(fp,“%s%ld%s%ld”,bookname,&NO,type,&date);printf(“%-10s %-10ld %-10s %ldn”,bookname,NO,type,date);};if(fclose(fp)){ } printf(“Can not close the file!n”);exit(0);void see_person(){ //查看所有借书记录 数据结构大作业 121279044 伍杨 FILE *fp;char name[10]; char classes[20]; int number;char telephone[20]; int NO; char bookname[20]; int borrowdate; int returndate; fscanf(fp,“%s %s %ld %s %ld %s %ld %ld”,name,classes,&number,telephonwhile(!feof(fp)){ if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){ } printf(“File open error!n”);exit(0);e,&NO,bookname,&borrowdate,&returndate);printf(“%-5s %-5s %ld %-5s %ld %-5s %ld %ldn”,name,classes,number,telephone,NO,bookname,borrowdate,returndate); 数据结构大作业 121279044 伍杨 } };if(fclose(fp)){ } printf(“Can not close the file!n”);exit(0); 4)删除操作 void delete_books() { int number;void deletebooks(); printf(“请输入您要删除的书编号:”);scanf(“%d”,&number);FILE *fp;struct book b; //删除旧书 数据结构大作业 121279044 伍杨 if((fp=fopen(“shuku.txt”,“r”))==NULL){ } printf(“不能打开此文件!n”);exit(0);while(!feof(fp)){ fscanf(fp,“%s %d %s %d”,b.bookname,&b.NO,b.type,&b.date); } if(b.NO==number){ } printf(“nnt***************图书信息*******************n”);printf(“nt图书书名:%25s”,b.bookname);printf(“nt----------”);printf(“nt图书编号:%25d”,b.NO);printf(“nt----------”);printf(“nt图书类型:%23s”,b.type);printf(“nt----------”);printf(“nt到书日期:%25d”,b.date);printf(“nt----------”); deletebooks(); 数据结构大作业 121279044 伍杨 } void deletebooks(){ while(!feof(fp)){ fscanf(fp,“%s %d %s %d”,b.bookname,&b.NO,b.type,&b.date);if((fp=fopen(“shuku.txt”,“r”))==NULL){ } if((fp1=fopen(“tempshuku.txt”,“w”))==NULL){ //建立一个临时文件 } printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);printf(“nn确认删除?请再次输入书编号:”);scanf(“%d”,&number);FILE *fp,*fp1,*fp2,*fp3;int number;struct book b; 数据结构大作业 121279044 伍杨 } if(b.NO==number)continue;else fprintf(fp1,“%s %d %s %d”,b.bookname,b.NO,b.type,b.date);fclose(fp);fclose(fp1);if((fp2=fopen(“tempshuku.txt”,“r”))==NULL){ } if((fp3=fopen(“shuku.txt”,“w”))==NULL){ //清空书库 } while(!feof(fp2)){ //将临时文件的内容写人源文件 } fscanf(fp2,“%s %d %s %d”,b.bookname,&b.NO,b.type,&b.date);fprintf(fp3,“%s %d %s %d”,b.bookname,b.NO,b.type,b.date);printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0); 数据结构大作业 121279044 伍杨 } void delete_returnbook(){ if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){ } printf(“不能打开此文件!n”);exit(0);printf(“n请输入所还书本的书编号:”);scanf(“%d”,&numbers);FILE *fp;int numbers;struct person p;void deletereturnbook();char choice;printf(“n 删除成功!n”);fclose(fp2);fclose(fp3); //删除借书记录 数据结构大作业 121279044 伍杨 while(!feof(fp)){ fscanf(fp,“%s %s %ld %s %ld %s %ld %ld”,p.name,p.classes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate); if(p.NO==numbers){ printf(“nt***************图书信息*******************n”);printf(“nt借书人姓名:%20s”,p.name);printf(“nt----------”);printf(“nt借书人班级:%20s”,p.classes);printf(“nt----------”);printf(“nt借书人学号:%20d”,p.number);printf(“nt----------”);printf(“nt借书人联系电话:%20s”,p.telephone);printf(“nt----------”);printf(“nt图书编号:%24d”,p.NO);printf(“nt----------”);printf(“nt图书名称:%23s”,p.bookname);printf(“nt----------”);printf(“nt借书日期:%25d”,p.borrowdate);printf(“nt----------”);printf(“nt还书日期:%25d”,p.returndate); 数据结构大作业 121279044 伍杨 } } } printf(“nt----------”); deletereturnbook(); printf(“nt您想继续吗?(y/n)”);scanf(“ %c”,&choice);if(choice=='Y'||choice=='y'){ } system(“cls”);delete_returnbook();fclose(fp);void deletereturnbook(){ FILE *fp,*fp1,*fp2,*fp3;struct person p; int numbers;printf(“nn确认删除?请再次输入书编号:”); 数据结构大作业 121279044 伍杨 scanf(“%d”,&numbers);if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){ } if((fp1=fopen(“tempbook.txt”,“w”))==NULL){ } printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);while(!feof(fp)){ fscanf(fp,“%s %s %d %s %d %s %d %d”,p.name,p.classes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate); if(p.NO==numbers)continue;else fprintf(fp1,“%s %s %d %s %d %s %d %d”,p.name,p.classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdat 数据结构大作业 121279044 伍杨 e,p.returndate); fscanf(fp2,“%s %s %d %s %d %s %d %d”,p.name,p.classes,while(!feof(fp2)){ //将临时文件写人源文件 if((fp2=fopen(“tempbook.txt”,“r”))==NULL){ } if((fp3=fopen(“jieshujilu.txt”,“w”))==NULL){ } printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);fclose(fp);fclose(fp1);} &p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate); fprintf(fp3,“%s %s %d %s %d %s %d %d”,p.name,p.数据结构大作业 121279044 伍杨 classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate); } printf(“n 删除成功!n”);fclose(fp2);fclose(fp3);} 5)Main函数 int main(void){ do{ printf(“nnn 图书馆管理系统na”);printf(“ *******************************************************n”);int choice;char choice2;struct book;struct person; 数据结构大作业 121279044 伍杨 printf(“ ***朱老师您好吖********功能选项: 登记******请按1,******n”);printf(“ ******************************* 查看/查询*请按2 ******n”);printf(“ ******************************* 删除***** 请按3 ******n”);printf(“ ******************************* 退出***** 请按0 ******n”);printf(“ *******************************************************nnn”);printf(“ 请选择功能:”);scanf(“%d”,&choice);switch(choice){ case 1: printf(“ 登记选项:新书登记请按1,借书登记请按2,返回请按3n”);printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1: system(“cls”); //清屏 printf(“新书资料登记:nn”);new_book(); //新书登记 printf(“登记完毕!n”);printf(“n”);scanf(“ %c”,&choice2);system(“cls”);break; 数据结构大作业 121279044 伍杨 case 2: system(“cls”);printf(“借书资料登记:nn”);new_person(); //借书登记 printf(“n press anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3: } break;system(“cls”);break; case 2: printf(“ 查看/查询选项:书库查看请按1,总借书记录查看请按2,到期记录查询请按3,返回请按4n”); printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1: system(“cls”);printf(“欢迎朱老师进入书库!nn”); 数据结构大作业 121279044 伍杨 printf(“书名 书编号 类型 到书日期n”);printf(“-----------n”);see_book(); //书库显示 printf(“n press anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 2: system(“cls”);printf(“欢迎朱老师进入借书记录!nn”);printf(“姓名 班级 学号 联系电话 书编号 书名 借书日期 到书日期n”); printf(“-------------------------n”);see_person(); //借书记录显示 printf(“n press anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3: system(“cls”);search_person(); //显示符合记录 printf(“n press anykey ”); 数据结构大作业 121279044 伍杨 scanf(“ %c”,&choice2);system(“cls”);break;case 4: } break;system(“cls”);break;case 3: printf(“ 删除选项:旧书删除请按1,借书记录删除请按2,返回请按3n”); printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1: system(“cls”);delete_books(); //删除ing printf(“n press anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 2: 数据结构大作业 121279044 伍杨 } system(“cls”);delete_returnbook(); //删除ing printf(“n press anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3: } break;system(“cls”);break;case 0: } system(“cls”);}while(choice!= 0);return 0; 数据结构大作业 121279044 伍杨 四、调试与测试 主菜单 登记 数据结构大作业 121279044 伍杨 查看 删除 生成的文件内信息 数据结构大作业 121279044 伍杨五、五心得体会 经过这次大作业,我觉得代码的编写,最主要的的是编程思想,语言其实不是太重要,思路最重要! 六、用户手册 程序执行文件为 lib sys.exe,打开执行文件后按提示操作即可第二篇:C语言课程设计火车票系统源代码
第三篇:c++课程设计:教务管理系统源代码
第四篇:C语言课程设计——飞机订票系统源代码
第五篇:图书管理系统(含源代码)c语言_数据结构课程设计报告