ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:28.37KB ,
资源ID:12089529      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12089529.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c语言课程设计报告---学生信息管理系统.docx)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c语言课程设计报告---学生信息管理系统.docx

1、题目:学生信息管理系统 一、需求分析 任务要求: 自学C语言中有关链表及外部文件得内容,设计学生信息管理系统。具体要求如下: ◆ 建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容; ◆ 能够提供添加、删除和修改学生信息等功能; ◆ 能将通讯录保存在文件中; ◆ 能够按指定方式输出学生信息。 系统功能需求分析: ★ 1、为存储学生信息,需定义一个结构体类型,成员名字、性别、年龄、学号、系别、家庭信息等,并建立链表,定义该结构体类型得指针,用于指向各结点; ★ 2、分别建立具有添加、删除、修改、查询等功能得子函数,完成相应功能,对程序实现模块化。这其中要用

2、到对链表得删除、插入等知识。删除时用一结构体指针指向链表得第一个结点,检查该节点得值就就是否等于输入得要删除得学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。 ★3、为实现存储功能,需用到文件得相关函数,打开文件,将添加、修改或删除得信息存入磁盘中。 ★4、为以表格得形式输出文件,宏定义格式化输出语句,指定输出学生信息。 二、概要设计 系统总体设计框架:    对程序进行模块化,建立添加、修改、删除、查找和显示功能得子函数,各子函数中运用链表存储数据。从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。 系统功能模块图:

3、        主菜单 学生形象查询 学生信息添加 学生信息删除 学生信息添加 就是否保存 关闭文件 三、详细设计 主要功能模块得算法设计思路如下: 1、查询通讯录信息(void chakan()) (1)为开辟一个新单元 (2)输入查询关键字: (3)读取保存得文件数据输入ASCLL字符: (4)在链表中寻找相应结点; (5)调用输出函数,输出结点信息。 2、添加信息函数(void add()) (1)定义指向结构体变量得指针; (2)移动指针,找到插入结点; (3)在要插入得结点输入信息; (4)调

4、用保存函数,打开文件,保存输入信息。 3、删除信息函数(void del()) (1)定义指向结构体变量得指针; (2)用指针检验链表中就就是否有记录,若没记录,返回主函数; (3)根据要修改得编号查找要删除得结点; (4)修改链表,删除对应结点。 4、修改信息函数(void xiugai()) (1)定义指向结构体变量得指针; (2)读取保存得文件数据输入ASCLL字符: (3)用指针检验链表中就就是否有记录,若没记录,返回主函数; (4)根据要修改得编号查找对应结点; (5)修改信息; (6)打开文件,保存修改记录。 5、保存信息函数(baocun())

5、 (1)定义指向结构体变量得指针; (2)用文件指针指向要读写得磁盘文件名,若没有则新建此文件名: (3)用指针检验链表中就就是否有记录,若没记录,返回主函数: (4)打开文件,保存记录: 6、屏幕操作函数(void stubent187()) (1)以一定格式输出所想要得图形: 四、主要源程序代码 定义变量:(对整个程序定义全局变量) #include "stdio、h" #include "conio、h" #define STUDENT ID /*所有STUDENT都用ID来代替*/  typedef struct node   

6、   /*定义结构体*/    { char ming[50];        /*名字*/    char xing[50];        /*性别*/      char nian[50];                  /*年龄*/    int  xuehao;             /*学号*/          char xibie[50];       

7、/*专业*/    char sushe[50];        /*宿舍号*/       char jia[50];      /*家庭地址*/     struct node *next;     }ID;  /*学生信息(变量名)*/ ID *head=NULL;    /*定义一个头指针*/ FILE *zhi;             /*定义一个文件指针*/ 主菜

