c語言信息系統,c語言程序管理系統

本文目錄一覽:

c語言編寫學生信息管理系統

/*好吧,其實你可以上網看看,那麼多的,你可以自己修改下*/

#include stdio.h

#include malloc.h

#include string.h

#include stdlib.h

#define NULL 0

#define LEN sizeof(struct student)

struct student

{

char name[20];

long int num;

char sex[4];

int age;

char address[30];

double tele_num;

char aihao[20];

struct student *next;

};//定義一個結構題

int TOTAL_NUM = 0;//學生總數

struct student *head = NULL;

void welcome (); //歡迎界面

void mainmenu (); //主界面

void record (); //記錄數據

void insert(struct student *stu); //插入數據

void display(struct student *stu); //顯示一個學生的信息

void displayAll (); //顯示所有學生的信息

void query_by_num (); //按學號查詢學生信息

void readData (); //讀取文件里學生的信息

void writeData (); //向文件寫入學生信息

void freeAll (); //清空鏈表內容

void del (); //刪除學生信息

void change (); //更改學生信息

void devise (struct student *p); //選擇更改內容

int main (void)

{

welcome ();

//顯示主菜單

mainmenu ();

return 0;

}

//顯示歡迎信息

void welcome ()

{

printf (“+—————————————————-+\n”);

printf (“| |\n”);

printf (“| 歡迎使用網路工程學院信息安全092班學生信息管理系統 |\n”);

printf (“| |\n”);

printf (“+—————————————————-+\n”);

}

//系統主菜單

void mainmenu ()

{

int choice;

choice = -1;

readData ();

printf (“\n溫馨提示:為保證您的操作得到保存,請按正常順序退出系統^_^\n”);

do

{

printf (“\n\n\n”);

printf (“\t\t\t——————————————–\n”);

printf (“\t\t\t+ 信息安全092班學生信息管理系統 |\n”);

printf (“\t\t\t——————————————–\n”);

printf (“\t\t\t+ [1]—-錄入學生信息 |\n”);

printf (“\t\t\t+ [2]—-瀏覽學生信息 |\n”);

printf (“\t\t\t+ [3]—-查詢學生信息 |\n”);

printf (“\t\t\t+ [4]—-刪除學生信息 |\n”);

printf (“\t\t\t+ [5]—-修改學生信息 |\n”);

printf (“\t\t\t+ [0]—-退出系統 |\n”);

printf (“\t\t\t+*·*·*·*·*·*·*·*·*·*·*·*·*·*·*|\n”);

printf (“\t\t\t——————————————–\n”);

printf (“請輸入您的選擇:”);

scanf (“%d”, choice);

switch (choice)

{

case 0:

writeData ();

freeAll ();

exit (0);

case 1:

record ();

break;

case 2:

displayAll ();

break;

case 3:

query_by_num ();

break;

case 4:

del ();

break;

case 5:

change ();

break;

default:

printf (“\n無效選項!”);

break;

}

}

while (choice != 0);

}

//錄入學生信息

void record ()

{

struct student *p0;

p0 = (struct student *)malloc(LEN);

printf (“請輸入學生的姓名:”);

scanf (“%s”,p0-name);

printf (“請輸入學生的學號:”);

scanf (“%ld”,p0-num);

printf (“請輸入學生的性別:”);

scanf (“%s”,p0-sex);

printf (“請輸入學生的年齡:”);

scanf (“%d”,p0-age);

printf (“請輸入學生的地址:”);

scanf (“%s”,p0-address);

printf (“請輸入學生的電話:”);

scanf (“%lf”,p0-tele_num);

printf (“請輸入學生的愛好:”);

scanf (“%s”,p0-aihao);

insert (p0);

printf (“該學生的信息為:\n”);

printf (“——————————————————————————-\n”);

printf (“姓名\t學號\t\t年齡\t性別\t地址\t\t電話\t\t愛好\n”);

display (p0);

}

void insert (struct student *stu)

{

struct student *p0, *p1, *p2;

p1 = head;

p0 = stu;

if (head == NULL)

{

head = p0;

p0-next = NULL;

}

else

{

while ((p0-num p1-num)(p1-next != NULL))

{

p2 = p1;

p1 = p1-next;

}

if (p0-num = p1-num)

{

if (head == p1)

head = p0;

else

p2-next = p0;

p0-next = p1;

}

else

{

p1-next = p0;

p0-next = NULL;

}

}

TOTAL_NUM++;

}

void display (struct student *p)

{

printf (“%s\t%ld\t%d\t%s\t%s\t\t%.0f\t%s\n”, p-name, p-num, p-age, p-sex, p-address, p-tele_num, p-aihao);

}

