C语言课设学生籍贯信息记录簿(大作业)

2023-11-13

一、任务概述(文章仅供参考)

进一步掌握和利用C语言进行课程设计的能力;
进一步理解和运用结构化程序设计的思想和方法;
初步掌握开发一个小型实用系统的基本方法;

二、设计功能

1.创建信息链表并以磁盘文件保存;
2.读取磁盘文件并显示输出所有学生的籍贯信息;
3.按学号或姓名查询其籍贯;
4.按籍贯查询并输出该籍贯的所有学生;
5.能添加、删除和修改学生的籍贯信息

三、功能展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、思维导图

在这里插入图片描述

五、程序源码

#include "dos.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "math.h"
#include "string.h" 
/**********************建立链表******************************/
struct hj   
{ long number;
  char name[10],address[50];
  struct hj *next;
};
/********************文件操作函数******************************/
FILE *fp;
void openfile(char xx[20])
{
 
 fp=fopen(xx,"ab+");
 if(fp==NULL)
    fp=fopen(xx,"wb");
}
/**************录入信息函数***********************************/
void hjnew(void) 
{
 system("cls");
 int n=0;
 long xnumber;
 char xname[10];
 char xaddress[50];
 struct hj *head;
 struct hj *x1,*x2;
 head=NULL;
 x2=NULL;
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                          ★★★录入信息★★★\n");
 printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
 printf("\n                         请输入学号【15字内】:");
 scanf("%ld",&xnumber);
 if(xnumber==0)
  goto haha;
 printf("\n                         请输入姓名【10字内】:");
 scanf("%s",xname);
 printf("\n                         请输入籍贯【25字内】:");
 scanf("%s",xaddress);
    while(xnumber!=0)
 {
  n++;
  x1=(struct hj *)malloc(sizeof(struct hj));
  x1->number=xnumber; 
  strcpy(x1->name,xname);
  strcpy(x1->address,xaddress);
  if(n==1)
   head=x1;
  else
   x2->next=x1;
     x2=x1;
 printf("\n                         请输入学号【15字内】:");
 scanf("%ld",&xnumber);
 if(xnumber==0)
  break;
 printf("\n                         请输入姓名【10字内】:");
 scanf("%s",xname);
 printf("\n                         请输入籍贯【25字内】:");
 scanf("%s",xaddress);
 }
 x2->next=NULL;
 x1=head;
 while(x1!=NULL)
 {
  openfile("hj.txt");
  char d[5]="山西";
  fwrite(x1,sizeof(struct hj),1,fp);
  fclose(fp);
  
  if(strstr(x1->address,d)!=NULL)
  { 
   openfile("schj.txt");
   fwrite(x1,sizeof(struct hj),1,fp);
   fclose(fp);
  }
  else
  {
   openfile("qthj.txt");
   fwrite(x1,sizeof(struct hj),1,fp);
   fclose(fp);
  }
  x1=x1->next;
 }
 
haha:;
}
/*****************************查询函数*************************/
void hjxmselect(void) //按学号方式查询函数
{
ssmmx:
 int n=0;
 long hh;
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                        ★★★查询编辑信息★★★\n");
 printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
 printf("                         请您输入学号:");
 scanf("%ld",&hh);
 if(hh!=0)
 { 
  struct hj *p;
  struct hj *q=NULL,*head=NULL;
  fp=fopen("hj.txt","rb");
    if(fp==NULL)
  {
   printf("\n没有记录,请输入记录然后再查询!");
   getch();
   goto jjx;
  }
  while(!feof(fp))
  {
   n++;
   p=(struct hj *)malloc(sizeof(struct hj));
   fread(p,sizeof(struct hj),1,fp);
   if(n==1)
    head=p;
   else
    q->next=p;
   q=p;

  }
  q->next=NULL;
  p=head;
  while(p!=NULL)
  {
   if(p->number==hh)
   {   
    int a;
    printf("\n  结 果 →     学号=%ld   姓名=%s",p->number,p->name);
    printf("\n               地址=%s",p->address);
    printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询其他数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
ssmx:
    scanf("%d",&a);
    switch(a)
    { 
     void hjedit(struct hj *headd,struct hj *pp);
     void hjdelete(struct hj *headdd,struct hj *ss);
     case 1: hjedit(head,p);
       goto ssmmx;break;
     case 2: hjdelete(head,p);
       goto ssmmx;break;
     case 3: goto ssmmx;
     case 4: goto jjx;
     case 5:exit(0);
     default:printf("\n                        错误的选择,请重新选择:");
     goto ssmx;
    }
     }
   else
    p=p->next;
  }
  int iiii=0;
  printf("\n                         没有此记录 1.重新查询 2.返回上一页 3.退出程序!");
  printf("\n                         请选择:");
qqqq:
  scanf("%d",&iiii);
  switch(iiii)
  {
   case 1:  goto ssmmx;
   case 2:  goto jjx;
   case 3:  exit(0);
   default: printf("\n                        错误的选择,请重新选择:");
     goto qqqq;
  }
     goto jjx;
 }
jjx:;
}
void hjxhselect(void)//按姓名方式查询函数
{
ssmm:
 int n=0;
 char hh[10];
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                        ★★★查询编辑信息★★★\n");
 printf("\n                        〓提示输入0返回上级菜单〓\n\n\n");
 printf("                         请您输入姓名:");
 scanf("%s",hh);
 if(strcmp(hh,"0")!=0)
 { 
  struct hj *p;
  struct hj *q=NULL,*head=NULL;
  fp=fopen("hj.txt","rb");
  if(fp==NULL)
  {
   printf("\n没有记录,请输入记录然后再查询!");
   getch();
   goto jjj;
  }
  while(!feof(fp))
  {
   n++;
   p=(struct hj *)malloc(sizeof(struct hj));
   fread(p,sizeof(struct hj),1,fp);
   if(n==1)
    head=p;
   else
    q->next=p;
   q=p;
  }
  q->next=NULL;
  p=head;
        while(p!=NULL)
  {
   if(strcmp(p->name,hh)==0)
   {   
    int a;
    printf("\n  结 果 →     学号=%ld   姓名=%s  ",p->number,p->name);
    printf("\n               地址=%s",p->address);
    printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询其他数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
ssm:
    scanf("%d",&a);
    switch(a)
    { 
     void hjedit(struct hj *headd,struct hj *pp);
     void hjdelete(struct hj *headdd,struct hj *ss);
     case 1: hjedit(head,p);
       goto ssmm;break;
     case 2: hjdelete(head,p);
       goto ssmm;break;
     case 3: goto ssmm;
     case 4: goto jjj;
     case 5:exit(0);
     default:printf("\n                        错误的选择,请重新选择:");
     goto ssm;
    }
     }
   else
    p=p->next;
  }
  int iii=0;
  printf("\n                         没有此记录 1.重新查询 2.返回上一页 3.退出程序!");
  printf("\n                         请选择:");
qqq:
  scanf("%d",&iii);
  switch(iii)
  {
   case 1:  goto ssmm;
   case 2:  goto jjj;
   case 3:  exit(0);
   default: printf("\n                        错误的选择,请重新选择:");
     goto qqq;
  }
     goto jjj;
 }
jjj:  ;
}
void hjjgselect(void)//按籍贯方式查询
{
yyy: 
 int i;
    system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                      ★★★籍贯方式查询信息★★★\n\n\n");
 printf("\n                         一  显示所有信息\n");
 printf("\n                         二  显示山西籍所有信息\n");
 printf("\n                         三  显示其它籍所有信息\n");
 printf("\n                         四  自定义查询信息\n");
 printf("\n                         五  ←返回上级菜单\n");
 printf("\n                         六  ↓退出程序\n");
 printf("\n\n                          请选择:");
 scanf("%d",&i);
 switch(i)
 { void zdyselect(void);
  void allselect(char a[8]);
  case 1:allselect("hj.txt");
       goto yyy;break;
  case 2: allselect("schj.txt");
    goto yyy;break;
  case 3: allselect("qthj.txt");
    goto yyy;break;
  case 4: zdyselect();
  case 5: break;
  case 6: exit(0);
 }
}
void zdyselect(void)
{ 
ssmmz:
 int n=0,j=0;
 char hh[10];
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                        ★★★自定义查询信息★★★\n\n\n");
 printf("                         请您输入地址关键字:");
    scanf("%s",hh);
 if(strcmp(hh,"0")!=0)
 { 
  struct hj *p;
  struct hj *q=NULL,*head=NULL;
  fp=fopen("hj.txt","rb");
  
  if(fp==NULL)
  {
   printf("\n       没有记录,请输入记录然后再查询!");
   getch();
   goto jjz;
  }
  while(!feof(fp))
  {
   n++;
   p=(struct hj *)malloc(sizeof(struct hj));
   fread(p,sizeof(struct hj),1,fp);
   if(n==1)
    head=p;
   else
    q->next=p;
   q=p;
  }
  q->next=NULL;
  p=head;

  while(p!=NULL)
  {
   
   if(strstr(p->address,hh)!=NULL)
   {   
    
    int a;
    j++;
    printf("\n  结 果 →     学号=%ld   姓名=%s  ",p->number,p->name);
    printf("\n               地址=%s",p->address);
    printf("\n\n  操 作 →    ⑴更改数据  ⑵删除数据  ⑶查询下一条数据  ⑷返回上页  ⑸退出程序\n\n  请您选择操作:");
ssmz:
    scanf("%d",&a);
    switch(a)
    { 
     void hjedit(struct hj *headd,struct hj *pp);
     void hjdelete(struct hj *headdd,struct hj *ss);
     case 1: hjedit(head,p);
       goto ssmmz;break;
     case 2: hjdelete(head,p);
       goto ssmmz;break;
     case 3: p=p->next;continue;
     case 4: goto jjz;
     case 5:exit(0);
     default:printf("\n                        错误的选择,请重新选择:");
     goto ssmz;
    }
    p=p->next;
   }
   else
    p=p->next;
  }
  if(j==0)
  {
   printf("\n\n\n没有匹配的记录 按任意键继续!");
   getch();
   fclose(fp);
   goto ssmmz;
  }
  else
  { int xx;
   printf("\n\n查询完毕!    ⑴  继续查询  ⑵  返回上一级菜单  ⑶   退出程序");
   printf("\n请选择:");
   scanf("%d",&xx);
   if(xx==2)
    goto jjz;
   else if(xx==3)
    exit(0);
    
  }
  goto ssmmz;
jjz:  ;
 }
 
}
void allselect(char a[8])//全部查询
{
 int n=0;

 int k=0;
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                        ★★★籍贯方式信息★★★\n\n\n");
 
    struct hj *p;

 struct hj *q=NULL,*head=NULL;
 fp=fopen(a,"rb");
 if(fp==NULL)
 {
  printf("\n对不起,没有记录无法查询!");
  goto xxxx;
 }
 rewind(fp);
 while(!feof(fp))
 {
   n++;
   p=(struct hj *)malloc(sizeof(struct hj));
   fread(p,sizeof(struct hj),1,fp);
   if(n==1)
    head=p;
   else
    q->next=p;
   q=p;

 }

 q->next=NULL;
    struct hj *h1,*p2,*q3,*r4,*s5;
 h1=p2=(hj *)malloc(sizeof(struct hj));
 p2->next=head;
 
 while(p2->next!=NULL) 
 { 
  q3=p2->next; 
  r4=p2; 
  while(q3->next!=NULL) 
  { 
   if(q3->next->number<p2->next->number) 
   r4=q3; 
   q3=q3->next; 
  } 
  if(r4!=p2) 
  { 
   s5=r4->next; 
   r4->next=s5->next; 
   s5->next=p2->next; 
   p2->next=s5; 
  } 
  p2=p2->next; 
 } 
 head=h1->next->next; 
 free(h1); 
    p=head;
 while(p!=NULL&&n>0)
 {
  n--;
  printf("\n学号=%ld  姓名=%s",p->number,p->name);
  printf("\n地址=%s",p->address);
        p=p->next;
 }
xxxx:
 printf("\n→显示完毕←\n⑴ ↑返回上级菜单   ⑵ ↓退出程序 \n请 选 择 :");
xxx:
 scanf("%d",&n);
 switch(n)
 {
  case 1:break;
  case 2:exit(0);
  default:printf("\n错误的选择,请重新选择:");
    goto xxx;
 }
}
void hjselect(void)//查询编辑信息函数
{ 
cxbegin:
 int a;
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                        ★★★查询编辑信息★★★\n\n\n");
 printf("\n                         一    按学号方式查询\n");
 printf("\n                         二    按姓名方式查询\n");
 printf("\n                         三    按籍贯方式查询\n");
 printf("\n                         四    →显示全部信息\n");
 printf("\n                         五    ←返回上级菜单\n");
 printf("\n                         请 选 择 查 询 方 式:");
cxmm:
 scanf("%d",&a);
 switch(a)
 { 
  case 1: hjxmselect();goto cxbegin;break;
  case 2: hjxhselect();goto cxbegin;break;
  case 3: hjjgselect();goto cxbegin;break;
  case 4: allselect("hj.txt");goto cxbegin;break;
  case 5: break;
  default:printf("\n错误的选择,请重新选择:");
       goto cxmm;
 }
}
void hjde(void)//删除界面函数
{
cxxbegin:
 int a;
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n");
 printf("\n                          ★★★删除信息★★★\n\n\n");
 printf("\n                         一    按学号方式删除\n");
 printf("\n                         二    按姓名方式删除\n");
 printf("\n                         三    按籍贯方式删除\n");
 printf("\n                         四    →删除全部信息\n");
 printf("\n                         五    ←返回上级菜单\n");
 printf("\n                         请 选 择 删 除 方 式:");
cxxmm:
 scanf("%d",&a);
 int i=0;
 switch(a)
 { 
  case 1: hjxmselect();goto cxxbegin;break;
  case 2: hjxhselect();goto cxxbegin;break;
  case 3: zdyselect();goto cxxbegin;break;
  case 4:  
     fp=fopen("hj.txt","wb");
     if(fp!=NULL)
      i++;
     fp=fopen("schj.txt","wb");
     if(fp!=NULL)
      i++;
     fp=fopen("qthj.txt","wb");
     if(fp!=NULL)
      i++;
     if(i==3)
     {
      printf("\n                         全部数据已经删除!!!!!!敲任意键继续");
      getch();
     }
     goto cxxbegin;break;
  case 5: break;
  default:printf("\n错误的选择,请重新选择:");
       goto cxxmm;
 }
}
//==============删除函数接口===============
void hjdelete(struct hj *headdd,struct hj *ss)
{
 struct hj *q;
 char d[5]="山西";
 if(headdd==ss)
 {
  headdd=headdd->next;
  goto gogo;
 }
 q=headdd;
 while(q!=NULL)
 {
  if(q->next->number==ss->number)
  { 
             break;
  }
  q=q->next;
 }
    q->next=ss->next;
gogo:
 q=headdd;
    fp=fopen("hj.txt","wb");
 while(q!=NULL)
 {
  
  fwrite(q,sizeof(struct hj),1,fp);
  q=q->next;
 }
 fclose(fp);
 q=headdd;
 fp=fopen("schj.txt","wb");
 while(q!=NULL)
    {
  if(strstr(q->address,d)!=NULL)
  { 
   fwrite(q,sizeof(struct hj),1,fp);
  }
  q=q->next;
 }
 fclose(fp);
 q=headdd;
 fp=fopen("qthj.txt","wb");
 while(q!=NULL)
    {
  if(strstr(q->address,d)==NULL)
  { 
   fwrite(q,sizeof(struct hj),1,fp);
  }
  q=q->next;
 }
 fclose(fp);

}
//===============编辑函数接口==============
void hjedit(struct hj *headd,struct hj *pp)
{
 int n=0;
 struct hj *p,*p1,*p2;
 char d[5]="江苏";
 printf("\n  输 入 →    学号=");
 scanf("%ld",&pp->number);
 printf("\n              姓名=");
 scanf("%s",pp->name);
 printf("\n              地址=");
 scanf("%s",pp->address);
 p=headd;
 fp=fopen("hj.txt","wb");
 while(p!=NULL)
 {
  
  fwrite(p,sizeof(struct hj),1,fp);
  p=p->next;
 }
 fclose(fp);
 p1=headd;
 fp=fopen("schj.txt","wb");
 while(p1!=NULL)
    {
  if(strstr(p1->address,d)!=NULL)
  { 

   fwrite(p1,sizeof(struct hj),1,fp);
      
  }
  p1=p1->next;
 }
 fclose(fp);
 p2=headd;
 fp=fopen("qthj.txt","wb");
 while(p2!=NULL)
    {
  if(strstr(p2->address,d)==NULL)
  { 
   fwrite(p2,sizeof(struct hj),1,fp);
  }
  p2=p2->next;
 }
 fclose(fp);
}
/**************************主函数***********************/
int main(int argc, char* argv[])
{   
begin: 
    int t;
 system("cls");
 printf("\n                ★★★★★欢迎使用户籍管理系统★★★★★\n\n\n\n\n");
 printf("                        一 录入学生籍贯信息\n\n");
 printf("                        二 查编学生籍贯信息\n\n");
 printf("                        三 删除学生籍贯信息\n\n");
 printf("                        四 退出程序\n\n");
 printf("                        请您选择:");
mm: 
 scanf("%d",&t);
 switch(t)
 { 
  case 1: hjnew();break;
  case 2: hjselect();break;
  case 3: hjde();break;
  case 4:exit(0);
  default:printf("\n                        错误的选择,请重新选择:");
       goto mm;
 }
 goto begin;
    return 0;
} 

