小學期,學生信息管理系統
阿新 • • 發佈:2017-07-05
c
#include <stdio.h> #define M 10 void modify(struct student *stu, int st);//修改函數 void input(struct student *stu, int st);//輸入函數 void (display(struct student *stu, int N));//顯示函數 struct student{ int number; //學號 char name[M]; //姓名 char gender[M]; //性別 char place[M]; //籍貫 int grade; //年級 char major[5]; //專業 int Class; //班級 char course[M];//課程 }stu[30];//構造一個名字為 Student 的結構體 int main() { int i; int a;//添加的學生個數 int ad;//添加的學生序號(第幾個學生) int op;//根據輸入的數字確定執行的運算 int st;//修改的學生的序號 int flag=0;//計數標誌 struct student stu[30] = { {101, "aaa", "x", "shanghai", 15, "CS", 01, "chinese"}, {102, "aab", "y", "beijing", 16, "DN", 02, "English"}, {103, "aac", "x", "sichuan", 14, "CS", 03, "math"}, {104, "aad", "x", "chengdu", 13, "CS", 04, "chinese"}, {105, "aae", "y", "dandong", 13, "DN", 01, "English"}, {106, "aaf", "x", "shanghai", 15, "CS", 01, "chinese"}, {107, "aag", "y", "beijing", 16, "DN", 02, "English"}, {108, "aah", "x", "sichuan", 14, "CS", 03, "math"}, {109, "aai", "x", "chengdu", 13, "CS", 04, "chinese"}, {110, "aaj", "y", "dandong", 13, "DN", 01, "English"} }; do{ printf("-1, 退出\n"); printf("1, 輸入\n"); printf("2, 修改\n"); printf("3, 顯示\n"); scanf("%d", &op); switch(op){ //根據輸入的數字確定執行的運算 case -1: printf("您沒有進行任何操作!\n"); flag=1; case 1: printf("(1-10)請輸入添加學生的個數:"); scanf("%d", &a); for(i=0, ad=11; i<a; i++, ad++){ printf("對第%d個學生進行添加操作:\n", ad); input(&stu[ad], ad);//調用輸入函數 } break; case 2: printf("請輸入需要修改的學生的序號(1-10):"); scanf("%d", &st); st = st-1; modify(&stu[st], st);//調用修改函數 break; case 3: display(stu, M);//調用顯示函數 break; default: printf("Unknown operator!\n"); } if(flag) break; }while(op); return 0; } //修改函數 void modify(struct student *stu, int st) { int att; printf("(1)number\n"); printf("(2)name\n"); printf("(3)gender\n"); printf("(4)place\n"); printf("(5)grade\n"); printf("(6)major\n"); printf("(7)Class\n"); printf("(8)course\n"); printf("請輸入需要修改的數據(1-8):"); scanf("%d", &att); switch(att) { case 1: printf("student[%d] 原來的學號為%d\n", st, stu[st].number); printf("修改為:"); scanf("%d", &stu[st].number); printf("student[%d] 修改後的學號為%d\n", st, stu[st].number); break; case 2: printf("student[%d] 原來的姓名為%s\n", st, stu[st].name); printf("修改為:"); scanf("%s", &stu[st].name); printf("student[%d] 修改後的姓名為%s\n", st, stu[st].name); break; case 3: printf("student[%d] 原來的性別為%c\n", st, stu[st].gender); printf("修改為:"); scanf("%c", &stu[st].gender); printf("student[%d] 修改後的性別為%c\n", st, stu[st].gender); break; case 4: printf("student[%d] 原來的籍貫為%s\n", st, stu[st].place); printf("修改為:"); scanf("%s", &stu[st].place); printf("student[%d] 修改後的籍貫為%s\n", st, stu[st].place); break; case 5: printf("student[%d] 原來的年級為%d\n", st, stu[st].grade); printf("修改為:"); scanf("%d", &stu[st].grade); printf("student[%d] 修改後的年級為%d\n", st, stu[st].grade); break; case 6: printf("student[%d] 原來的專業為%s\n", st, stu[st].major); printf("修改為:"); scanf("%s", &stu[st].major); printf("student[%d] 修改後的專業為%s\n", st, stu[st].major); break; case 7: printf("student[%d] 原來的班級為%d\n", st, stu[st].Class); printf("修改為:"); scanf("%d", &stu[st].Class); printf("student[%d] 修改後的班級為%d\n", st, stu[st].Class); break; case 8: printf("student[%d] 原來的課程為%s\n", st, stu[st].course); printf("修改為:"); scanf("%s", &stu[st].course); printf("student[%d] 修改後的課程為%s\n", st, stu[st].course); break; default: printf("Unknown operator!\n"); } } //輸入函數 void input(struct student *stu, int st) { printf("請輸入添加學生的:\n"); printf("學號:"); scanf("%d", &stu[st].number); printf("姓名:"); scanf("%s", &stu[st].name); printf("性別:"); scanf("%s", &stu[st].gender); printf("籍貫:"); scanf("%s", &stu[st].place); printf("年級:"); scanf("%d", &stu[st].grade); printf("專業:"); scanf("%s", &stu[st].major); printf("班級:"); scanf("%d", &stu[st].Class); printf("學習課程:"); scanf("%s", &stu[st].course); printf("|-----------------------------------------------------------------------------------------------------|\n"); printf("| number | name | gender | place | grade | major | Class | course |\n"); printf("|------------|------------|------------|-------------|-----------|-----------|----------|-------------|\n"); printf("| %d %s %s %s %d %s %d %s \n", stu[st].number, stu[st].name, stu[st].gender, stu[st].place, stu[st].grade, stu[st].major, stu[st].Class, stu[st].course); printf("|-----------------------------------------------------------------------------------------------------|\n"); } //顯示函數 void display(struct student *stu, int N) { int i; printf("+*****************************************************************************************************+\n"); printf("| number | name | gender | place | grade | major | Class | course |\n"); for(i=0; i<N; i++){ printf("|------------|------------|------------|-------------|-----------|-----------|----------|-------------|\n"); printf("| %d %s %s %s %d %s %d %s \n", stu[i].number, stu[i].name, stu[i].gender, stu[i].place, stu[i].grade, stu[i].major, stu[i].Class, stu[i].course); } printf("+*****************************************************************************************************+\n"); }
本文出自 “12090619” 博客,請務必保留此出處http://12100619.blog.51cto.com/12090619/1944659
小學期,學生信息管理系統