C語言版學(xué)生信息管理系統(tǒng)
本文實(shí)例為大家分享了C語言版學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一.題目分析
1.功能概述
1)查詢學(xué)生信息
2)添加學(xué)生信息
3)修改學(xué)生信息
4)刪除學(xué)生信息
5)刷新學(xué)生信息
6)保存學(xué)生信息
7)輸出當(dāng)前學(xué)生信息
2.題目要求:
1)使用結(jié)構(gòu)體建立學(xué)生信息體制
2)實(shí)現(xiàn)七大基本功能
3)采用文件存儲學(xué)生信息
二.算法構(gòu)造
1.難點(diǎn)解析----對文件的操作
1.1文件讀取
FILE * fp;
if ((fp = fopen(filename, "r")) == NULL) return 0;
//從文件讀取信息
while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
j++;
}
1.2文件寫入
FILE * fp;
fp = fopen(filename, "w");
for (i = 0; i < n; i++){
fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
2.流程圖

3.七大基本功能----函數(shù)實(shí)現(xiàn)
3.1菜單函數(shù):通過菜單建立用戶與程序之間的交流
void menu()/* 界面*/
{
int num;
printf(" \n\n \n\n");
printf(" ******************************************************\n\n");
printf(" * 學(xué)生信息管理系統(tǒng) *\n \n");
printf(" ******************************************************\n\n");
printf("*********************系統(tǒng)功能菜單************************* \n");
printf(" ---------------------- ---------------------- \n");
printf(" ********************************************* \n");
printf(" * 0.系統(tǒng)幫助及說明 * * 1.刷新學(xué)生信息 * \n");
printf(" ********************************************* \n");
printf(" * 2.查詢學(xué)生信息 * * 3.修改學(xué)生信息 * \n");
printf(" ********************************************* \n");
printf(" * 4.增加學(xué)生信息 * * 5.按學(xué)號刪除信息 * \n");
printf(" ********************************************* \n");
printf(" * 6.顯示當(dāng)前信息 * * 7.保存當(dāng)前學(xué)生信息* \n");
printf(" ********************** ********************** \n");
printf(" * 8.退出系統(tǒng) * \n");
printf(" ********************** \n");
printf(" ---------------------- ---------------------- \n");
printf("請選擇菜單編號:");
scanf("%d", &num);
switch (num)
{
case 0:help(); break;
case 1:flush(); 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;
printf("即將退出程序!\n");
break;
default:printf("請在0-8之間選擇\n");
}
}
3.2系統(tǒng)幫助與說明函數(shù):適用于初次接觸學(xué)生信息管理系統(tǒng)的用戶參考
void help()
{
printf("\n0.歡迎使用系統(tǒng)幫助!\n");
printf("\n1.初次進(jìn)入系統(tǒng)后,請先選擇增加學(xué)生信息;\n");
printf("\n2.按照菜單提示鍵入數(shù)字代號;\n");
printf("\n3.增加學(xué)生信息后,切記保存;\n");
printf("\n4.謝謝您的使用!\n");
}
3.3刷新學(xué)生信息函數(shù)
功能:調(diào)用刷新信息函數(shù)后,文件中再無學(xué)生信息
int flush(){
char filename[LEN + 1];
int i = 0;
printf("請輸入要刷新學(xué)生信息的文件名:\n");
scanf("%s", filename);
int j = 0;
FILE * fp;
if ((fp = fopen(filename, "r")) == NULL) return 0;
//從文件讀取信息
while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
j++;
}
n = j;
printf("刷新成功!!!");
return n;
}
3.4查詢學(xué)生信息函數(shù)
功能:通過輸入要查詢的學(xué)生學(xué)號或者姓名,與系統(tǒng)中的學(xué)生信息進(jìn)行對比,若相等,則輸出該學(xué)生的基本信息;反之,則輸出該學(xué)生在該管理系統(tǒng)中不存在
查詢方式:
1)按照學(xué)號查詢
2)按照姓名查詢
void seek() /*查找*/
{
int i, item, flag;
char s1[21]; /* 以姓名和學(xué)號最長長度+1為準(zhǔn)*/
printf("------------------\n");
printf("-----1.按學(xué)號查詢-----\n");
printf("-----2.按姓名查詢-----\n");
printf("-----3.退出本菜單-----\n");
printf("------------------\n");
while (1)
{
printf("請選擇子菜單編號:");
scanf("%d", &item);
flag = 0;
switch (item)
{
case 1:
printf("請輸入要查詢的學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i<n; i++)
if (strcmp(s1,stu[i].StudentId) == 0)
{
flag = 1;
printf("學(xué)生學(xué)號\t學(xué)生姓名\t年齡\t性別\tC語言成績\t高等數(shù)學(xué)\t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
if (0 == flag)
printf("該學(xué)號不存在!\n"); break;
case 2:
printf("請輸入要查詢的學(xué)生的姓名:\n");
scanf("%s", s1);
for (i = 0; i<n; i++)
if (strcmp(stu[i].StudentName, s1) == 0)
{
flag = 1;
printf("學(xué)生學(xué)號\t學(xué)生姓名\t年齡\t性別\tC語言成績\t高等數(shù)學(xué)\t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
if (0 == flag)
printf("該姓名不存在!\n"); break;
case 3:return;
default:printf("請在1-3之間選擇\n");
}
}
}
3.5修改學(xué)生信息
功能:通過輸入學(xué)號來選擇要修改的該學(xué)號學(xué)生的信息內(nèi)容,從而完成修改信息操作;
//修改學(xué)生信息
void modify() /*修改信息*/
{
int i, item, num = -1;
char sex1, s1[LEN + 1], s2[LEN + 1]; /* 以姓名和學(xué)號最長長度+1為準(zhǔn)*/
float score1;
printf("請輸入要要修改的學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i < n; i++){
if (strcmp(stu[i].StudentId, s1) == 0){/*比較字符串是否相等*/
num = i;
printf("------------------\n");
printf("1.修改姓名\n");
printf("2.修改年齡\n");
printf("3.修改性別\n");
printf("4.修改C語言成績\n");
printf("5.修改高等數(shù)學(xué)成績\n");
printf("6.修改大學(xué)英語成績\n");
printf("7.退出本菜單\n");
printf("------------------\n");
while (1)
{
printf("請選擇子菜單編號:");
scanf("%d", &item);
switch (item)
{
case 1:
printf("請輸入新的姓名:\n");
scanf("%s", s2);
strcpy(stu[num].StudentName, s2);
break;
case 2:
printf("請輸入新的年齡:\n");
scanf("%d", stu[num].StudentAge);
break;
case 3:
printf("請輸入新的性別:\n");
scanf("%s", &sex1);
stu[i].StudentSex = sex1;
break;
case 4:
printf("請輸入新的C語言成績:\n");
scanf("%f", &score1);
stu[num].score[0] = score1;
break;
case 5:
printf("請輸入新的高等數(shù)學(xué)成績:\n");
scanf("%f", &score1);
stu[num].score[1] = score1;
break;
case 6:
printf("請輸入新的大學(xué)英語成績:\n");
scanf("%f", &score1);
stu[num].score[2] = score1;
break;
case 7: return;
default:printf("請在1-7之間選擇\n");
}
}
printf("修改完畢!請及時保存!\n");
}
else{
printf("沒有該學(xué)生學(xué)號!!!");
}
}
}
3.6添加學(xué)生信息函數(shù)
功能:添加學(xué)生信息,并保存至文件中
//添加學(xué)生信息函數(shù)
void insert() /*插入函數(shù)*/
{
int i = n, j, flag;
printf("請輸入待增加的學(xué)生數(shù):\n");
scanf("%d", &m);
if (m > 0){
do
{
flag = 1;
while (flag)
{
flag = 0;
printf("請輸入第%d位學(xué)生的學(xué)號:\n", i + 1);
scanf("%s", stu[i].StudentId);
for (j = 0; j < i; j++){
if (strcmp(stu[i].StudentId, stu[j].StudentId) == 0){
printf("該學(xué)號已存在,請重新輸入!\n");
flag = 1;
break;
}
}
}
printf("請輸入第%d 個學(xué)生的姓名:\n", i+1);
scanf("%s", stu[i].StudentName);
printf("請輸入第%d 個學(xué)生的年齡:\n", i+1);
scanf("%d", &stu[i].StudentAge);
printf("請輸入第%d 個學(xué)生的性別:\n", i+1);
scanf(" %c", &stu[i].StudentSex);
printf("請輸入第%d 個學(xué)生的C語言成績\n",i+1);
scanf("%f", &stu[i].score[0]);
printf("請輸入第%d 個學(xué)生的高等數(shù)學(xué)成績:\n", i+1);
scanf("%f", &stu[i].score[1]);
printf("請輸入第%d 個學(xué)生的大學(xué)英語成績:\n", i+1);
scanf("%f", &stu[i].score[2]);
if (0 == flag){
i++;
}
} while (i<n + m);
}
n += m;
printf("學(xué)生信息增加完畢!??!\n");
system("pause");
}
3.7刪除學(xué)生信息函數(shù)
功能:通過輸入要刪除學(xué)生信息的學(xué)號,刪除該學(xué)生在該管理系統(tǒng)中的所有信息;
//刪除學(xué)生信息函數(shù)
void del()
{
int i, j, flag = 0;
char s1[LEN + 1];
printf("請輸入要刪除學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i < n; i++){
if (strcpy(stu[i].StudentId, s1) == 0){
flag = 1;
//要刪除學(xué)生后面的學(xué)生往前移一位
for (j = i; j < n - 1; j++){
stu[j] = stu[j + 1];
}
}
}
//查找失敗
if (0 == flag){
printf("該學(xué)號不存在!!!\n");
}
if (1 == flag){
printf("刪除成功!??!");
//刪除成功,學(xué)生人數(shù)減1
n--;
}
system("pause");
}
3.8顯示當(dāng)前學(xué)生信息
功能:可以輸出進(jìn)行多種操作后的學(xué)生信息管理系統(tǒng)中的所有學(xué)生信息;
//顯示全部數(shù)據(jù)信息
void display()
{
int i;
printf("共有%d位學(xué)生的信息:\n", n);
if (0 != n)
{
printf("學(xué)生學(xué)號 \t學(xué)生姓名 \t年齡 \t性別 \tC語言成績\t高等數(shù)學(xué) \t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
for (i = 0; i<n; i++)
{
printf("%s \t%s \t%d \t%c \t%.1f\t%.1f \t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
}
system("pause");
}
3.8保存學(xué)生信息
功能:將進(jìn)行某些操作后的學(xué)生信息保存到指定文件中
void save(){
int i;
FILE *fp;
char filename[LEN + 1];
printf("請輸入要保存的文件名:\n");
scanf("%s", filename);
fp = fopen(filename, "w");
for (i = 0; i < n; i++){
fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
printf("保存成功!?。n");
fclose(fp);
system("pause");
}
三.源程序代碼
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h> /*I/O函數(shù)*/
#include<stdlib.h> /*其它說明*/
#include<string.h> /*字符串函數(shù)*/
#define LEN 15 /* 學(xué)號和姓名最大字符數(shù),實(shí)際請更改*/
#define N 50 /* 最大學(xué)生人數(shù),實(shí)際請更改*/
int k = 1, n = 0, m = 0;/* n代表當(dāng)前記錄的學(xué)生人數(shù)*/
//函數(shù)聲明
void readfile();
void seek();
void modify();
void insert();
void del();
void display();
void save();
void menu();
//結(jié)構(gòu)體保存學(xué)生信息
struct student{
char StudentId[LEN+1];
char StudentName[LEN+1];
int StudentAge;
char StudentSex;
float score[3];
}stu[N];
//主函數(shù)
int main()
{
while (k)
{
menu();
}
system("pause");
return 0;
}
//系統(tǒng)幫助函數(shù)
void help()
{
printf("\n0.歡迎使用系統(tǒng)幫助!\n");
printf("\n1.初次進(jìn)入系統(tǒng)后,請先選擇增加學(xué)生信息;\n");
printf("\n2.按照菜單提示鍵入數(shù)字代號;\n");
printf("\n3.增加學(xué)生信息后,切記保存;\n");
printf("\n4.謝謝您的使用!\n");
}
//刷新文件
int flush(){
char filename[LEN + 1];
int i = 0;
printf("請輸入要刷新學(xué)生信息的文件名:\n");
scanf("%s", filename);
int j = 0;
FILE * fp;
if ((fp = fopen(filename, "r")) == NULL) return 0;
//從文件讀取信息
while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
j++;
}
n = j;
printf("刷新成功!!!");
return n;
}
//查找學(xué)生信息
void seek() /*查找*/
{
int i, item, flag;
char s1[21]; /* 以姓名和學(xué)號最長長度+1為準(zhǔn)*/
printf("------------------\n");
printf("-----1.按學(xué)號查詢-----\n");
printf("-----2.按姓名查詢-----\n");
printf("-----3.退出本菜單-----\n");
printf("------------------\n");
while (1)
{
printf("請選擇子菜單編號:");
scanf("%d", &item);
flag = 0;
switch (item)
{
case 1:
printf("請輸入要查詢的學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i<n; i++)
if (strcmp(s1,stu[i].StudentId) == 0)
{
flag = 1;
printf("學(xué)生學(xué)號\t學(xué)生姓名\t年齡\t性別\tC語言成績\t高等數(shù)學(xué)\t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
if (0 == flag)
printf("該學(xué)號不存在!\n"); break;
case 2:
printf("請輸入要查詢的學(xué)生的姓名:\n");
scanf("%s", s1);
for (i = 0; i<n; i++)
if (strcmp(stu[i].StudentName, s1) == 0)
{
flag = 1;
printf("學(xué)生學(xué)號\t學(xué)生姓名\t年齡\t性別\tC語言成績\t高等數(shù)學(xué)\t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
if (0 == flag)
printf("該姓名不存在!\n"); break;
case 3:return;
default:printf("請在1-3之間選擇\n");
}
}
}
//修改學(xué)生信息
void modify() /*修改信息*/
{
int i, item, num = -1;
char sex1, s1[LEN + 1], s2[LEN + 1]; /* 以姓名和學(xué)號最長長度+1為準(zhǔn)*/
float score1;
printf("請輸入要要修改的學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i < n; i++){
if (strcmp(stu[i].StudentId, s1) == 0){/*比較字符串是否相等*/
num = i;
printf("------------------\n");
printf("1.修改姓名\n");
printf("2.修改年齡\n");
printf("3.修改性別\n");
printf("4.修改C語言成績\n");
printf("5.修改高等數(shù)學(xué)成績\n");
printf("6.修改大學(xué)英語成績\n");
printf("7.退出本菜單\n");
printf("------------------\n");
while (1)
{
printf("請選擇子菜單編號:");
scanf("%d", &item);
switch (item)
{
case 1:
printf("請輸入新的姓名:\n");
scanf("%s", s2);
strcpy(stu[num].StudentName, s2);
break;
case 2:
printf("請輸入新的年齡:\n");
scanf("%d", stu[num].StudentAge);
break;
case 3:
printf("請輸入新的性別:\n");
scanf("%s", &sex1);
stu[i].StudentSex = sex1;
break;
case 4:
printf("請輸入新的C語言成績:\n");
scanf("%f", &score1);
stu[num].score[0] = score1;
break;
case 5:
printf("請輸入新的高等數(shù)學(xué)成績:\n");
scanf("%f", &score1);
stu[num].score[1] = score1;
break;
case 6:
printf("請輸入新的大學(xué)英語成績:\n");
scanf("%f", &score1);
stu[num].score[2] = score1;
break;
case 7: return;
default:printf("請在1-7之間選擇\n");
}
}
printf("修改完畢!請及時保存!\n");
}
else{
printf("沒有該學(xué)生學(xué)號!!!");
}
}
}
void sort()//按學(xué)號排序
{
int i, j, k, *p, *q, s;
char temp[LEN + 1], ctemp;
float ftemp;
for (i = 0; i<n - 1; i++)
{
for (j = n - 1; j>i; j--)
if (strcmp(stu[j - 1].StudentId, stu[j].StudentId)>0)
{
strcpy(temp, stu[j - 1].StudentId);
strcpy(stu[j - 1].StudentId, stu[j].StudentId);
strcpy(stu[j].StudentId, temp);
strcpy(temp, stu[j - 1].StudentName);
strcpy(stu[j - 1].StudentName, stu[j].StudentName);
strcpy(stu[j].StudentName, temp);
ctemp = stu[j - 1].StudentSex;
stu[j - 1].StudentSex = stu[j].StudentSex;
stu[j].StudentSex = ctemp;
p = &stu[j - 1].StudentAge;
q = &stu[j].StudentAge;
s = *q;
*q = *p;
*p = s;
for (k = 0; k<3; k++)
{
ftemp = stu[j - 1].score[k];
stu[j - 1].score[k] = stu[j].score[k];
stu[j].score[k] = ftemp;
}
}
}
}
//添加學(xué)生信息函數(shù)
void insert() /*插入函數(shù)*/
{
int i = n, j, flag;
printf("請輸入待增加的學(xué)生數(shù):\n");
scanf("%d", &m);
if (m > 0){
do
{
flag = 1;
while (flag)
{
flag = 0;
printf("請輸入第%d位學(xué)生的學(xué)號:\n", i + 1);
scanf("%s", stu[i].StudentId);
for (j = 0; j < i; j++){
if (strcmp(stu[i].StudentId, stu[j].StudentId) == 0){
printf("該學(xué)號已存在,請重新輸入!\n");
flag = 1;
break;
}
}
}
printf("請輸入第%d 個學(xué)生的姓名:\n", i+1);
scanf("%s", stu[i].StudentName);
printf("請輸入第%d 個學(xué)生的年齡:\n", i+1);
scanf("%d", &stu[i].StudentAge);
printf("請輸入第%d 個學(xué)生的性別:\n", i+1);
scanf(" %c", &stu[i].StudentSex);
printf("請輸入第%d 個學(xué)生的C語言成績\n",i+1);
scanf("%f", &stu[i].score[0]);
printf("請輸入第%d 個學(xué)生的高等數(shù)學(xué)成績:\n", i+1);
scanf("%f", &stu[i].score[1]);
printf("請輸入第%d 個學(xué)生的大學(xué)英語成績:\n", i+1);
scanf("%f", &stu[i].score[2]);
if (0 == flag){
i++;
}
} while (i<n + m);
}
n += m;
printf("學(xué)生信息增加完畢?。。n");
system("pause");
}
//刪除學(xué)生信息函數(shù)
void del()
{
int i, j, flag = 0;
char s1[LEN + 1];
printf("請輸入要刪除學(xué)生的學(xué)號:\n");
scanf("%s", s1);
for (i = 0; i < n; i++){
if (strcpy(stu[i].StudentId, s1) == 0){
flag = 1;
//要刪除學(xué)生后面的學(xué)生往前移一位
for (j = i; j < n - 1; j++){
stu[j] = stu[j + 1];
}
}
}
//查找失敗
if (0 == flag){
printf("該學(xué)號不存在!!!\n");
}
if (1 == flag){
printf("刪除成功?。?!");
//刪除成功,學(xué)生人數(shù)減1
n--;
}
system("pause");
}
//顯示全部數(shù)據(jù)信息
void display()
{
int i;
printf("共有%d位學(xué)生的信息:\n", n);
if (0 != n)
{
printf("學(xué)生學(xué)號 \t學(xué)生姓名 \t年齡 \t性別 \tC語言成績\t高等數(shù)學(xué) \t大學(xué)英語成績\n");
printf("--------------------------------------------------------------------\n");
for (i = 0; i<n; i++)
{
printf("%s \t%s \t%d \t%c \t%.1f\t%.1f \t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
}
system("pause");
}
void save(){
int i;
FILE *fp;
char filename[LEN + 1];
printf("請輸入要保存的文件名:\n");
scanf("%s", filename);
fp = fopen(filename, "w");
for (i = 0; i < n; i++){
fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
stu[i].score[0], stu[i].score[1], stu[i].score[2]);
}
printf("保存成功?。?!\n");
fclose(fp);
system("pause");
}
void menu()/* 界面*/
{
int num;
printf(" \n\n \n\n");
printf(" ******************************************************\n\n");
printf(" * 學(xué)生信息管理系統(tǒng) *\n \n");
printf(" ******************************************************\n\n");
printf("*********************系統(tǒng)功能菜單************************* \n");
printf(" ---------------------- ---------------------- \n");
printf(" ********************************************* \n");
printf(" * 0.系統(tǒng)幫助及說明 * * 1.刷新學(xué)生信息 * \n");
printf(" ********************************************* \n");
printf(" * 2.查詢學(xué)生信息 * * 3.修改學(xué)生信息 * \n");
printf(" ********************************************* \n");
printf(" * 4.增加學(xué)生信息 * * 5.按學(xué)號刪除信息 * \n");
printf(" ********************************************* \n");
printf(" * 6.顯示當(dāng)前信息 * * 7.保存當(dāng)前學(xué)生信息* \n");
printf(" ********************** ********************** \n");
printf(" * 8.退出系統(tǒng) * \n");
printf(" ********************** \n");
printf(" ---------------------- ---------------------- \n");
printf("請選擇菜單編號:");
scanf("%d", &num);
switch (num)
{
case 0:help(); break;
case 1:flush(); 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;
printf("即將退出程序!\n");
break;
default:printf("請在0-8之間選擇\n");
}
}
四.調(diào)試、測試以及實(shí)驗(yàn)結(jié)果
1.調(diào)試:

2.測試:
輸入數(shù)據(jù)類型與定義時不符合,程序運(yùn)行過程中會出現(xiàn)錯誤

3.實(shí)驗(yàn)結(jié)果:
(1)~(9)是一個連續(xù)的運(yùn)行實(shí)驗(yàn)結(jié)果
(1)運(yùn)行菜單

(2)添加學(xué)生信息

(3)保存學(xué)生信息

(4)顯示全部信息

(5)修改學(xué)生信息

(6)顯示修改后全部信息

(7)刷新學(xué)生信息

(8)保存學(xué)生信息

(9)顯示刷新后的全部信息

五、總結(jié)
編寫一個功能齊全的、方便用戶操作的學(xué)生管理系統(tǒng),需要長期的實(shí)踐與積累。
實(shí)踐時檢驗(yàn)的好辦法,學(xué)到的知識經(jīng)過實(shí)踐的檢驗(yàn),才能更好的被自身吸收。文件的操作的程序編寫應(yīng)用對我來說,是一個沒有經(jīng)過多次實(shí)踐的問題,所以我在寫這部分程序時,還是有些難度。該程序中還存在一個問題就是,當(dāng)輸入一個與定義時不符的數(shù)據(jù),程序在運(yùn)行過程中會出現(xiàn)錯誤,修改辦法還在思考,歡迎大家來與我互相共勉。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 學(xué)生信息管理系統(tǒng)C語言版
- C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(單鏈表)
- C語言數(shù)據(jù)結(jié)構(gòu)之學(xué)生信息管理系統(tǒng)課程設(shè)計
- C語言單鏈表版學(xué)生信息管理系統(tǒng)
- C語言學(xué)生信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn)
- C語言學(xué)生信息管理系統(tǒng)小項(xiàng)目
- C語言數(shù)組實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)設(shè)計
- C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(文件版)
- C語言使用鏈表實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)開發(fā)
相關(guān)文章
C++實(shí)現(xiàn)的分布式游戲服務(wù)端引擎KBEngine詳解
這篇文章主要詳細(xì)介紹了C++實(shí)現(xiàn)的分布式游戲服務(wù)端引擎KBEngine的概念以及使用方法,非常的實(shí)用,有需要的小伙伴可以參考下2015-03-03
Windows下sentry接入C/C++程序的詳細(xì)過程
sentry作為一個開源的軟件,發(fā)展至今,已經(jīng)非常成熟。它支持的平臺眾多,甚至于針對不同的工作者(后臺、前端、客戶端)都有相應(yīng)的內(nèi)容,這篇文章主要介紹了Windows下sentry接入C/C++程序,需要的朋友可以參考下2022-09-09
C++報錯:Id?returned?1exit?status的解決辦法
最近剛學(xué)c語言,不止一次遇到了同一種報錯,經(jīng)過總結(jié)分享給大家,下面這篇文章主要給大家介紹了關(guān)于C++報錯:Id?returned?1exit?status的解決辦法,需要的朋友可以參考下2023-04-04
可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程
QT眾所周知是一個開源的,以C++為底層的可視化工具庫,下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04