大家可以点个关注后续会持续更新0.0(在此先谢过各位了)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言课设学生籍贯信息记录簿(大作业) 的相关文章

随机推荐

  • 2023年MathorCup 高校数学建模挑战赛-A 题 量子计算机在信用评分卡组合优化中的应用-思路详解(模型代码答案)

    一 题目简析 运筹优化类题目 不同于目标规划 该题限制了必须使用量子退火算法QUBO来进行建模与求解 本身题目并不难 但是该模型较生僻 给出的参考文献需要耗费大量时间去钻研 建议擅长运筹类题目且建模能力强的队伍选择 二 逐问思路分享 问题
  • 连续子序列最大最小值差额最大化

    本文为最近做过的一道编程笔试题 代码实现方式多种多样 此处本人提供的代码可以获得正确解 仅供大家参考 目录 一 题目描述 二 实现代码程序 三 测试结果截图 一 题目描述 题目描述 Mike在一家律师事务所工作 他的老板Harvey分配给他
  • Git vscode-git ssh新建和验证

    在push本地仓库遇到的SSH公钥认证问题 Warning Permanently added github com xx xxx xxx xxx ECDSA to the list of known hosts git github co
  • 牛客网基础语法1~10题

    牛客网基础语法1 10题 前言 今天是咱们第一期刷牛客网上的题目 目标 掌握基础编程 打牢基础知识 有一定的编程思想 鸡汤 读不在三更五鼓 功只怕一曝十寒 先干为敬 大家随意 第一题 include
  • tensorflow报错raise RuntimeError('The Session graph is empty.  Add operations to the ' RuntimeError:

    tensorflow报错raise RuntimeError The Session graph is empty Add operations to the RuntimeError The Session graph is empty
  • 3.5安装ideay、快捷键

    注册账号 网址 https www jetbrains com 绑定激活码 网址 https www jetbrains com store redeem Alt Enter 快速补全 Ctrl shift O 清理导包 去除无用的包 Ct
  • Android Alarm闹钟API使用心得

    前言 有什么办法可以在不打开App的时候 也能够触发一些操作呢 比如说发送通知 解决这个需求的办法有很多种选择 比如说官方推荐的WorkManager API 可以在后台执行一次性 耗时 定时的任务 但WorkManager是严格遵循电池优
  • MySQL配置了主从,重启步骤

    停应用 gt 停数据库 先备后主 gt 启数据库 先主后备 gt 启应用 关闭MySQL从库 在从库操作 a 先查看当前的主从同步状态 show slave status G 看是否双yes b 执行stop slave c 停止从库服务
  • CUDA与已有的VS项目结合

    先新建一个简单的控制台应用程序 项目名称为Test00301 如下图所示 然后在项目中新建一个名为Test01 cu文件 如下图所示 然后在解决方案资源管理器中选择该项目并点击右键 在弹出的菜单中选择 生成自定义 如下图所示 在弹出的 Vi
  • 关于Selenium WebDriver的geckodriver

    Selenium作为网站UI测试利器 为黑盒功能测试人员所喜爱 下载Selenium的最新版本地址 http selenium release storage googleapis com index html 友情提示 如果一直下载不了
  • 【IDEA】windows、mac下IDEA下载的驱动包在哪

    1 概述 因为我们是内外网分离的 内网不连接网络 因此在内网的IDEA下载驱动包的的时候 遇到问题 然后因为不知道需要什么样的驱动包 然后就先在外网找了一下 然后在拷贝到内网 打算这么做 mac 下 System Volumes Data
  • flutter混编ios打包生成ipa文件

    项目场景 flutter集成到原有ios项目上 将项目打包生成ipa文件 在通过爱思助手或者分发服务器分发安装 解决方案 1 在flutter module项目路径下 通过以下命令打包 其中 no codesign表示不使用证书签名 后续会
  • AvalonJs入门二 复选框全选反选+layui分页

    前言 今天给大家带来初识Avalon的第二篇文章 复选框的全选操作和Avalon layUI的分页 Demo1 神奇的全选反选 Avalon的双工绑定duplex和监听事件 watch 第一篇文章的第一个例子大家是否还记得 文本框输入什么内
  • Vue.js之事件的绑定(v-on: 或者 @ )

    1 Vue js事件绑定的一般格式 v on click function v on click mouseout mouseover click 2 Vue js事件绑定的实现 2 1 JavaScript代码
  • STM32 使用HAL库实现微秒级长延时

    STM32 使用HAL库实现微秒级长延时 背景 定时器初始化 主程序中的设计 背景 STM32 HAL库中有一个延时函数HAL Delay 可以实现毫秒级的延时 能够满足一般延时需求 在有些场合下 我们需要更精准的延时 同时可能会有较长时间
  • 智慧校园小程序-微信小程序毕业设计(附下载链接)

    2023年微信小程序毕业设计 智慧校园 点我下载项目资源 智慧校园小程序 校园是一个充满创造力和活力的地方 教育和互联网发展向纵深发展 智慧校园小程序开发是当前校园建设中不可或缺的互联网工具 通过智慧校园小程序 可以整合更多的校园服务基础设
  • 2022年油价的暴涨让你意识到了什么?

    2022年才刚刚开始 油价便以迅雷不及掩耳之势快速上涨几次 从本月3月3日24时起 油价上升之窗开启 从全国来看 92号汽油每升上涨0 2元 95号汽油每升上涨0 22元 0号柴油也不甘落后也每升上涨0 22元 而近几天国际原油价格上升幅度
  • 【目标检测】33、AutoAssign:Differentiable Label Assignment for Dense Object Detection

    文章目录 一 背景 二 方法 2 1 Prior level Center Weighting 2 2 Instance level Confidence Weighting 2 3 Loss 三 效果 论文 AutoAssign Diff
  • Oracle 10g RAC Dataguard Faileover

    环境 1 Oracle 10g RAC Oracle 10g RAC Dataguard最大性能模式配置 2 rac1 rac2 Primary Database 3 vmrac1 vmrac2 Physical Standby Datab
  • C语言课设学生籍贯信息记录簿(大作业)

    一 任务概述 文章仅供参考 进一步掌握和利用C语言进行课程设计的能力 进一步理解和运用结构化程序设计的思想和方法 初步掌握开发一个小型实用系统的基本方法 二 设计功能 1 创建信息链表并以磁盘文件保存 2 读取磁盘文件并显示输出所有学生的籍