Ⅰ 學生信息管理系統c語言
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
void look(); /*聲明查看函數*/
void save(); /*聲明保存函數*/
void search_name(); /*聲明按姓名查看函數*/
void search_number(); /*聲明按學號查看函數*/
void order(); /*聲明排序函數*/
void del(); /*聲明刪除函數*/
int openl(); /*聲明打開函數*/
void welcome(); /*聲明我的個人信息函數*/
void type(); /*聲明輸入函數*/
void see(); /*聲明打開並查看文件函數*/
struct student /*定義學生信息的結構體類型*/
{
char num[15]; /*學號*/
char name[20]; /*姓名*/
char sex[4]; /*性別*/
int english; /*英語成績*/
int math; /*數學成績*/
int chinese; /*語文成績*/
float aver; /*平均成績*/
float sum; /*總成績*/
}stu[100];
int n; /*聲明一個全局變數*/
void main() /*主函數即用戶的操作界面*/
{
system("color 1E"); /*設計文本顏色*/
int b,flag=0; /*聲明局部變數*/
while(1) /*循環輸出以下信息*/
{
printf("\n\t\t\t歡迎來到學生成績管理系統!\n");
printf("\n\t\t\t\t ###製作\n");
printf("\t\t\t-------------------------------\n");
printf("\t\t\t1.鍵入學生的信息\n\n"); /*鍵入學生的信息*/
printf("\t\t\t2.查看錄入的學生信息\n\n"); /*查看錄入的學生信息*/
printf("\t\t\t3.按姓名查看學生的信息\n\n"); /*按姓名查看學生的信息*/
printf("\t\t\t4.按學號查看學生的信息\n\n"); /*按學號查看學生的信息*/
printf("\t\t\t5.按平均成績排序\n\n"); /*排序*/
printf("\t\t\t6.刪除學生信息\n\n"); /*刪除學生信息*/
printf("\t\t\t7.保存學生信息\n\n"); /*保存*/
printf("\t\t\t8.打開文件\n\n"); /*打開文件*/
printf("\t\t\t9.我的個人信息\n\n"); /*我的個人信息*/
printf("\t\t\t0.退出\n\n"); /*退出*/
printf("\t\t\t請輸入你的選擇:");
scanf("%d",&b);
switch(b)
{
case 1:type();break; /*調用鍵入學生信息函數*/
case 2:look();break; /*調用查看函數*/
case 3:search_name();break; /*調用姓名查看函數*/
case 4:search_number();break; /*調用學號查看函數*/
case 5:order();break; /*調用排序函數*/
case 6:del();break;/*調用刪除函數*/
case 7:save();break;/*調用保存函數*/
case 8:see();break;/*調用打開文件函數*/
case 9:welcome();break;/*調用我的個人信息函數*/
case 0:flag=1;break;/*退出SWITCH語句*/
default :printf("錯誤!");
}
if(flag) break; /*如果選擇0就退出循環*/
}
}
void welcome() /*我的個人信息函數*/
{
system("CLS");
printf("\n\n\t\t------------個人信息------------"); /*在屏幕上輸出一下信息*/
printf("\n\n\n\n\t\t姓名:###");
printf("\t\t\tSex:#\n");
printf("\t\t年齡:#\n");
printf("\n\t\t\t--------學習經歷--------\n\n\n");
printf("\t\t小學:######\n\n");
printf("\t\t初中:#####\n\n");
printf("\t\tS高中:######\n\n");
printf("\t\t大學:######\n\n");
printf("\n\n\t\t按任意鍵返回歡迎屏幕!");
getch(); /*按任意鍵返回主函數*/
}
void type() /*定義鍵入學生信息函數*/
{
system("CLS");
int i; /*定義局部變數*/
printf("\t\t輸出你想輸入的學生信息個數:");
scanf("%d",&n);
for(i=0;i<n;i++) /*輸入每個學生的信息*/
{
printf("\n\t\t\t----------------\n");
printf("\t\t\t學號:");
scanf("%s",&stu[i].num); /*輸入學號*/
printf("\t\t\t姓名:");
scanf("%s",&stu[i].name); /*輸入姓名*/
printf("\t\t\t性別:");
scanf("%S",&stu[i].sex); /*輸入性別*/
printf("\t\t\t英語:");
scanf("%d",&stu[i].english); /*輸入英語成績*/
printf("\t\t\t數學:");
scanf("%d",&stu[i].math); /*輸入數學成績*/
printf("\t\t\t語文:");
scanf("%d",&stu[i].chinese); /*輸入語文成績*/
stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*計算平均成績*/
stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*計算總成績*/
printf("\t\t\t平均成績=%4.1f\n",stu[i].aver); /*輸出平均成績*/
printf("\t\t\t總成績=%4.1f\n",stu[i].sum); /*輸出總成績*/
}
printf("\n\n\t\t\t按任意鍵返回菜單!!");
getch();
save();
}
void save() /*建立保存文件函數*/
{
system("CLS");
FILE *fp; /*定義文件型指針*/
int i;
if((fp=fopen("student.txt","wb"))==NULL) /*打開輸出文件*/
{
printf("不能打開文件!\n");
return; /*終止程序*/
}
for(i=0;i<n;i++) /*向student文件中寫入信息*/
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件寫入錯誤\n");
fclose(fp); /*關閉文件*/
printf("\n\n\n\n\t\t\t學生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意鍵返回菜單!!");
getch();
}
void look() /*定義查看函數*/
{
system("CLS");
int i;
//n=openl(); /*調用openl函數*/
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++) /*輸出所有的學生信息*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
printf("\n\n\n\t\t\t按任意鍵返回菜單");
getch();
}
void search_name() /*按姓名查看函數*/
{
system("CLS");
int i;
char name[20]; /*聲明字元數組*/
printf("\t\t\t請輸入學生姓名:\n");
scanf("%s",name);
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0) /*將輸入的姓名與結構體中的姓名進行比較*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意鍵返回菜單");
}
getch();
}
void search_number() /*定義按學號查看函數*/
{
system("CLS");
int i;
char number[15]; /*聲明字元數組*/
printf("\t\t\t請輸入學號:\n");
scanf("%s",number);
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].num,number)==0) /*將輸入的學號與結構體中的學號進行比較*/
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意鍵返回菜單");
getch();
}
void order() /*定義排序函數*/
{
system("CLS");
int i,j;
char a;
struct student temp; /*聲明結構體變數*/
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++) /*對數據進行排序*/
{
for(j=i+1;j<n;j++)
if(stu[i].sum<stu[j].sum)
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序後的文件*/
save();
else
printf("退出");
getch();
}
void del() /*定義刪除學生信息函數*/
{
int i;
char a;
char name[20];
system("CLS");
printf("\t\t\t輸入學生名字:\n");
scanf("%s",name);
system("CLS");
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0)
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
getch();
printf("真的刪除?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否刪除該信息*/
{
for(;i<n;i++)
stu[i]=stu[i+1];
n=n-1;
printf("你已經刪除信息");
}
else
printf("退出");
getch();
}
save();
}
int openl() /*定義打開文件函數*/
{
system("CLS");
int i;
FILE *fp;
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("Cannot open file.\n");
exit(0);
}
for(i=0;!feof(fp);i++)
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
return(i-1);
}
void see() /*打開並查看文件*/
{
system("CLS");
int i;
n=openl();
printf("文件打開成功!\n");
printf("按任意鍵查看!\n");
getch();
printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");
for(i=0;i<n;i++) /*輸出所有的學生信息*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
printf("\n\n\n\t\t\t按任意鍵返回菜單");
getch();
請採納答案,支持我一下。
Ⅱ 如何用c語言製作一個學生信息管理系統,要求以文件形式保存
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//鏈表結點結構體聲明
typedef struct subjects
{
char name[20];
float score;
}sub;
typedef struct student
{
int num;
char name[20];
sub subject[3];
struct student* next;
}stu,*pstu;
#define SIZE sizeof(stu)
//函數申明
pstu LoadInfo();
void PrintMenu();
pstu AddStu(pstu );
pstu DeleStu(pstu );
pstu RwrStu(pstu );
void FindStu(pstu , char );
void Count(pstu ,char * ,float ,float );
void Rank(pstu ,char * );
void SaveQuit(pstu );
//創建菜單,進入選擇循環
while(1)
{
PrintMenu();
printf("請輸入您的選擇編號:");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:
{
system("cls");
j=0;
while(4!=j)
{
printf("歡迎進入信息管理版塊! ");
printf("