『壹』 用標准c語言編寫學生信息管理系統
把我之前做的給你吧,差不多的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"conio.h"
#define N 50 //定義符號常量,代表學生人數最大值
int count=0; //全局變數,用於記錄數組的當前位置
struct student //定義結構體類型,代表學生信息*/
{
char name[9];
char number[10];
float math;
float english;
float physics;
float computer;
};
void input(struct student *arr); //函數聲明,輸入學生信息*/
void sort(struct student *arr); //函數聲明,按總分排序*/
void find(struct student *arr); //函數聲明,查找某位學生信息*/
void main()
{
char selmenu; //定義局部變數,用於記錄用戶選擇的功能編號*/
struct student stud[N]; //定義結構體數組,用於記錄學生信息*/
do //利用循環顯示界面*/
{
system("cls"); //清屏函數*/
printf("\n\n");
printf("歡迎使用學生管理系統\n");
printf("------------------------\n");
printf("學生成績管理系統 \n\n");
printf("1.輸入學生信息 \n");
printf("2.按總分進行排榜 \n");
printf("3.查找相應的學生信息 \n");
printf("4.退出學生成績管理系統 \n\n");
printf("請輸入功能選擇編號:");
fflush(stdin); //清空輸入緩沖區
scanf("%c",&selmenu); //接受用戶選擇的功能編號
switch(selmenu) //輸入不同功能編號調用相應函數來完成功能
{
case'1':
input(stud); //調用輸入學生信息函數,參數為學生信息數組名
break;
case'2':
sort(stud); //調用按總分排榜函數,參數是數組名
break;
case'3':
find(stud); //調用按學號和姓名查找學生信息函數
break;
}
}while(selmenu!='4'); //判斷是否退出
printf("*^-^* 謝謝使用 *^-^*\n"); //輸出告別詞
printf(" 任務完成 ");
getch();
}
void input(struct student *arr) //定義輸入學生信息函數
{
char ch; //用於接收用戶指令
do //利用循環,由用戶控制輸入學生成績
{
system("cls");
printf("\n輸入第%d個學生的信息:\n輸入學生姓名:",count+1);
scanf("%s",arr[count].name);
printf("\n輸入學生學號:");
scanf("%s",arr[count].number);
printf("\n輸入數學成績:");
scanf("%f",&arr[count].math);
printf("\n輸入英語成績:");
scanf("%f",&arr[count].english);
printf("\n輸入物理成績:");
scanf("%f",&arr[count].physics);
printf("\n輸入計算機成績:");
scanf("%f",&arr[count].computer);
count++; //記錄當前輸入的學生資料的個數
printf("\n是否繼續輸入(y/n)\n");
fflush(stdin); //清空輸入緩沖區
ch=getchar();
}while(ch=='y'||ch=='Y'); //判斷用戶指令,是否繼續輸入
}
void sort(struct student *arr) //定義按總分排榜函數
{
int i,j,k; //定義循環變數i,j,最小數位置k
struct student t; //定義交換臨時變數
if(count==0) //判斷數組中學生成績是否存在
printf("無學生成績,請先錄入學生信息\n");
else
{
for(i=0;i<count-1;i++) //用選擇法按總分對學生成績排序
{
k=i;
for(j=i+1;j<count;j++) //k為arr[i]到arr[count-1]中最小數的位置
if((arr[k].math+arr[k].english+arr[k].physics+arr[k].computer)<(arr[j].math+arr[j].english+arr[j].physics+arr[j].computer))
k=j;
if(k!=i) //如果最小數不是比較數列中第一個,對調
{
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
printf("\n總分排榜版:\n\n");
printf("\t姓名\t學號\t數學\t英語\t物理\t計算機\t總分\t名次\n");
for(j=0;j<count;j++) //輸出按總分排榜後的學生成績和名次
printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english,j+1);
}
printf("\n回車鍵返回主程序\n");
fflush(stdin);
getchar();
}
void find(struct student *arr) //定義查找函數
{
int j;
char name[9]; //用於接收用戶輸入的學生姓名
char number[10]; //用於接收用戶輸入的學生學號
system("cls"); //清屏函數
printf("\n請輸入要查找的學生資料:\n");
printf("\n學生姓名:");
scanf("%s",name);
printf("\n學生學號:");
scanf("%s",number);
for(j=0;j<count;j++) //使用字元串比較函數查找兵書出符合條件的學生成績
{
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("\n\t姓名\t學號\t數學\t英語\t物理\t計算機\t總分\n");
printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\n",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english);
break;
}
}
if(j>=count) //如果沒找到,會從循環條件退出
printf("\n未找到該學生紀錄,請核對後重新查找!\n");
fflush(stdin); //清空輸入緩沖區
printf("\n回車鍵返回\n");
getchar();
}
『貳』 如何用c語言編寫學生信息管理系統
性別也就兩種狀態,你就 定義 1 表示男性 0 表示女性,用一個int類型存儲,名字就定義一個20個字元長度的字元串,電話,學號這些都可以定義為字元串(長度自己選擇) 寢室號看情況也可以定義int類型或者字元串類型;
輸入就用字元串和整型數字的輸入方式啊 scanf
存儲的話,一般寫入文件裡面去,用結構體數組或鏈表進行 增刪改查
『叄』 用C語言設計一個學生信息查詢系統程序
1、首先創建一個c語言項目。然後右鍵頭文件,創建一個Stu的頭文件。
『肆』 學生信息管理系統編程(c語言)
挺好的一個題目啊
但我可不願意幫人寫作業
網上很多類似的,你可以參考下:
#include <stdio.h>
#include <string.h> struct student {
char name[30];
float math;
float chinese;
float english;
float average;
};
int MenuChoice(void);
int EnterAccount(void);
void Enter(struct student *fst);
void Amend(struct student *src);
void Delete(struct student *next);
void Print(struct student *out);
main()
{
struct student one[100] = {0}, *look = one;
int menu, t;
while ((menu = MenuChoice()) != 0)
if (menu >= 1 && menu <= 4 && (t = EnterAccount())) {
look = one + t;
switch (menu) {
case 1:
Enter(look);
break;
case 2:
if (strcmp(look->name, ""))
printf("學號:%d\n姓名: %s\n語文成績: %.1f\n數學成績:%.1f\n英語成績: %f\n平均"成績:%.1f\n",
t, look->name, look->chinese, look->math, look->english, look->average);
else
printf("對不起,該學號不存在!\n");
break;
case 3:
Amend(look);
break;
case 4:
Delete(look);
break;
}
}
else if (menu == 5)
Print(one);
else
printf("錯誤的請求!\n");
return 0;
}
int MenuChoice(void)
{
int choice;
printf("請選擇:\n"
"1 - 新建學生信息\n"
"2 - 查找學生信息\n"
"3 - 修改學生信息\n"
"4 - 刪除學生信息\n"
"5 - 列印學生信息\n"
"0 - 退出\n");
scanf("%d", &choice);
return choice;
}
int EnterAccount(void)
{
int ret;
printf("請輸入學號:\n");
scanf("%d", &ret);
if (ret >= 1 && ret <= 100)
return ret -1;
return 0;
}
void Enter(struct student *fst)
{
printf("請輸入學生姓名、語文成績、數學成績、英語成績和平均成績\n");
scanf("%s%f%f%f%f", fst->name, &fst->chinese, &fst->math, &fst->english, &fst->average);
}
void Amend(struct student *src)
{
int t;
printf("請選擇:\n"
"1 - 修改學生姓名\n"
"2 - 修改學生語文成績\n"
"3 - 修改學生數學成績\n"
"4 - 修改學生英語成績\n"
"5 - 修改學生平均成績\n");
scanf("%d", &t);
switch (t) {
case 1:
printf("請輸入學生的新名字\n");
scanf("%s", src->name);
break;
case 2:
printf("請輸入學生新的語文成績\n");
scanf("%f", &src->chinese);
break;
case 3:
printf("請輸入學生新的數學成績\n");
scanf("%f", &src->math);
break;
case 4:
printf("請輸入學生新的英語成績\n");
scanf("%f", &src->english);
break;
case 5:
printf("請輸入學生新的平均成績\n");
scanf("%f", &src->average);
break;
}
}
void Delete(struct student *next)
{
strcpy(next->name, "");
next->math = next->english = next->chinese = next->average = 0.0;
}
void Print(struct student *out)
{
struct student *up;
for (up = out; out < &up[100]; out++)
if (strcmp(out->name, ""))
printf("學號:%d\n姓名: %s\n語文成績: %.1f\n數學成績:%.1f\n英語成績: %.1f\n平均成績:%.1f\n",
out-up + 1, out->name, out->chinese, out->math, out->english, out->average);
}
『伍』 c語言編寫學生信息管理系統
稍微用了點c++(你給的分太低)
如下圖所示:
studf.txt
操作日誌文件:
『陸』 用C語言創建學生信息處理系統,要求如下
你這來可以用基本的鏈表來創建。
鏈表就是結構體用指針連接起來。
學生的信息可以定義成結構類型。
每個學生就是一個結構體的變數。
每個結構體都有一個指針成員next指向下一個學生的結構體變數。
這樣就構成了鏈表。對鏈表的增刪就是對這個鏈表指針操作,並釋放刪除節點空間。
具體鏈表代碼,在我回答記錄里,我已經回答過很多次。各種都有,你需要去我回答記錄找吧。
『柒』 建立一個學生信息系統C語言編程
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
intbExit=0;
inttotal=0;
#defineCreate(the_one)the_one=(Stu*)malloc(sizeof(Stu))
typedef
structStudent
{
charcnum[20]; //字元串學號
intinum; //數字學號
charname[20]; //姓名
floatscore; //成績
structStudent*next;
}Stu;
Stu*the_one,*h,*pr,*last,*end;//1.添加學生函數
voidADD()
{
intFour=0;
printf("================================
");
Create(the_one);
the_one->next=NULL;
end=last;//end指向倒數第二個結點
last->next=the_one;//將the_one放在鏈表的最後
last=the_one;//last指向倒數第一個結點
//輸入學號
printf("輸入學生信息:
學號:");
while(!Four)
{
gets(the_one->cnum);
if(strlen(the_one->cnum)!=4)
printf("輸入非法:學號必須是4位,請重新輸入!
學號:");
else
Four=1;
}
the_one->inum=atoi(the_one->cnum); //int型學號
//輸入姓名
printf("學生姓名:");
gets(the_one->name);
//輸入成績
printf("學生成績:");
scanf("%f",&the_one->score);
getchar();//接收回車
//總數+1
total++;
//排序
//pr從空head開始,last指向下一個(前趨pr,後趨last)
for(pr=h,last=pr->next;last->next;pr=pr->next,last=pr->next)
{
if(last->inum>the_one->inum)
{
//插入元素the_one
the_one->next=last;
pr->next=the_one;
last=end;//插入完成,將last移到最後。
end->next=NULL;//最後結點指針域置空,last->next為NULL,跳出循環
break;
}
}
printf("================================
");
}
//2.查詢學生函數
voidCHECK()
{
Stu*target,*p;
intfond=0;
printf("================================
");
printf("輸入要查找學生的學號:
學號:");
Create(target);
gets(target->cnum);
for(p=h->next;p;p=p->next)
{
if(!strcmp(p->cnum,target->cnum))
{
printf("學號為%s的學生信息:姓名(%s),分數(%.2f)
",p->cnum,p->name,p->score);
free(target);
fond=1;
}
}
if(!fond)
printf("WrongStudentNO.!
");
printf("================================
");
}
//3.編輯學生
voidEDIT()
{
Stu*target,*p;
intfond=0;
printf("================================
");
printf("輸入要編輯學生的學號:
學號:");
Create(target);
gets(target->cnum);
for(p=h->next;p;p=p->next)
{
if(!strcmp(p->cnum,target->cnum))
{
printf("學號為%s的學生信息:姓名(%s),分數(%.2f)
",p->cnum,p->name,p->score);
printf("請選擇修改項目:
1:姓名
2:分數
");
charc;
c=getch();
switch(c)
{
case'1':
printf("輸入正確的姓名:");
gets(p->name);
break;
case'2':
printf("輸入最新成績:");
scanf("%f",&p->score);
break;
}
printf("學號為%s的學生最新信息:姓名(%s),分數(%.2f)
",p->cnum,p->name,p->score);
free(target);
fond=1;
}
}
if(!fond)
printf("NotExitThisNO.!
");
printf("================================
");
}
//4.刪除學生
voidDELETE1()
{
voidPRINALL();
PRINALL();
Stu*target,*p,*pr;
intfond=0;
printf("================================
");
printf("輸入要刪除學生的學號:(如果刪除所有學生信息,請輸入0000)
學號:");
Create(target);
gets(target->cnum);
target->inum=atoi(target->cnum);
// char*zero=&"0000";
if(!strcmp(target->cnum,"0000"))
{
h->next=NULL;
total=0;
}
else
{
for(pr=h,p=h->next;p;pr=pr->next,p=p->next)
{
if(!strcmp(p->cnum,target->cnum))
{
printf("學號為%s的學生信息已刪除
",p->cnum);
free(target);
pr->next=p->next;
p->next=NULL;
// free(p);此句報錯
fond=1;
total--;
}
}
if(!fond)
printf("沒有找到學號為%s的學生,請確認學號輸入是否正確
");
}
printf("================================
");
}
//5.列印全部
voidPRINALL()
{
intamounts=1;
Stu*Op;
printf("================================
");
printf("所有學生信息:
");
for(Op=h->next;Op;Op=Op->next)
printf("%d.%s,%s,%.2f
",amounts++,Op->cnum,Op->name,Op->score);
printf("================================
");
}
//6.總人數
voidTOTAL()
{
printf("================================
");
printf("學生總人數:%d
",total);
printf("================================
");
}
//菜單函數
voidMenu()
{
charorder;
printf("================================
");
printf("|1.添加學生.|
");
printf("|2.查詢學生.|
");
printf("|3.編輯學生.|
");
printf("|4.刪除學生.|
");
printf("|5.列印全部.|
");
printf("|6.總人數.|
");
printf("|7.退出.|
");
printf("================================
");
order=getch();
system("cls");
switch(order)
{
case'1':
ADD();
break;
case'2':
CHECK();
break;
case'3':
EDIT();
break;
case'4':
DELETE1();
break;
case'5':
PRINALL();
break;
case'6':
TOTAL();
break;
case'7':
bExit=1;
break;
}
while(!bExit)
{
getch();
system("cls");
Menu();
}
}
voidmain()
{
//創建鏈表頭
Create(h);
pr=last=end=the_one=h;
the_one->next=NULL; Menu();
}
『捌』 如何用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("