//瀏覽學生信息

void displayAll()

{

struct student *p;

printf(“學生總數:%d\n”, TOTAL_NUM);

p = head;

if (head != NULL)

{

printf(“\n姓名\t學號\t\t年齡\t性別\t地址\t\t電話\t\t愛好\n”);

printf(“——————————————————————————-\n”);

do

{

display(p);

p = p-next;

}

while(p != NULL);

}

printf (“\n”);

}

//按學號查詢學生信息

void query_by_num ()

{

int num;

struct student *p1;

printf(“請輸入學生的學號:”);

scanf(“%ld”, num);

if(head==NULL)

{

printf(“無學生記錄!\n”);

return;

}

p1 = head;

while (num!=p1-num p1-next!=NULL)

p1 = p1-next;

if (num == p1-num)

{

printf (“姓名\t學號\t\t年齡\t性別\t地址\t\t電話\t\t愛好\n”);

printf (“——————————————————————————-\n”);

display (p1);

}

else

printf (“沒有該學生記錄,請核對!”);

}

//寫入文件

void writeData ()

{

FILE* fp;//文件指針

struct student *p;

fp = fopen(“1.txt”, “w”);

if (!fp)

{

printf(“文件打開錯誤!”);

return;

}

fprintf(fp,”%d\n”, TOTAL_NUM);

for(p = head; p!= NULL; p= p-next)

{

fprintf(fp,”%s\t%ld\t%s\t%d\t%s\t%.0f\t%s\n”, p-name, p-num, p-sex, p-age, p-address, p-tele_num, p-aihao);

}

fclose (fp);

}

void freeAll ()

{

struct student *p1, *p2;

p1 = p2=head;

while(p1)

{

p2=p1-next;

free (p1);

p1 = p2;

}

}

//讀取文件

void readData ()

{

FILE* fp;//文件指針

struct student *p1, *p2;

fp = fopen(“1.txt”, “r”);

if (!fp)

{

printf(“文件打開錯誤!”);

return;

}

fscanf(fp,”%d\n”, TOTAL_NUM);

head = p1 = p2 = (struct student *)malloc(LEN);

fscanf(fp,”%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n”, p1-name, p1-num, p1-sex, p1-age, p1-address, p1-tele_num, p1-aihao);

while(!feof(fp))

{

p1 = (struct student *)malloc(LEN);

fscanf(fp,”%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n”, p1-name, p1-num, p1-sex, p1-age, p1-address, p1-tele_num, p1-aihao);

p2-next = p1;

p2 = p1;

}

p2-next = NULL;

fclose(fp);

}

//刪除學生信息

void del ()

{

struct student *p1, *p2;

long int num;

if (head == NULL)

{

printf(“無學生記錄!\n”);

return;

}

printf(“請輸入您要刪除的學生的學號:”);

scanf(“%ld”, num);

p1 = head;

while (num != p1-num p1-next != NULL)

{

p2 = p1;

p1 = p1-next;

}

if(num == p1-num)

{

if(p1 == head)

head = p1-next;

else p2-next = p1-next;

free(p1);

TOTAL_NUM–;

}

else

printf(“沒有該學生記錄,請核對!\n”);

}

//修改學生信息

void change ()

{

struct student *p1, *p2;

long int num;

if (head == NULL)

{

printf (“無學生記錄!\n”);

return;

}

printf (“請輸入您要修改的學生的學號:”);

scanf (“%ld”, num);

p1 = head;

while (num != p1-num p1-next != NULL)

{

p2 = p1;

p1 = p1-next;

}

if(num == p1-num)

devise (p1);

else

printf(“沒有該學生記錄,請核對!\n”);

}

void devise (struct student *p)

{

int choice;

choice = -1;

do

{

printf(“請選擇您要修改的學生的信息內容:\n”);

printf(“+———————-+\n”);

printf(“| 姓名 請按 1 |\n”);

printf(“| 學號 請按 2 |\n”);

printf(“| 性別 請按 3 |\n”);

printf(“| 年齡 請按 4 |\n”);

printf(“| 地址 請按 5 |\n”);

printf(“| 電話 請按 6 |\n”);

printf(“| 愛好 請按 7 |\n”);

printf(“| 取消 請按 0 |\n”);

printf(“+———————-+\n”);

printf(“請輸入您的選擇:”);

scanf(“%d”, choice);

switch (choice)

{

case 0:

return;

case 1:

printf(“請輸入新姓名:”);

scanf(“%s”, p-name);

break;

case 2:

printf(“請輸入新學號:”);

scanf(“%d”, p-num);

break;

case 3:

printf(“請輸入新性別:”);

scanf(“%s”, p-sex);

break;

case 4:

printf(“請輸入新年齡:”);

scanf(“%s”, p-age);

break;

case 5:

printf(“請輸入新地址:”);

scanf(“%s”, p-address);

break;

case 6:

printf(“請輸入新電話:”);

scanf(“%lf”, p-tele_num);

break;

case 7:

printf(“請輸入新愛好:”);

scanf(“%s”, p-aihao);

break;

default:

printf(“\n無效選項!”);

break;

}

}

while(choice != 0);

}

