學生信息管理系統c語言關鍵技術,c語言的學生信息管理系統

本文目錄一覽:

如何用c語言製作一個學生信息管理系統,要求以文件形式保存

#includestdio.h

#includestdlib.h

#includestring.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(“歡迎進入信息管理版塊!\n\n”);

printf(“\025 1、添加學生\n”);

printf(“\025 2、刪除學生\n”);

printf(“\025 3、修改學生信息\n”);

printf(“\025 4、返回\n”);

printf(“請輸入您的選擇編號:\n”);

scanf(“%d”,j);

getchar();

if     ( 1 == j) head = AddStu(head);     

else if( 2 == j) head = DeleStu(head);   

else if( 3 == j) head = RwrStu(head);     

else if( 4 == j) ;

else printf(“輸入有誤,請重新輸入!\n”);

}

case 2:

{

//信息查詢

system(“cls”);

printf(“歡迎進入信息查詢版塊!\n”);

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

scanf(“%d”,j);

getchar();

//printf(“%d\n”,j);          //檢測輸入是否成功,調試程序用

FindStu(head,j);            //查詢並輸出

printf(“\n請輸入回車鍵返回主菜單!”);

getchar();

system(“cls”);

break;

}

擴展資料:

C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。

實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。

參考資料來源:百度百科-c語言

學生信息管理系統C語言編程

#includestdio.h /*I/O函數*/

#includestdlib.h /*其它說明*/

#includestring.h /*字元串函數*/

#define BUFLEN 100 /* 緩衝區最大字元數 */

#define LEN 15 /* 學號和姓名最大字元數,實際請更改 */

#define N 100 /* 最大學生人數,實際請更改*/

struct record /*結構體*/

{

char code[LEN+1]; /* 學號 */

char name[LEN+1]; /* 姓名 */

int age; /* 年齡 */

char sex[3]; /* 性別 */

char time[LEN+1]; /* 出生年月 */

char add[30]; /* 家庭地址 */

char tel[LEN+1]; /* 電話號碼 */

char mail[30]; /* 電子郵件地址 */

}stu[N];

int k=1,n,m; /* 定義全局變數 */

void readfile();/* 函數聲明 */

void seek();

void modify();

void insert();

void del();

void display();

void save();

void menu();

int main()

{

while(k)

menu();

system(“pause”);

return 0;

}

void help()

{

printf(“\n0.歡迎使用系統幫助!\n”);

printf(“\n1.進入系統後,先刷新學生信息,再查詢;\n”);

printf(“\n2.按照菜單提示鍵入數字代號;\n”);

printf(“\n3.增加學生信息後,切記保存按7;\n”);

printf(“\n4.謝謝您的使用!\n”);

}

void readfile()/* 建立信息 */