8、单界面:(进入屏幕界面得形式) void stubent187() /*屏幕格式函数*/   {  printf("****************************************\n"); printf("*     学生信息管理系统        *\n"); printf("*                        *\n");   printf("*    请选择:1:查看; 2:添加; 3:删除;    *\n");  printf("*   

9、     4:修改; 0:退出系统     *\n");  printf("*                *\n"); printf("*******************************************\n");   printf(">>>>>>>>>>>>>输入 0~4 数字<<<<<<<<<<<<<\n");    return ; } 查看学生信息记录:(对以保存在磁盘文件得学生信息进行查询) void chakan()  {        

10、   /* 查看*/ ID *t;    t=head;   t=(ID *)malloc(sizeof(ID)); /*为t开辟一个新单元*/     if((zhi=fopen("yihu1、txt","rb"))==NULL) printf("没有此文件\n");   else   { printf("%10s%10s%10s%10s%10s%10s%10s\n","ming","xing","nian","xuehao","eng","sushe","jia");    /*输出一个屏幕格式*/   

11、  while (!feof(zhi))         {   fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t->ming,&t->xing,&t->nian,&t->xuehao,&t->xibie,&t->sushe,&t->jia);     /*读取保存得文件数据输入ASCLL字符:*/     printf("%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t->xibie,t->sushe,t->jia);

12、 /*以这形式输出各个学生信息*/   t->next=(ID *)malloc(sizeof(ID));t=t->next;   }   }; } 添加学生信息记录:() void add()    { char i;               /*添加*/  ID *t1,*t2;     t1=t2=NULL;   loop:   t1=(ID *)malloc(sizeof(ID));  /*为t1开辟一个新单元*/ printf("请输入

13、姓名:");scanf("%s",&t1->ming); /* 姓名 */     printf("请输入性别:");scanf("%s",&t1->xing);  /* 性别 */ printf("请输入年龄:");scanf("%s",&(t1->nian));   /* 年龄 */   printf("请输入学号:");scanf("%d",&(t1->xuehao));  /* 学号 */    printf("请输入系别:");scanf("%s",&(t1->xibie));    /*系别*/    print

14、f("请输入宿舍号:");scanf("%s",&(t1->sushe));  /*宿舍号*/     printf("请输入家庭地址:");scanf("%s",&(t1->jia));  /*家庭地址*/    t1->next=NULL;   if (head==NULL)             /*如果头结点为空*/   { head=t1;         /*t1指向头结点*/    t2=t1;     }    else {     t2=head;   while (

15、t2->next!=NULL) t2=t2->next;   /*没有成立则指向下个结点*/     t2->next=t1;     } getchar();   printf("就就是否继续添加(Y/N):\n");   scanf("%s",&i); /*输入Y/N*/   if(i=='y'||i=='Y')    {clrscr(); goto loop;     /*  清屏  在 循环*/        }   else {printf("就就是否保存此次添加(Y/N)\n");scanf

16、"%s",&i);     if(i=='y'||i=='Y') /*就就是否要保存*/           {baocun();    /*调用保存*/            clrscr();   /*清屏*/        stubent187();/*调用屏幕函数*/             printf("保存成功");         }          else

17、  if(i=='n'||i=='N')            {               clrscr();   /*清屏*/           stubent187();}     /*调用屏幕函数*/       } return ; } 删除学生信息操作:(对以存得学生信息进行删除) void del()   {            /*删除*/    ID *A,*B;

18、 /*定义指针*/   char t,i;int xuehao;     /*定义整型变量与字符型变量*/    A=B=NULL;    if((zhi=fopen("yihu1、txt","a+"))==NULL) printf("没有此信息文件\n");   else {  loop: printf("请输入要删除得学生学号:");scanf("%d",&xuehao);         while (!feof(zhi))      { fscanf(zhi,"%10s%10s%10s%10d%1

19、0s%10s%10s\n",&A->ming,&A->xing,&A->nian,&A->xuehao,&A->xibie,&A->sushe,&A->jia); /*读取保存得文件数据输入ASCLL字符:*/            if(A!=NULL && A->xuehao!=xuehao)            A=A->next;           else break;        }       if (A->xuehao==xuehao)       

20、    { head=A->next;        free(*A);       printf("成功!\n");         printf("就就是否继续删除(Y/N)");scanf("%s",&i);              if(i=='y'||i=='Y')               {clrscr(); goto loop;                }          if(i=='n'|

21、i=='N')          printf("就就是否保存此次删除(Y/N)\n");scanf("%s",&i);            if(i=='y'||i=='Y')         baocun();              else               clrscr();                  stubent187();      

22、 }          else printf("无法找到此编号\n");     } } 修改学生信息操作:(对保存得学生信息进行修改)  void xiugai()    {                /*修改*/ ID *t1,*t2;       /*定义指针*/   int i;char xuehao;       /*定义整型变量与字符型变量*/    t1=head; if((zhi=fopen("yihu1、txt"

23、"a+"))==NULL) printf("没有此信息文件\n"); loop: printf("请输入要修改得学号:");scanf("%s",&xuehao);   /* 输入编号*/   while (!feof(zhi))   {fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t1->ming,&t1->xing,&t1->nian,&t1->xuehao,&t1->xibie,&t1->sushe,&t1->jia); *读取保存得文件数据输入ASCLL字符:*/         

24、 if(t1!=NULL && t1->xuehao!=xuehao)            t1=t1->next;          else break;        }         if (t1->xuehao==xuehao)       {   fprintf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",t1->ming,t1->xing,t1->nian,t1->xuehao,t1->xibie,t1->sushe,t1->jia);   printf("

25、输入名字:");scanf("%s",&t1->ming);     /*名字*/     printf("输入性别:");scanf("%s",&(t1->xing));    /*性别*/   printf("输入年龄:");scanf("%s",&(t1->nian));   /*年龄*/   printf("输入学号:");scanf("%s",&t1->xuehao);     /*学号*/ printf("输入系别:");scanf("%s",&(t1->xibie));   /*系别*/

26、                         printf("输入专业:");scanf("%s",&(t1->sushe));      /* 宿舍号 */       printf("输入家庭地址:");scanf("%s",&(t1->jia));        /* 家庭地址*/        printf("成功!\n");            printf("就就是否继续修改(Y/N)");scanf("%d",&i);           if(i==

27、'y'||i=='Y')           {clrscr(); goto loop;             }         if(i=='n'||i=='N')          printf("就就是否保存此次修改(Y/N)\n");scanf("%c",&i);         if(i=='y'||i=='Y')           baocun();    

28、  else            clrscr();    /*清屏*/               stubent187(); /*调用屏幕函数*/        }          else  printf("没有此编号\n");    return;   } 保存添加,删除,修改学生得信息:(操作过后就就是否保存) baocun()           /*保存*/   {    

29、ID *t=head;       /*定义指针*/ zhi=fopen("yihu1、txt","a+"); /*(读写 yihu、txt文本) */   while (t!=NULL){        fprintf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t->xibie,t->sushe,t->jia);     /*以zhi为文件指针保存*/      t=t->next;  } fclo

30、se(zhi);               /*关闭此文件*/ printf("成功!\n");        return ;  } 主菜单操作:(选择所需要得操作) main()   /*主函数*/ {   int i;     /*定义整形变量i*/ stubent187(); /*调用屏幕函数*/  while(1)    {     scanf("%d",&i);  /*输入要执行得操作*/       switch(i)     

31、   { case 1:chakan();break;    /*调用查看函数*/             case 2:add();break;    /*调用添加函数*/       case 3:del();break;   /*调用删除函数*/          case 4:xiugai();break;    /*调用修改函数*/              case 0:exit(0);     /*结束*/    

32、     default:printf("输入错误,请在此输入\n");continue;      }   /*输入不就就是0~4得,则返回*/       } } Ⅰ源函数代码: void chakan()  {           /* 查看*/ ID *t;    t=head;     t=(ID *)malloc(sizeof(ID)); /*为t开辟一个新单元*/ if((zhi=fopen("yihu1、txt","rb

33、"))==NULL) printf("没有此文件\n");   else   { printf("%10s%10s%10s%10s%10s%10s%10s\n","ming","xing","nian","xuehao","eng","sushe","jia");   /*输出一个屏幕格式*/     while (!feof(zhi)) {   fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t->ming,&t->xing,&t->nian,&t->xuehao,&t->xibie

34、&t->sushe,&t->jia);    /*读取保存得文件数据输入ASCLL字符:*/         printf("%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t->xibie,t->sushe,t->jia);   /*以这形式输出各个学生信息*/    t->next=(ID *)malloc(sizeof(ID));t=t->next;    }   }; } void add() {   char i

35、                  /*添加*/    ID *t1,*t2;   t1=t2=NULL; loop: t1=(ID *)malloc(sizeof(ID));      /*为t1开辟一个新单元*/      printf("请输入姓名:");scanf("%s",&t1->ming);   /* 姓名 */   printf("请输入性别:");scanf("%s",&t1->xing);  /* 性别 */   printf("请输入年龄:");scanf("%s",

36、&(t1->nian));    /* 年龄 */ printf("请输入学号:");scanf("%d",&(t1->xuehao)); /* 学号  */ printf("请输入系别:");scanf("%s",&(t1->xibie));  /*系别*/   printf("请输入宿舍号:");scanf("%s",&(t1->sushe));  /*宿舍号*/    printf("请输入家庭地址:");scanf("%s",&(t1->jia));  /*家庭地址*/   t1->next=NULL; if (he

37、ad==NULL)       /*如果头结点为空*/    { head=t1;         /*t1指向头结点*/        t2=t1;    }     else {     t2=head;       while (t2->next!=NULL) t2=t2->next;   /*没有成立则指向下个结点*/    t2->next=t1;    } getchar();   printf("就就是否继续添加(Y/N):\n"); scanf("%s

38、",&i);   /*输入Y/N*/   if(i=='y'||i=='Y')      {clrscr(); goto loop;     /* 清屏 在 循环*/     }   else {printf("就就是否保存此次添加(Y/N)\n");scanf("%s",&i);           if(i=='y'||i=='Y')    /*就就是否要保存*/       {baocun();     /*调用保存*/      

39、clrscr();   /*清屏*/         stubent187();/*调用屏幕函数*/           printf("保存成功");          }       else  if(i=='n'||i=='N')             {              clrscr();    /*清屏*/                 stubent18

40、7();} /*调用屏幕函数*/      } return ; } void del()  {              /*删除*/    ID *A,*B;       /*定义指针*/  char t,i;int xuehao;      /*定义整型变量与字符型变量*/   A=B=NULL;    if((zhi=fopen("yihu1、txt","a+"))==NULL) printf("没有此信息文件\n"); else  {

41、  loop: printf("请输入要删除得学生学号:");scanf("%d",&xuehao);         while (!feof(zhi))         {   fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&A->ming,&A->xing,&A->nian,&A->xuehao,&A->xibie,&A->sushe,&A->jia); /*读取保存得文件数据输入ASCLL字符:*/           if(A!=NULL && A->xuehao!=xuehao)   

42、       A=A->next;           else break;      }         if (A->xuehao==xuehao)       {   head=A->next;        free(*A);            printf("成功!\n");            printf("就就是否继续删除(Y/N)");scanf("%s",&i);     

43、     if(i=='y'||i=='Y')       {clrscr(); goto loop;            }           if(i=='n'||i=='N')          printf("就就是否保存此次删除(Y/N)\n");scanf("%s",&i);      if(i=='y'||i=='Y')               baocun();

44、         else              clrscr();                stubent187();         }            else  printf("无法找到此编号\n");   }   } void xiugai() {                           /*修改*/    ID *t1,*t2;  

45、   /*定义指针*/    int i;char xuehao;    /*定义整型变量与字符型变量*/   t1=head;    if((zhi=fopen("yihu1、txt","a+"))==NULL) printf("没有此信息文件\n"); loop:   printf("请输入要修改得学号:");scanf("%s",&xuehao); /* 输入编号*/   while (!feof(zhi))          {fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t1->min

46、g,&t1->xing,&t1->nian,&t1->xuehao,&t1->xibie,&t1->sushe,&t1->jia); *读取保存得文件数据输入ASCLL字符:*/            if(t1!=NULL && t1->xuehao!=xuehao)        t1=t1->next;          else break;       }     if (t1->xuehao==xuehao)            {   fprintf(zhi,"%10s%

47、10s%10s%10d%10s%10s%10s\n",t1->ming,t1->xing,t1->nian,t1->xuehao,t1->xibie,t1->sushe,t1->jia);   printf("输入名字:");scanf("%s",&t1->ming);       /*名字*/   printf("输入性别:");scanf("%s",&(t1->xing));       /*性别*/       printf("输入年龄:");scanf("%s",&(t1->nian));   /*年龄*/     print

48、f("输入学号:");scanf("%s",&t1->xuehao);   /*学号*/   printf("输入系别:");scanf("%s",&(t1->xibie)); /*系别*/                  printf("输入专业:");scanf("%s",&(t1->sushe));   /* 宿舍号 */        printf("输入家庭地址:");scanf("%s",&(t1->jia));     /* 家庭地址*/      

49、      printf("成功!\n");             printf("就就是否继续修改(Y/N)");scanf("%d",&i);           if(i=='y'||i=='Y')      {clrscr(); goto loop;               }              if(i=='n'||i=='N')        printf("就就是否保存此次修改(Y/N)\n");scanf("%c",&

50、i);           if(i=='y'||i=='Y')                  baocun();             else                  clrscr();   /*清屏*/                     stubent187();   /*调用屏幕函数*/     }   else  printf("没有此编号\n");  

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服