如何用C語言編寫學生信息管理系統

參考如下學生信息管理系統的C源代碼吧。

#include stdio.h

#include string.h

/*定義學生結構體*/

struct Student

{

     char ID[20];

     char Name[20];

     float Mark1;

     float Mark2;

     float Mark3;

     float Average;

};

/*聲明學生數組及學生數量*/

struct Student students[1000];

int num=0;

/*求平均值*/

float Avg(struct Student stu)

{

     return (stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

/*通過學號返回數組下標*/

int Student_SearchByIndex(char id[])

{

     int i;

     for (i=0;inum;i++)

     {

         if (strcmp(students[i].ID,id)==0)

         {

              return i;

         }

     }

     return -1;

}

/*通過姓名返回數組下標*/

int Student_SearchByName(char name[])

{

     int i;

     for (i=0;inum;i++)

     {

         if (strcmp(students[i].Name,name)==0)

         {

              return i;

         }

     }

     return -1;

}

/*顯示單條學生記錄*/

void Student_DisplaySingle(int index)

{

     printf(“%10s%10s%8s%8s%8s%10s\n”,”學號”,”姓名”,”成績”,”成績”,”成績”,”平均成績”);

     printf(“————————————————————-\n”);

     printf(“%10s%10s%8.2f%8.2f%8.2f%10.2f\n”,students[index].ID,students[index].Name,

              students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

}

/*插入學生信息*/

void Student_Insert()

{

     while(1)

     {

         printf(“請輸入學號:”);

         scanf(“%s”,students[num].ID);

         getchar();

         printf(“請輸入姓名:”);

         scanf(“%s”,students[num].Name);

         getchar();

         printf(“請輸入成績:”);

         scanf(“%f”,students[num].Mark1);

         getchar();

         printf(“請輸入成績:”);

         scanf(“%f”,students[num].Mark2);

         getchar();

         printf(“請輸入成績:”);

         scanf(“%f”,students[num].Mark3);

         getchar();

         students[num].Average=Avg(students[num]);

         num++;

         printf(“是否繼續?(y/n)”);

         if (getchar()==’n’)

         {

              break;

         }

     }

}

/*修改學生信息*/

void Student_Modify()

{

     //float mark1,mark2,mark3;

     while(1)

     {

         char id[20];

         int index;

         printf(“請輸入要修改的學生的學號:”);

         scanf(“%s”,id);

         getchar();

         index=Student_SearchByIndex(id);

         if (index==-1)

         {

              printf(“學生不存在!\n”);

         }

         else

         {

              printf(“你要修改的學生信息為:\n”);

              Student_DisplaySingle(index);

              printf(“– 請輸入新值–\n”);

              printf(“請輸入學號:”);

              scanf(“%s”,students[index].ID);

              getchar();

              printf(“請輸入姓名:”);

              scanf(“%s”,students[index].Name);

              getchar();

              printf(“請輸入成績:”);

              scanf(“%f”,students[index].Mark1);

              getchar();

              printf(“請輸入成績:”);

              scanf(“%f”,students[index].Mark2);

              getchar();

              printf(“請輸入成績:”);

              scanf(“%f”,students[index].Mark3);

              getchar();

              students[index].Average=Avg(students[index]);

         }

         printf(“是否繼續?(y/n)”);

         if (getchar()==’n’)

         {

              break;

         }

     }

}

/*刪除學生信息*/

void Student_Delete()

{

     int i;

     while(1)

     {

         char id[20];

         int index;

         printf(“請輸入要刪除的學生的學號:”);

         scanf(“%s”,id);

         getchar();

         index=Student_SearchByIndex(id);

         if (index==-1)

         {

              printf(“學生不存在!\n”);

         }

         else

         {

              printf(“你要刪除的學生信息為:\n”);

              Student_DisplaySingle(index);

              printf(“是否真的要刪除?(y/n)”);

              if (getchar()==’y’)

              {

                   for (i=index;inum-1;i++)

                   {

                       students[i]=students[i+1];//把後邊的對象都向前移動

                   }

                   num–;

              }

              getchar();

         }

         printf(“是否繼續?(y/n)”);

         if (getchar()==’n’)

         {

              break;

         }

     }

}

/*按姓名查詢*/

void Student_Select()

{

     while(1)

     {

         char name[20];

         int index;

         printf(“請輸入要查詢的學生的姓名:”);

         scanf(“%s”,name);

         getchar();

         index=Student_SearchByName(name);

         if (index==-1)

         {

              printf(“學生不存在!\n”);

         }

         else

         {

              printf(“你要查詢的學生信息為:\n”);

              Student_DisplaySingle(index);

         }

         printf(“是否繼續?(y/n)”);

         if (getchar()==’n’)

         {

              break;

         }

     }

}

/*按平均值排序*/

void Student_SortByAverage()

{

     int i,j;

     struct Student tmp;

     for (i=0;inum;i++)

     {

         for (j=1;jnum-i;j++)

         {

              if (students[j-1].Averagestudents[j].Average)

              {

                   tmp=students[j-1];

                   students[j-1]=students[j];

                   students[j]=tmp;

              }

         }

     }

}

/*顯示學生信息*/

void Student_Display()

{

     int i;

     printf(“%10s%10s%8s%8s%8s%10s\n”,”學號”,”姓名”,”成績”,”成績”,”成績”,”平均成績”);

     printf(“————————————————————-\n”);

     for (i=0;inum;i++)

     {

         printf(“%10s%10s%8.2f%8.2f%8.2f%10.2f\n”,students[i].ID,students[i].Name,

              students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);

     }

}

/*將學生信息從文件讀出*/

void IO_ReadInfo()

{

     FILE *fp;

     int i;

     if ((fp=fopen(“Database.txt”,”rb”))==NULL)

     {

         printf(“不能打開文件!\n”);

         return;

     }

     if (fread(num,sizeof(int),1,fp)!=1)

     {

         num=-1;

     }

     else

     {

         for(i=0;inum;i++)

         {

              fread(students[i],sizeof(struct Student),1,fp);

         }

     }

     fclose(fp);

}

/*將學生信息寫入文件*/

void IO_WriteInfo()

{

     FILE *fp;

     int i;

     if ((fp=fopen(“Database.txt”,”wb”))==NULL)

     {

         printf(“不能打開文件!\n”);

         return;

     }

     if (fwrite(num,sizeof(int),1,fp)!=1)

     {

         printf(“寫入文件錯誤!\n”);

     }

     for (i=0;inum;i++)

     {

         if (fwrite(students[i],sizeof(struct Student),1,fp)!=1)

         {

              printf(“寫入文件錯誤!\n”);

         }

     }    

     fclose(fp);

}

/*主程序*/

void main()

{

     int choice;

     IO_ReadInfo();

     while(1)

     {

         /*主菜單*/

         printf(“\n—— 學生成績管理系統——\n”);

         printf(“1. 增加學生記錄\n”);

         printf(“2. 修改學生記錄\n”);

         printf(“3. 刪除學生記錄\n”);

         printf(“4. 按姓名查詢學生記錄\n”);

         printf(“5. 按平均成績排序\n”);

         printf(“6. 退出\n”);

         printf(“請選擇(1-6):”);

         scanf(“%d”,choice);

         getchar();

         switch(choice)

         {

         case 1:

              Student_Insert();

              break;

         case 2:

              Student_Modify();

              break;

         case 3:

              Student_Delete();

              break;

         case 4:

              Student_Select();

              break;

         case 5:

              Student_SortByAverage();

              Student_Display();

              break;

         case 6:

              exit(0);

              break;

         }

         IO_WriteInfo();

     }

}

C語言學生信息管理系統程序設計

如果多找幾個人,我倒是有興趣加入一起做,畢竟這個程序還是挺大的,代碼量也大,不是說一個人一兩天就能完成的。

c語言學生管理信息系統

#include”stdio.h” #define SIZE 100000 #include”string.h” #include”stdlib.h” #include”conio.h” struct student {int n; int num; char name[10]; int C; int Maths; int En; float ave; }stu[SIZE]; /*錄入數據*/ void finput() { FILE *fp; int i,p; fp=fopen(“fstu”,”wb”); for(i=0;iSIZE;i+1) { printf(“i=%d輸入序號i(當輸入i=-1時,返回),i=”,i++); scanf(“%d”,i); if(i==-1) { fclose(fp); return; } else { printf(“請輸入學號,姓名,C成績,數學成績,英語成績:”); scanf(“%d%s%d%d%d”,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; stu[i].n=i+1; fwrite(stu[i],sizeof(structstudent),1,fp); } } fclose(fp); } /*輸出數據*/ void flist() { FILE *fp; int i; fp=fopen(“fstu”,”rb”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;fread(stu[i],sizeof(structstudent),1,fp)==1;i++) { printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“———————————————————–\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); fclose(fp); } /*查找數據*/ void fsearch() { FILE *fp; int i,num; fp=fopen(“fstu”,”rb”); rewind(fp); printf(“請輸入要查找的學號:”); scanf(“%d”,num); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 查詢結果\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;i=SIZE;i++) if(stu[i].num==num) { printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“———————————————————–\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n”); fclose(fp); } /*增加數據*/ void fadden() { int i,s; FILE *fp; fp=fopen(“fstu”,”ab+”); rewind(fp); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;fread(stu[i],sizeof(structstudent),1,fp)==1;i++) { printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); s=i; for(i=s;iSIZE;i++) { printf(“i=%d 輸入序號i(當輸入i=-1時,返回),i=”,i+1); scanf(“%d”,i); if(i==-1) { fclose(fp); return; } else { printf(“請輸入學號,姓名,C成績,數學成績,英語成績:”); stu[i].n=i+1; scanf(“%d%s%d%d%d”,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(stu[i],sizeof(structstudent),1,fp); } } fclose(fp); } /*修改數據*/ void fchange() { FILE *fp; int i,num,n; int flag=0; printf(“請輸入要修改學生的學號:”); scanf(“%d”,num); for(i=0;i=SIZE;i++) if(stu[i].num==num) { printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); printf(“———————————————————–\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); n=i; flag=1; break; } if(flag==0) { printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 輸入錯誤!\n”); printf(” 請返回!\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); return; } printf(“\n\n\n”); fp=fopen(“fstu”,”rb+”); fseek(fp,n*sizeof(struct student),0); printf(“請輸入新的學號,姓名,C成績,數學成績,英語成績:”); scanf(“%d%s%d%d%d”,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(stu[i],sizeof(structstudent),1,fp); fclose(fp); fp=fopen(“fstu”,”rb”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;fread(stu[i],sizeof(structstudent),1,fp)==1;i++) { printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“———————————————————–\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); fclose(fp); } /*成績排序*/ void ftaxis() { int i,j,n; FILE *fp; struct student t; fp=fopen(“fstu”,”rb”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;fread(stu[i],sizeof(structstudent),1,fp)==1;i++) { printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“———————————————————–\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); fclose(fp); n=i; for(i=0;in;i++) for(j=i+1;jn;j++) if(stu[i].avestu[j].ave) { t=stu[i]; stu[i]=stu[j]; stu[j]=t; } fp=fopen(“fstus”,”wb”); printf(“\n\n\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(” 成績列表\n”); printf(“———————————————————–\n”); printf(“序號 學號 姓名 C成績 數學 英語 平均\n”); printf(“———————————————————–\n”); for(i=0;in;i++) { fwrite(stu[i],sizeof(structstudent),1,fp); printf(“%d%8d%8s%8d%8d%8d%16.2f\n”,stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); } printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); fclose(fp); } /*主函數*/ main() { int n; for(;;) { printf(“\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(“※ ※\n”); printf(“※ 歡迎來到學生信息管理系統 ※\n”); printf(“※ ※\n”); printf(“※ 系部:通信工程 專業:通信工程 ※\n”); printf(“※ 姓名: 學號: ※\n”); printf(“※ 班內序號: 指導老師: ※\n”); printf(“※ ※\n”); printf(“※ 主菜單 ※\n”); printf(“※ ※\n”); printf(“※ ▲1.錄入數據▲ ※\n”); printf(“※ ▲2.輸出數據▲ ※\n”); printf(“※ ▲3.查找數據▲ ※\n”); printf(“※ ▲4.增加數據▲ ※\n”); printf(“※ ▲5.修改數據▲ ※\n”); printf(“※ ▲6.成績排序▲ ※\n”); printf(“※ ▲7.退出系統▲ ※\n”); printf(“※ ※\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n”); printf(“請輸入選擇項(1-7):”); scanf(“%d”,n); printf(“\n\n\n\n”); if(n0n8) { switch(n) { case 1:finput();break; case 2:flist();break; case 3:fsearch();break; case 4:fadden();break; case 5:fchange();break; case 6:ftaxis();break; case 7:printf(“※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(“※ ※\n”); printf(“※ 謝謝使用! ※\n”); printf(“※ 再見! ※\n”); printf(“※ ※\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※\n”); exit(0); } } else { printf(“※※※※※※※※※※※※※※※※※※※※※※※※\n”); printf(“※ ※\n”); printf(“※ 輸入錯誤! ※\n”); printf(“※ 請退出! ※\n”); printf(“※ ※\n”); printf(“※※※※※※※※※※※※※※※※※※※※※※※※\n”); break; } } }

用C語言設計一個學生信息查詢系統程序

1、首先創建一個c語言項目。然後右鍵頭文件,創建一個Stu的頭文件。

2、編寫頭文件的代碼。再將數據結構的增刪改查和結構體寫入頭文件。

3、在源文件中創建main源文件和Stu源文件。再main文件中寫入int mian()代碼。

4、然後在mian主函數中,寫入while語句無限循環。再寫入Init函數。

5、在Stu源文件的Init函數用printf語句,將學生管理系統輸出。再創建鏈表的頭節點head。

6、然後用switch函數對操作進行判斷。再執行數據結構的增刪改查功能。這樣一個學生管理系統的基本框架就完成了。

c語言小型圖書信息管理系統

#include stdio.h

#include stdlib.h

#include “windows.h”

#include “string.h”

#define S_MAX 50

int user_count = 0;     //用戶信息的總數

int book_count = 0;

char ini_path[100] = { “\0” };   //數據文件的絕對路徑

char user_path[100] = { “\0” };  //用戶數據文件的絕對路徑

char book_path[100] = { “\0” };

int book_pos = 0;                    //book數組的計數 

int user_pos = 0;

struct user_data

{

char name[10];

char book_name[50];

}user[S_MAX];

struct book_data

{

char no[10];

char name[50];

char author[30];

char money[10];

char in_or_out[10];

char user_name[10];

}book[S_MAX];

void read_file()   //從文件讀取數據 

{

user_pos = 0;

int i;

for (i = 0; iS_MAX; i++)

{

memset(user[i].name, ‘\0’, 10);

memset(user[i].book_name, ‘\0’, 50);

memset(book[i].no, ‘\0’, 10);

memset(book[i].name, ‘\0’, 50);

memset(book[i].author, ‘\0’, 30);

memset(book[i].money, ‘\0’, 10);

memset(book[i].in_or_out, ‘\0’, 10);

memset(book[i].user_name, ‘\0’, 10);

}

user_count = GetPrivateProfileInt(“USER”, “user_count”, 0, user_path);

book_count = GetPrivateProfileInt(“book”, “book_count”, 0, book_path);

for (i = 0; iuser_count; i++)

{

char t[5] = { “\0” };

sprintf(t, “%d”, i + 1);

GetPrivateProfileString(t, “name”, “”, user[i].name, 10, user_path);

GetPrivateProfileString(t, “book_name”, “”, user[i].book_name, 50, user_path);

user_pos++;

}

for (i = 0; ibook_count; i++)

{

char t[5] = { “\0” };

sprintf(t, “%d”, i + 1);

GetPrivateProfileString(t, “no”, “”, book[i].no, 10, book_path);

GetPrivateProfileString(t, “name”, “”, book[i].name, 50, book_path);

GetPrivateProfileString(t, “author”, “”, book[i].author, 30, book_path);

GetPrivateProfileString(t, “money”, “”, book[i].money, 10, book_path);

GetPrivateProfileString(t, “in_or_out”, “”, book[i].in_or_out, 10, book_path);

GetPrivateProfileString(t, “user_name”, “”, book[i].user_name, 10, book_path);

book_pos++;

}

}

void write_file()

{

int i;

for (i = 0; iuser_count; i++)

{

char t[5] = { “\0” };

sprintf(t, “%d”, i + 1);

WritePrivateProfileString(t, “name”, NULL, user_path);

WritePrivateProfileString(t, “book_name”, NULL, user_path);

WritePrivateProfileString(t, “no”, NULL, book_path);

WritePrivateProfileString(t, “name”, NULL, book_path);

WritePrivateProfileString(t, “author”, NULL, book_path);

WritePrivateProfileString(t, “money”, NULL, book_path);

WritePrivateProfileString(t, “in_or_out”, NULL, book_path);

WritePrivateProfileString(t, “user_name”, NULL, book_path);

}

char temp[5] = { “\0” };

int temp_count = 0;

for (i = 0; iuser_pos; i++)

{

if (strcmp(user[i].name, “”) == 0)

{

continue;

}

char t[5] = { “\0” };

sprintf(t, “%d”, i + 1);

WritePrivateProfileString(t, “name”, user[i].name, user_path);

WritePrivateProfileString(t, “book_name”, user[i].book_name, user_path);

temp_count++;

}

sprintf(temp, “%d”, temp_count);

WritePrivateProfileString(“USER”, “user_count”, temp, user_path);

temp_count = 0;

for (i = 0; ibook_pos; i++)

{

if (strcmp(book[i].no, “”) == 0)

{

continue;

}

char t[5] = { “\0” };

sprintf(t, “%d”, i + 1);

WritePrivateProfileString(t, “no”, book[i].no, book_path);

WritePrivateProfileString(t, “name”, book[i].name, book_path);

WritePrivateProfileString(t, “author”, book[i].author, book_path);

WritePrivateProfileString(t, “money”, book[i].money, book_path);

WritePrivateProfileString(t, “in_or_out”, book[i].in_or_out, book_path);

WritePrivateProfileString(t, “user_name”, book[i].user_name, book_path);

temp_count++;

}

sprintf(temp, “%d”, temp_count);

WritePrivateProfileString(“BOOK”, “book_count”, temp, book_path);

}

void search_user_name()     //按借書人姓名查詢

{

system(“cls”);

char search_key[10] = { “\0” };

printf(“請輸入要查詢圖書借書人:”);

scanf(“%s”, search_key);

int i;

int s[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };

int s_i = 0;

int find = 0;

for (i = 0; ibook_pos; i++)

{

if (strcmp(book[i].user_name, search_key) == 0)

{

find = 1;

s[s_i] = i;

s_i++;

printf(“\n編    號: %s”, book[i].no);

printf(“\n名    稱: %s”, book[i].name);

printf(“\n作    者: %s”, book[i].author);

printf(“\n金    額: %s”, book[i].money);

printf(“\n狀    態: %s”, book[i].in_or_out);

printf(“\n借 書 人: %s\n”, book[i].user_name);

}

}

if (find == 0)

{

printf(“\n\n未找到符合條件的信息!”);

}

else

{

for (i = 0; is_i; i++)

{

printf(“\n\n第%d本書:     %s”, i + 1, book[i].name);

}

printf(“\n\n共%d本”, i);

}

fflush(stdin);

getchar();

}

void search_book_author()   //按圖書作者查詢

{

system(“cls”);

char search_key[50] = { “\0” };

printf(“請輸入要查詢圖書的作者:”);

scanf(“%s”, search_key);

int i;

int find = 0;

for (i = 0; ibook_pos; i++)

{

if (strcmp(book[i].author, search_key) == 0)

{

find = 1;

printf(“\n編    號: %s”, book[i].no);

printf(“\n名    稱: %s”, book[i].name);

printf(“\n作    者: %s”, book[i].author);

printf(“\n金    額: %s”, book[i].money);

printf(“\n狀    態: %s”, book[i].in_or_out);

printf(“\n借 書 人: %s\n”, book[i].user_name);

break;

}

}

if (find == 0)

{

printf(“\n\n未找到符合條件的信息!”);

}

fflush(stdin);

getchar();

}

void search_book_name()  //按圖書名稱查詢

{

system(“cls”);

char search_key[50] = { “\0” };

printf(“請輸入要查詢圖書的名稱:”);

scanf(“%s”, search_key);

int i;

int find = 0;

for (i = 0; ibook_pos; i++)

{

if (strcmp(book[i].name, search_key) == 0)

{

find = 1;

printf(“\n編    號: %s”, book[i].no);

printf(“\n名    稱: %s”, book[i].name);

printf(“\n作    者: %s”, book[i].author);

printf(“\n金    額: %s”, book[i].money);

printf(“\n狀    態: %s”, book[i].in_or_out);

printf(“\n借 書 人: %s\n”, book[i].user_name);

break;

}

}

if (find == 0)

{

printf(“\n\n未找到符合條件的信息!”);

}

fflush(stdin);

getchar();

}

void search_book_no()   //按圖書編號查詢 

{

system(“cls”);

char search_key[10] = { “\0” };

printf(“請輸入要查詢圖書的編號:”);

scanf(“%s”, search_key);

int i;

int find = 0;

for (i = 0; ibook_pos; i++)

{

if (strcmp(book[i].no, search_key) == 0)

{

find = 1;

printf(“\n編    號: %s”, book[i].no);

printf(“\n名    稱: %s”, book[i].name);

printf(“\n作    者: %s”, book[i].author);

printf(“\n金    額: %s”, book[i].money);

printf(“\n狀    態: %s”, book[i].in_or_out);

printf(“\n借 書 人: %s\n”, book[i].user_name);

break;

}

}

if (find == 0)

{

printf(“\n\n未找到符合條件的信息!”);

}

fflush(stdin);

getchar();

}

void search_all_book()   //查詢所有圖書 

{

system(“cls”);

if (book_pos == 0)

{

printf(“真TM窮,一本書都沒有”);

}

else

{

int i;

printf(“共有%d本書\n”, book_pos);

for (i = 0; ibook_pos; i++)

{

printf(“\n編號:%s  名稱:%s  作者:%s  金額:%s  狀態:%s”, book[i].no, book[i].name, book[i].author, book[i].money, book[i].in_or_out);

if (strcmp(book[i].in_or_out, “out”) == 0)

{

printf(”  借書人:%s”, book[i].user_name);

}

}

}

fflush(stdin);

getchar();

}

void search_all_user()   //查詢所有用戶 

{

system(“cls”);

if (user_pos == 0)

{

printf(“要倒閉了?一個人都沒有!”);

}

else

{

int i;

printf(“共有%d個用戶\n”, user_pos);

for (i = 0; iuser_pos; i++)

{

printf(“\n用戶名稱: %s     借書名稱: “, user[i].name);

if (strcmp(user[i].book_name, “”) != 0)

{

printf(“%s”, user[i].book_name);

}

else

{

printf(“未借書”);

}

}

}

fflush(stdin);

getchar();

}

void No7()    //查詢 

{

int f = 1;

int sel;

while (f)

{

system(“cls”);

printf(”                      *********************************\n”);

printf(”                      *                               *\n”);

printf(”                      *       圖書管理系統–查詢      *\n”);

printf(”                      *                               *\n”);

printf(”                      *        1.按圖書編號查詢       *\n”);

printf(”                      *                               *\n”);

printf(”                      *        2.按圖書名稱查詢       *\n”);

printf(”                      *                               *\n”);

printf(”                      *        3.按作者查詢           *\n”);

printf(”                      *                               *\n”);

printf(”                      *        4.按借書人姓名查詢     *\n”);

printf(”                      *                               *\n”);

printf(”                      *        5.查詢所有圖書         *\n”);

printf(”                      *                               *\n”);

printf(”                      *        6.查詢所有用戶         *\n”);

printf(”                      *                               *\n”);

printf(”                      *        0.返回主菜單           *\n”);

printf(”                      *                               *\n”);

printf(”                      *********************************\n”);

printf(“請選擇:(1,2,3,4,5,6,0) “);

fflush(stdin);

scanf(“%d”, sel);

getchar();

switch (sel)

{

case 1:

search_book_no();

break;

case 2:

search_book_name();

break;

case 3:

search_book_author();

break;

case 4:

search_user_name();

break;

case 5:

search_all_book();

break;

case 6:

search_all_user();

break;

case 0:

f = 0;

break;

default:

break;

}

}

}

void No6()      //用戶信息刪除

{

system(“cls”);

char del_key[10] = { “\0” };

printf(“請輸入要刪除的用戶名稱:”);

scanf(“%s”, del_key);

int i, del_pos;

int find = 0;

for (i = 0; iuser_pos; i++)

{

if (strcmp(user[i].name, del_key) == 0)

{

find = 1;

printf(“\n姓    名: %s”, user[i].name);

if (strlen(user[i].book_name)0)

{

printf(“\n所借書籍: %s”, user[i].book_name);

}

del_pos = i;

break;

}

}

if (find == 0)

{

printf(“\n\n未找到符合條件的信息!”);

fflush(stdin);

getchar();

return;

}

while (1)

{

fflush(stdin);

printf(“\n\n確認要刪除該記錄嗎?(y/n):”);

char t;

scanf(“%c”, t);

if (t == ‘y’ || t == ‘Y’)

{

if (strlen(user[del_pos].book_name)0)

{

printf(“\n\n該用戶尚有書籍未歸還,不能刪除!”);

fflush(stdin);

getchar();

return;

}

strcpy(user[del_pos].name, “”);

strcpy(user[del_pos].book_name, “”);

write_file();

printf(“\n\n刪除成功!”);

read_file();

fflush(stdin);

getchar();

break;

}

else if (t == ‘N’ || t == ‘n’)

{

printf(“\n\n你選擇了不刪除,按任意鍵返回!”);

fflush(stdin);

getchar();

break;

}

else

{

continue;

}

}

}

//請在回復後發餘下部分

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191933.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-30 15:14
下一篇 2024-11-30 15:14

相關推薦

  • 銀行資金管理系統總結

    銀行資金管理系統是銀行日常業務運營的核心支撐系統,主要負責處理銀行的資金流動、結算、清算等業務。本文將從功能特點、技術架構、安全性以及未來發展趨勢等多個方面對銀行資金管理系統進行詳…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29

發表回復

登錄後才能評論