发布时间 : 星期三 文章报告软件工程课程设计实验报告-学生信息管理系统.doc更新完毕开始阅读939484cbacf8941ea76e58fafab069dc50224795
专业课件 saveflag=1; }
void Save(Link l) /*数据存盘,若用户没有专门进行此操作且对数据有修改,在退出系统时, 会提示用户存盘*/ {
FILE *fp; Node *p; int count=0;
fp=fopen(\以只写方式打开二进制文件*/ if(fp==NULL) /*打开文件失败*/ {
printf(\ getchar(); return ; }
p=l->next;
while(p) {
if(fwrite(p,sizeof(Node),1,fp)==1)/*每次写一条记录或一个节点信息至文件*/ {
p=p->next; count++; } else
break; }
if(count>0) {
getchar();
printf(\file complete,total saved's record number is:%d\\n\ getchar(); saveflag=0; } else {
system(\
printf(\ getchar(); }
fclose(fp); /*关闭此文件*/ }
课件
专业课件 int main(void) {
Link l; /*定义链表*/ FILE *fp; /*文件指针*/
int select; /*保存选择结果变量*/ char ch; /*保存(y,Y,n,N)*/
int count=0; /*保存文件中的记录条数*/ Node *p,*r; /*定义记录指针变量*/
l=(Node*)malloc(sizeof(Node)); if(!l) {
printf(\ return ; }
l->next=NULL; r=l;
fp=fopen(\/*以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件*/ if(fp==NULL) {
printf(\ exit(0); }
while(!feof(fp)) {
p=(Node*)malloc(sizeof(Node)); if(!p) {
printf(\ exit(0); }
if(fread(p,sizeof(Node),1,fp)==1) /*一次从文件中读取一条学生成绩记录*/ {
p->next=NULL; r->next=p; r=p; count++; } }
fclose(fp); /*关闭文件*/
printf(\
课件
专业课件 menuchoice();
scanf(\ if(select == 1) {
menu(); while(1) {
system(\ menu(); */
1*/
} }
p=r;
printf(\ Please Enter your choice(0~9):\ /*显示提示信息scanf(\if(select==0) {
if(saveflag==1) /*若对链表的数据有修改且未进行存盘操作,则此标志为 {
getchar();
printf(\ scanf(\ if(ch=='y'||ch=='Y') Save(l); }
printf(\ getchar(); break; } switch(select) {
case 1:Add(l);break; /*增加学生记录*/ case 2:Del(l);break; /*删除学生记录*/ case 3:Qur(l);break; /*查询学生记录*/ case 4:Modify(l);break; /*修改学生记录*/ case 5:Insert(l);break; /*插入学生记录*/ case 6:Tongji(l);break; /*统计学生记录*/ case 7:Sort(l);break; /*排序学生记录*/ case 8:Save(l);break; /*保存学生记录*/
case 9:system(\ /*显示学生记录*/
default: Wrong();getchar();break; /*按键有误,必须为数值0-9*/ } 课件
专业课件 else {
menustudent(); while(1) {
system(\ menustudent(); p=r;
printf(\ Please Enter your choice(0 or 3):\ /*显示提示信息*/
scanf(\
if(select==0) {
if(saveflag==1) /*若对链表的数据有修改且未进行存盘操作,则此标志为1*/
{
getchar();
printf(\ scanf(\ if(ch=='y'||ch=='Y') Save(l); }
printf(\ getchar(); break; }
switch(select) {
case 3:Qur(l);break; /*查询学生记录*/
default: Wrong();getchar();break; /*按键有误,必须为数值0-9*/ } }}}
课件