C语言课程设计实习报告
四 详细设计
1 结构体及函数
学生信息(姓名、学号)存在结构体Student中,各功能由函数实现。 #include
#include
typedef struct //存储学生信息 {
char num[9]; char name[7];
}Student;
void choose(Student *stu,int *a,int *b,int *c); //choose a student int minimum(int *a); //数组最小值函数
void function(Student *stu,int *a,int *b,int *c); //主菜单函数 void pickn(Student *stu,int *a,int *b,int *c); //选多个学生的函数 void pickc(Student *stu,int *a,int *b,int *c); //连续选学生的函数
6
C语言课程设计实习报告
void pickhistory(Student *stu,int *b,int *c); //点旷到学生的函数 void printrecord(Student *stu,int *a,int *b); //浏览历史函数
void read(Student *stu); //读取student.txt的函数 void saverecord(int *a,int *b); //存储历史记录到sturecord.dat的函数 void loadrecord(int *a,int *b); //读取文件 sturecord.dat的函数 void clear(int *a,int *b); //清除历史记录函数
void title(); //打印标题函数 void menu(); //打印目录函数 void borderup(); //打印上边界函数 void borderdown(); //打印下边界函数
2 主函数
主函数有读取学生信息、读取历史记录、显示菜单、点名、存储信息的功能,全部用函数实现。
int main() {
int a[N]={0},b[N]={0},c[N]={0}; // a,b,c数组分别存被点次数、 Student stu[N]; //旷课次数、本次上课是否被点
srand((unsigned)time(NULL));
7
C语言课程设计实习报告
read(stu); loadrecord(a,b);
title(); menu();
function(stu,a,b,c);
saverecord(a,b); return 0; }
开始 显示功能 判断 根据判断的值调用各功能模块函数 结束 8
C语言课程设计实习报告
3 各函数设计
(1) 存读数据函数
1 从student.txt读取学生信息的函数
void read(Student *stu) {
FILE *fp;
int i; //circulate
char c,d[5],e,*p; //\判断是否为名字的字符,\存名字后
的空格与回车,\存中间的空格
fp=fopen(\ //open file if(fp==NULL) {
printf(\
exit (0); }
for(i=0;i fgets(stu[i].num,9,fp); //学号 e=fgetc(fp); 9 C语言课程设计实习报告 } p=&stu[i].name; //名字 c='\\0'; } while(c!='\\t') { } c=fgetc(fp); if(c!='\\t') { } else { } *p='\\0'; fgets(d,5,fp); *p=c; p++; fclose(fp); 2 保存点名记录到sturecord.dat的函数 void saverecord(int *a,int *b) 10