c語言課程設計,學生信息管理系統

C語言課程設計(上)

                                             學生信息管理系統

題目:
新生入學,需要管理學生信息,要求如下:

  1. 能夠通過鍵盤進行輸入學生的信息,比如:學生姓名,學號,性別,班級,專業,入學成績;
  2. 能夠通過鍵盤輸入要錄入的學生的個數;
  3. 能夠增加學生;
  4. 能夠刪除某一個或多個學生的所有信息;
  5. 能夠進行查找某個學生的所有信息;
  6. 能夠進行修改學生的信息;
  7. 能夠將學生的信息保存到文件中,並且可以將文件中的學生信息讀出;
  8. 能夠實現註冊賬號,密碼,並且能夠實現登錄…
    代碼如下;
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h> 
#include<conio.h>
#include<time.h>
struct student//先定義一個結構體數組 
{
 int num; 
 char name[20]; 
 int score;
 int banji;
 char xibie[20]; 
 struct student *next;//一個結構體指針 
};
void insert(struct student *head)//輸入學生信息 
{
 FILE *fp;//將學生信息直接寫到文件中
 int n;
 fp=fopen("D:\\wenjian.txt","w");
 struct student *l=head;
 struct student *p=head->next;//使用鏈表## 標題
 printf("請輸入你要輸入的學生的個數:");
 scanf("%d",&n);
 printf("\n");
 for(int i=1;i<=n;i++)
 {
  {
  struct student *p=(struct student *)malloc(sizeof(struct student));
  printf("請輸入該生的學號:");
  scanf("%d",&p->num);
     printf("請輸入該生的姓名:");
  scanf("%s",p->name);
  printf("請輸入該生的成績:");
  scanf("%d",&p->score);
  printf("請輸入該生的班級:"); 
  scanf("%d",&p->banji);
  printf("請輸入該生的系別:");
  scanf("%s",p->xibie);
  printf("\n\n");   
  p->next=NULL;
  l->next=p;
  l=l->next;
  }
  p=head->next;//返回頭 
  {
   fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
       fputs("\n",fp);
  }  
 }
 fclose(fp);
 system("cls");
 printf("     輸入完成!\n\n");
}
void add(struct student *head)//添加學生信息 
{
 FILE *fp;
 int n;
 fp=fopen("D:\\wenjian.txt","a+");
 struct student *l=head;
 while(l->next)
 l=l->next;
 printf("請輸入你要添加的學生的個數:");
 scanf("%d",&n);
 printf("\n");
  for(int i=1;i<=n;i++)
  {
     struct student *p=(struct student *)malloc(sizeof(struct student));
     printf("請輸入該生的學號:");
     scanf("%d",&p->num);
     printf("請輸入該生的姓名:");
     scanf("%s",p->name);
     printf("請輸入該生的成績:");
     scanf("%d",&p->score);
     printf("請輸入該生的班級:"); 
     scanf("%d",&p->banji);
     printf("請輸入該生的系別:");
     scanf("%s",p->xibie);
     printf("\n\n");   
     p->next=NULL;
     l->next=p;
     l=l->next;
  }
 l=head->next;   
 fclose(fp);
 fp=fopen("D:\\wenjian.txt","w");
 
 while(l!=NULL)
 {
  fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
   fputs("\n",fp);
     l=l->next;
    }
    fclose(fp);
 system("cls");
 printf("     添加完成!\n\n");
}
void daoru(struct student *head)//將文件導入鏈表 
{
 struct student *p=head;
 FILE *fp;
 int n;
 if((fp=fopen("D:\\wenjian.txt","r"))==NULL)
  {
   printf("文件打開失敗!\n");
   exit(0);
 }
  else
 {
   for(n=0;!feof(fp);n++)
     {
      struct student *q=(struct student *)malloc(sizeof(struct student));
   fscanf(fp,"%d\t%s\t%d\t%d\t%s\n",&q->num,q->name,&q->score,&q->banji,q->xibie);
   q->next=NULL;
   p->next=q;
   p=p->next;
     }
  }
 fclose(fp);
 system("cls");
}
void xianshi(struct student *head)//顯示學生信息 
{
 struct student *p=head;
 printf("************************************************************************************************************\n");
 printf("************************************************************************************************************\n");
 printf("************************    學號    ***    姓名       ***    成績    ***    班級   ***   系別   ************\n");
 while(p->next!=NULL)
 {
  printf("************************      %d     ***    %s     ***     %d    ***      %d    ***   %s   ************\n",p->next->num,p->next->name,p->next->score,p->next->banji,p->next->xibie);
  p=p->next;
 }
 printf("************************************************************************************************************\n");
 printf("************************************************************************************************************\n\n\n"); 
}
void delet_num(struct student *head)//通過學號進行刪除 
{
 struct student *p=head;
 FILE *fp;
 int ch;
 if((fp=fopen("D:\\wenjian.txt","r"))==NULL)
  {
   printf("文件打開失敗!\n");
   exit(0);
 }
 
 else
 { 
 int num2;
 int n=0;
 printf("請輸入你要刪除的學號:");
 scanf("%d",&num2);
  while(p->next!=NULL)
  {
    if(p->next->num==num2)
       {
           struct student *q;
               q=p->next;
               p->next=q->next;
               free(q);
               printf("刪除成功!\n\n");
               n++;
       }
       p=p->next;        
   } 
   if(n==0)
    {
     printf("沒有找到該學號!\n\n");
    }  
 }
 fclose(fp);
 fp=fopen("D:\\wenjian.txt","w");
 p=head->next;
 while(p!=NULL)
 {
  fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",p->num,p->name,p->score,p->banji,p->xibie);
   fputs("\n",fp);
     p=p->next;
    }
    fclose(fp);
 printf("\n");
}

本代碼未寫完,請看下一篇…
具體代碼可以訪問:
複製這段內容後打開百度網盤手機App,操作更方便哦 鏈接:https://pan.baidu.com/s/1SrdDdMoNiyP7srfCHIL3mA 提取碼:50xy

謝謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章