本文目錄一覽:
- 1、c語言編寫學生信息管理系統
- 2、如何用C語言編寫學生信息管理系統
- 3、C語言學生信息管理系統程序設計
- 4、c語言學生管理信息系統
- 5、用C語言設計一個學生信息查詢系統程序
- 6、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