报告软件工程课程设计实验报告-学生信息管理系统.doc 联系客服

发布时间 : 星期三 文章报告软件工程课程设计实验报告-学生信息管理系统.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*/ } }}}

课件