(完整word版)C语言课程设计学生考勤系统方案

(完整word版)C语言课程设计学生考勤系统方案
(完整word版)C语言课程设计学生考勤系统方案

C语言程序设计

课程设计报告设计题目:学生考勤系统设计

专业微电子科学与工程

班级微电131

学生赵杨怡

指导教师________________________

更场弘丿A字

—年—学期

资料整理

一、总体设计

1 ?程序的总体设计

◎确定界面,使用户可选择操作项目(录入,修改,查询,评分)。

◎录入功能:使用结构体,要求用户输入姓名、性别、学号、日期、节次、当前出勤情况等信息,并写入文件。

◎修改功能:使用户输入学号,姓名其中一项可以修改考勤其信息。对于修改功能的实现,是先将所有文件内容读入到内存中,然后修改考勤值,最后再重新覆盖写入文件。

◎查询模块:使用字符串比较函数,利用循环找到对应结构体数组元素,然后输出需要信息。对于查询功能的实现,同修改,是先将所有文件内容读入到内存中,然后查找到其中某项,最后输出到屏幕。

◎评分模块:系统根据总的应道考勤数按照百分制,求出每个学

生的分数,并输出到屏幕。

2. 数据结构

学生信息用结构体记录,包括姓名(字符数组)、性别(字

符型)、日期(年月日三个字符数组)、节次(整型)、出情况(整型)

3. 函数原型声明 void mai n () // 主函数 void in put (); // 录入数据函数 void chan ge (); // 修改数据函数 void search (); // 查询数据函数

void evaluate 。; // 计算总评函数

、详细设计

录入数据函数 修改数据函数

查询数据函数 计算总评函数 ★?★□★?★□★?★□★?★

? 学生考勤

? BY 朱胜佳

1. main()函数 void mai n() {

void in put(); //

void cha nge(); // void search(); // void evaluate(); // char item;

system("color 34"); printf("

□ ★?★□★ \n");

printf("

? \n");

printf("

管理系统

printf("

? \n");

printf("

? \n");

prin tf(" ?? \n");

prin tf(" ★?★□★?★□★?★□ ★?★□★?★□★ \n");

printf(" ?? \n");

printf(" ? 1. 学生信息及考勤情况录入?\n");

printf(" ?? \n");

printf(" ? 2. 学生信息及考勤情况修改?\n");

printf(" ?? \n");

printf(" ? 3. 学生信息及考勤情况查询?\n");

printf(" ◎◎ \n");

printf(" ? 4. 学生考勤总评分数查询? \n");

printf(" ??\n");

printf(" ★?★□★?★□★?★□ ★?★□★?★□★ \n"); // 用户界面

prin tf("\n");

printf(" 请选择您需要的操作\n");

scan f("%c",&item);

switch(item)

{

case '1': in put();break;

case 2: cha nge();break;

case 3: search();break;

case '4': evaluate();break;

} // 实现功能选择}

流程图:

***************************

if((fp=fope n("date.txt","w"))==NULL) {

printf(" 文件打开失败\n"); exit(0); }

for(i=0;jx==1;i++) //

输入信息循环 { for(;j==0;)

//

输入确认循环

2.

input ()函数

void in put()

int i,j=O,jx=1;

printf(" ? ************************ 学生基本信息录入

**\n");

getchar();

printf(" 请输入第%4个学生的姓名",i+1);

gets(stu[i]. name);

printf(" 请输入第%4个学生的学号",i+1);

gets(stu[i]. nu mber);

printf(" 请输入第%d个学生的性别(男:m女:f) ",i+1);

stu[i].sex=getchar();

printf("请输入第%4个学生的生日(格式:年月日)",i+1);

sca nf("%d%d%d",&stu[i].year,&stu[i].mo nth,&stu[i].day);

printf(" 请输入第%(个学生的当前考勤次数",i+1);

sca nf("%d", &stu[i].kq);

printf(" 您输入的信息为姓名%s学号%s性别%c生日%d 年%d 月%d 日\n

0 重输 1 确认",stu[i]. name,stu[i]. nu mber,stu[i].sex,stu[i].year,stu[i].m ont

h,stu[i].day);

sca nf("%d",&j); // 输入确认

}

j=0;

if(fwrite(&stu[i],sizeof(struct stude nt),1,fp)!=1) printf(" 文件写入错误\n"); // 写入文件

printf(" 是否继续输入下一个学生信息0终止1

继续\n");

sca nf("%d",&jx); // 继续输入选择

}

fclose(fp);

printf("0 返回主菜单\n");

getchar();

a=getchar();

getchar();

if(a=='0') mai n(); // 返回主菜单}

流程图:

相关主题
相关文档
最新文档