{

char *p=”student.txt”;

FILE *fp;

int i=0;

if ((fp=fopen(“student.txt”,”r”))==NULL)

{

printf(“Open file %s error! Strike any key to exit!”,p);

system(“pause”);

exit(0);

}

while(fscanf(fp,”%s %s%d%s %s %s %s %s”,stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

{

i++;

i=i;

}

fclose(fp);

n=i;

printf(“錄入完畢!\n”);

}

void seek() /*查找*/

{

int i,item,flag;

char s1[21]; /* 以姓名和學號最長長度+1為準 */

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

printf(“—–1.按學號查詢—–\n”);

printf(“—–2.按姓名查詢—–\n”);

printf(“—–3.退出本菜單—–\n”);

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

while(1)

{

printf(“請選擇子菜單編號:”);

scanf(“%d”,item);

flag=0;

switch(item)

{

case 1:

printf(“請輸入要查詢的學生的學號:\n”);

scanf(“%s”,s1);

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

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

printf(“學生學號 學生姓名 年齡 性別 出生年月 地址 電話 E-mail\n”);

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

printf(“%6s %7s %6d %5s %9s %8s %10s %14s\n”,stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf(“該學號不存在!\n”); break;

case 2:

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

scanf(“%s”,s1);

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

if(strcmp(stu[i].name,s1)==0)

{

flag=1;

printf(“學生學號 學生姓名 年齡 性別 出生年月 地址 電話 E-mail\n”);

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

printf(“%6s %7s %6d %5s %9s %8s %10s %14s\n”,stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf(“該姓名不存在!\n”); break;

case 3:return;

default:printf(“請在1-3之間選擇\n”);

}

}

}

void modify() /*修改信息*/

{

int i,item,num;

char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和學號最長長度+1為準 */

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

scanf(“%s”,s1);

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

if(strcmp(stu[i].code,s1)==0) /*比較字元串是否相等*/

num=i;

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

printf(“1.修改姓名\n”);

printf(“2.修改年齡\n”);

printf(“3.修改性別\n”);

printf(“4.修改出生年月\n”);

printf(“5.修改地址\n”);

printf(“6.修改電話號碼\n”);

printf(“7.修改E-mail地址\n”);

printf(“8.退出本菜單\n”);

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

while(1)

{

printf(“請選擇子菜單編號:”);

scanf(“%d”,item);

switch(item)

{

case 1:

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

scanf(“%s”,s2);

strcpy(stu[num].name,s2); break;

case 2:

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

scanf(“%d”,stu[num].age);break;

case 3:

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

scanf(“%s”,sex1);

strcpy(stu[num].sex,sex1); break;

case 4:

printf(“請輸入新的出生年月:\n”);

scanf(“%s”,s2);

strcpy(stu[num].time,s2); break;

case 5:

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

scanf(“%s”,s2);

strcpy(stu[num].add,s2); break;

case 6:

printf(“請輸入新的電話號碼:\n”);

scanf(“%s”,s2);

strcpy(stu[num].tel,s2); break;

case 7:

printf(“請輸入新的E-mail地址:\n”);

scanf(“%s”,s2);

strcpy(stu[num].mail,s2); break;

case 8:return;

default:printf(“請在1-8之間選擇\n”);

}

}

}

void sort()/*按學號排序*/

{

int i,j,*p,*q,s;

char temp[10];

for(i=0;in-1;i++)

{

for(j=n-1;ji;j–)

if(strcmp(stu[j-1].code,stu[j].code)0)

{

strcpy(temp,stu[j-1].code);

strcpy(stu[j-1].code,stu[j].code);

strcpy(stu[j].code,temp);

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name);

strcpy(stu[j].name,temp);

strcpy(temp,stu[j-1].sex);

strcpy(stu[j-1].sex,stu[j].sex);

strcpy(stu[j].sex,temp);

strcpy(temp,stu[j-1].time);

strcpy(stu[j-1].time,stu[j].time);

strcpy(stu[j].time,temp);

strcpy(temp,stu[j-1].add);

strcpy(stu[j-1].add,stu[j].add);

strcpy(stu[j].add,temp);

strcpy(temp,stu[j-1].tel);

strcpy(stu[j-1].tel,stu[j].tel);

strcpy(stu[j].tel,temp);

strcpy(temp,stu[j-1].mail);

strcpy(stu[j-1].mail,stu[j].mail);

strcpy(stu[j].mail,temp);

p=stu[j-1].age;

q=stu[j].age;

s=*q;

*q=*p;

*p=s;

}

}

}

void insert() /*插入函數*/

{

int i=n,j,flag;

printf(“請輸入待增加的學生數:\n”);

scanf(“%d”,m);

do

{

flag=1;

while(flag)

{

flag=0;

printf(“請輸入第 %d 個學生的學號:\n”,i+1);

scanf(“%s”,stu[i].code);

for(j=0;ji;j++)

if(strcmp(stu[i].code,stu[j].code)==0)

{

printf(“已有該學號,請檢查後重新錄入!\n”);

flag=1;

break; /*如有重複立即退出該層循環,提高判斷速度*/

}

}

printf(“請輸入第 %d 個學生的姓名:\n”,i+1);

scanf(“%s”,stu[i].name);

printf(“請輸入第 %d 個學生的年齡:\n”,i+1);

scanf(“%d”,stu[i].age);

printf(“請輸入第 %d 個學生的性別:\n”,i+1);

scanf(“%s”,stu[i].sex);

printf(“請輸入第 %d 個學生的出生年月:(格式:年.月)\n”,i+1);

scanf(“%s”,stu[i].time);

printf(“請輸入第 %d 個學生的地址:\n”,i+1);

scanf(“%s”,stu[i].add);

printf(“請輸入第 %d 個學生的電話:\n”,i+1);

scanf(“%s”,stu[i].tel);

printf(“請輸入第 %d 個學生的E-mail:\n”,i+1);

scanf(“%s”,stu[i].mail);

if(flag==0)

{

i=i;

i++;

}

}

while(in+m);

n+=m;

printf(“錄入完畢!\n\n”);

sort();

}

void del()

{

int i,j,flag=0;

char s1[LEN+1];

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

scanf(“%s”,s1);

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

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

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

stu[j]=stu[j+1];

}

if(flag==0)

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

if(flag==1)

{

printf(“刪除成功,顯示結果請選擇菜單6\n”);

n–;

}

}

void display()

{

int i;

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

printf(“學生學號 學生姓名 年齡 性別 出生年月 地址 電話 E-mail\n”);

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

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

{

printf(“%6s %7s %5d %5s %9s %8s %10s %14s\n”,stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

}

void save()

{

int i;

FILE *fp;

fp=fopen(“student.txt”,”w”); /*寫入*/

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

{

fprintf(fp,”%s %s %d %s %s %s %s %s\n”,stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

fclose(fp);

}

void menu()/* 界面 */

{

int num;

printf(“*********************系統功能菜單************************ \n”);

printf(“友情提醒:查詢前請先刷新系統! \n”);

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

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

printf(” * 0.系統幫助及說明 * * 1.刷新學生信息 * \n”);

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

printf(” * 2.查詢學生信息 * * 3.修改學生信息 * \n”);

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

printf(” * 4.增加學生信息 * * 5.按學號刪除信息 * \n”);

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

printf(” * 6.顯示當前信息 * * 7.保存當前學生信息* \n”);

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

printf(” * 8.退出系統 * \n”);

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

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

printf(“請選擇菜單編號:”);

scanf(“%d”,num);

switch(num)

{

case 0:help();break;

case 1:readfile();break;

case 2:seek();break;

case 3:modify();break;

case 4:insert();break;

case 5:del();break;

case 6:display();break;

case 7:save();break;

case 8:k=0;break;

default:printf(“請在0-8之間選擇\n”);

}

怎樣用C語言製作學生信息管理系統

還真不想再寫代碼了啊。。。。。

直接跟你說下思路吧。。。。

首先創建一個結構體,如——

struct student

{

char num[10]; //學號

char name[20]; //姓名

char sex[4]; //性別

int age; //年齡

int flag; //一個標示符(下面會說用法)

};

然後就定義一個student類型的數組stu[max],在前面#define max 1000000,你也可以把max定義得小一點,這是用來表示最大能容納多少個學生信息。。。。

說到flag的用處,我不清楚你了不了解,還是先跟你說下吧。。。。

先考一下你,知道怎樣把一個數組裡面的某一個元素清空嗎?清空就表示能在那個位置再次賦值,沒清空的位置就不能重複賦值。把那個元素設為a[x],可能你會想著把a[x]=0不就得啦,那好,如果用這種方法,那麼如果你想尋找數組a中可以再次賦值的元素,然後進行賦值,你是不是要通過一個判別式來對數組a的每一個元素進行判斷,看看它是否能被再賦值,對吧,那這個判別式肯定就是判斷a中的數值是否為零了。但是你想一下,如果一開始a中某個元素的值就是等於0,並不表示清空狀態,那你這樣的判別式能成立嗎,所以我們要用到一個標示符flag。。。。

當flag=1時,表示該數組的元素已存在,當flag=0時,表示該數組的元素是無效的,這樣的話就不需要對數組中的每個元素進行什麼清空操作了,就像上面的數組stu,這麼多元素,你怎麼清空。。。。

然後有一個最重要的是怎樣存儲數據,因為沒用到資料庫,所以就用txt文件來存儲吧,給你一個相關的代碼——

int load_student() //把已存在的儲存數據的txt文件打開

{

FILE *fp;

if((fp=fopen(“student.txt”,”rb”))==NULL) //判斷文件是否存在

{

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

exit(0);

}

for(int i=0;iSIZE;i++) //存在的話就打開它

{

fread(stu[i],sizeof(struct student),1,fp);

}

fclose(fp);

return 0;

}

int save_student() //把數據存放進txt文件中

{

FILE *fp;

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

{

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

exit(0);

}

for(int i=0;iSIZE;i++)

{

fwrite(stu[i],sizeof(struct student),1,fp);

}

fclose(fp);

return 0;

}

這是一個比較基本的代碼,你可以靈活的修改一下,實現讀寫過程的代碼也就是這樣了。。。。

然後是功能的實現,這方面就得看你的要求了,不過我建議你把每個界面做成一個函數,實現模塊化,如——

int shouye() //首頁

{

system(“cls”); //清屏

int num1;

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

printf(” 學生信息管理系統 \n”);

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

printf(“\n\n”);

printf(“1、更改學生信息\n\n”);

printf(“2、查看學生信息\n\n”);

printf(“3、退出系統\n\n”);

scanf(“%d”,num1); //輸入操作

if(num1==1)

update(); //進入學生信息更改模塊

else if(num1==2)

check(); //進入學生信息查看模塊

else

exit(0); //退出系統

return 0;

}

在給多你一個界面函數的代碼吧——

int update()

{

system(“cls”);

int num2;

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

printf(” 更改成績 \n”);

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

printf(“\n\n”);

printf(“1、增加學生信息\n\n”);

printf(“2、修改學生信息\n\n”);

printf(“3、返回上一層\n\n”);

scanf(“%d”,num2);

if(num2==1)

add();

else if(num2==2)

correct();

else

shouye();

return 0;

}

大概就是這種模式,我就不多弄了,你自己開拓一下吧,可能你會問我主函數怎麼實現,大概就是這樣吧——

int main()

{

load_student(); //讀取txt裡面的內容

shouye();

return 0;

}

這裡要說明一下,我給你這代碼還不怎麼完善的,只是簡單跟你說下思路罷了,如果你招著複製的話,要記住,在你第一次運行之前,要先在你這工程目錄低下創建一個名字為student的txt文件,不然會顯示錯誤,因為load_student()那裡就會判斷是否存在student.txt文件,沒的話就會顯示錯誤的。。。。

我建議你簡單地畫下流程圖,這樣可以讓你的編程思路更清晰,如果還有什麼不清楚的地方可以Q我,410430209。。。。

希望這些對你有所幫助。。。。

怎樣用c語言編寫一個學生信息管理系統

給你個我寫的參考:

#

include

stdio.h

#

include

malloc.h

struct

Student

{

char

name[100];

int

age;

int

id;

char

sex;

};

int

input(struct

Student

**

pArr)

{

int

i;

int

len;

printf(“請輸入學生的個數:\n”);

printf(“len

=

“);

scanf(“%d”,

len);

*pArr

=

(struct

Student

*)malloc(len

*

sizeof(struct

Student));

for(i

=

0;

i

len;

++i)

{

printf(“請輸入第%d個學生的信息:\n”,

i

+

1);

printf(“姓名

=

“);

scanf(“%s”,

(*pArr)[i].name);

printf(“年齡

=

“);

scanf(“%d”,

((*pArr)[i].age));

printf(“學號

=

“);

scanf(“%d”,

((*pArr)[i].id));

printf(“性別(1-男

0-女)

=

“);

scanf(“

%c”,

((*pArr)[i].sex));

}

return

len;

}

void

output(struct

Student

*

pArr,

int

len,

int

sid)

{

int

i;

for(i

=

0;

i

len;

++i)

if(pArr[i].id

==

sid)

break;

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

printf(“第%d個學生的信息是:\n”,

i

+

1);

printf(“姓名

=

%s\n”,

pArr[i].name);

printf(“年齡

=

%d\n”,

pArr[i].age);

printf(“學號

=

%d\n”,

pArr[i].id);

if(pArr[i].sex

==

‘1’)

printf(“性別

=

男\n”);

else

printf(“性別

=

女\n”);

}

int

main(void)

{

int

len,

id;

struct

Student

*

pArr;

len

=

input(pArr);

printf(“輸入要查找的學號:\n”);

scanf(“%d”,

id);

output(pArr,

len,

id);

return

0;

}

學生信息管理系統用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;in;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;in;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;in;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;in;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;in;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;in;i++) /*對數據進行排序*/

{

for(j=i+1;jn;j++)

if(stu[i].sumstu[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;in;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(;in;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;in;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();

請採納答案,支持我一下。

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

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

相關推薦

  • 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
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 數據結構學生成績管理系統

    在現代教育中,學生成績的管理已經成為了一個不可或缺的部分。藉助數據結構,一個高效、可靠的學生成績管理系統可以被輕鬆實現。 一、數據結構的選擇 在構建學生成績管理系統時,選擇合適的數…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論